溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

openstack中創(chuàng)建一個虛擬機(jī)經(jīng)過的51步

發(fā)布時間:2020-06-09 16:33:37 來源:網(wǎng)絡(luò) 閱讀:1509 作者:qiao645 欄目:云計算

一、前言

本文在林海峰老師“openstack創(chuàng)建一個VM所需的29步”基礎(chǔ)上進(jìn)行了補(bǔ)充和修改,文中只用到了openstack六個核心組件,為了便于理解,架構(gòu)中不同組件內(nèi)的rabbit mq和db為同一個(可以為每個組件配置單獨(dú)的db和rabbit mq)。openstack組件之間通過REST調(diào)用,組件內(nèi)通過RPC協(xié)議通信,RPC協(xié)議又是基于AMQP模型實現(xiàn)的,rabbit mq就是運(yùn)用該模型的一款軟件。

二、概述

以現(xiàn)實中的PC舉例來說明openstack創(chuàng)建的VM,一個PC要能正常工作它需要具備:計算單元、系統(tǒng)、網(wǎng)絡(luò)和存儲單元這四個基本要素,對應(yīng)openstack中實現(xiàn)該功能的組件分別為:nova、glance、neutron和cinder,以下就詳細(xì)說明一個VM創(chuàng)建時所經(jīng)過的具體步驟。

三、創(chuàng)建VM的過程詳解

openstack中創(chuàng)建一個虛擬機(jī)經(jīng)過的51步
上圖是openstack上發(fā)起一個創(chuàng)建VM請求到VM創(chuàng)建完成的全過程,以下對上述51步進(jìn)行詳細(xì)解釋:

  1. 用戶通過horizon或者cli發(fā)起一個創(chuàng)建VM請求時,首先去keystone進(jìn)行認(rèn)證;
  2. 認(rèn)證通過后,keystone將結(jié)果返回給用戶,其中就包含用戶權(quán)限的token令牌;
  3. 用戶通過token像nova-api發(fā)起創(chuàng)建虛擬機(jī)的而請求;
  4. nova-api首先去keystone驗證用戶的token是否有效;
  5. keystone將認(rèn)證后的結(jié)果返回給nova-api;
  6. nova-api將用戶要創(chuàng)建VM的信息,如CPU、內(nèi)存、網(wǎng)絡(luò)及硬盤等存入數(shù)據(jù)庫;
  7. 存儲完成后,數(shù)據(jù)庫將結(jié)果返回給nova-api;
  8. nova-api將要創(chuàng)建VM的信息扔到消息隊列;
  9. nova-scheduler從消息隊列中接收到該信息;
  10. nova-shceduler從數(shù)據(jù)庫中查詢可承載VM的物理服務(wù)器;
  11. 數(shù)據(jù)庫將可用的物理服務(wù)器反饋給nova-scheduler,它根據(jù)權(quán)重最終選出1臺物理機(jī)承載VM;
  12. nova-scheduler將最終承載VM的物理機(jī)信息扔到消息隊列;
  13. 被選中物理服務(wù)器上的nova-compute接收到該消息;
  14. nova-compute將查詢請求扔到消息隊列,請求獲得用戶需要創(chuàng)建VM的flavor類型;
  15. nova-conductor從消息隊列中接收到請求。該組件的作用是防止VM在被攻破后被當(dāng)作跳板直接***數(shù)據(jù)庫,大規(guī)模環(huán)境下,該組件可能會成為瓶頸;
  16. nova-conductor去數(shù)據(jù)庫查詢用戶要創(chuàng)建的flavor類型;
  17. 數(shù)據(jù)庫將查詢到的結(jié)果反饋給nova-conductor;
  18. nova-conductor將用戶需要創(chuàng)建VM的flavor類型扔到消息隊列;
  19. nova-conpute獲取到flavor類型,至此,nova-compute知道用戶需要創(chuàng)建的VM都需要包含哪些資源;
  20. nova-compute向glance-api發(fā)起獲取鏡像請求;
  21. glance-api向keystone進(jìn)行認(rèn)證;
  22. keystone將認(rèn)證后的結(jié)果返回給glance-api(glance組件之間通信不經(jīng)過rabbit mq);
  23. glance-api將任務(wù)交由glance-registry處理,glance-registry負(fù)責(zé)存儲系統(tǒng)鏡像的元數(shù)據(jù);
  24. glance-registry向db查詢創(chuàng)建VM需要的鏡像及鏡像的存放位置;
  25. glance-registry將結(jié)果返回給glance-api;
  26. glance-api去存放鏡像的對象存儲上獲取鏡(此處的glance模式是V1版本,在V2版本中取消了glance-registry,glance-api直接連db和image store);
  27. glance-api將獲取到的鏡像結(jié)果反饋給nova-compute,至此,系統(tǒng)鏡像已具備;
  28. nova-compute向neutron-server發(fā)起創(chuàng)建網(wǎng)絡(luò)請求(neutron-server此處就是起到api的作用,只是名字不叫api);
  29. neutron-server去keystone進(jìn)行認(rèn)證;
  30. neutron-server將需要創(chuàng)建網(wǎng)絡(luò)的請求扔到消息隊列;
  31. neutron-plugins從消息隊列中接收到該請求;
  32. neutron-plugins去db中獲取要創(chuàng)建的網(wǎng)絡(luò)使用的plugin以及要創(chuàng)建網(wǎng)絡(luò)的網(wǎng)絡(luò)類型和機(jī)制類型;
  33. neutron-plugins將獲取到的信息扔到消息隊列;
  34. neutron-agents從消息隊列收到該信息后執(zhí)行網(wǎng)絡(luò)創(chuàng)建;
  35. neutron-agents將創(chuàng)建的相關(guān)信息保存到數(shù)據(jù)庫中;
  36. neutron-agents創(chuàng)建完成后將消息扔到消息隊列;
  37. neutron-server從消息隊列中收到創(chuàng)建完成的信息;
  38. neutron-server將該信息反饋給nova-compute,至此,網(wǎng)絡(luò)條件具備;
  39. nova-compute向cinder-api發(fā)起持久存儲的請求;
  40. cinder-api首先會去keystone進(jìn)行身份認(rèn)證;
  41. 認(rèn)證通過后將需要創(chuàng)建持久化存儲的信息扔到消息隊列;
  42. cinder-scheduler從消息隊列中接收到信息;
  43. cinder-scheduler去db上查詢哪些物理主機(jī)可以提供持久存儲,并根據(jù)權(quán)中選取出1臺;
  44. cinder-scheduler將結(jié)果扔到消息隊列;
  45. 被選中主機(jī)上的cinder-volume接收到該消息;
  46. cinder-volume調(diào)用后端存儲驅(qū)動,創(chuàng)建持久化存儲設(shè)備,如LVM等;
  47. cinder-volume將創(chuàng)建好的持久化存儲信息存到數(shù)據(jù)庫中;
  48. cinder-volume將創(chuàng)建好的結(jié)果扔到消息隊列;
  49. cinder-api從消息隊列中接收到該消息;
  50. cinder-api將該消息反饋給nova-compute,至此,一個VM所需要的計算、系統(tǒng)鏡像、網(wǎng)絡(luò)、存儲四個基本條件都已具備;
  51. nova-compute調(diào)用hypervisor創(chuàng)建VM,hypervisor可以是KVM、XEN、VMware等。

以上就是openstack中一個VM從用戶發(fā)起請求到創(chuàng)建所需要經(jīng)歷的步驟,如果用到的組件不止示例中的四個,依然是nova-compute向相應(yīng)組件的api發(fā)起請求,待所有條件都具備后,再調(diào)用hypervisor創(chuàng)建VM。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI