中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

openstack中創建一個虛擬機經過的51步

發布時間:2020-06-09 16:33:37 來源:網絡 閱讀:1512 作者:qiao645 欄目:云計算

一、前言

本文在林海峰老師“openstack創建一個VM所需的29步”基礎上進行了補充和修改,文中只用到了openstack六個核心組件,為了便于理解,架構中不同組件內的rabbit mq和db為同一個(可以為每個組件配置單獨的db和rabbit mq)。openstack組件之間通過REST調用,組件內通過RPC協議通信,RPC協議又是基于AMQP模型實現的,rabbit mq就是運用該模型的一款軟件。

二、概述

以現實中的PC舉例來說明openstack創建的VM,一個PC要能正常工作它需要具備:計算單元、系統、網絡和存儲單元這四個基本要素,對應openstack中實現該功能的組件分別為:nova、glance、neutron和cinder,以下就詳細說明一個VM創建時所經過的具體步驟。

三、創建VM的過程詳解

openstack中創建一個虛擬機經過的51步
上圖是openstack上發起一個創建VM請求到VM創建完成的全過程,以下對上述51步進行詳細解釋:

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

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

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

保亭| 诸城市| 靖江市| 中西区| 大悟县| 萨嘎县| 敦化市| 奉贤区| 凉城县| 连山| 株洲县| 白山市| 马龙县| 湖南省| 永修县| 台北县| 蓬莱市| 延川县| 鹰潭市| 吉隆县| 赞皇县| 上虞市| 博兴县| 志丹县| 乐平市| 思南县| 黔西| 灵寿县| 岑巩县| 和硕县| 普格县| 威信县| 察雅县| 余庆县| 曲周县| 建宁县| 通渭县| 凌云县| 吉林省| 调兵山市| 耒阳市|