網站首頁 編程語言 正文
各組件邏輯關系圖
Keystone
:認證服務
Glance
:鏡像服務
Nova
:計算服務
Neutron
:網絡服務
Cinder
:存儲服務
Horizon
:web?界面
Cellometer
:監控計費
Swit
:對象存儲
Heat
:編排服務(通過劇本,批量部署虛擬機)
Openstack 新建云主機流程圖
keystone 身份認證
填寫創建云主機的相關配置–> nova-api --> 將相關信息保存到 MySQL
nova-scheduler --> 讀取 MySQL 云主機配置信息 --> 讀取計算節點資源
nova-compute 通過 nova-conductor 獲取云主機配置信息 --> 調取相關模塊(neutron、
glance、cinder)進行云主機的創建
虛擬機啟動過程
- 界面或命令行通過RESTful API向keystone獲取認證信息。
- keystone通過用戶請求認證信息,并生成auth-token返回給對應的認證請求。
- 界面或命令行通過RESTful API向nova-api發送一個boot instance的請求(攜帶auth-token)。
- nova-api接受請求后向keystone發送認證請求,查看token是否為有效用戶和token。
- keystone驗證token是否有效,如有效則返回有效的認證和對應的角色(注:有些操作需要有角色權限才能操作)。
- 通過認證后nova-api和數據庫通訊。
- 初始化新建虛擬機的數據庫記錄。
- nova-api通過rpc.call向nova-scheduler請求是否有創建虛擬機的資源(Host ID)。
- nova-scheduler進程偵聽消息隊列,獲取nova-api的請求。
- nova-scheduler通過查詢nova數據庫中計算資源的情況,并通過調度算法計算符合虛擬機創建需要的主機。
- 對于有符合虛擬機創建的主機,nova-scheduler更新數據庫中虛擬機對應的物理主機信息。
- nova-scheduler通過rpc.cast向nova-compute發送對應的創建虛擬機請求的消息。
- nova-compute會從對應的消息隊列中獲取創建虛擬機請求的消息。
- nova-compute通過rpc.call向nova-conductor請求獲取虛擬機消息。(Flavor)
- nova-conductor從消息隊隊列中拿到nova-compute請求消息。
- nova-conductor根據消息查詢虛擬機對應的信息。
- nova-conductor從數據庫中獲得虛擬機對應信息。
- nova-conductor把虛擬機信息通過消息的方式發送到消息隊列中。
- nova-compute從對應的消息隊列中獲取虛擬機信息消息。
- nova-compute通過keystone的RESTfull API拿到認證的token,并通過HTTP請求glance-api獲取創建虛擬機所需要鏡像。
- glance-api向keystone認證token是否有效,并返回驗證結果。
- token驗證通過,nova-compute獲得虛擬機鏡像信息(URL)。
- nova-compute通過keystone的RESTfull API拿到認證k的token,并通過HTTP請求neutron-
- server獲取創建虛擬機所需要的網絡信息。
- neutron-server向keystone認證token是否有效,并返回驗證結果。
- token驗證通過,nova-compute獲得虛擬機網絡信息。
- nova-compute通過keystone的RESTfull API拿到認證的token,并通過HTTP請求cinder-api
- 獲取創建虛擬機所需要的持久化存儲信息。
- cinder-api向keystone認證token是否有效,并返回驗證結果。
- token驗證通過,nova-compute獲得虛擬機持久化存儲信息。
- nova-compute根據instance的信息調用配置的虛擬化驅動來創建虛擬機。
原文鏈接:https://blog.csdn.net/Tiamon_/article/details/114226451?spm=1001.2014.3001.5502
相關推薦
- 2023-01-17 Android繪制文本與圖片及動效詳解_Android
- 2023-01-14 C++之eigen安裝與測試方式_C 語言
- 2022-05-23 如何使Python中的print()語句運行結果不換行_python
- 2022-01-20 npm 報錯: npm ERR! code ERESOLVE , npm ERR! code E40
- 2021-12-06 Gin框架之參數綁定的實現_Golang
- 2022-04-26 Python?Pandas學習之數據離散化與合并詳解_python
- 2024-03-07 MyBatis快速入門案例
- 2022-05-26 Python學習之文件的讀取詳解_python
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支