1. 程式人生 > >OpenStack 簡介和幾種安裝方式總結

OpenStack 簡介和幾種安裝方式總結

OpenStack :是一個由NASA和Rackspace合作研發併發起的,以Apache許可證授權的自由軟體和開放原始碼專案。專案目標是提供實施簡單、可大規模擴充套件、豐富、標準統一的雲端計算管理平臺。OpenStack通過各種互補的服務提供了基礎設施即服務(IaaS)的解決方案,每個服務提供API以進行整合。OpenStack是用Python程式語言編寫的。
OpenStack核心專案:OpenStack是由很多核心專案組合在一起的。

計算(Compute):Nova。一套控制器,用於為單個使用者或使用群組管理虛擬機器例項的整個生命週期,根據使用者需求來提供虛擬服務。負責虛擬機器建立、開機、關機、掛起、暫停、調整、遷移、重啟、銷燬等操作,配置CPU、記憶體等資訊規格。自Austin版本整合到專案中。

物件儲存(Object Storage):Swift。一套用於在大規模可擴充套件系統中通過內建冗餘及高容錯機制實現物件儲存的系統,允許進行儲存或者檢索檔案。可為Glance提供映象儲存,為Cinder提供卷備份服務。自Austin版本整合到專案中。

映象服務(Image Service):Glance。一套虛擬機器映象查詢及檢索系統,支援多種虛擬機器映象格式(AKI、AMI、ARI、ISO、QCOW2、Raw、VDI、VHD、VMDK),有建立上傳映象、刪除映象、編輯映象基本資訊的功能。自Bexar版本整合到專案中。

身份服務(Identity Service):Keystone。為OpenStack其他服務提供身份驗證、服務規則和服務令牌的功能,管理Domains、Projects、Users、Groups、Roles。自Essex版本整合到專案中。

網路&地址管理(Network):Neutron。提供雲端計算的網路虛擬化技術,為OpenStack其他服務提供網路連線服務。為使用者提供介面,可以定義Network、Subnet、Router,配置DHCP、DNS、負載均衡、L3服務,網路支援GRE、VLAN。外掛架構支援許多主流的網路廠家和技術,如OpenvSwitch。自Folsom版本整合到專案中。

塊儲存 (Block Storage):Cinder。為執行例項提供穩定的資料塊儲存服務,它的外掛驅動架構有利於塊裝置的建立和管理,如建立卷、刪除卷,在例項上掛載和解除安裝卷。自Folsom版本整合到專案中。

UI 介面 (Dashboard):Horizon。OpenStack中各種服務的Web管理門戶,用於簡化使用者對服務的操作,例如:啟動例項、分配IP地址、配置訪問控制等。自Essex版本整合到專案中。

安裝方式:

1.DevStack
在相當長一段時間內,DevStack仍將是眾多開發者的首選安裝工具。該方式主要是通過配置一個安裝指令碼,執行Shell命令來安裝OpenStack的開發環境,支援CentOS、Debian等系列系統。
2.RDO
RDO是由Red Hat紅帽開源的一個自動化部署OpenStack的工具,支援單節點(all-in-one)和多節點(multi-node)部署。但RDO只支援CentOS系列作業系統。需要注意的是,該專案並不屬於OpenStack官方社群專案。
3.手動部署
按照社群官方提供的文件,可以使用手動方式部署單節點、多節點、HA節點環境。
4.Puppet
Puppet由Ruby語言編寫。Puppet是進入OpenStack自動化部署中早期的一個專案。目前,它的活躍開發群體是Red Hat、Mirantis、UnitedStack等。Mirantis出品的Fuel部署工具,其大量的模組程式碼使用的便是Puppet。
5.Ansible
Ansible是一個自動化部署配置管理工具,已被Red Hat收購。它基於Python開發,集合了眾多運維工具(Puppet、Chef、SaltStack等)的優點,實現了批量系統配置、批量程式部署、批量執行命令等功能。Ansible一方面總結了Puppet設計上的得失,另一方面也改進了很多設計。比如基於SSH方式工作,故而不需要在被控端安裝客戶端。
6.SaltStack
SaltStack也是一個開源的自動化部署工具,基於Python開發,實現了批量系統配置、批量程式部署、批量執行命令等功能,和Ansible很相似。不同之處是,由於SaltStack的Master和Minion認證機制及工作方式,因此需要在被控端安裝Minion客戶端。
7.TripleO
TripleO專案最早由HP於2013年4月在Launchpad上註冊BP,用於完成OpenStack的安裝與部署。TripleO全稱為“OpenStack On OpenStack”,意思為“雲上雲”,可以簡單理解為利用OpenStack來部署OpenStack,即首先基於V2P(和P2V相反,指把虛擬機器的映象遷移到物理機上)的理念事先準備好一些OpenStack節點(計算、儲存、控制節點)的映象,然後利用已有OpenStack環境的Ironic裸機服務和軟體安裝部分的diskimage-builder部署裸機,最後通過Heat專案和映象內的自動化部署工具(Puppet或Chef)在裸機上配置執行OpenStack。和其他部署工具不同的是,TripleO是利用OpenStack已有的基礎設施來部署OpenStack的。
8.Fuel
Fuel是針對OpenStack的一個可以通過“介面部署”的工具,它大量採用了Python、Ruby和JavaScript等語言。其功能涵蓋了通過自動化PXE方式安裝作業系統、DHCP服務、Orchestration編排服務和Puppet安裝相關服務等,此外還有OpenStack關鍵業務健康檢查和log實時檢視等非常好用的功能。
9.Kolla
Kolla是具有廣闊應用前景和市場的一個自動化部署工具。相比於其他部署工具,Kolla完全革新地使用了Docker容器技術,將每一個OpenStack服務執行在不同的Docker容器中。

如上所述,OpenStack的安裝部署方式多種多樣,新手應該如何選擇呢,這裡,我推薦使用Rdo或手動部署方式(過程是艱難的,但能很好的加深對OpenStack的理解);對於老手而言,可以嘗試使用Kolla方式,體驗Docker和OpenStack融合的新方式。
當前,OpenStack除了與Docker融合相關的Kolla專案之外,社群還有諸如Magnum、Murano、Solum等非