初識openstack

1、 什麼是openstack?web

  OpenStack是一個由NASA(美國國家航空航天局)和Rackspace合做研發併發起的,以Apache許可證受權的自由軟件開放源代碼項目。算法

2、openstack前世今身數據庫

  openstack是一個跟Eucalyptus,AWS(Amazon web Service)相似的IaaS框swift

 openstack最有由美國國家航空航天局NASA研發的Nova和Rackspace研發swift組成。後來以Apache許可受權,指在爲公共及私有云平臺建設。openstack主要用來爲企業內部實現相似於Amazon EC2和S3的雲基礎架構(IaaS)。每6個月更新一次,通常與Ubuntu同步,命名是以A-Z做爲首字母來的。後端

3、openstack項目及組件功能簡單介紹api

  核心項目3個安全

    1.控制檯網絡

    服務名:Dashboard架構

    項目名:Horizon併發

    功能:web方式管理雲平臺,創建主機,分配網絡,配安全組,加雲盤

 

    2.計算

    服務名:計算

    項目名:Nova

    功能:負責響應虛擬機建立請求、調度、銷燬主機

 

    3.網絡

    服務名:網絡

    項目名:Neutron

    功能:實現SDN(軟件定義網絡),提供一整套API,用戶能夠基於該API實現本身定義專屬網絡,不一樣廠家能夠基於此API提供本身的產品實現

 

 存儲項目2個

    1.對象存儲

    服務名:對象存儲

    項目名:Swift

    功能:REST風格的接口和扁平的數據組織結構。RESTful HTTP API來保存和訪問任意非結構化數據,ring環的方式實現數據自動複製和高度能夠擴展架構,保證數據的高度容錯和可靠性

    2.塊存儲

    服務名:塊存儲

    項目名:Cinder 

    功能:提供持久化塊存儲,即爲雲主機經過附加雲盤

    

 

 1 存儲的基本知識:  2 存儲分爲三大類:文件存儲、塊存儲、對象存儲  3  4 文件存儲:在用戶的角度來講,就是一個文件夾。例如:U盤,ftp(文件傳輸協議)、nfs等  5  特色:沒法格式化  6  基本操做單位是文件  7  基於Postfix標準的文件處理,進行增刪改查  8  9 塊存儲:在用戶的角度來講就是一塊裸盤(空硬盤,進行格式化,分block大小) 10  特色:能夠格式化 11  基本操做單位是block 12 13 文件存儲與塊存儲之間的關係:對用戶來講,到最後用的還是文件存儲 14 15 對象存儲:key:value形式(例如網盤分享,一個鏈接表明一個key,一個文件表明value) 16 key:value的表示 httpd://1.1.1.1/api:object(冒號前面爲key,後面爲value) 17 18  特色:一切皆對象,速度快(屬於非關係型,比關係型快) 19 本質上沒法再對象存儲裏修改文件

   共享服務項目3個

    1.認證服務

    服務名:認證服務

    項目名:Keystone

    功能:爲訪問openstack各組件提供認證和受權功能,認證經過後,提供一個服務列表(存放你有權訪問的服務),能夠經過該列表訪問各個組件

 

    2.鏡像服務

    服務名:鏡像服務

    項目名:Glance

    功能:爲雲主機安裝操做系統提供不一樣的鏡像選擇

 

    3.計費服務

    服務名:計費服務

    項目名:Ceilometer

    功能:收集雲平臺資源使用數據,用來計費或者性能監控

 

   高層服務項目1個

     1.編排服務

      服務名:編排服務

      項目名:Heat

      功能:自動化部署應用,自動化管理應用的整個生命週期,主要用於PaaS   

 

4、openstack各組件關係

  

openstack新建主機流程圖

 

 

首先咱們先分析一下這個流程圖。整個的體系下來不止這29步

 

1.命令行或者經過web界面,就是dashboard,經過RESTful API向keystone獲取認證信息

2.keystone經過用戶請求進行認證,並生成auth-token返回給用戶,這個第一個token是屬於用戶用沒有權限登陸的token

3.命令行或web界面經過RESTful API 向nova-api發送一個新建虛擬機的請求並攜帶一個token.這個token屬於第二個token,看這個token是否有權限訪問nova

4. nova-api 接受來自客戶端的請求和token信息,而後拿着token信息向keystone認證。

5.keystone驗證token是否有效,有效則返回有效的認證和對應的角色(有些操做須要有角色權限才能操做)

6.經過認證後nova-api將用戶的建立虛擬機的請求寫到數據庫中,(新建虛擬機信息:cpu,內存,硬盤,網絡結構,屬於什麼vlan等等)

7.初始化新建虛擬機的數據庫記錄並返回

8.nova-api將新建虛擬機的請求信息放到消息中間件(MQ)中。(經過rpc.call)只是請求信息並非詳細信息.

9.nova-scheduler(nova計算節點,安裝了nova-compute的軟件)接受nova-api的請求。就是在多個nova-compute中找到一個合適的nova-compute讓它去建虛擬機

10.nova-scheduler經過查詢nova數據庫 計算資源的狀況,並經過調度算法計算符合虛擬機建立須要的主機,並返回信息到nova-scheduler

11.對有符合建立虛擬的物理主機,nova-scheduler就會更新數據庫中對應的物理主機信息

12.nova-scheduler經過rpc.cast像nova-compute發送對應的建立虛擬機請求信息

13.nova-compute會從消息列隊中獲取建立虛擬機的請求信息。

14.nova-compute經過rpc.call像nova-conductor請求獲取虛擬機的信息

15.nova-conductor從消息列隊中拿到nova-compute的請求信息

16.nova-conductor根據信息進行查詢虛擬機對應信息

17.nova-conductor從數據庫中獲取虛擬機對應信息

18.nova-conductor把虛擬機信息經過消息的方式發送到消息列隊中

(上述的nova部分屬於回調機制)

19.nova-compute從對應的消息列隊中獲取虛擬機信息

20.nova-compute經過keystone的RESTful API 拿到認證token,並經過http請求glance-api獲取建立虛擬機所需的鏡像。

21.glance-api想keystone認證token是否有效,並返回認證結果

glance具體如何工做的:

glance-api接收到請求後,將請求發給glance-registry,glance-registry到數據庫中將鏡像的元數據拿到,並返回給glance-api。glance-api會到後端的存儲拿到鏡像的URL地址

22.token驗證經過,nova-compute得到虛擬機鏡像信息(URL)下載到本地

23.nova-compute經過keystone的RESTful API 拿到認證的token,而且經過HTTP請求neutron-server獲取建立虛擬機所須要的網絡

24.neutron-server去向keystone認證token是否有效,並返回結果。

25token認證經過後,nova-compute得到虛擬機網絡信息

26.nova-compute 經過keystone的RESTful API拿到認證token,並經過HTTP請求cinder-api獲取建立虛擬機所需的持久化存儲信息

27.cinder-api向keystone認證token是否有效,並返回結果

28.token認證經過後,nova-compute獲的虛擬機持久化存儲信息

29.nova-compute根據instance的信息調用配置的虛擬化驅動來建立虛擬機

相關文章
相關標籤/搜索