書名: OpenStack云計算實戰作者名: 鐘小平 許寧本章字數: 4774字更新時間: 2020-05-22 15:44:34
1.1 云計算概述
OpenStack 是云操作系統,用于部署云計算平臺。學習 OpenStack 首先需要了解云計算的基本知識,理解相關概念。
1.1.1 云計算的概念
在傳統模式下,企業建立一套 IT 系統不僅要采購硬件等基礎設施,而且要購買軟件的許可證,還需要專門的人員維護。當企業的規模擴大時,企業就要繼續升級各種軟硬件設施以滿足需要。這些硬件和軟件本身并非用戶真正需要的,它們僅僅是完成任務的工具,軟硬件資源租用服務能滿足用戶的真正需求。而云計算(Cloud Computing)就是這樣的服務,其最終目標是將計算、服務和應用作為一種公共設施提供給公眾。
云(Cloud)是計算機網絡、互聯網的一種比喻說法。云計算是提供虛擬化資源的一種模式,將以前的信息孤島轉化為靈活高效的資源池和具備自我管理能力的虛擬基礎架構,從而以更低的成本和更好的服務形式提供給用戶。云計算意味著,IT的作用正在從提供IT服務逐步過渡到根據業務需求優化服務的交付和使用。
云計算是IT系統架構不斷發展的產物。早期的IT系統架構是面向物理設備的物理機架構,所有應用都部署和運行在物理機上,資源使用率低,部署和運維成本高。隨著物理服務器的計算能力不斷提高,為解決這些問題,出現了基于虛擬機的IT系統架構,它面向資源,將應用系統直接部署到虛擬機上。服務器虛擬化是一種可以為不同規模的企業降低IT開銷、提高效率和敏捷性的有效方式。虛擬化提高了單臺物理機的資源使用率,但并不提供基礎設施服務。最新的云計算架構面向服務,將計算、存儲和網絡類IT系統資源以服務的形式提供給用戶,用戶只需向云平臺請求所需的虛擬機來運行自己的應用系統,無須關心虛擬機在哪里運行,從何處獲取存儲空間,如何分配IP地址等。所有的一切都由云平臺來實現。
云計算可以說是虛擬化技術的升級,通過在數據中心部署云計算系統,可以完成多數據中心之間的業務無感知遷移,并可同時為公眾提供服務,此時數據中心就成為云數據中心。云計算旨在通過Internet按需交付共享資源,利用虛擬化實現云計算的所有功能。云計算系統的平臺管理技術能夠使大量的服務器協同工作,方便進行業務部署和開通,快速發現和恢復系統故障,通過自動化、智能化的手段實現大規模系統的可靠運營。服務器虛擬化不是云,而是基礎架構自動化或者數據中心自動化,它并不需要提供基礎設施服務。虛擬化是構建云基礎架構不可或缺的關鍵技術之一,服務器虛擬化技術可用于云計算,其常見的應用是通過虛擬化服務器將虛擬化的數據中心搬到私有云。當然,一些主流的公共云也都使用這種虛擬化技術。
1.1.2 云計算架構
云計算架構是一個面向服務的架構,云計算包括3個層次的服務:基礎設施即服務(Infrastructureas-a-Service,IaaS)、平臺即服務(Platform-as-a-Service,PaaS)和軟件即服務(Software-as-a-Service, SaaS)。這3種服務代表了不同的云服務模式,分別在基礎設施層、平臺層和應用層實現,共同構成云計算的整體架構,如圖1-1所示。從圖中可以看出,云計算架構還包括用戶接口(針對每個層次的云計算服務提供相應的訪問接口)和云計算管理(對所有層次云計算服務提供管理功能)這兩個模塊。

圖1-1 云計算架構
1.IaaS(基礎設施即服務)
IaaS服務模式將數據中心、基礎設施等硬件資源通過Internet分配給用戶,提供的服務是虛擬機。IaaS 負責管理虛擬機的生命周期,包括創建、修改、備份、啟停、銷毀等,用戶從云平臺獲得一個已經安裝好鏡像(包含操作系統等軟件)的虛擬機。企業或個人可以遠程訪問云計算資源,包括計算、存儲以及應用虛擬化技術所提供的相關功能。無論是最終用戶、SaaS提供商,還是PaaS提供商都可以從 IaaS 中獲得應用所需的計算能力。目前具有代表性的 IaaS 服務產品有亞馬遜(Amazon)的EC2云主機和S3云存儲,以及Rackspace Cloud等,國內主要有阿里云和百度云服務等。
2.PaaS(平臺即服務)
PaaS 將一個完整的計算機平臺,包括應用設計、應用開發、應用測試和應用托管,都作為一種服務提供給用戶。也就是說,PaaS 提供的服務是應用的運行環境和一系列中間件服務(如數據庫、消息隊列等)。PaaS負責保證這些服務的可用性和性能。在這種服務模式中,用戶不需要購買硬件和軟件,只需要利用PaaS平臺,就能夠創建、測試、部署應用和服務,與基于數據中心的平臺進行軟件開發和部署相比,費用要低得多,這是PaaS的最大價值所在。目前PaaS的典型實例有微軟的Windows Azure平臺、Facebook的開發平臺、Google App Engine、IBM BlueMix,以及國內的新浪SAE等。
3.SaaS(軟件即服務)
SaaS是一種通過Internet提供軟件服務的云服務模式,用戶無須購買或安裝軟件,而是直接通過網絡向專門的提供商獲取自己所需要的、帶有相應軟件功能的服務。SaaS 直接提供應用服務,主要面向軟件的最終用戶,用戶無須關注后臺服務器和運行環境,只需關注軟件的使用。
SaaS 的應用范圍很廣,如在線郵件服務、網絡會議、網絡傳真、在線殺毒等各種工具型服務,在線 CRM、在線 HR、在線進銷存、在線項目管理等各種管理型服務,以及網絡搜索、網絡游戲、在線視頻等娛樂性應用。微軟、Salesforce等各大軟件公司都推出了自己的SaaS應用,用友、金蝶等國內軟件公司也推出了自己的SaaS應用。
采用的服務模式不同,云計算平臺提供的資源不同,用戶的參與度也不同,不同云服務模式的資源部署如圖1-2所示,其中,虛線框中的資源由云計算平臺提供,實線框中的資源由用戶部署和管理。IaaS 的使用者通常是數據中心的系統管理員,需要關心虛擬機的類型(OS)和配置(CPU、內存、磁盤存儲),并且負責部署上層的中間件和應用軟件。PaaS的使用者通常是應用的開發人員,只需專注應用的開發,并將自己的應用和數據部署到PaaS云環境中。SaaS的使用者通常是應用的最終用戶,只需登錄并使用應用,無須關心應用使用什么技術實現,也不需要關心應用部署在哪里。有人將IaaS、PaaS和SaaS分別稱為系統云、開發云和用戶云。

圖1-2 不同云服務模式的資源部署
OpenStack用于對數據中心的計算、存儲和網絡資源進行統一管理。它提供的IT基礎設施服務,是IaaS層次的云操作系統。
1.1.3 云計算部署模式
對云提供者而言,云計算主要有3種部署模式,即公共云、私有云和混合云。
1.公共云
公共云(Public Cloud)面向公眾提供應用和存儲等資源,是為外部用戶提供服務的云,它所有的服務都是供公眾使用的,而不是供企業自己使用。
對用戶而言,公共云的最大優點是其所應用的程序、服務及相關數據都存放在公共云端,用戶自己無須做相應的投資和建設。目前最大的問題是,由于數據不是存儲在用戶自己的數據中心里,其安全性存在一定風險,同時公共云的可用性不受用戶控制,存在一定的不確定性。
目前主流的公共云服務有微軟Azure、亞馬遜AWS和谷歌公共云,以及國內的阿里云。
2.私有云
私有云(Private Cloud)又稱專用云,是為一個組織機構單獨使用而構建的,是企業自己專用的云,它所有的服務不是供公眾使用的,而是供企業內部人員或分支機構使用的。私有云可部署在企業數據中心的防火墻內,也可以將它們部署在一個安全的主機托管場所,私有云的核心屬性是私有資源。
私有云部署在企業自身內部,因此其數據安全性、系統可用性、服務質量都可由自己控制。但其缺點是投資較大,尤其是一次性的建設投資較大。
私有云的部署比較適合于有眾多分支機構的大型企業或政府部門。隨著這些大型企業數據中心的集中化,私有云將會成為部署IT系統的主流模式。
私有云可以進一步細分為自有私有云(On-Premise Private Cloud)和托管私有云(Hosted Private Cloud)兩種類型。前者又稱內部云(Internal Cloud),完全由組織內部或數據中心自有并管理,為云計算需求提供內部解決方案;后者則由第三方提供商所有和運維,為企業用戶提供一整套私有云服務。
3.混合云
混合云(Hybrid Cloud)是公共云和私有云的混合。混合云既面向公共空間又面向私有空間提供服務,可以發揮出所混合的多種云計算模型各自的優勢。當用戶需要使用既是公共云又是私有云的服務時,選擇混合云比較合適。
混合云有助于提供所需的、外部供應的擴展。用公共云的資源擴充私有云的能力,可用來在發生工作負荷快速波動時維持服務水平。
混合云的部署方式對提供商的要求較高。
1.1.4 云計算解決方案
云計算解決方案可以分為兩類,一類是商用云計算平臺,另一類是開源云計算平臺。
1.商用云計算平臺
目前著名的商用云計算平臺亞馬遜AWS(Amazon Web Services)已成為公共云的事實標準,為全世界范圍內的用戶提供云計算解決方案,提供包括彈性計算云(Amazon Elastic Compute Cloud, Amazon EC2)、簡單存儲服務(Amazon Simple Storage Service,Amazon S3)、簡單數據庫(Amazon Simple DB)、簡單隊列服務(Amazon Simple Queue Service)等在內的一整套云計算服務,幫助企業降低IT投入成本和維護成本。其中EC2用于提供虛擬機服務,并建立了云計算服務基于虛擬化技術實現資源動態共享、彈性擴展的標準。S3用于提供云存儲服務,已經成為全球范圍內應用廣泛的云存儲接口。
另一知名的云計算平臺是Microsoft Azure。它是一個綜合性的云服務平臺,開發人員和IT專業人士可使用該平臺來生成、部署和管理應用程序。作為一個開放而靈活的企業級云計算平臺,它提供IaaS和PaaS兩種模式的云計算服務。
國內比較有影響的商用云計算平臺是阿里巴巴集團旗下的云計算品牌阿里云(AliCloud)。阿里云面向全球提供云計算服務,目前在我國公共云市場上占據絕對主導地位。它為用戶提供類似AWS的一整套云計算解決方案,包括彈性計算、云存儲、云安全等。
2.開源云計算平臺
除了可用于構建云基礎設施的商用軟件,還有大量的開源云計算解決方案。開源云計算平臺并不單單是商用云軟件的替代品,許多新的云計算概念和技術往往是在開源軟件中率先實現的。開源云計算平臺進一步拓展了云計算領域,推動了云計算技術的發展。
(1)OpenStack是一個IaaS開源云計算解決方案。這個全球性項目由Rackspace和NASA共同創辦,采用了Apache 2.0許可證,可隨意使用。OpenStack并不要求使用專有的硬件或軟件,可以在虛擬系統和裸機系統中運行。它支持多種虛擬機管理程序(如 KVM、XenServer 等)和容器技術。OpenStack應用廣泛,它既可與Hadoop協同運行以滿足大數據要求,又可向縱向和橫向擴展以滿足不同的計算要求,還可提供高性能計算以處理密集的工作負載。
(2)OpenNebula是一款為云計算而打造的開源工具箱,也采用Apache 2.0許可證。從研究的角度來看,該項目力求開發先進的、自適應的虛擬化數據中心和企業云,注重云計算軟件的穩定性和質量。
(3)Eucalyptus 提供完整的 IaaS 解決方案,包括云控制器、持續性數據存儲、集群控制器、存儲控制器、節點控制器和可選的VMware代理,每個組件都是一種獨立的Web服務,旨在為每種服務提供API。這種基于Linux的系統讓用戶可以使用一種基于行業標準的模塊化框架,在現有的基礎設施里部署私有云和混合云。其社區版采用的是GPL v3授權協議,無須許可證;而企業版需要授權,在云控制器上安裝許可證。
(4)CloudStack的核心是用Java編寫的云計算解決方案,可以與XenServer/XCP、KVM、Hyper-V和 VMware 上的主機協同運行,被許多提供商用于為客戶部署私有云、公共云和混合云等云計算解決方案。其授權與Eucalyptus類似。
1.1.5 裸金屬云
在公共云服務推出之前,一些互聯網服務提供商(Internet Service Provider,ISP)或互聯網數據中心(Internet Data Center,IDC)均提供服務器托管服務,用戶可以按需選擇服務器硬件和操作系統等,這比使用Web虛擬主機要靈活得多。進入云計算時代,一部分托管服務商也變身為云服務商,如Softlayer早在2010年就推出所謂的裸金屬云(Bare Metal Cloud)或裸機云服務,為用戶提供不含Hypervisor(虛擬機管理程序)、支持自定義硬件基礎架構的產品。Bare Metal Cloud是一種提供物理服務器服務的云產品。與通用的云主機相比,它沒有Hypervisor,沒有虛擬機,也不存在多租戶共享。
緊接著Rackspace推出名為“OnMetal”的裸金屬云服務。作為全球影響力最大的開源硬件組織的開放計算項目(Open Compute Project,OCP)和開源云計算軟件組織 OpenStack 的創始公司, Rackspace于2016年上線的OnMetal v2開始采用OCP服務器和OpenStack的Ironic進行管理,使其更加名正言順地稱為云服務。目前主要的云服務商都推出了此類云產品,如IBM的云平臺推出基于Intel新一代至強可擴展處理器的裸金屬服務器,亞馬遜推出i3裸金屬服務器,阿里云發布神龍云服務器(X-dragon Cloud Server)。
與虛擬化云主機幾乎都基于x86架構不同,裸金屬服務器在平臺架構方面要豐富得多,除了Intel處理器,還可以選擇POWER處理器、ARM處理器,以及GPU、FPGA等服務器產品。
隨著容器技術的興起,物理服務器成為其順理成章的選擇,因為對于用容器運行應用的用戶,虛擬機在某些情況下是沒有必要的。一些企業用戶仍然希望使用可靠、安全的環境,也會選擇裸金屬云。