OpenStack技術(shù)原理與實(shí)戰(zhàn):Nova計(jì)算組件的介紹_第1頁
OpenStack技術(shù)原理與實(shí)戰(zhàn):Nova計(jì)算組件的介紹_第2頁
OpenStack技術(shù)原理與實(shí)戰(zhàn):Nova計(jì)算組件的介紹_第3頁
OpenStack技術(shù)原理與實(shí)戰(zhàn):Nova計(jì)算組件的介紹_第4頁
OpenStack技術(shù)原理與實(shí)戰(zhàn):Nova計(jì)算組件的介紹_第5頁
已閱讀5頁,還剩49頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

Nova計(jì)算組件的介紹南陽理工學(xué)院1目錄介紹NovaNova架構(gòu)介紹Nova主要組件nova創(chuàng)建虛擬機(jī)流程1、介紹NovaNova是OpenStack最復(fù)雜的部分,涵蓋的內(nèi)容最多,它涵蓋了虛擬化、網(wǎng)絡(luò)、存儲(chǔ)、調(diào)度和云計(jì)算控制等專業(yè)領(lǐng)域知識(shí)。Nova是OpenStack云中的計(jì)算組織控制器。OpenStack云中實(shí)例(instances)生命周期的所有活動(dòng)都由Nova處理。這樣使得Nova成為一個(gè)負(fù)責(zé)管理計(jì)算資源、網(wǎng)絡(luò)、認(rèn)證的可擴(kuò)展性的平臺(tái)。但是,Nova自身并沒有提供任何虛擬化能力,它使用LibvirtAPI來與被支持的Hypervisors交互。Nova通過一個(gè)與AmazonWebServices(AWS)EC2API兼容的webservicesAPI來對(duì)外提供服務(wù)。3功能和特點(diǎn)實(shí)例生命周期管理管理計(jì)算資源網(wǎng)絡(luò)和認(rèn)證管理REST風(fēng)格的API異步的一致性通信Hypervisor透明:支持Xen,XenServer/XCP,KVM,UML,VMwarevSphereandHyper-V42.Nova架構(gòu)介紹簡(jiǎn)單架構(gòu)簡(jiǎn)單架構(gòu)單點(diǎn)服務(wù)無負(fù)載均衡無高可靠復(fù)雜架構(gòu)????????2.Nova架構(gòu)介紹復(fù)雜架構(gòu)復(fù)雜架構(gòu)負(fù)載均衡高可靠簡(jiǎn)單架構(gòu)單點(diǎn)服務(wù)無負(fù)載均衡無高可靠3、Nova主要組件APIServer(nova-api)MessageQueue(rabbit-mqserver)Scheduler(nova-scheduler)Conductor(nova-conductor)ComputeWorkers(nova-compute)NetworkController(nova-network)Placement(nova-placement-api)Cell(nova-cell)nova-consoleauth負(fù)責(zé)驗(yàn)證consoleproxy提供的用戶tokennova-novncproxy,nova-xvpnvncporxy,提供proxy訪問instancevnc端口nova-cert管理x509證書73.1Nova-api整個(gè)Nova組件的門戶,所有對(duì)Nova的請(qǐng)求都首先由nova-api處理。Nova-api向外界暴露若干HTTPRESTAPI接口。APIServer對(duì)外提供一個(gè)與云基礎(chǔ)設(shè)施交互的接口,也是外部可用于管理基礎(chǔ)設(shè)施的唯一組件。APIServer通過消息隊(duì)列(MessageQueue)輪流與云基礎(chǔ)設(shè)施的相關(guān)組件通信。問題:nova-api接收哪些請(qǐng)求?簡(jiǎn)單的說,只要是跟虛擬機(jī)生命周期相關(guān)的操作,nova-api都可以響應(yīng)。大部分操作都可以在Dashboard上找到。8查看nova-api的進(jìn)程號(hào):psaux|grepnova-api查看nova-api占用哪些端口netstat-anp|greppid其中pid指的是nova-api的進(jìn)程號(hào)一般來說,服務(wù)監(jiān)聽的端口號(hào)為8773,8774,8775。如果服務(wù)異常,可以查看這個(gè)端口號(hào)是否被其他服務(wù)占用。910113.2MessageQueueOpenStack節(jié)點(diǎn)之間通過消息隊(duì)列使用AMQP(AdvancedMessageQueueProtocol)完成通信。Nova通過異步調(diào)用請(qǐng)求響應(yīng),使用回調(diào)函數(shù)在收到響應(yīng)時(shí)觸發(fā)。因?yàn)槭褂昧水惒酵ㄐ?,用戶的操作不?huì)長(zhǎng)時(shí)間處于等待狀態(tài)。這是有效的,因?yàn)樵S多API調(diào)用預(yù)期的行為都非常耗時(shí),例如啟動(dòng)一個(gè)實(shí)例,或者上傳一個(gè)鏡像,用戶總希望它在很短的時(shí)間內(nèi)完成。12133.3nova-scheduler

–調(diào)度器虛擬機(jī)調(diào)度,即創(chuàng)建虛擬機(jī)時(shí),根據(jù)物理機(jī)的資源使用情況,虛擬機(jī)應(yīng)該被分配到哪臺(tái)物理機(jī)上運(yùn)行。能夠在OpenStack集群中選擇最合適的計(jì)算節(jié)點(diǎn)放置實(shí)例,實(shí)現(xiàn)負(fù)載均衡。調(diào)度器作為一個(gè)名為nova-scheduler的守護(hù)進(jìn)程運(yùn)行,通過恰當(dāng)?shù)恼{(diào)度算法從可用資源池中收集計(jì)算服務(wù),網(wǎng)絡(luò)服務(wù),卷服務(wù)的相關(guān)信息,根據(jù)諸如負(fù)載、內(nèi)存、可用域的物理距離、CPU構(gòu)架等作出調(diào)度決定。接受一個(gè)消息隊(duì)列的虛擬實(shí)例請(qǐng)求,通過算法決定該請(qǐng)求應(yīng)該在哪臺(tái)主機(jī)上運(yùn)行,同時(shí),也可以人為的為該請(qǐng)求指定在哪臺(tái)主機(jī)上運(yùn)行,即起到調(diào)度器(Scheduler)的作用。即解決如何選擇在哪個(gè)計(jì)算節(jié)點(diǎn)上啟動(dòng)instance的問題。即創(chuàng)建Instance時(shí),用戶會(huì)提出資源需求,例如CPU、內(nèi)存、磁盤各需要多少。Nova允許使用第三方scheduler,配置scheduler_driver即可,體現(xiàn)了OpenStack的開放性14OpenStack的Flavor

將這些需求定義在flavor中,用戶只需要指定用哪個(gè)flavor就可以了。Flavor主要定義了VCPU,RAM,DISK和Metadata這四類。nova-scheduler會(huì)按照flavor去選擇合適的計(jì)算節(jié)點(diǎn)。151617調(diào)度器會(huì)根據(jù)計(jì)算節(jié)點(diǎn)的負(fù)載情況,內(nèi)存使用情況,CPU架構(gòu)等作出調(diào)度決策,實(shí)現(xiàn)可插入式的靈活調(diào)度方式,nova-scheduler實(shí)現(xiàn)的基本的調(diào)度算法有:隨機(jī)算法:計(jì)算主機(jī)在所有可用域內(nèi)隨機(jī)選擇??捎糜蛩惴ǎ焊S機(jī)算法相仿,但是計(jì)算主機(jī)在指定的可用域內(nèi)隨機(jī)選擇。簡(jiǎn)單算法:這種方法選擇負(fù)載最小的主機(jī)運(yùn)行實(shí)例。負(fù)載信息可通過負(fù)載均衡器獲得。18過濾算法選擇,yesorno?符合條件的host進(jìn)入下一輪權(quán)重算法排序符合條件的host進(jìn)行優(yōu)先級(jí)排序nova-scheduler服務(wù)–調(diào)度器調(diào)度算法,即選出最佳物理機(jī)的算法,主要包括過濾算法和權(quán)重算法兩個(gè)階段Nova-scheduler

過濾(filter)算法

目前支持的過濾算法(23種左右),默認(rèn)加載以下算法:RetryFilterAvailabilityZoneFilterRamFilterComputeFilterComputeCapabilitiesFilterImagePropertiesFilterCoreFilter Nova-scheduler

過濾(filter)算法

過濾(filter)算法RetryFilter如果虛擬機(jī)調(diào)度失敗,是否重新調(diào)度的次數(shù)

scheduler_max_attempts=3AvailabilityZoneFilter是否支持虛擬機(jī)選擇availabilityzoneRamFilter選擇能夠滿足虛擬機(jī)內(nèi)存要求的物理機(jī),如果不指定默認(rèn),不判斷內(nèi)存資源指定內(nèi)存超分比率,ram_allocation_ratio=1.5ComputeCapabilitiesFilter選擇具有某些特定屬性的物理機(jī)以namespace:key的格式來執(zhí)行屬性,比如AZ1:node1Nova-scheduler

過濾(filter)算法

過濾(filter)算法ImagePropertiesFilter根據(jù)鏡像中指定的某一屬性(properties)來過濾物理機(jī)以這個(gè)鏡像創(chuàng)建虛擬機(jī),只能選擇體系結(jié)構(gòu)式arm,hypervisor是qemu的主機(jī)CoreFilter選擇哪些能夠滿足虛擬機(jī)cpu要求的那些物理機(jī)如果不設(shè)置,單個(gè)虛擬機(jī)的和數(shù)可以超過物理機(jī)的和數(shù)可以指定cpu超分比率,

cpu_allocation_ratio=16.0glanceimage-updateimg-uuid--propertyarchitecture=arm--propertyhypervisor_type=qemu

Nova-scheduler權(quán)重(weight)算法Nova-scheduler權(quán)重(weight)算法權(quán)重(weight)算法–權(quán)重是如何計(jì)算出來的?ram_weight_multiplier(內(nèi)存權(quán)重系數(shù))正數(shù),選出內(nèi)存最大的物理機(jī)

虛擬機(jī)在所有物理機(jī)上平鋪(spreading)負(fù)數(shù),選出內(nèi)存最小的物理機(jī)

虛擬機(jī)在部分物理機(jī)上堆疊(stacking)scheduler_host_subset_size(最佳機(jī)器的子集大?。┤绻蠳個(gè)機(jī)器的優(yōu)先級(jí)相同,則隨機(jī)選擇scheduler_host_subset_size個(gè)scheduler_host_subset_size=1(默認(rèn))scheduler_weight_classes(權(quán)重計(jì)算算法選擇類)RamWeigher,內(nèi)存權(quán)重排序算法,默認(rèn)算法MetricsWeigher,自定義的權(quán)重排序算法3.4Nova-conductor數(shù)據(jù)庫訪問代理服務(wù)介于database和nova-compute之間,排除了compute服務(wù)對(duì)于數(shù)據(jù)庫的直接訪問計(jì)算節(jié)點(diǎn)相對(duì)不可信、高風(fēng)險(xiǎn)的負(fù)載均衡,可擴(kuò)展性好不能與nova-compute部署在同一節(jié)點(diǎn)上如果不想使用nova-conductor,在nova.conf中增加配置項(xiàng):use_local=True3.5

Nova-computenova-compute是一個(gè)非常重要的守護(hù)進(jìn)程,是所有的計(jì)算節(jié)點(diǎn)都要運(yùn)行的服務(wù)。職責(zé)是基于各種虛擬化技術(shù)Hyperivisor實(shí)現(xiàn)創(chuàng)建和終止虛擬機(jī),即管理著虛擬機(jī)實(shí)例的生命周期。該模塊內(nèi)部非常復(fù)雜,基本原理是簡(jiǎn)單的,nova-compute有兩個(gè)工作:接受消息隊(duì)列中的執(zhí)行指令,并執(zhí)行相關(guān)指令,如部署虛擬機(jī)。維護(hù)數(shù)據(jù)庫相關(guān)模型的狀態(tài)數(shù)據(jù)。nova-compute在計(jì)算節(jié)點(diǎn)上運(yùn)行,負(fù)責(zé)管理節(jié)點(diǎn)上的instance。OpenStack對(duì)instance的操作,最后都是交給nova-compute來完成的。nova-compute與Hypervisor一起實(shí)現(xiàn)OpenStack對(duì)instance生命周期的管理。26nova-compute整合了計(jì)算資源CPU,存儲(chǔ),網(wǎng)絡(luò)三類資源部署管理虛擬機(jī),實(shí)現(xiàn)計(jì)算能力的交付。包括如下內(nèi)容:運(yùn)行虛擬機(jī)終止虛擬機(jī)重啟虛擬機(jī)掛起虛擬機(jī)掛載云硬盤卸載云硬盤控制臺(tái)輸出27Nova-compute主要工作流程nova-compute首先會(huì)根據(jù)指定的flavor依次為instance分配內(nèi)存、磁盤空間和vCPU。資源準(zhǔn)備好之后,nova-compute會(huì)為instance獲取鏡像文件。首先將該image下載到計(jì)算節(jié)點(diǎn),然后將其作為backingfile創(chuàng)建instance的鏡像文件。從Glance下載image,nova-compute首先會(huì)檢查image是否已經(jīng)下載。如果沒有,就從Glance下載image到本地。創(chuàng)建instance的XML定義文件創(chuàng)建虛擬網(wǎng)絡(luò)并啟動(dòng)instance28nova-compute29除此之外,還可以通過nova-manageservicelist來查看當(dāng)前環(huán)境中的所有的nova服務(wù)。303.6

nova-network該守護(hù)進(jìn)程跟nova-compute模塊的功能是相似的。接受來自消息隊(duì)列的任務(wù),然后執(zhí)行相應(yīng)的任務(wù)對(duì)網(wǎng)絡(luò)進(jìn)行操作(比如:安裝網(wǎng)橋接口和改變iptable規(guī)則)nova-network處理主機(jī)的網(wǎng)絡(luò)配置。它包括IP地址分配、為項(xiàng)目配置VLAN、實(shí)現(xiàn)安全組、配置計(jì)算節(jié)點(diǎn)網(wǎng)絡(luò)。通過nova-network可以管理OpenStack的固定ip(fixedip),浮動(dòng)ip(floatingip),DHCP服務(wù),網(wǎng)橋和虛擬子網(wǎng)等網(wǎng)絡(luò)服務(wù)。nova-network從OpenStack的F版本之后,從nova中逐漸分離,已經(jīng)成為OpenStack獨(dú)立的組件Neutron存在。313.7

NovaCellOpenStack在控制平臺(tái)上的性能瓶頸主要在MessageQueue和Database。尤其是MessageQueue,隨著計(jì)算節(jié)點(diǎn)的增加,性能變的越來越差。為了應(yīng)對(duì)這種情況,Nova很早之前提出來nova-cell(以下以cellv1代替)的解決方案。目的是在把大的OpenStack集群分成小的單元,每個(gè)單元有自己的MessageQueue和Database,以此來解決規(guī)模增加時(shí)引起的性能問題,而且不會(huì)向Region那樣,把各個(gè)集群獨(dú)立運(yùn)行。在cell里面,Keystone、Neutron、Cinder、Glance等資源還是共享的。通過nova-cell服務(wù)來在各個(gè)cell間傳遞消息。架構(gòu)復(fù)雜案例:CERN(歐洲原子能研究中心)cellv1被標(biāo)記為實(shí)驗(yàn)性質(zhì)。相關(guān)測(cè)試很少。功能已經(jīng)凍結(jié),不會(huì)加入新的功能。不嚴(yán)重的Bug根本不會(huì)去修復(fù)。NovaCellV1簡(jiǎn)介NovaCellV2簡(jiǎn)介

cellv2自Newton版本引入,Ocata版本變?yōu)楸匾M件。默認(rèn)部署都會(huì)初始化一個(gè)單cell的架構(gòu)。cellv2的架構(gòu)圖如下:api和cell有了明顯的邊界,全局?jǐn)?shù)據(jù)和cell數(shù)據(jù)有一條清晰的界線。api層面只需要數(shù)據(jù)庫,不需要MessageQueue。nova-api現(xiàn)在依賴nova_api和nova_cell0兩個(gè)數(shù)據(jù)庫。nova-scheduler服務(wù)只需要在api層面上安裝cell不需要參數(shù)調(diào)度。通過placement服務(wù),實(shí)現(xiàn)了一次調(diào)度就可以確定到具體在哪個(gè)cell的哪臺(tái)機(jī)器上啟動(dòng)。cell里面只需要安裝nova-compute和nova-conductor服務(wù),和其依賴的DB和MQ。在cell的數(shù)據(jù)庫里沒有冗余數(shù)據(jù),所有共享數(shù)據(jù)都在nova-api中。所有的cell變成一個(gè)扁平架構(gòu)。比之前的多層父子架構(gòu)要簡(jiǎn)化很多。數(shù)據(jù)庫和消息隊(duì)列作為nova的一等公民。NovaCellV2特點(diǎn)NovaCellV2計(jì)算節(jié)點(diǎn)自動(dòng)發(fā)現(xiàn)nova-compute服務(wù)上線后,不會(huì)自動(dòng)加到nova-api的host_mappings里面,也不會(huì)加到nova-scheduler的調(diào)度中,當(dāng)添加新的計(jì)算節(jié)點(diǎn)到集群時(shí),必須在管理節(jié)點(diǎn)運(yùn)行nova-managecell_v2discover_hosts命令,以注冊(cè)新的計(jì)算節(jié)點(diǎn)。#su-s/bin/sh-c"nova-managecell_v2discover_hosts--verbose"nova在小型一些的環(huán)境上,推薦打開自動(dòng)發(fā)現(xiàn)功能。在/etc/nova/nova.conf文件中設(shè)置自動(dòng)發(fā)現(xiàn)時(shí)間間隔:[scheduler]discover_hosts_in_cells_interval=300NovaCellV2流程當(dāng)想要獲取一個(gè)機(jī)器的詳細(xì)信息時(shí):nova-api先從instance_mappings表拿到instance的cell_id再從cell_mappings表拿到所在cell的DBconnection直接連接cell的DB拿到機(jī)器的詳細(xì)信息4、nova創(chuàng)建虛擬機(jī)流程首先由nova-api受理請(qǐng)求,將創(chuàng)建虛擬機(jī)的請(qǐng)求

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論