是Rackspace和NASA共同發起的開源項目,他是一系列軟件項目的組合。數據庫
這些項目是鬆耦合的關係,能夠進行獨立的安裝,啓動和中止,只有在必要的時候才進行通訊(優勢:擴展性好,安全性高,缺點:安裝和配置比較複雜)swift
主要分爲5個不一樣的層次16個不一樣功能模塊:api
Presentation【表示層】:api模塊,ui模塊安全
Logic(Control)【邏輯控制層】:Orchostration【編排服務】,Scheduling【調度服務】,Policy【策略服務】,Image Registry【鏡像註冊服務】,Logging【日誌服務】網絡
Resource【資源管理層】:Compute【計算資源管理模塊】,Volume【存儲資源管理模塊】,Network【網絡資源管理模塊】架構
Integration【集成層】:Billing【計量模塊】,Identity【身份認證模塊】運維
Mabagement【管理層】:Admin【管理api】,Monitoring【監測】分佈式
子項目是怎樣對接起來的:ui
Horizon-UI服務:對應User Dashboard【雲下服務給運維用戶使用】和Customer Portal【給雲上用戶使用】雲計算
Keystone-身份認證:對應Identity
Nova-計算服務模塊:Compute API,scheduling【調度服務】,policy【策略服務】和Compute【計算管理模塊】以及部分Admin API
Glance-鏡像服務:Image Registry【鏡像註冊】,Image Registry【鏡像API】
Cinder【塊存儲】/swift【網絡對象存儲】-存儲服務:volume【存儲資源管理模塊】
Neutron-網絡服務:Network【網絡資源管理模塊】
Heat-編排組織服務:Orchostration【編排服務】
Ceilometer-監控計量服務:Billing【計量模塊】,,Monitoring【監測】
主要服務爲openstack用戶提供UI服務,也就是負責用戶在管理控制檯上的全部操做轉化爲後臺API的調用。
用戶:雲管理員【負責整個雲平臺的運營,資源管理和分配】,普通雲用戶【在配額範圍內,自由操做,使用資源】
雲管理員界面:
主要負責openstack中的身份認證和權限控制,
User:即用戶,表明能夠經過keystone進行訪問的人或者程序,User經過認證信息(如密碼,api Key等)進行驗證
Tenant:即租戶,它是各個服務中的一些能夠訪問的資源集合
Role:即角色,表明一組用戶能夠訪問資源的權限
一家人【租戶】租用了一百平米的房子【角色權限】那麼這家人每一個人【用戶】的管理權限是不一樣的,父母比孩子的管理權限大。
Service:即服務,如Nova,Glance,Swift。服務只有在keystone上進行註冊才能被分配
Endpoint:一個服務暴露出來的訪問點,若是要訪問一個服務,則必需要知道他的endpoint
Token:訪問資源的令牌,至關於鑰匙
keystone到底提供了什麼服務:
Identity服務:驗證了身份驗證憑證。
Token服務:將會驗證並管理用於驗證請求身份的令牌
Catalog:每一個服務須要在keystone上進行註冊,而他們就是註冊在catalog上
Policy:決定每一個用戶有哪些訪問控制的權限
openstack的核心服務。
一:主要功能包括:
1:實例生命週期管理:實例的建立,刪除,啓動,中止
2:計算資源的管理
3:向外提供Rest風格的API
二:3個不一樣的功能模塊組成
nova-api:位於表示層主要接受外部的rest請求
nova-scheduler:位於邏輯控制層,主要負責居中調停,選擇由哪一個主機建立vm
nova-compute:負責虛擬機測建立,以及資源的分配,自己並不提供任何虛擬化功能,但他卻支持不一樣的虛擬機形式
他們之間並非聽過直接傳遞,而是經過消息中間件進行消息的傳遞
功能:提供虛擬機鏡像的存儲,查詢和檢索服務
主要爲Nova組件提供服務,經過nova建立虛擬機的時候,就必須聽過glance獲取相應的鏡像,而後根據鏡像建立虛擬機。
依賴於存儲服務和數據庫服務:存儲服務用於存儲鏡像自己,數據庫服務主要用於存儲跟鏡像相關的各類元數據
glance的架構圖
功能:對外提供高可用分佈式對象存儲服務
特色:無限可擴展,沒有端點故障,使用swift不用擔憂使用的對象會丟失,由於它自己就提供高可用的功能
能夠經過HTTP(S),object api及s3接口存取
swift原理圖
全部的請求都經過proxy進行處理,經過proxy到合適的Account下面找相應的Containe中的某一個object進行存儲服務
在這中間會針對不一樣的object進行復制,從而保證某一個對象的信息丟失時可以從其餘地方找回來
功能:管理因此的塊存儲設備,爲vm服務,
對象存儲服務主要用於存儲分佈式的對象,也就意味着你能夠從任何地方發起請求存儲你的對象
塊存儲服務是本地的,它只能掛在vm上進行使用
cinder原理圖:
當一個請求發來時,首先仍是發送到cinder自己的api上面,api模塊對發過來的請求進行處理,處理後的結果經過消息中間件進行傳遞,經過消息中間件mq傳到cinder-scheduler上面再經過調度器,
再決定到哪裏申請塊存儲服務,而且建立一個vm,cinder具體的存儲模塊的管理都是經過cinder-volume來進行生命週期管理
功能:提供雲計算環境下的虛擬網絡功能,爲每一個租戶創建獨立的網絡環境
三種模式:
Flat模式:網橋模式,全部的都須要手工配置
Flat DHCP模式:網橋模式,在網關處單獨取了一個DHCP的進程,能夠輔助用戶進行網絡配置
VLAN模式:爲每一個不一樣的租戶設置了不一樣的虛擬子網,在這個虛擬子網中,用戶能夠有本身的ip