武佳寧
基于OpenStack的云平臺虛擬集群部署設(shè)計(jì)
武佳寧
OpenStack憑借靈活高效的資源調(diào)度、彈性安全的資源整合管理和完全開源的公共項(xiàng)目迅速崛起。通過對OpenStack核心系統(tǒng)框架描繪和核心項(xiàng)目組件逐一分析,提出了可應(yīng)用于企業(yè)級的OpenStack的云平臺虛擬集群架構(gòu)設(shè)計(jì)方案,并對該方案的云計(jì)算層和云存儲(chǔ)層進(jìn)行了剖析。
云計(jì)算;OpenStack;集群部署
OpenStack是由美國國家航空航天局(NASA)和Rackspace合作開發(fā),由Apache授權(quán)的開源云計(jì)算。截止到2015年10月15日,OpenStack-Liberty版本正式下線,至此OpenStack共發(fā)布了12個(gè)版本。OpenStack的主版本以字母表順序排列,用年份加當(dāng)年排序生成版本號,第一版版本號為Austin(2010.1)。OpenStack是IaaS組件,是為云計(jì)算基礎(chǔ)架構(gòu)提供開放式的可擴(kuò)展的操作環(huán)境,用戶可以自由的使用云服務(wù)并且建立自己的私有云,用來供企業(yè)事業(yè)單位的內(nèi)部資源共享[1,2]。OpenStack通過子項(xiàng)目對云計(jì)算平臺的計(jì)算、網(wǎng)絡(luò)、存儲(chǔ)等資源進(jìn)行管理,也提供虛擬化技術(shù)的技術(shù)支持[3]。通過這些年的演變OpenStack已經(jīng)得到主流數(shù)據(jù)中心的廣泛支持,目前它已經(jīng)成為企事業(yè)單位部署云計(jì)算服務(wù)的集成引擎[4,5]。
1.1OpenStack核心系統(tǒng)框架
OpenStack是Iaas交付型模型,代碼完全開放,為企業(yè)提供了靈活可行的架構(gòu)解決方案,為程序技術(shù)人員提供出色的開源框架及高擴(kuò)展的API[6,7]。OpenStack采用模塊化設(shè)計(jì),在一個(gè)系統(tǒng)的體系下生成了十多個(gè)不同的核心開發(fā)項(xiàng)目,還有孵化項(xiàng)目、支持項(xiàng)目和相關(guān)項(xiàng)目,他們是由項(xiàng)目組建的相關(guān)程度和成熟程度來分解的。各個(gè)核心項(xiàng)目可以根據(jù)用戶的選擇挑選使用,也可以通過組件之間的合作運(yùn)行來實(shí)現(xiàn)各種功能。
OpenStack的8個(gè)主要核心項(xiàng)目組件系統(tǒng)框架如圖1所示:

圖1 OpenStack核心系統(tǒng)框架圖
Heat提供的是可預(yù)先定義的云部署服務(wù)。用戶通過Horizon就是UI門戶組件在web界面訪問OpenStack,通過該門戶調(diào)用其他的核心項(xiàng)目組件為自己服務(wù)。所有項(xiàng)目組件都需要通過keystone身份驗(yàn)證授權(quán)服務(wù),通過驗(yàn)證后得以調(diào)用Nova計(jì)算組件。Nova組件把相關(guān)信息存儲(chǔ)在對象存儲(chǔ)(Swift)和塊存儲(chǔ)(Cinder)中,并得到檢索服務(wù)。網(wǎng)絡(luò)管理(Neutron)為Nova提供虛擬網(wǎng)絡(luò)管理,鏡像(Glance)提供虛擬鏡像管理,它也可以存儲(chǔ)在Swift中。
1.2OpenStack核心項(xiàng)目組件
OpenStack的核心項(xiàng)目組件可以聯(lián)合在一起為用戶提供完整的云架構(gòu)服務(wù),也可以分開獨(dú)立工作,為用戶提供云存儲(chǔ)、虛擬化服務(wù)、鏡像或者操作系統(tǒng)服務(wù)。下面我們分析一下OpenStack最基本的5個(gè)核心項(xiàng)目組件。
1.21Nova——計(jì)算(Compute)
Nova是OpenStack核心項(xiàng)目組件中最重要的計(jì)算服務(wù),其復(fù)雜度也是最高的。作為一套控制器,它為虛擬主機(jī)提供了開關(guān)機(jī)、創(chuàng)建調(diào)度、遷移調(diào)整等服務(wù),可以根據(jù)不同的用戶(單獨(dú)或集群)的需求控制虛擬主機(jī)來配置CPU、內(nèi)存等設(shè)備,在多個(gè)實(shí)例的特定項(xiàng)目中還能設(shè)置網(wǎng)絡(luò)。Nova組件通過管理hypervisor來管理虛擬主機(jī),它可以為用戶提供預(yù)先設(shè)置好的鏡像,或者存儲(chǔ)用戶自行創(chuàng)建的鏡像,這樣用戶就可以把鏡像以虛擬機(jī)的形式啟動(dòng)。其中Nova-API模塊接收來自外部的數(shù)據(jù)訪問;Nova-Compute模塊管理來自虛擬機(jī)的各項(xiàng)指令和具體實(shí)施;Nova-Scheduler模塊則進(jìn)行算法調(diào)度。到Kilo版本,開始通過stackforge模塊提供對外的管控、EC2兼容等接口,取代了以前版本中的EC2 API模塊轉(zhuǎn)換服務(wù)。虛擬主機(jī)的調(diào)度調(diào)整和邏輯判斷是通過scheduler模塊完成的,模塊與模塊之間的通信是由消息隊(duì)列傳遞的,到Kilo版本進(jìn)一步標(biāo)準(zhǔn)化了scheduler的接口并做了優(yōu)化。
1.22Swift——對象存儲(chǔ)(Object Storage)
Swift自Austin版本就已經(jīng)集成在OpenStack核心項(xiàng)目組件中,與Nova項(xiàng)目組件服務(wù)組成了最早的OpenStack服務(wù)平臺。所以在OpenStack服務(wù)平臺中所有的數(shù)據(jù)都被定義為一個(gè)對象,Swift則是用于可擴(kuò)展并且支持多租戶的分布式對象存儲(chǔ)系統(tǒng)中,它通過高級容錯(cuò)和內(nèi)置冗余機(jī)制來操作對象文件實(shí)現(xiàn)對象存儲(chǔ)服務(wù),可用于媒體存儲(chǔ)、文檔鏡像文件備份等,并支持文件檢索和文件存儲(chǔ)。Swift-Proxy是Swift的一個(gè)模塊,它對外提供存取接口,當(dāng)一個(gè)對象經(jīng)過Swift-Proxy接口及接入后,通過account、object、container模塊來定位對象,所以在OpenStack服務(wù)平臺中對象被描述為(account,object,container)。
1.23Glance——鏡像服務(wù)(Image Service)
Glance為OpenStack解決管理虛擬鏡像問題,能夠?yàn)樘撝鳈C(jī)提供鏡像上傳、驗(yàn)證、刪除、存儲(chǔ)等功能,在Bexar版本中正式發(fā)布。Glance的主要接口是鏡像注冊和鏡像指派,比如把一個(gè)新生成的鏡像注冊到數(shù)據(jù)庫中,或者在實(shí)例化虛擬鏡像時(shí)指派它到某實(shí)體機(jī)上用以啟動(dòng)虛擬主機(jī)。其中Glance-API模塊接收外部數(shù)據(jù);Glance-Registry模塊保存鏡像文件的元數(shù)據(jù)并且負(fù)責(zé)檢索處理元數(shù)據(jù);Glance-Adapter模塊處理匹配存儲(chǔ)類型。到Kilo版本,Glance做了一些優(yōu)化,新版本里Glance可以使用多個(gè)Swift來存儲(chǔ)鏡像,這樣在大數(shù)據(jù)部署的情況下大大減少了大規(guī)模請求時(shí)造成的存儲(chǔ)瓶頸;增加了配置文件更新免重啟設(shè)置、多字段排序功能和鏡像自動(dòng)格式轉(zhuǎn)化等實(shí)用的新改進(jìn)。
1.24Keystone——身份服務(wù)(Identity Service)
Keystone在Essex版開始正式從Nova和Glance中剝離,是OpenStack核心項(xiàng)目組件中提供身份驗(yàn)證服務(wù)的,提供登錄認(rèn)證、用戶管理、服務(wù)規(guī)則和訪問控制等服務(wù)的組件。OpenStack的所有項(xiàng)目組件都需要Keystone提供服務(wù),包括Account服務(wù)、Authentication服務(wù)和Authorization服務(wù),這3種重要的服務(wù)被稱為3A服務(wù)。在部署OpenStack時(shí)要先部署Keystone,并把Nova、Swift、Glance、Neutron、Horizo等服務(wù)在Keystone中提前注冊,才能使其他服務(wù)被授權(quán)并允許使用。Keystone還為OpenStack提供了無需身份在線確認(rèn)就可以離線獲取身份PKI令牌的功能,還支持多用戶身份管理并支持角色接入控制和群組管理控制,給予了管理員較大的權(quán)利。
1.25Neutron——網(wǎng)絡(luò)&地址管理(Network)
Neutron前身Quantum項(xiàng)目,Quantum是在Folsom版發(fā)布的,到Havana版中正式變更為Neutron,為OpenStack提供靈活的物理網(wǎng)絡(luò)服務(wù),是云計(jì)算環(huán)境下的虛擬網(wǎng)絡(luò)功能組件。Neutron是基于可插拔式插件的架構(gòu),其核心插件Neutron-core plugin是核心插件,它提供邏輯API和功能實(shí)現(xiàn)之間的連接,當(dāng)網(wǎng)絡(luò)連接請求發(fā)出后,Neutron中的插件就會(huì)對網(wǎng)絡(luò)的連接各個(gè)方面進(jìn)行分析處理,它虛擬化了IP地址、子網(wǎng)、網(wǎng)絡(luò)中間設(shè)備,利用基于插件的架構(gòu)完成網(wǎng)絡(luò)連接。到Kilo版本,Neutron解耦核心插件以及分離高級服務(wù),并在IPv6功能方面有很多優(yōu)化,比如支持一個(gè)網(wǎng)絡(luò)分配多個(gè)IPv6前綴;增強(qiáng)了IPv6 路由的技術(shù)支持;可以為DHCPv4和DHCPv6設(shè)置額外的DHCP選項(xiàng)。
OpenStack云平臺虛擬集群分為兩層:一層是云計(jì)算,一層是云存儲(chǔ)。云計(jì)算層負(fù)責(zé)部署高復(fù)雜度任務(wù),虛擬服務(wù)器管理,鏡像管理,調(diào)度作業(yè)、資源配置策略等。該層相當(dāng)高級管理和指揮層,它操作這個(gè)環(huán)境,通過組件與用戶交互,為用戶提供UI界面,為開發(fā)者提供API端口,通過API訪問云管理,還要有身份驗(yàn)證系統(tǒng)和監(jiān)控系統(tǒng)。根據(jù)一些企業(yè)數(shù)據(jù)中心和網(wǎng)絡(luò)信息中心網(wǎng)絡(luò)拓?fù)涞奶攸c(diǎn),部署Openstack云平臺虛擬集群,當(dāng)前的架構(gòu)中為用戶提供了虛擬的服務(wù)以及強(qiáng)大的計(jì)算能力,該架構(gòu)在多服務(wù)器的基礎(chǔ)上并行計(jì)算及存儲(chǔ)能力,高效利用各節(jié)點(diǎn)的信息處理能力,節(jié)約了響應(yīng)時(shí)間及硬件成本。利用OpenStack服務(wù)部署的云平臺虛擬集群架構(gòu)設(shè)計(jì),如圖2所示:

圖2 基于OpenStack的云平臺虛擬集群架構(gòu)設(shè)計(jì)圖
3.1構(gòu)建OpenStack虛擬化集群系統(tǒng)架構(gòu)
云計(jì)算層通過虛擬化技術(shù)架構(gòu)整合的硬件資源,通過OpenStack的幾大核心項(xiàng)目組件的功能設(shè)計(jì)開發(fā),對服務(wù)器、存儲(chǔ)設(shè)備以及網(wǎng)絡(luò)整合形成高效、統(tǒng)一、規(guī)模龐大的虛擬資源管理層。OpenStack的核心項(xiàng)目組件既可以獨(dú)立工作,也可以合作部署,對于核心組件Nova部署在性能強(qiáng)勁的服務(wù)器中,對于Keystone、Glance、Swift分別部署但可以對服務(wù)器的要求降低,核心的項(xiàng)目分布式部署在多個(gè)服務(wù)器中,組成的集群架構(gòu)實(shí)現(xiàn)了云計(jì)算的高性能及較強(qiáng)的處理并發(fā)事件的能力。如圖2,Nova核心組件部署在高性能的服務(wù)器上,對各個(gè)組建服務(wù)器和交換機(jī)進(jìn)行監(jiān)控管理,各個(gè)網(wǎng)絡(luò)設(shè)備處于局域網(wǎng)中,使得虛擬數(shù)據(jù)訪問更加快捷安全,這樣虛擬化云計(jì)算服務(wù)層只有通過交換機(jī)與外網(wǎng)的通信,即在一個(gè)與外網(wǎng)不直接接觸的狀態(tài)。
3.2構(gòu)建OpenStack云平臺存儲(chǔ)系統(tǒng)架構(gòu)
云平臺的計(jì)算信息、網(wǎng)絡(luò)信息、鏡像數(shù)據(jù)等資源都需要資源層提供存儲(chǔ)服務(wù),OpenStack的云存儲(chǔ)可以構(gòu)建大規(guī)模大容量的存儲(chǔ)系統(tǒng),它還包括虛擬鏡像存儲(chǔ),對虛擬機(jī)的鏡像文件進(jìn)行存儲(chǔ)、檢索和查詢。在企業(yè)級云平臺部署中資金一般投入不能過高,因此在集群架構(gòu)的設(shè)計(jì)中,加入了對象存儲(chǔ)技術(shù),這種方式通過服務(wù)器的疊加和良好的可擴(kuò)展性,給了企業(yè)一個(gè)可以自主控制成本的優(yōu)化方式。如圖2,云平臺虛擬集群的存儲(chǔ)需要存儲(chǔ)服務(wù)器若干,可以根據(jù)具體需求增加擴(kuò)展存儲(chǔ)節(jié)點(diǎn),通過網(wǎng)絡(luò)交換機(jī)連接各存儲(chǔ)節(jié)點(diǎn),并需要身份認(rèn)證交換機(jī)控制訪問,代理服務(wù)器控制負(fù)載保證負(fù)載均衡,這些基本元素構(gòu)架了存儲(chǔ)系統(tǒng)。該云存儲(chǔ)可擴(kuò)展支持多應(yīng)用,支持文檔、數(shù)據(jù)、視頻存儲(chǔ)等靜態(tài)數(shù)據(jù)存儲(chǔ)和開發(fā)數(shù)據(jù)存儲(chǔ),無限擴(kuò)展所以容量無限,提供了彈性的云存儲(chǔ)。
3.3構(gòu)建OpenStack云系統(tǒng)橫向擴(kuò)展
構(gòu)建成功了OpenStack云系統(tǒng),新資源源源不斷的添加到服務(wù)器,就會(huì)有擴(kuò)展的需求,OpenStack支持橫向擴(kuò)展,用戶可以在已有的OpenStack云系統(tǒng)中直接添加新的服務(wù)器,在升級擴(kuò)展的過程中可以做到不影響系統(tǒng)運(yùn)行、不間斷系統(tǒng)服務(wù)。
3.3.1OpenStack云系統(tǒng)擴(kuò)展規(guī)劃
規(guī)劃云系統(tǒng)的系統(tǒng)擴(kuò)展性,需要平衡許多配置變量,可能很難達(dá)到完美配置方案,在實(shí)際運(yùn)維中通過監(jiān)控系統(tǒng)指標(biāo)可以對系統(tǒng)的規(guī)劃提供許多指標(biāo)從而進(jìn)一步優(yōu)化系統(tǒng)。一般從云系統(tǒng)的核心數(shù)量出發(fā),通過如下公式:
可運(yùn)行虛擬機(jī)估算數(shù)量=物理核數(shù)× 重用因子/ 每實(shí)例所需虛擬核數(shù)
系統(tǒng)需求的存儲(chǔ)估算容量=磁盤空間容量×可運(yùn)行虛擬機(jī)估算實(shí)例數(shù)量
通過公式計(jì)算出估算虛擬機(jī)數(shù)量和存儲(chǔ)容量就可以規(guī)劃出在云系統(tǒng)中需要添加多少資源。OpenStack的系統(tǒng)默認(rèn)值如表1所示:

表1 OpenStack的系統(tǒng)默認(rèn)值
舉一個(gè)實(shí)例是m1.medium類型的例子:假設(shè)每個(gè)虛擬機(jī)需要2個(gè)虛擬核,50GB存儲(chǔ)空間,物理核數(shù)200個(gè),CPU重用因子為16倍。那么按照公式,硬件環(huán)境可以支持的虛擬機(jī)實(shí)例為16×200/2=1600個(gè), 需要存儲(chǔ)空間為1600× 50≈80TB。
估算了需要擴(kuò)展的虛擬機(jī)數(shù)量和存儲(chǔ)空間,還要考慮用戶使用虛擬機(jī)的性能問題,不光考慮硬件本身的技術(shù)指標(biāo)還要考慮性能需求和預(yù)算的問題,性能方面包括CPU總性能以及核數(shù),存儲(chǔ)性能、內(nèi)存空間、網(wǎng)絡(luò)帶寬等因素。
3.3.2OpenStack控制器節(jié)點(diǎn)的擴(kuò)展
OpenStack控制器節(jié)點(diǎn)的擴(kuò)展比較方便,可以通過添加更多節(jié)點(diǎn)來橫向擴(kuò)展云系統(tǒng),如果我們準(zhǔn)備擴(kuò)展的云系統(tǒng)沒有更高運(yùn)行要求就可以按照和以前系統(tǒng)的配置進(jìn)行擴(kuò)展。如果我們遇到的是擴(kuò)展運(yùn)行要求更高一層的云系統(tǒng),那需要從注意以下幾點(diǎn)配置擴(kuò)展:用戶訪問量需要擴(kuò)展增強(qiáng),可以采用負(fù)載均衡的方式,把訪問請求分?jǐn)偟礁鱾€(gè)服務(wù)器中,只要是標(biāo)準(zhǔn)的HTTP負(fù)載均衡方式都能夠完成分?jǐn)偣ぷ?,也有些可以通過MySQL進(jìn)行負(fù)載均衡;多進(jìn)程問題,可以通過修改配置文件中的標(biāo)示,讓多進(jìn)程在幾個(gè)CPU硬件上分?jǐn)傔M(jìn)程,分配計(jì)算任務(wù);對于運(yùn)維多個(gè)服務(wù)問題,可以直接通過消息隊(duì)列通訊的服務(wù)把它們安裝到其他服務(wù)器中完成。
3.3.3硬件擴(kuò)展
云系統(tǒng)雖然靈活多變, 但是要求底層服務(wù)器的硬件穩(wěn)定并且要求配置匹配,要求服務(wù)器至少CPU類型相同,從而支持實(shí)例遷移。OpenStack的硬件采購支持商品硬件,就是市場上提供的各種標(biāo)配服務(wù)器,如果橫向擴(kuò)展預(yù)算不足也支持現(xiàn)有服務(wù)器升級改造。硬件改造完成后就著手規(guī)劃系統(tǒng)容量,首先考慮云控制器的容量,一般在允許的情況下應(yīng)給計(jì)算和存儲(chǔ)多預(yù)留容量,Nova-scheduler需根據(jù)內(nèi)存信息和CPU核數(shù)進(jìn)行資源管理和調(diào)配。如果遇到CPU不同的情況,則要根據(jù)CPU性能重新計(jì)算每個(gè)節(jié)點(diǎn)需要的存儲(chǔ)容量。在規(guī)劃中還要注意安裝監(jiān)控系統(tǒng),以便隨時(shí)了解資源的使用情況以及用戶增長情況,以便適時(shí)的考慮購置新硬件。最后,為了避免服務(wù)器高負(fù)荷運(yùn)轉(zhuǎn)造成的設(shè)備故障頻發(fā),可以在擴(kuò)展初期就進(jìn)行高負(fù)荷測試用來測試硬件的應(yīng)對能力,一般是通過不間斷的連續(xù)運(yùn)行CPU和磁盤的性能測試軟件3-7天,讓硬件的負(fù)荷達(dá)到極限。
通過開源OpenStack云計(jì)算平臺和虛擬化技術(shù)的開發(fā),本文提供了一種基于OpenStack的云平臺虛擬集群部署設(shè)計(jì)。該云平臺虛擬集群充分利用了OpenStack的眾多能夠提供獨(dú)立服務(wù)的核心項(xiàng)目組件,以及云平臺虛擬化的技術(shù)優(yōu)勢,完成了平臺構(gòu)建。利用OpenStack的Glance服務(wù)靈活的部署虛擬環(huán)境和各個(gè)服務(wù)器所需要的虛擬資源,不僅提高了資源利用率,還大大降低了成本。下一步還將進(jìn)一步研究該集群的其他系統(tǒng)功能效率,以便不斷提高其使用性能并完善負(fù)載均衡等問題。
[1] 朱近之.智慧的云計(jì)算[M].北京:北京電子工業(yè)出版社,2010.
[2] 雷萬云.云計(jì)算技術(shù)、平臺及應(yīng)用案例[Ml.北京.清華大學(xué)出版社,2011.
[3] 耿向東. 走下云端,讓云計(jì)算落地開花 [J]. 中國新通信,2012,03.
[4] 鄧倩妮,陳全.云計(jì)算及其關(guān)鍵技術(shù) [J].計(jì)算機(jī)應(yīng)用,2009,29
[5] 懷進(jìn)鵬,李沁,胡春明.基于虛擬機(jī)的虛擬計(jì)算環(huán)境研究與設(shè)計(jì)[J].軟件學(xué)報(bào),2007,18
[6] 盛憲鋒,及俊川,周小軍.基于虛擬化技術(shù)的私有云APCS平臺設(shè)計(jì)[J].計(jì)算機(jī)工程,2011,08
[7] 曾龍海,張博鋒,張麗華.基于云計(jì)算平臺的虛擬集群構(gòu)建技術(shù)研究[J].微電子學(xué)與計(jì)算機(jī),2010,27
Design of Virtual Cluster Deployment on Cloud Platform Based on OpenStack
Wu Jianing
(Shaanxi Xueqian Normal University, Xi,an 710100,China)
OpenStack is rapid raising by its flexible efficient resource scheduling, flexible security resource integration management and fully open source public projects. By the description of OpenStack core system framework and the detail analysis of its core project components,this paper proposes a design scheme of virtual cluster deployment on the cloud platform which can be applied to enterprise level OpenStack, and analyzes the cloud computing layer and cloud storage layer.
Cloud Computing; OpenStack; Clustered Deploy
TP311
A
1007-757X(2016)06-0015-03
2016.02.15)
陜西省教育科學(xué)規(guī)劃課題(SGH13377);陜西學(xué)前師范學(xué)院教學(xué)改革項(xiàng)目(15JG022Q)
武佳寧(1981-),女,西安人,陜西學(xué)前師范學(xué)院工程師,研究方向:網(wǎng)絡(luò)技術(shù)、實(shí)驗(yàn)室管理,西安,710100