07 計算Nova 4 原始碼 1 整體目錄結構

2021-09-25 13:29:14 字數 2608 閱讀 5487

目錄

描述nova

etc
配置檔案模板,包括 paste 配置檔案等

nova
api
nova api服務

metadata
openstack

validation
metadata api

openstack api

json-schema(n-count) (計畫或理論的)綱要,概要,梗概實現及工具

cells
nova-cells 服務  

cell 模組允許使用者在不影響現有 openstack 雲環境的前提下,增強橫向擴充套件、大規模部署能力。

cell 模組啟用後,openstack 雲環境中的主機被劃分成組被稱為 cell。cell 可以被配置成樹形結構,openstack 雲環境通過新增子 cell 的方式進行拓展。

nova-cells 負責各個 cell 之間的通訊,以及為乙個新的虛擬機器例項選擇合適的 cell, 因此每個 cell 都需要執行 nova-cells 服務。

cmd
各個 nova 服務的入口程式

compute
nova compute服務

conductor
nova conductor服務

conf
nova的配置項宣告都在這裡

console
nova-console服務

consoleauth
nova-consoleauth服務

db
封裝資料庫訪問

hacking  

hack (verb) 劈;砍;亂劈;猛砍  hacker [ˈhækɚ]黑客

編碼規範檢查

image
封裝glance呼叫介面

呼叫glance

ipv6
ipv6工具函式

keymr
用於金鑰管理

locale 

[loʊˈkæl(n-count) 場所;地點

國際化相關檔案

network
封裝網路服務介面,根據配置不同,可能呼叫nova-network或者neutron。

objects
objects module

pci
pci/sr-iov 支援

pci裝置直通,sr-iov裝置

policies
所有 policy 的預設規則

scheduler
schedule 服務

tests
單元測試和功能測試**

virt
hypervisor driver

volume
封裝資料卷訪問介面,通常是cinder的client封裝

setup.cfg
對於命名空間console_scripts中的entry_points,每一項都表示乙個可執行指令碼,這些指令碼在部署時會被安裝,這就是nova各個元件的入口,比如

1.

1

23

nova-api = nova.cmd.api:main

nova-api-metadata = nova.cmd.api_metadata:main

nova-api-os-compute = nova.cmd.api_os_compute:main

目前 nova 共提供兩種 api 服務,即nova-api-metadata

元資料和nova-api-os-compute,nova-api根據配置檔案/etc/nova/nova.conf的enabled_apis選項設定啟動這兩種服務

2.

1

2

nova-rootwrap = oslo_rootwrap.cmd:main

nova-rootwrap-daemon = oslo_rootwrap.cmd:daemon

nova-rootwrap:用於在 openstack 執行過程中以 root 身份執行某些 shell 命令

setup.py

Nova熱遷移原始碼解析

一 介紹 熱遷移是指虛擬機器正常工作的情況下從乙個計算節點遷移到另外的節點上,如下圖所示 host1與host2共享儲存storage,虛擬機器vm1從host1主機遷移到host2主機,在業務不中斷的條件下將虛擬機器記憶體複製到host2主機中,映象的儲存路徑並沒有發生改變。二 熱遷移特點 虛擬機...

07 ollvm原始碼分析

該混淆包含兩個pass 測試 如下 int switchreturn int a,int b case2 case3 default int main int argc,char ar else return0 控制流程平坦化會新增乙個用於控制跳轉的狀態變數和分發器 為什麼需要 createlowe...

STL 07 queue stack原始碼剖析

先進先出 先進後出 從上面原始碼可以看出實際上它們兩者的底層就是使用deque 可以參考我的這篇文章dequeue原始碼剖析 所以queue和stack可以說是容器介面卡 看完原始碼我也在找迭代器,但是沒有發現,最後我才明白,這是為了不能隨意插入 刪除,所有的操作只能在兩端完成。因為這滿足佇列和棧的...