云計(jì)算openstack核心組件-nova計(jì)算服務(wù)_第1頁(yè)
云計(jì)算openstack核心組件-nova計(jì)算服務(wù)_第2頁(yè)
已閱讀5頁(yè),還剩2頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、 、nova介紹:Nova是 OpenStack最核的服務(wù),負(fù)責(zé)維護(hù)和管理云環(huán)境的計(jì)算資源。OpenStack作為 IaaS的云操作系統(tǒng),虛擬機(jī)命周期管理也就是通過 Nova來實(shí)現(xiàn)的。途與功能 :1)實(shí)例命周期管理2)管理計(jì)算資源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、塊存儲(chǔ)和對(duì)象存儲(chǔ)Neutron為 VM提供絡(luò)連接。Nova 架構(gòu)如下:Nova 的架構(gòu)較復(fù)雜,包含很多組件。這些組件以服務(wù)(后臺(tái)deamon進(jìn)程)的形式運(yùn),可以分為以下類:APInova-api是整個(gè) Nova組件的門戶,接收和響應(yīng)客戶的API調(diào)。所有對(duì)Nova的請(qǐng)求都先由nova-api處理。nova-api 向外界暴露若HTTPREST API 接在 keystone中我們可以查詢nova-api的 endponits??蛻舳司涂梢詫⒄?qǐng)求發(fā)送到endponits指定的地址,向nova-api請(qǐng)求操作。當(dāng)然,作為最終戶的我們不會(huì)直接發(fā)送RestAP 請(qǐng)求。OpenStack ,Dashboa

3、rd 和其他需要跟Nova交換的組件會(huì)使這些API。Nova-api 對(duì)接收到的 HTTP API 請(qǐng)求會(huì)做如下處理:1.檢查客戶端傳的參數(shù)是否合法有效2.調(diào) Nova其他服務(wù)的處理客戶端HTTP 請(qǐng)求3.格式化 Nova其他服務(wù)返回的結(jié)果并返回給客戶端nova-api 接收哪些請(qǐng)求?簡(jiǎn)單的說,只要是跟虛擬機(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,因?yàn)?nova-api兼容 EC2 API,需做任何修改。Compute Corea)nova-scheduler:1虛機(jī)調(diào)度服務(wù),負(fù)責(zé)決定在哪個(gè)計(jì)算節(jié)點(diǎn)上運(yùn)虛機(jī)。創(chuàng)建Instance時(shí),戶會(huì)提出資源需求,例如CPU、內(nèi)存、磁盤各需要多少。OpenStack將這些需求定義在flavor中,戶只需要指定哪個(gè)flavor就可以了??傻?flavor在 System-Flavors中管理。下介紹 nova-scheduler是如何實(shí)現(xiàn)調(diào)度的。在/etc/nova/nova.conf中,nova通過 driver=

5、filter_scheduler這個(gè)參數(shù)來配置nova-scheduler。driver=filter_schedulerFilter schedulerFilter scheduler 是 nova-scheduler默認(rèn)的調(diào)度器,調(diào)度過程分為兩步:1.通過過濾器(filter)選擇滿條件的計(jì)算節(jié)點(diǎn)(運(yùn)nova-compute)2.通過權(quán)重計(jì)算(weighting)選擇在最優(yōu)(權(quán)重值最)的計(jì)算節(jié)點(diǎn)上創(chuàng)建Instance。Nova 允許使第三scheduler,配置 scheduler_driver即可。這次體現(xiàn)了OpenStack的開放性。Scheduler 可以使多個(gè)filter依次進(jìn)過濾

6、,過濾之后的節(jié)點(diǎn)再通過計(jì)算權(quán)重選出最適合的節(jié)點(diǎn)。上圖是調(diào)度過程的個(gè)例:1.最開始有 6個(gè)計(jì)算節(jié)點(diǎn) Host1-Host62.通過多個(gè) filter層層過濾,Host2和 Host4沒有通過,被刷掉了3. Host1,Host3,Host5,Host6計(jì)算權(quán)重,結(jié)果Host5得分最,最終選當(dāng) Filter scheduler需要執(zhí)調(diào)度操作時(shí),會(huì)讓filter對(duì)計(jì)算節(jié)點(diǎn)進(jìn)判斷,filter返回 True或 False。經(jīng)過前堆filter的過濾,nova-scheduler 選出了能夠部署instance的計(jì)算節(jié)點(diǎn)。如果有多個(gè)計(jì)算節(jié)點(diǎn)通過了過濾,那么最終選擇哪個(gè)節(jié)點(diǎn)呢?Scheduler 會(huì)對(duì)每個(gè)

7、計(jì)算節(jié)點(diǎn)打分,得分最的獲勝。打分的過程就是weight,翻譯過來就是計(jì)算權(quán)重值,那么scheduler是根據(jù)什么來計(jì)算權(quán)重值呢?前 nova-scheduler的默認(rèn)實(shí)現(xiàn)是根據(jù)計(jì)算節(jié)點(diǎn)空閑的內(nèi)存量計(jì)算權(quán)重值:空閑內(nèi)存越多,權(quán)重越,instance 將被部署到當(dāng)前空閑內(nèi)存最多的計(jì)算節(jié)點(diǎn)上。b)nova-compute:nova-compute是管理虛機(jī)的核服務(wù),在計(jì)算節(jié)點(diǎn)上運(yùn)。通過調(diào)Hypervisor API實(shí)現(xiàn)節(jié)點(diǎn)上的instance的命周期管理。OpenStack對(duì) instance的操作,最后都是交給nova-compute來完成的。 nova-compute與 Hypervisor起實(shí)

8、現(xiàn) OpenStack對(duì) instance命周期的管理。Openstack中虛機(jī)默認(rèn)的保存路徑在:/var/lib/nova/instances通過Driver架構(gòu)持多種HypervisorHypervisor是計(jì)算節(jié)點(diǎn)上跑的虛擬化管理程序,虛機(jī)管理最底層的程序。不同虛擬化技術(shù)提供的Hypervisor。 常的 Hypervisor有KVM,Xen, VMWare等。nova-compute為這些 Hypervisor定義了統(tǒng)的接,Hypervisor 只需要實(shí)現(xiàn)這些接,就可以Driver的形式即插即到 OpenStack系統(tǒng)中。下是Nova Driver的架構(gòu)意圖:c)nova-conduc

9、tor:nova-compute經(jīng)常需要更新數(shù)據(jù)庫(kù),如更新和獲取虛機(jī)的狀態(tài)。出于安全性和伸縮性的考慮,nova-compute并不會(huì)直接訪問數(shù)據(jù)庫(kù),是將這個(gè)任務(wù)委托給nova-conductor。這樣做有兩個(gè)顯著好處:1.更的系統(tǒng)安全性2.更好的系統(tǒng)伸縮性Console Interfacenova-console: 戶可以通過多種式訪問虛機(jī)的控制臺(tái):nova-novncproxy: 基于 Web瀏覽器的 VNC 訪問nova-spicehtml5proxy: 基于 HTML5瀏覽器的 SPICE 訪問nova-xvpnvncproxy: 基于 Java客戶端的 VNC 訪問nova-conso

10、leauth: 負(fù)責(zé)對(duì)訪問虛機(jī)控制臺(tái)請(qǐng)求提供Token認(rèn)證nova-cert: 提供 x509證書持DatabaseNova 會(huì)有些數(shù)據(jù)需要存放到數(shù)據(jù)庫(kù)中,般使MySQL。數(shù)據(jù)庫(kù)安裝在控制節(jié)點(diǎn)上。Nova使命名為 “nova”的數(shù)據(jù)庫(kù)。Message Queue在前我們了解到Nova包含眾多的服務(wù),這些服務(wù)之間需要相互協(xié)調(diào)和通信。為解耦各個(gè)服務(wù),Nova 通過 Message Queue作為服務(wù)的信息中轉(zhuǎn)站。所以在架構(gòu)圖上我們看到了服務(wù)之間沒有直接的連線,是通過Message Queue聯(lián)系的。OpenStack默認(rèn)是 RabbitMQ作為 Message 。 MQ是 OpenStack的核基

11、礎(chǔ)組件,我們后也會(huì)詳細(xì)介紹。、Nova 組件如何協(xié)同作Nova 物理部署案前家已經(jīng)看到Nova由很多服務(wù)組成,我們也知道OpenStack是個(gè)分布式系統(tǒng),可以部署到若節(jié)點(diǎn)上,那么接下來家可能就會(huì)問:Nova 的這些服務(wù)在物理上應(yīng)該如何部署呢?對(duì)于 Nova,這些服務(wù)會(huì)部署在兩類節(jié)點(diǎn)上:計(jì)算節(jié)點(diǎn)和控制節(jié)點(diǎn)。計(jì)算節(jié)點(diǎn)上安裝了Hypervisor,上運(yùn)虛擬機(jī)。由此可知:1.只有 nova-compute需要放在計(jì)算節(jié)點(diǎn)上。2.其他服務(wù)則是放在控制節(jié)點(diǎn)上的。下我們可以看看實(shí)驗(yàn)環(huán)境的具體部署情況。通過在計(jì)算節(jié)點(diǎn)和控制節(jié)點(diǎn)上運(yùn)ps -elf | grep nova來查看運(yùn)的nova服務(wù)計(jì)算節(jié)點(diǎn)comput

12、e只運(yùn)了nova-compute服務(wù)控制節(jié)點(diǎn)controller運(yùn)了若nova-*服務(wù)RabbitMQ和 MySQL也是放在控制節(jié)點(diǎn)上的??赡芗?xì)的同學(xué)已經(jīng)發(fā)現(xiàn)我們的控制節(jié)點(diǎn)上也運(yùn)了nova-compute。 這實(shí)際上也就意味著devstack-controller既是個(gè)控制節(jié)點(diǎn),同時(shí)也是個(gè)計(jì)算節(jié)點(diǎn),也可以在上運(yùn)虛機(jī)。這也向我們展了OpenStack這種分布式架構(gòu)部署上的靈活性:可以將所有服務(wù)都放在臺(tái)物理機(jī)上,作為個(gè)All-in-One 的測(cè)試環(huán)境;也可以將服務(wù)部署在多臺(tái)物理機(jī)上,獲得更好的性能和可。另外,也可以nova service-list查看 nova-*服務(wù)都分布在哪些節(jié)點(diǎn)上從虛機(jī)創(chuàng)建

13、流程看nova-*服務(wù)如何協(xié)同作從學(xué)習(xí) Nova的度看,虛機(jī)創(chuàng)建是個(gè)常好的場(chǎng)景,涉及的nova-*服務(wù)很全,下是流程圖。1. 客戶(可以是OpenStack最終戶,也可以是其他程序)向API(nova-api)發(fā)送請(qǐng)求:幫我創(chuàng)建個(gè)虛機(jī)”2. API對(duì)請(qǐng)求做些必要處理后,向Messaging(RabbitMQ)發(fā)送了條消息:讓 Scheduler 創(chuàng)建個(gè)虛機(jī)”3. Scheduler(nova-scheduler)從 Messaging獲取到 API發(fā)給它的消息,然后執(zhí)調(diào)度算法,從若計(jì)算節(jié)點(diǎn)中選出節(jié)點(diǎn)A4. Scheduler 向 Messaging發(fā)送了條消息:在計(jì)算節(jié)點(diǎn) A上創(chuàng)建這個(gè)虛機(jī)”5

14、. 計(jì)算節(jié)點(diǎn) A的 Compute(nova-compute)從 Messaging中獲取到 Scheduler 發(fā)給它的消息,然后在本節(jié)點(diǎn)的Hypervisor上啟動(dòng)虛機(jī)。6. 在虛機(jī)創(chuàng)建的過程中,Compute如果需要查詢或更新數(shù)據(jù)庫(kù)信息,會(huì)通過Messaging向 Conductor(nova-conductor)發(fā)送消息,Conductor負(fù)責(zé)數(shù)據(jù)庫(kù)訪問。以上是創(chuàng)建虛機(jī)最核的步驟,這個(gè)步驟向我們展了nova-*服務(wù)之間的協(xié)作的式,也體現(xiàn)了OpenStack整個(gè)系統(tǒng)的分布式設(shè)計(jì)思想,掌握這種思想對(duì)我們深理解OpenStack會(huì)常有幫助。三、Nova 創(chuàng)建虛擬機(jī)詳細(xì)過程1、界或命令通過RE

15、STful API向keystone獲取認(rèn)證信息。2、keystone通過戶請(qǐng)求認(rèn)證信息,并成auth-token返回給對(duì)應(yīng)的認(rèn)證請(qǐng)求。3、界或命令通過RESTful API向nova-api發(fā)送個(gè)boot instance的請(qǐng)求(攜帶auth-token)。4、nova-api接受請(qǐng)求后向keystone發(fā)送認(rèn)證請(qǐng)求,查看token是否為有效戶和token。5、keystone驗(yàn)證token是否有效,如有效則返回有效的認(rèn)證和對(duì)應(yīng)的(注:有些操作需要有權(quán)限才能操作)。6、通過認(rèn)證后nova-api和數(shù)據(jù)庫(kù)通訊。7、初始化新建虛擬機(jī)的數(shù)據(jù)庫(kù)記錄。8、nova-api通過rpc.call向nova

16、-scheduler請(qǐng)求是否有創(chuàng)建虛擬機(jī)的資源(Host 。9、nova-scheduler進(jìn)程偵聽消息隊(duì)列,獲取nova-api的請(qǐng)求。10、nova-scheduler通過查詢nova數(shù)據(jù)庫(kù)中計(jì)算資源的情況,并通過調(diào)度算法計(jì)算符合虛擬機(jī)創(chuàng)建需要的主機(jī)。11、對(duì)于有符合虛擬機(jī)創(chuàng)建的主機(jī),nova-scheduler更新數(shù)據(jù)庫(kù)中虛擬機(jī)對(duì)應(yīng)的物理主機(jī)信息。12、nova-scheduler通過向nova-compute發(fā)送對(duì)應(yīng)的創(chuàng)建虛擬機(jī)請(qǐng)求的消息。13、nova-compute會(huì)從對(duì)應(yīng)的消息隊(duì)列中獲取創(chuàng)建虛擬機(jī)請(qǐng)求的消息。14、nova-compute通過rpc.call向nova-condu

17、ctor請(qǐng)求獲取虛擬機(jī)消息。(Flavor)15、nova-conductor從消息隊(duì)隊(duì)列中拿到nova-compute請(qǐng)求消息。16、nova-conductor根據(jù)消息查詢虛擬機(jī)對(duì)應(yīng)的信息。17、nova-conductor從數(shù)據(jù)庫(kù)中獲得虛擬機(jī)對(duì)應(yīng)信息。18、nova-conductor把虛擬機(jī)信息通過消息的式發(fā)送到消息隊(duì)列中。19、nova-compute從對(duì)應(yīng)的消息隊(duì)列中獲取虛擬機(jī)信息消息。20、nova-compute通過keystone的RESTfull API拿到認(rèn)證的token,并通過HTTP請(qǐng)求glance-api獲取創(chuàng)建虛擬機(jī)所需要鏡像。21、glance-api向keys

18、tone認(rèn)證token是否有效,并返回驗(yàn)證結(jié)果。22、token驗(yàn)證通過,nova-compute獲得虛擬機(jī)鏡像信息(URL)。23、nova-compute通過keystone的RESTfull API拿到認(rèn)證k的token,并通過HTTP請(qǐng)求neutron-server獲取創(chuàng)建虛擬機(jī)所需要的絡(luò)信息。24、neutron-server向keystone認(rèn)證token是否有效,并返回驗(yàn)證結(jié)果。25、token驗(yàn)證通過,nova-compute獲得虛擬機(jī)絡(luò)信息。26、nova-compute通過keystone的RESTfull API拿到認(rèn)證的token,并通過HTTP請(qǐng)求cinder-api

19、獲取創(chuàng)建虛擬機(jī)所需要的持久化存儲(chǔ)信息。27、cinder-api向keystone認(rèn)證token是否有效,并返回驗(yàn)證結(jié)果。28、token驗(yàn)證通過,nova-compute獲得虛擬機(jī)持久化存儲(chǔ)信息。29、nova-compute根據(jù)instance的信息調(diào)配置的虛擬化驅(qū)動(dòng)來創(chuàng)建虛擬機(jī)。四、徹底刪除nova-compute節(jié)點(diǎn)1、控制節(jié)點(diǎn)上操作查看計(jì)算節(jié)點(diǎn),刪除node11openstack host list2nova service-list2、將node1上的計(jì)算服務(wù)設(shè)置為down,然后disabled1systemctl stop openstack-nova-compute2nova

20、service-list1nova service-disable node1 nova-compute2nova service-list3、在數(shù)據(jù)庫(kù)清理(nova庫(kù))(1)參看現(xiàn)在數(shù)據(jù)庫(kù)狀態(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ù)庫(kù)中的node1節(jié)點(diǎn)信息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等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論