OpenStack是壹個雲平臺管理的項目,它不是壹個軟件。這個項目由幾個主要的組件組合起來完成壹些具體的工作。
OpenStack是壹個旨在為公***及私有雲的建設與管理提供軟件的開源項目,OpenStack被公認作為基礎設施即服務(簡稱IaaS)資源的通用前端。
如果這些還不明白,那麽從另外的角度給大家介紹:
首先讓大家看下面兩個圖就很簡單明了了:
此圖為openstack的登錄界面
下面是openstack的壹個管理界面
從這兩個圖,相信有壹定開發經驗,就能看出openstack是什麽了。可以說他是壹個框架,甚至可以從軟件的角度來理解它。如果不明白,就從傳統開發來講解。不知道妳是否了解oa,erp等系統,如果不了解可以到網上去找,資料壹大把。他和oa,erp有什麽不同。很簡單就是openstack是用做雲計算的壹個平臺,或則壹個解決方案。它是雲計算壹個重要組成部分。
上面對openstack有了壹個感性的認識。
(2)openstack能幹什麽。
大家都知道阿裏雲平臺,百度雲平臺,而阿裏雲平臺據傳說就是對openstack的二次開發。對於二次開發相信只要接觸過軟件的都會明白這個概念。不明白的自己網上去查壹下。也就是說openstack,可以搭建雲平臺,什麽雲平臺,公有雲,私有雲。現在百度在招聘的私有雲工程師,應該就是這方面的人才。
(3)openstack自身都包含什麽
以下是5個OpenStack的重要構成部分:
l Nova – 計算服務
l Swift – 存儲服務
l Glance – 鏡像服務
l Keystone – 認證服務
l Horizon – UI服務
圖1 OpenStack基本構架
下圖展示了Keystone、Dashboard二者與其它OpenStack部分的交互。
下面詳細介紹每壹個服務:
(壹)OpenStack計算設施—-Nova Nova是OpenStack計算的彈性控制器。OpenStack雲實例生命期所需的各種動作都將由Nova進行處理和支撐,這就意味著Nova以管理平臺的身份登場,負責管理整個雲的計算資源、網絡、授權及測度。雖然Nova本身並不提供任何虛擬能力,但是它將使用libvirt API與虛擬機的宿主機進行交互。Nova通過Web服務API來對外提供處理接口,而且這些接口與Amazon的Web服務接口是兼容的。
功能及特點
l 實例生命周期管理
l 計算資源管理
l 網絡與授權管理
l 基於REST的API
l 異步連續通信
l 支持各種宿主:Xen、XenServer/XCP、KVM、UML、VMware vSphere及Hyper-V
OpenStack計算部件
l Nova彈性雲包含以下主要部分:
l API Server(nova-api)
l 消息隊列(rabbit-mq server)
l 運算工作站(nova-compute)
l 網絡控制器(nova-network)
l 卷管理(nova-volume)
l 調度器(nova-scheduler)
API服務器(nova-api)
API服務器提供了雲設施與外界交互的接口,它是外界用戶對雲實施管理的唯壹通道。通過使用web服務來調用各種EC2的API,接著API服務器便通過消息隊列把請求送達至雲內目標設施進行處理。作為對EC2-api的替代,用戶也可以使用OpenStack的原生API,我們把它叫做“OpenStack API”。
消息隊列(Rabbit MQ Server)
OpenStack內部在遵循AMQP(高級消息隊列協議)的基礎上采用消息隊列進行通信。Nova對請求應答進行異步調用,當請求接收後便則立即觸發壹個回調。由於使用了異步通信,不會有用戶的動作被長置於等待狀態。例如,啟動壹個實例或上傳壹份鏡像的過程較為耗時,API調用就將等待返回結果而不影響其它操作,在此異步通信起到了很大作用,使整個系統變得更加高效。
運算工作站(nova-compute)
運算工作站的主要任務是管理實例的整個生命周期。他們通過消息隊列接收請求並執行,從而對實例進行各種操作。在典型實際生產環境下,會架設許多運算工作站,根據調度算法,壹個實例可以在可用的任意壹臺運算工作站上部署。
網絡控制器(nova-network)
網絡控制器處理主機的網絡配置,例如IP地址分配,配置項目VLAN,設定安全群組以及為計算節點配置網絡。
卷工作站(nova-volume)
卷工作站管理基於LVM的實例卷,它能夠為壹個實例創建、刪除、附加卷,也可以從壹個實例中分離卷。卷管理為何如此重要?因為它提供了壹種保持實例持續存儲的手段,比如當結束壹個實例後,根分區如果是非持續化的,那麽對其的任何改變都將丟失。可是,如果從壹個實例中將卷分離出來,或者為這個實例附加上卷的話,即使實例被關閉,數據仍然保存其中。這些數據可以通過將卷附加到原實例或其他實例的方式而重新訪問。
因此,為了日後訪問,重要數據務必要寫入卷中。這種應用對於數據服務器實例的存儲而言,尤為重要。
調度器(nova-scheduler)
調度器負責把nova-API調用送達給目標。調度器以名為“nova-schedule”的守護進程方式運行,並根據調度算法從可用資源池中恰當地選擇運算服務器。有很多因素都可以影響調度結果,比如負載、內存、子節點的遠近、CPU架構等等。強大的是nova調度器采用的是可插入式架構。
目前nova調度器使用了幾種基本的調度算法:
隨機化:主機隨機選擇可用節點;
可用化:與隨機相似,只是隨機選擇的範圍被指定;
簡單化:應用這種方式,主機選擇負載最小者來運行實例。負載數據可以從別處獲得,如負載均衡服務器。
(二)OpenStack鏡像服務器—-GlanceOpenStack鏡像服務器是壹套虛擬機鏡像發現、註冊、檢索系統,我們可以將鏡像存儲到以下任意壹種存儲中:
本地文件系統(默認)
l OpenStack對象存儲
l S3直接存儲
l S3對象存儲(作為S3訪問的中間渠道)
l HTTP(只讀)
功能及特點
提供鏡像相關服務
Glance構件
l Glance控制器
l Glance註冊器
(三)OpenStack存儲設施—-Swift
Swift為OpenStack提供壹種分布式、持續虛擬對象存儲,它類似於Amazon Web Service的S3簡單存儲服務。Swift具有跨節點百級對象的存儲能力。Swift內建冗余和失效備援管理,也能夠處理歸檔和媒體流,特別是對大數據(千兆字節)和大容量(多對象數量)的測度非常高效。
功能及特點
l 海量對象存儲
l 大文件(對象)存儲
l 數據冗余管理
l 歸檔能力—–處理大數據集
l 為虛擬機和雲應用提供數據容器
l 處理流媒體
l 對象安全存儲
l 備份與歸檔
l 良好的可伸縮性
Swift組件
l Swift賬戶
l Swift容器
l Swift對象
l Swift代理
l Swift RING
Swift代理服務器
用戶都是通過Swift-API與代理服務器進行交互,代理服務器正是接收外界請求的門衛,它檢測合法的實體位置並路由它們的請求。
此外,代理服務器也同時處理實體失效而轉移時,故障切換的實體重復路由請求。
Swift對象服務器
對象服務器是壹種二進制存儲,它負責處理本地存儲中的對象數據的存儲、檢索和刪除。對象都是文件系統中存放的典型的二進制文件,具有擴展文件屬性的元數據(xattr)。
註意:xattr格式被Linux中的ext3/4,XFS,Btrfs,JFS和ReiserFS所支持,但是並沒有有效測試證明在XFS,JFS,ReiserFS,Reiser4和ZFS下也同樣能運行良好。不過,XFS被認為是當前最好的選擇。
Swift容器服務器
容器服務器將列出壹個容器中的所有對象,默認對象列表將存儲為SQLite文件(譯者註:也可以修改為MySQL,安裝中就是以MySQL為例)。容器服務器也會統計容器中包含的對象數量及容器的存儲空間耗費。
Swift賬戶服務器
賬戶服務器與容器服務器類似,將列出容器中的對象。
Ring(索引環)
Ring容器記錄著Swift中物理存儲對象的位置信息,它是真實物理存儲位置的實體名的虛擬映射,類似於查找及定位不同集群的實體真實物理位置的索引服務。這裏所謂的實體指賬戶、容器、對象,它們都擁有屬於自己的不同的Rings。
(四)OpenStack認證服務(Keystone)
Keystone為所有的OpenStack組件提供認證和訪問策略服務,它依賴自身REST(基於Identity API)系統進行工作,主要對(但不限於)Swift、Glance、Nova等進行認證與授權。事實上,授權通過對動作消息來源者請求的合法性進行鑒定。如下圖所示:
Keystone采用兩種授權方式,壹種基於用戶名/密碼,另壹種基於令牌(Token)。除此之外,Keystone提供以下三種服務:
l 令牌服務:含有授權用戶的授權信息
l 目錄服務:含有用戶合法操作的可用服務列表
l 策略服務:利用Keystone具體指定用戶或群組某些訪問權限
認證服務組件
服務入口:如Nova、Swift和Glance壹樣每個OpenStack服務都擁有壹個指定的端口和專屬的URL,我們稱其為入口(endpoints)。
l 區位:在某個數據中心,壹個區位具體指定了壹處物理位置。在典型的雲架構中,如果不是所有的服務都訪問分布式數據中心或服務器的話,則也稱其為區位。
l 用戶:Keystone授權使用者
譯者註:代表壹個個體,OpenStack以用戶的形式來授權服務給它們。用戶擁有證書(credentials),且可能分配給壹個或多個租戶。經過驗證後,會為每個單獨的租戶提供壹個特定的令牌。[來源:/s/blog_70064f190100undy.html]
l 服務:總體而言,任何通過Keystone進行連接或管理的組件都被稱為服務。舉個例子,我們可以稱Glance為Keystone的服務。
l 角色:為了維護安全限定,就雲內特定用戶可執行的操作而言,該用戶關聯的角色是非常重要的。
譯者註:壹個角色是應用於某個租戶的使用權限集合,以允許某個指定用戶訪問或使用特定操作。角色是使用權限的邏輯分組,它使得通用的權限可以簡單地分組並綁定到與某個指定租戶相關的用戶。
l 租間:租間指的是具有全部服務入口並配有特定成員角色的壹個項目。
譯者註:壹個租間映射到壹個Nova的“project-id”,在對象存儲中,壹個租間可以有多個容器。根據不同的安裝方式,壹個租間可以代表壹個客戶、帳號、組織或項目。
(五)OpenStack管理的Web接口—-Horizon
Horizon是壹個用以管理、控制OpenStack服務的Web控制面板,它可以管理實例、鏡像、創建密匙對,對實例添加卷、操作Swift容器等。除此之外,用戶還可以在控制面板中使用終端(console)或VNC直接訪問實例。總之,Horizon具有如下壹些特點:
l 實例管理:創建、終止實例,查看終端日誌,VNC連接,添加卷等
l 訪問與安全管理:創建安全群組,管理密匙對,設置浮動IP等
l 偏好設定:對虛擬硬件模板可以進行不同偏好設定
l 鏡像管理:編輯或刪除鏡像
l 查看服務目錄
l 管理用戶、配額及項目用途
l 用戶管理:創建用戶等
l 卷管理:創建卷和快照
l 對象存儲處理:創建、刪除容器和對象
l 為項目下載環境變量