

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、 、nova介紹:Nova是 OpenStack最核的服務(wù),負(fù)責(zé)維護(hù)和管理云環(huán)境的計算資源。OpenStack作為 IaaS的云操作系統(tǒng),虛擬機(jī)命周期管理也就是通過 Nova來實現(xiàn)的。途與功能 :1)實例命周期管理2)管理計算資源3)絡(luò)和認(rèn)證管理4)REST 風(fēng)格的 API5)異步的致性通信6)Hypervisor透明:持Xen,XenServer/XCP,KVM, UML,VMware vSphere and Hyper-V在上圖中可以看到,Nova 處于 Openstak架構(gòu)的中,其他組件都為Nova提供持: Glance為 VM提供 image Cinder 和 Swift分別為VM提供
2、塊存儲和對象存儲Neutron為 VM提供絡(luò)連接。Nova 架構(gòu)如下:Nova 的架構(gòu)較復(fù)雜,包含很多組件。這些組件以服務(wù)(后臺deamon進(jìn)程)的形式運,可以分為以下類:APInova-api是整個 Nova組件的門戶,接收和響應(yīng)客戶的API調(diào)。所有對Nova的請求都先由nova-api處理。nova-api 向外界暴露若HTTPREST API 接在 keystone中我們可以查詢nova-api的 endponits。客戶端就可以將請求發(fā)送到endponits指定的地址,向nova-api請求操作。當(dāng)然,作為最終戶的我們不會直接發(fā)送RestAP 請求。OpenStack ,Dashboa
3、rd 和其他需要跟Nova交換的組件會使這些API。Nova-api 對接收到的 HTTP API 請求會做如下處理:1.檢查客戶端傳的參數(shù)是否合法有效2.調(diào) Nova其他服務(wù)的處理客戶端HTTP 請求3.格式化 Nova其他服務(wù)返回的結(jié)果并返回給客戶端nova-api 接收哪些請求?簡單的說,只要是跟虛擬機(jī)命周期相關(guān)的操作,nova-api 都可以響應(yīng)。部分操作都可以在Dashboard上找到。打開Instance管理界除了提供 OpenStack的API,nova-api 還持 Amazon EC2 API。 也就是說,如果客戶以前使Amazon EC2,并且 EC2 的 API開發(fā)了些具
4、來管理虛機(jī),那么如果現(xiàn)在要換成OpenStack,這些具可以縫遷移到OpenStack,因為 nova-api兼容 EC2 API,需做任何修改。Compute Corea)nova-scheduler:1虛機(jī)調(diào)度服務(wù),負(fù)責(zé)決定在哪個計算節(jié)點上運虛機(jī)。創(chuàng)建Instance時,戶會提出資源需求,例如CPU、內(nèi)存、磁盤各需要多少。OpenStack將這些需求定義在flavor中,戶只需要指定哪個flavor就可以了。可的 flavor在 System-Flavors中管理。下介紹 nova-scheduler是如何實現(xiàn)調(diào)度的。在/etc/nova/nova.conf中,nova通過 driver=
5、filter_scheduler這個參數(shù)來配置nova-scheduler。driver=filter_schedulerFilter schedulerFilter scheduler 是 nova-scheduler默認(rèn)的調(diào)度器,調(diào)度過程分為兩步:1.通過過濾器(filter)選擇滿條件的計算節(jié)點(運nova-compute)2.通過權(quán)重計算(weighting)選擇在最優(yōu)(權(quán)重值最)的計算節(jié)點上創(chuàng)建Instance。Nova 允許使第三scheduler,配置 scheduler_driver即可。這次體現(xiàn)了OpenStack的開放性。Scheduler 可以使多個filter依次進(jìn)過濾
6、,過濾之后的節(jié)點再通過計算權(quán)重選出最適合的節(jié)點。上圖是調(diào)度過程的個例:1.最開始有 6個計算節(jié)點 Host1-Host62.通過多個 filter層層過濾,Host2和 Host4沒有通過,被刷掉了3. Host1,Host3,Host5,Host6計算權(quán)重,結(jié)果Host5得分最,最終選當(dāng) Filter scheduler需要執(zhí)調(diào)度操作時,會讓filter對計算節(jié)點進(jìn)判斷,filter返回 True或 False。經(jīng)過前堆filter的過濾,nova-scheduler 選出了能夠部署instance的計算節(jié)點。如果有多個計算節(jié)點通過了過濾,那么最終選擇哪個節(jié)點呢?Scheduler 會對每個
7、計算節(jié)點打分,得分最的獲勝。打分的過程就是weight,翻譯過來就是計算權(quán)重值,那么scheduler是根據(jù)什么來計算權(quán)重值呢?前 nova-scheduler的默認(rèn)實現(xiàn)是根據(jù)計算節(jié)點空閑的內(nèi)存量計算權(quán)重值:空閑內(nèi)存越多,權(quán)重越,instance 將被部署到當(dāng)前空閑內(nèi)存最多的計算節(jié)點上。b)nova-compute:nova-compute是管理虛機(jī)的核服務(wù),在計算節(jié)點上運。通過調(diào)Hypervisor API實現(xiàn)節(jié)點上的instance的命周期管理。OpenStack對 instance的操作,最后都是交給nova-compute來完成的。 nova-compute與 Hypervisor起實
8、現(xiàn) OpenStack對 instance命周期的管理。Openstack中虛機(jī)默認(rèn)的保存路徑在:/var/lib/nova/instances通過Driver架構(gòu)持多種HypervisorHypervisor是計算節(jié)點上跑的虛擬化管理程序,虛機(jī)管理最底層的程序。不同虛擬化技術(shù)提供的Hypervisor。 常的 Hypervisor有KVM,Xen, VMWare等。nova-compute為這些 Hypervisor定義了統(tǒng)的接,Hypervisor 只需要實現(xiàn)這些接,就可以Driver的形式即插即到 OpenStack系統(tǒng)中。下是Nova Driver的架構(gòu)意圖:c)nova-conduc
9、tor:nova-compute經(jīng)常需要更新數(shù)據(jù)庫,如更新和獲取虛機(jī)的狀態(tài)。出于安全性和伸縮性的考慮,nova-compute并不會直接訪問數(shù)據(jù)庫,是將這個任務(wù)委托給nova-conductor。這樣做有兩個顯著好處:1.更的系統(tǒng)安全性2.更好的系統(tǒng)伸縮性Console Interfacenova-console: 戶可以通過多種式訪問虛機(jī)的控制臺:nova-novncproxy: 基于 Web瀏覽器的 VNC 訪問nova-spicehtml5proxy: 基于 HTML5瀏覽器的 SPICE 訪問nova-xvpnvncproxy: 基于 Java客戶端的 VNC 訪問nova-conso
10、leauth: 負(fù)責(zé)對訪問虛機(jī)控制臺請求提供Token認(rèn)證nova-cert: 提供 x509證書持DatabaseNova 會有些數(shù)據(jù)需要存放到數(shù)據(jù)庫中,般使MySQL。數(shù)據(jù)庫安裝在控制節(jié)點上。Nova使命名為 “nova”的數(shù)據(jù)庫。Message Queue在前我們了解到Nova包含眾多的服務(wù),這些服務(wù)之間需要相互協(xié)調(diào)和通信。為解耦各個服務(wù),Nova 通過 Message Queue作為服務(wù)的信息中轉(zhuǎn)站。所以在架構(gòu)圖上我們看到了服務(wù)之間沒有直接的連線,是通過Message Queue聯(lián)系的。OpenStack默認(rèn)是 RabbitMQ作為 Message 。 MQ是 OpenStack的核基
11、礎(chǔ)組件,我們后也會詳細(xì)介紹。、Nova 組件如何協(xié)同作Nova 物理部署案前家已經(jīng)看到Nova由很多服務(wù)組成,我們也知道OpenStack是個分布式系統(tǒng),可以部署到若節(jié)點上,那么接下來家可能就會問:Nova 的這些服務(wù)在物理上應(yīng)該如何部署呢?對于 Nova,這些服務(wù)會部署在兩類節(jié)點上:計算節(jié)點和控制節(jié)點。計算節(jié)點上安裝了Hypervisor,上運虛擬機(jī)。由此可知:1.只有 nova-compute需要放在計算節(jié)點上。2.其他服務(wù)則是放在控制節(jié)點上的。下我們可以看看實驗環(huán)境的具體部署情況。通過在計算節(jié)點和控制節(jié)點上運ps -elf | grep nova來查看運的nova服務(wù)計算節(jié)點comput
12、e只運了nova-compute服務(wù)控制節(jié)點controller運了若nova-*服務(wù)RabbitMQ和 MySQL也是放在控制節(jié)點上的。可能細(xì)的同學(xué)已經(jīng)發(fā)現(xiàn)我們的控制節(jié)點上也運了nova-compute。 這實際上也就意味著devstack-controller既是個控制節(jié)點,同時也是個計算節(jié)點,也可以在上運虛機(jī)。這也向我們展了OpenStack這種分布式架構(gòu)部署上的靈活性:可以將所有服務(wù)都放在臺物理機(jī)上,作為個All-in-One 的測試環(huán)境;也可以將服務(wù)部署在多臺物理機(jī)上,獲得更好的性能和可。另外,也可以nova service-list查看 nova-*服務(wù)都分布在哪些節(jié)點上從虛機(jī)創(chuàng)建
13、流程看nova-*服務(wù)如何協(xié)同作從學(xué)習(xí) Nova的度看,虛機(jī)創(chuàng)建是個常好的場景,涉及的nova-*服務(wù)很全,下是流程圖。1. 客戶(可以是OpenStack最終戶,也可以是其他程序)向API(nova-api)發(fā)送請求:幫我創(chuàng)建個虛機(jī)”2. API對請求做些必要處理后,向Messaging(RabbitMQ)發(fā)送了條消息:讓 Scheduler 創(chuàng)建個虛機(jī)”3. Scheduler(nova-scheduler)從 Messaging獲取到 API發(fā)給它的消息,然后執(zhí)調(diào)度算法,從若計算節(jié)點中選出節(jié)點A4. Scheduler 向 Messaging發(fā)送了條消息:在計算節(jié)點 A上創(chuàng)建這個虛機(jī)”5
14、. 計算節(jié)點 A的 Compute(nova-compute)從 Messaging中獲取到 Scheduler 發(fā)給它的消息,然后在本節(jié)點的Hypervisor上啟動虛機(jī)。6. 在虛機(jī)創(chuàng)建的過程中,Compute如果需要查詢或更新數(shù)據(jù)庫信息,會通過Messaging向 Conductor(nova-conductor)發(fā)送消息,Conductor負(fù)責(zé)數(shù)據(jù)庫訪問。以上是創(chuàng)建虛機(jī)最核的步驟,這個步驟向我們展了nova-*服務(wù)之間的協(xié)作的式,也體現(xiàn)了OpenStack整個系統(tǒng)的分布式設(shè)計思想,掌握這種思想對我們深理解OpenStack會常有幫助。三、Nova 創(chuàng)建虛擬機(jī)詳細(xì)過程1、界或命令通過RE
15、STful API向keystone獲取認(rèn)證信息。2、keystone通過戶請求認(rèn)證信息,并成auth-token返回給對應(yīng)的認(rèn)證請求。3、界或命令通過RESTful API向nova-api發(fā)送個boot instance的請求(攜帶auth-token)。4、nova-api接受請求后向keystone發(fā)送認(rèn)證請求,查看token是否為有效戶和token。5、keystone驗證token是否有效,如有效則返回有效的認(rèn)證和對應(yīng)的(注:有些操作需要有權(quán)限才能操作)。6、通過認(rèn)證后nova-api和數(shù)據(jù)庫通訊。7、初始化新建虛擬機(jī)的數(shù)據(jù)庫記錄。8、nova-api通過rpc.call向nova
16、-scheduler請求是否有創(chuàng)建虛擬機(jī)的資源(Host 。9、nova-scheduler進(jìn)程偵聽消息隊列,獲取nova-api的請求。10、nova-scheduler通過查詢nova數(shù)據(jù)庫中計算資源的情況,并通過調(diào)度算法計算符合虛擬機(jī)創(chuàng)建需要的主機(jī)。11、對于有符合虛擬機(jī)創(chuàng)建的主機(jī),nova-scheduler更新數(shù)據(jù)庫中虛擬機(jī)對應(yīng)的物理主機(jī)信息。12、nova-scheduler通過向nova-compute發(fā)送對應(yīng)的創(chuàng)建虛擬機(jī)請求的消息。13、nova-compute會從對應(yīng)的消息隊列中獲取創(chuàng)建虛擬機(jī)請求的消息。14、nova-compute通過rpc.call向nova-condu
17、ctor請求獲取虛擬機(jī)消息。(Flavor)15、nova-conductor從消息隊隊列中拿到nova-compute請求消息。16、nova-conductor根據(jù)消息查詢虛擬機(jī)對應(yīng)的信息。17、nova-conductor從數(shù)據(jù)庫中獲得虛擬機(jī)對應(yīng)信息。18、nova-conductor把虛擬機(jī)信息通過消息的式發(fā)送到消息隊列中。19、nova-compute從對應(yīng)的消息隊列中獲取虛擬機(jī)信息消息。20、nova-compute通過keystone的RESTfull API拿到認(rèn)證的token,并通過HTTP請求glance-api獲取創(chuàng)建虛擬機(jī)所需要鏡像。21、glance-api向keys
18、tone認(rèn)證token是否有效,并返回驗證結(jié)果。22、token驗證通過,nova-compute獲得虛擬機(jī)鏡像信息(URL)。23、nova-compute通過keystone的RESTfull API拿到認(rèn)證k的token,并通過HTTP請求neutron-server獲取創(chuàng)建虛擬機(jī)所需要的絡(luò)信息。24、neutron-server向keystone認(rèn)證token是否有效,并返回驗證結(jié)果。25、token驗證通過,nova-compute獲得虛擬機(jī)絡(luò)信息。26、nova-compute通過keystone的RESTfull API拿到認(rèn)證的token,并通過HTTP請求cinder-api
19、獲取創(chuàng)建虛擬機(jī)所需要的持久化存儲信息。27、cinder-api向keystone認(rèn)證token是否有效,并返回驗證結(jié)果。28、token驗證通過,nova-compute獲得虛擬機(jī)持久化存儲信息。29、nova-compute根據(jù)instance的信息調(diào)配置的虛擬化驅(qū)動來創(chuàng)建虛擬機(jī)。四、徹底刪除nova-compute節(jié)點1、控制節(jié)點上操作查看計算節(jié)點,刪除node11openstack host list2nova service-list2、將node1上的計算服務(wù)設(shè)置為down,然后disabled1systemctl stop openstack-nova-compute2nova
20、service-list1nova service-disable node1 nova-compute2nova service-list3、在數(shù)據(jù)庫清理(nova庫)(1)參看現(xiàn)在數(shù)據(jù)庫狀態(tài)123rootnode1 # mysql-u root -p4Enter password:5Welcome to the MariaDB monitor. Commands end with ; or g.6Your MariaDB connectionid is 907 Server version: 10.1.20-MariaDB MariaDB Server89 Copyright (c) 20
21、00, 2016, Oracle, MariaDB Corporation Ab and others.1011Typehelp;orhfor help. Typec toclear the current input statement.1213MariaDB (none) use nova;Reading table informationforcompletion of table and column names14You can turn off this feature to get a quicker startup with -A1516Database changed17Ma
22、riaDB novaselect host from nova.services;18+-+19| host|+-+| | |202122| node1 |23| node1 | node1 |24| node1 |25| node2 |26+-+277 rowsin set (0.00 sec)2829MariaDB novaselect hypervisor_hostname from compute_nodes;30+-+| hypervisor_hostname |31+-+32| node133| node2|34+-+352 rowsin set (0.00 sec)3637(2)
23、刪除數(shù)據(jù)庫中的node1節(jié)點信息123MariaDB nova delete from nova.services where host=node1;4 Query OK,4 rows affected (0.01 sec)5MariaDB nova delete from compute_nodes where hypervisor_hostname=node1;6Query OK,1 row affected (0.00 sec)78MariaDB nova9MariaDB nova10MariaDB nova11MariaDB novaselect host from nova.serv
24、ices;+-+12| host|13+-+14| |15| | node2 |16+-+173 rowsin set (0.00 sec)1819MariaDB novaselect hypervisor_hostname from compute_nodes;20+-+21| hypervisor_hostname |22+-+23| node2|24+-+1 rowinset (0.00 sec)2526MariaDB nova2728五、nova配置件:DEFAULTmy_ip=3use_neutron = Truefirewall_driver = nova.virt.firewal
25、l.NoopFirewallDriverenabled_apis=osapi_compute,metadatatransport_url =apiauth_strategy = keystoneapi_databaseconnection = mysql+barbicancachecellscinderos_region_name = RegionOnecloudpipeconductorconsoleconsoleauthcorscors.subdomaincryptodatabaseconnection = mysql+ephemeral_storage_encryptionfilter_
26、schedulerglanceapi_servers =guestfshealthcheckhypervimage_file_urlironickey_managerkeystone_authtokenauth_uri =auth_url =memcached_servers = controller:11211auth_type = passwordproject_domain_name = defaultuser_domain_name = defaultproject_name = serviceusername = novapassword = novalibvirtvirt_type=qemumatchmaker_redismetricsmksneutron
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 任務(wù)一《金屬絲便簽夾》(教案)-五年級上冊勞動浙教版
- 工廠安全管理培訓(xùn)資料
- 顧榮施炙-【2022年暑假預(yù)習(xí)】云名著《世說新語》之“德行”卷
- 2024中車科技創(chuàng)新(北京)有限公司人才招聘110人筆試參考題庫附帶答案詳解
- 三年級數(shù)學(xué)上冊 3 測量第4課時 千米的認(rèn)識(2)配套教學(xué)設(shè)計 新人教版
- 2024中廣電廣播電影電視設(shè)計研究院有限公司高校畢業(yè)生公開招聘27人筆試參考題庫附帶答案詳解
- 輔警崗前法律培訓(xùn)
- 人教部編版二年級上冊課文25 玲玲的畫教案
- 2024中國移動安徽公司社會招聘筆試參考題庫附帶答案詳解
- 現(xiàn)場安全管理綜合崗安全生產(chǎn)責(zé)任制及履職清單
- 村級巡察培訓(xùn)課件
- 景觀生態(tài)規(guī)劃與設(shè)計景觀生態(tài)學(xué)與景觀生態(tài)原理
- 人教版九年級數(shù)學(xué)下冊第二十六章反比例函數(shù)-作業(yè)設(shè)計
- 兩位數(shù)減一位數(shù)退位口算題-2
- 北京師范大學(xué)研究生培養(yǎng)方案
- 不完全性醫(yī)療性流產(chǎn)
- 物業(yè)服務(wù)理論知識考試題庫500題(含答案)
- GB/T 3683-2023橡膠軟管及軟管組合件油基或水基流體適用的鋼絲編織增強液壓型規(guī)范
- 人防工程巡查檢測投標(biāo)方案
- 基于PLC的智能家居控制系統(tǒng)設(shè)計
- 外研版小學(xué)英語單詞表(一起)一至六年級1643
評論
0/150
提交評論