一、簡介
OpenStack屬於雲計算中的IaaS(基礎設施即服務)。可以理解爲將所有資源,包括網絡設備、服務器計算資源、存儲資源整合,作爲一個平臺,通過這個平臺用戶可以按需動態獲取資源,管理者可以集中方便的管理資源的分配。避免資源的閒置,在保證業務的前提下實現資源利用的最大化。
OpenStack的主要組件如下:
二、各組件的簡單介紹
1.Horizon – UI模塊
針對不同的使用對象提供不同的界面,具體分兩種:
a). 爲雲管理員提供整體視圖,以便資源回收、整合、分配等管理操作
b). 爲終端用戶提供自助服務門戶,在權限配額範圍內,自由動態的分配資源。
2.Keystone – 身份服務模塊
訪問各個模塊之前的權限認證。相關概念解釋:
User:用戶。指使用認證信息,通過Keystone進行驗證,進行訪問的人或程序。
tenant:租戶。資源訪問的限制範圍。一個租戶可以有多個用戶(多人合租,一對多)。
role:角色。用戶訪問各種資源的權限集合。用戶能否訪問某個資源,取決用其所擁有的所有角色中是否有允許訪問該資源的權限。角色與用戶是多對多的關係。
Identity 服務驗證身份的憑證
Token 用於驗證身份的令牌。
理解:用戶請求認證(通過password、API Keys等),認證通過後,keystone生成一個鍵值對:Identity 爲key,Token爲value,存放在Keystone中,並將這對鍵值對傳給用戶,用戶在之後的請求操作前都會攜帶他們,再次傳回keystone認證成功才允許後續操作。
Catalog 提供可用於端點發現的服務註冊表。
eg:有一個申請存儲空間的請求,先通過keystone的身份認證,成功後查註冊表,查看哪一塊存儲空間可以使用,返回其地址。便於其他模塊的後續操作。
Policy 暴露一個基於規則的身份驗證引擎。
3.Nova – 計算
管理計算資源,當得到一個申請計算資源的請求後,通知調度,經調度(決定在哪個區域、以何種配置創建什麼樣的計算資源)後,按調度結果實例化計算資源(比如獲取鏡像,創建虛擬機)。
4.Glance – 鏡像服務
依賴於存儲服務和數據庫,提供虛擬機鏡像的存儲、查詢和檢索服務。比如給Nova提供虛擬機操作系統的鏡像。
5.Swift – 對象存儲服務
值得一提的是,對象的唯一標示很有意思。認爲一個用戶下有多個容器(ducker之類的),容器中有多個對象,以此分層並唯一標識、區分一個對象。
6.Cinder – 塊存儲服務
7.Neutron – 網絡服務
提供雲計算環境下的虛擬網絡。使租戶之間公用基礎設施,但實現租戶間的網絡隔離,保證安全性和可靠性。也實現網絡配置的集中動態的管理,相關資料可參考sdn概念,openflow協議等。(爲目前參與的項目)
8.組件間的關係圖
三、實例
一個用戶請求一個計算資源的流程圖,其中Quantum爲Neutron的前身:
可以看到在進入每個模塊之初都會通過keystone驗證用戶的合法性,通過纔可繼續流程。