Open Stack Compute Infrastructure (Nova)
Nova是OpenStack云中的計(jì)算組織控制器。支持OpenStack云中實(shí)例(instances)生命周期的所有活動(dòng)都由Nova處理。這樣使得Nova成為一個(gè)負(fù)責(zé)管理計(jì)算資源、網(wǎng)絡(luò)、認(rèn)證、所需可擴(kuò)展性的平臺(tái)。但是,Nova自身并沒(méi)有提供任何虛擬化能力,相反它使用libvirt API來(lái)與被支持的Hypervisors交互。Nova 通過(guò)一個(gè)與Amazon Web Services(AWS)EC2 API兼容的web services API來(lái)對(duì)外提供服務(wù)。
功能和特點(diǎn):
實(shí)例生命周期管理
管理計(jì)算資源
網(wǎng)絡(luò)和認(rèn)證管理
REST風(fēng)格的API
異步的一致性通信
Hypervisor透明:支持Xen,XenServer/XCP, KVM, UML, VMware vSphere and Hyper-V
OpenStack計(jì)算的組成:
Nova 云架構(gòu)包括以下主要組件:
API Server (nova-api)
Message Queue (rabbit-mq server)
Compute Workers (nova-compute)
Network Controller (nova-network)
Volume Worker (nova-volume)
Scheduler (nova-scheduler)
API Server(nova-api)
API Server對(duì)外提供一個(gè)與云基礎(chǔ)設(shè)施交互的接口,也是外部可用于管理基礎(chǔ)設(shè)施的唯一組件。管理使用EC2 API通過(guò)web services調(diào)用實(shí)現(xiàn)。然后API Server通過(guò)消息隊(duì)列(Message Queue)輪流與云基礎(chǔ)設(shè)施的相關(guān)組件通信。作為EC2 API的另外一種選擇,OpenStack也提供一個(gè)內(nèi)部使用的“OpenStack API”。
Message Queue(Rabbit MQ Server)
OpenStack 節(jié)點(diǎn)之間通過(guò)消息隊(duì)列使用AMQP(Advanced Message Queue Protocol)完成通信。Nova 通過(guò)異步調(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í),例如加載一個(gè)實(shí)例,或者上傳一個(gè)鏡像。
Compute Worker(nova-compute)
Compute Worker處理管理實(shí)例生命周期。他們通過(guò)Message Queue接收實(shí)例生命周期管理的請(qǐng)求,并承擔(dān)操作工作。在一個(gè)典型生產(chǎn)環(huán)境的云部署中有一些compute workers。一個(gè)實(shí)例部署在哪個(gè)可用的compute worker上取決于調(diào)度算法。
Network Controller(nova-network)
Network Controller 處理主機(jī)地網(wǎng)絡(luò)配置。它包括IP地址分配、為項(xiàng)目配置VLAN、實(shí)現(xiàn)安全組、配置計(jì)算節(jié)點(diǎn)網(wǎng)絡(luò)。
Volume Workers(nova-volume)
Volume Workers用來(lái)管理基于LVM(Logical Volume Manager)的實(shí)例卷。Volume Workers有卷的相關(guān)功能,例如新建卷、刪除卷、為實(shí)例附加卷,為實(shí)例分離卷。卷為實(shí)例提供一個(gè)持久化存儲(chǔ),因?yàn)楦謪^(qū)是非持久化的,當(dāng)實(shí)例終止時(shí)對(duì)它所作的任何改變都會(huì)丟失。當(dāng)一個(gè)卷從實(shí)例分離或者實(shí)例終止(這個(gè)卷附加在該終止的實(shí)例上)時(shí),這個(gè)卷保留著存儲(chǔ)在其上的數(shù)據(jù)。當(dāng)把這個(gè)卷重附加載相同實(shí)例或者附加到不同實(shí)例上時(shí),這些數(shù)據(jù)依舊能被訪問(wèn)。
一個(gè)實(shí)例的重要數(shù)據(jù)幾乎總是要寫在卷上,這樣可以確保能在以后訪問(wèn)。這個(gè)對(duì)存儲(chǔ)的典型應(yīng)用需要數(shù)據(jù)庫(kù)等服務(wù)的支持。
Scheduler(nova-scheduler)
調(diào)度器Scheduler把nova-API調(diào)用映射為OpenStack組件。調(diào)度器作為一個(gè)稱為nova-schedule守護(hù)進(jìn)程運(yùn)行,通過(guò)恰當(dāng)?shù)恼{(diào)度算法從可用資源池獲得一個(gè)計(jì)算服務(wù)。Scheduler會(huì)根據(jù)諸如負(fù)載、內(nèi)存、可用域的物理距離、CPU構(gòu)架等作出調(diào)度決定。nova scheduler實(shí)現(xiàn)了一個(gè)可插入式的結(jié)構(gòu)。
當(dāng)前nova-scheduler實(shí)現(xiàn)了一些基本的調(diào)度算法:
隨機(jī)算法:計(jì)算主機(jī)在所有可用域內(nèi)隨機(jī)選擇
可用域算法:跟隨機(jī)算法相仿,但是計(jì)算主機(jī)在指定的可用域內(nèi)隨機(jī)選擇。
簡(jiǎn)單算法:這種方法選擇負(fù)載最小的主機(jī)運(yùn)行實(shí)例。負(fù)載信息可通過(guò)負(fù)載均衡器獲得。
以上所述是小編給大家介紹的OpenStack 中的Nova組件詳解,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)服務(wù)器之家網(wǎng)站的支持!
原文鏈接:http://www.cnblogs.com/wspblog/p/4378915.html