隨著越來越多的企業考慮選擇不同的私有云平臺,組織了解開源的OpenStack與市場上其他流行的云計算軟件之間的區別是很重要的。本文我將介紹OpenStack和一些必備的OpenStack組件。
OpenStack生態系統
OpenStack和Amazon EC2非常類似,兩大平臺都允許用戶使用儀表盤或者API部署虛擬機。除OpenStack免費之外,兩大產品的重大差別是Amazon EC2是一個公有云服務,而OpenStack允許你構建自己的私有云或者訂閱OpenStack公有云廠商的服務。
OpenStack不是一個hypervisor,但能夠與一些不同的hypervisor一起使用。用戶可以選擇在機器或者擁有內置hypervisor的操作系統(比如Linux KVM)上部署hypervisor。使用OpenStack裸金屬部署項目Ironic,用戶能夠將虛擬機推送到裸金屬服務器上。
OpenStack包括很多組件,部分組件如下:
Horizon(儀表盤)為OpenStack服務提供基于Web的用戶界面。
Nova(計算)包括控制器和計算節點。計算節點使用OpenStack的鏡像服務提取虛擬機鏡像并在目標服務器上創建虛擬機。針對不同平臺比如提供了不同的API,比如XenAPI、VMwareAPI、針對Linux KVM的API、針對Amazon EC2 以及微軟 Hyper-V的API。
Neutron(網絡)創建虛擬網絡以及網絡接口,連接眾多專用廠商的網絡產品。
Swift(對象存儲)與Amazon S3類似,它使用REST Web服務檢索單個對象,比如一個鏡像。
Cinder(塊存儲)包括磁盤文件,諸如日志等等。與對象存儲相比,Cinder只允許替換文件,塊存儲允許你增加文件內容。
Keystone(身份存儲)授權用戶以及進程基于Keystone生成的認證令牌訪問不同的OpenStack工具。
Glance(鏡像服務)生成虛擬機鏡像。這恰恰是OpenStack作為云操作系統獨到之處:由于鏡像可以是各種虛擬機,這意味著不同平臺之間有很多不同的版本,但都來自于一個公共源。Glance是你已經上傳的虛擬機目錄,整個組織都可以使用。
Trove(數據庫服務器)為不同的數據庫提供支持。
OpenStack組件使用各種版本的MySQL數據庫、消息隊列服務器以及Python執行任務。OpenStack甚至提供了一個Python 命令行接口。下面列舉了一些示例命令幫助你上手。
你可以使用如下命令從公共Linux資源庫下載Keystone:
apt-get install keystone python-keystoneclient
然后使用如下命令在Keystone上創建用戶:
keystone user-create --name Sam --description "Sam"
輸入如下命令,列出使用Nova的虛擬機鏡像:
nova image-list
輸入“python”命令打開一個Python shell,然后輸入類似如下命令:
from keystoneclient.v2_0 import client
然后可以開始創建用戶并給用戶授權,一次執行一個命令。
不熟悉Python?不必擔心,OpenStack允許你選擇使用Python CLI或者儀表盤。
作為開源平臺的OpenStack
Rackspace以及NASA開發了OpenStack然后將其作為一個開源平臺。這當然意味著任何開發人員都可以編寫新例程或者修復現有例程,然后使用Github產看源代碼變化情況。大多數OpenStack貢獻者為大贊助商比如Rackspace工作,另一個主要的贊助商PayPal使用OpenStack運營其平臺。
有很多OpenStack項目,很多是專業項目,比如裸金屬安裝。大多數用戶甚至不需要OpenStack源代碼,因為可以獲取已編譯的Python包,可以使用apt-get工具安裝OpenStack。
如果你有興趣了解更多的OpenStack或者測試OpenStack組件,OpenStack還提供了開發版本。
你可以按照我們編寫的指南在Ubuntu桌面上安裝OpenStack。或者你可以使用Canonical的OpenStack自動駕駛向導部署OpenStack。