宋凌怡
(四川民族學(xué)院 計算機(jī)科學(xué)系,四川 康定 626001)
基于OpenStack的高校云數(shù)據(jù)中心研究與實(shí)現(xiàn)
宋凌怡
(四川民族學(xué)院計算機(jī)科學(xué)系,四川康定626001)
隨著高校信息化建設(shè)的不斷深入,應(yīng)用系統(tǒng)越來越多,導(dǎo)致數(shù)據(jù)中心規(guī)模不斷擴(kuò)大,問題越來越多,傳統(tǒng)數(shù)據(jù)中心已經(jīng)不能適應(yīng)高校信息化的發(fā)展.針對傳統(tǒng)數(shù)據(jù)中心在建設(shè)和管理中暴露出的問題,在分析當(dāng)前主流云計算平臺的基礎(chǔ)上,提出了采用開源云計算平臺OpenStack構(gòu)建云數(shù)據(jù)中心,并給出了部署方案.
OpenStack;開源;云計算;數(shù)據(jù)中心
近年來,各高校在教育現(xiàn)代化和信息化方面發(fā)展迅速,取得了巨大成績,基本都建成了主干帶寬為千兆或萬兆,百兆或千兆到桌面的校園網(wǎng)絡(luò)環(huán)境.建立了一批適應(yīng)科研、教學(xué)、管理等需求的各類信息化應(yīng)用,成為了學(xué)校正常運(yùn)轉(zhuǎn)必須可少的技術(shù)手段.然而,隨著應(yīng)用的不斷增多,高校數(shù)據(jù)中心的規(guī)模和運(yùn)維成本不斷增加,早期在數(shù)據(jù)中心的規(guī)劃、設(shè)計和建設(shè)中不夠合理和全面所帶來的利用率低、能耗高、管理復(fù)雜、安全性差等問題日益突現(xiàn),成為了高校信息發(fā)展的瓶頸.針對高校數(shù)據(jù)中心建設(shè)和運(yùn)維中出現(xiàn)的這些問題,技術(shù)人員嘗試了許多方法來進(jìn)行解決,云計算的出現(xiàn)為解決這些問題提供了新的技術(shù)手段.通過云計算可以對數(shù)據(jù)中心中的計算、網(wǎng)絡(luò)和存儲等各種資源進(jìn)行整合和虛擬化,讓每個應(yīng)用系統(tǒng)能夠在獨(dú)立的虛擬環(huán)境中運(yùn)行,保證了數(shù)據(jù)中心的可靠性[1].
云計算(Cloud Computing)是分布式計算(Distributed Computing)、并行計算(Parallel Computing)、效用計算(Utility Computing)、網(wǎng)絡(luò)存儲(Network Storage Technologies)、虛擬化(Virtualization)、負(fù)載均衡(Load Balance)、熱備份冗余(High Available)等傳統(tǒng)計算機(jī)和網(wǎng)絡(luò)技術(shù)發(fā)展融合的產(chǎn)物[2].他將服務(wù)器、網(wǎng)絡(luò)、存儲、應(yīng)用軟件等軟硬件資源集中在一起進(jìn)行共享,按需提供給計算機(jī)、其他設(shè)備或終端用戶.云計算可以為用戶提供以下3個層次的服務(wù)[3],其體系結(jié)構(gòu)如圖1所示:
(1)基礎(chǔ)設(shè)施即服務(wù)(Infrastructure as a Service,IaaS).用戶通過互聯(lián)網(wǎng)可以獲得服務(wù)器、存儲設(shè)備等計算機(jī)基礎(chǔ)硬件的服務(wù).
(2)平臺即服務(wù)(Platform as a Service,PaaS). PaaS作為SaaS的一種應(yīng)用,將軟件開發(fā)平臺作為一種服務(wù)以SaaS的模式提供給用戶使用.它的出現(xiàn)加快了SaaS的發(fā)展,特別是SaaS應(yīng)用的開發(fā)速度.
(3)軟件即服務(wù)(Software as a Service,SaaS).用戶不需要購買軟件,而是通過互聯(lián)網(wǎng)租用服務(wù)商提供的基于Web的軟件來管理企業(yè)經(jīng)營活動的一種軟件提供模式.
圖1 云計算服務(wù)體系結(jié)構(gòu)
從云計算的服務(wù)體系結(jié)構(gòu)中可以看出,對于數(shù)據(jù)中心而言實(shí)現(xiàn)的是IaaS,其系統(tǒng)架構(gòu)如圖2所示.
目前,構(gòu)建IaaS有商業(yè)軟件和開源軟件兩種方式.商業(yè)軟件主要有VMware 的vSphere、微軟的Hyper-V Server、Citrix 的Xen Server,其特點(diǎn)是性能穩(wěn)定、功能強(qiáng)大、操作簡單、服務(wù)體系完備,但價格較高,完全依賴于軟件出品公司.開源軟件相對于商業(yè)軟件來說,無需購買,代碼開源能夠針對具體實(shí)際進(jìn)行靈活配置,甚至對代碼進(jìn)行修改.其劣勢在于沒有完備的服務(wù)體系,對使用者的技術(shù)水平要求較高,但由于開源軟件擁有眾多的使用者,特別是像微軟、谷歌、IBM、思科、HP、Dell等廠商加入到了開源云平臺的行列,服務(wù)不完備、硬件支持不好的劣勢得到了彌補(bǔ).
圖2 I aa S數(shù)據(jù)中心架構(gòu)圖
本文針對高校數(shù)據(jù)中心在建設(shè)和管理方面存在的問題,以建設(shè)滿足科研、教學(xué)、管理需求的數(shù)據(jù)中心為目標(biāo),采用開源云計算平臺中應(yīng)用最為廣泛,支持最好的OpenStack Kilo版構(gòu)建一個可對資源進(jìn)行共享和彈性分配、能夠快速擴(kuò)展的云數(shù)據(jù)中心.
在全球范圍內(nèi),已經(jīng)有多個開源云平臺,其中以下4種開源系統(tǒng)是使用最廣泛的主流云計算平臺[4]:
1.1OpenStack
OpenStack 最初由NASA(National Aeronautics and Space Administration,美國國家航空航天局)和Rackspace公司合作開發(fā)并發(fā)起的開源云計算平臺管理項(xiàng)目,整合了Rackspace 的Cloud Files Platform和NASA 的Nebula Platform技術(shù),其目標(biāo)是提供一個免費(fèi)、資源豐富、統(tǒng)一標(biāo)準(zhǔn)、易于實(shí)施和擴(kuò)展的云計算平臺.2010 年7 月以Apache 2.0 許可證授權(quán)開源,源代碼來源于NASA 的Nebula 云平臺和Rackspace的分布式云存儲項(xiàng)目. 目前該項(xiàng)目已經(jīng)有包括Rackspace、RedHat、AT&T、Nebula、HP、Canonical、IBM在內(nèi)的400 個成員.
1.2Eucalyptus
Eucalyptus是由加州大學(xué)圣芭芭拉分校計算機(jī)科學(xué)系一個研究項(xiàng)目發(fā)展起來的,商業(yè)化后由Eucalyptus系統(tǒng)公司運(yùn)營,在2014年9月被HP公司收購.不過,Eucalyptus仍然作為開源項(xiàng)目進(jìn)行開發(fā). Eucalyptus作為AmazonEC2服務(wù)的開源實(shí)現(xiàn),由云、集群、節(jié)點(diǎn)、存儲控制器和Walrus組成,并提供了與Amazon云平臺E C2和S3接口.Eucalyptus除H P公司外,還得到了Amazon公司和Dell公司的支持.
1.3CloudStack
CloudStack最初由VMOps公司(2010年改名為Cloud.com公司)開發(fā),他分為通過GPLv3協(xié)議授權(quán)的社區(qū)(開源)版和商業(yè)版.2011年Citrix System公司收購Cloud.com公司后將代碼全部開放,并在2012年提供給了Apache基金會,隨后在2013年3月成為了Apache正式開源項(xiàng)目.Cloud-Stack采用插件的形式來實(shí)現(xiàn)對不同虛擬化技術(shù)的支持,是一個高可用、高可擴(kuò)展、虛擬機(jī)能夠方便進(jìn)行大規(guī)模部署和管理的云平臺,目前已有GoDaddy等多個應(yīng)用.
1.4OpenNebula
OpenNebula是歐盟云計算項(xiàng)目RESERVOIR中一個子項(xiàng)目,目前已經(jīng)是VEEM(Virtual Execute Environment Manager,虛擬執(zhí)行環(huán)境管理器)的核心組件.他由歐洲研究學(xué)會發(fā)起,專為基于L inu x的虛擬機(jī)而設(shè)計,目的是為了解決虛擬化管理問題.由于OpenNebula重點(diǎn)在用戶驅(qū)動,導(dǎo)致支持的公司較少.
圖3 OpenStack架構(gòu)
OpenStack由4個核心服務(wù)組件和3個公共服務(wù)組件組成[5].分別是:用于配置和管理計算資源的Nova 計算服務(wù)(Compute as a Service)組件;用于管理網(wǎng)絡(luò)的Neutron 網(wǎng)絡(luò)服務(wù)(Networking as a Service)組件;用于自動在多個節(jié)點(diǎn)之間復(fù)制數(shù)據(jù)的Swift 對象存儲服務(wù)(Object Storage as a Service)組件;用于創(chuàng)建計算實(shí)例的Cinder 塊存儲服務(wù)(Block Storage as a Service)組件;用于管理虛擬機(jī)鏡像的Glance 鏡像服務(wù)(Image as a Service)組件;用于身份認(rèn)證的Keystone認(rèn)證服務(wù)(Identity as a Service) 組件;用于提供用戶圖形界面的Horizon 儀表盤服務(wù)(Dashboard as a Service)組件,其架構(gòu)如圖3所示.
3.1部署環(huán)境
根據(jù)高校數(shù)據(jù)中心的特點(diǎn)和OpenStack 的架構(gòu),這里使用9 臺服務(wù)器安裝Keystone 組件、Glance組件、Nova 組件、Neutron 組件、Cinder 組件、Horizon 組件,分別作為控制節(jié)點(diǎn)、網(wǎng)絡(luò)節(jié)點(diǎn)、計算節(jié)點(diǎn)和存儲節(jié)點(diǎn).為保證整個系統(tǒng)的可靠性,將這些組件安裝在多臺服務(wù)器上,并啟用HA(High Available高可用集群).操作系統(tǒng)使用Ubuntu,數(shù)據(jù)庫使用MySQL.
3.2安裝部署
3.2.1部署基礎(chǔ)組件
OpenStack需要使用數(shù)據(jù)庫存儲運(yùn)行的狀態(tài)和信息,使用消息組件將消息在各個服務(wù)內(nèi)進(jìn)行傳輸,所以在安裝其它組件前必須安裝數(shù)據(jù)庫和消息組件.
在部署數(shù)據(jù)庫時,我們安裝多個MySQL服務(wù)端,通過NFS方式使用存儲在存儲池中的同一個數(shù)據(jù)庫文件,并啟用H eartbeat服務(wù)實(shí)現(xiàn)HA.
由于OpenStack使用AMQP(Advanced Message Queuing Protocol,高級消息隊列協(xié)議)作為消息傳遞的技術(shù),所以O(shè)penStack可以使用ZeroMQ、RabbitMQ、Qpid等支持AMQP的軟件.因?yàn)镽abbit-MQ是第一個被OpenStack使用的消息傳遞軟件,這里使用它作用為各組件的消息傳遞軟件,同樣也采用HA方式部署.
3.2.2部署Keystone組件
在部署Keystone組件時按照以下步驟進(jìn)行部署:第一步:安裝PIP工具、MySQL客戶端等必要的支持組件;第二步:修改“/etc/keystone/”下的配置文件;第三步,安裝服務(wù);第四步,創(chuàng)建Keystone數(shù)據(jù)庫,并建立表結(jié)構(gòu);第五步,創(chuàng)建Keystone的管理員用戶;第六步,定義Keystone使用的APIEndpoints 和Services.
3.2.3部署Glance組件
部署 Glance組件主要是對 glance-api和glance-registry兩個服務(wù)的安裝和配置,安裝和配置過程相對簡單,需要注意的是需要在Keystone中創(chuàng)建Glance的用戶、服務(wù)和Endpoint.
3.2.4部署Neutron組件
Neutron負(fù)責(zé)OpenStack的網(wǎng)絡(luò)管理功能,由于Neutron中的網(wǎng)絡(luò)功能的實(shí)際上是以插件的形式通過系統(tǒng)底層來實(shí)現(xiàn)的,所在,在每個節(jié)點(diǎn)上都需要安裝Neutron,這樣才能實(shí)現(xiàn)完全的網(wǎng)絡(luò)管理功能.
3.2.5部署Nova組件
Nova組件在部署前還是要先安裝必須的第三方組件,特別是由于Nova組件本身并不能實(shí)現(xiàn)虛擬化,必須安裝其支持的K VM、Xen等虛擬化軟件.在安裝完支持組件后,應(yīng)該按照以下步驟進(jìn)行安裝:第一步,安裝Nova組件包;第二步,候改“/etc/nova/nova.conf”配置文件;第三步,創(chuàng)建并初始化Nova數(shù)據(jù)庫;第四步,在Keystone中創(chuàng)建Nova用戶和Endpoint,并配置虛擬機(jī)的用戶名和密碼;第六步,為虛擬機(jī)設(shè)置可供分配的IP地址池.
3.2.6部署Cinder組件
Cinder組件有三個服務(wù):cinder-volume、cinder-api、cinder-sche duler,需要在控制節(jié)點(diǎn)上安裝負(fù)責(zé)接收其他命令和組件對cinder-volume請求的cinder-api和Cinder調(diào)度程序cinder-scheduler.
3.2.7部署Horizon組件
Horizon 作為OpenStack 的Dashboard,他通過WEB 頁面進(jìn)行訪問,可以讓用戶通過圖形界面使用OpenStack. 其安裝比較簡單,只需要通過命令“#apt-get install -y openstack-dashboard memcached”即可完成部署.
云計算技術(shù)的出現(xiàn),為解決傳統(tǒng)數(shù)據(jù)中心存在的各種問題提供了新的技術(shù)手段,而開源軟件的使用保證了在實(shí)現(xiàn)云數(shù)據(jù)中心的同時能夠大大降低建設(shè)成本.本文首先對云計算技術(shù)的進(jìn)行了簡要介紹,然后在對主流開源云平臺軟件進(jìn)行分析的基礎(chǔ)上,采用OpenStack構(gòu)建了基于云計算技術(shù)的數(shù)據(jù)中心,提升了數(shù)據(jù)中心的可靠性和可用性,使數(shù)據(jù)中心更好地為高校信息化建設(shè)服務(wù).
〔1〕黃榮.OpenStack在高校數(shù)據(jù)中心的應(yīng)用研究[J].赤峰學(xué)院學(xué)報(自然科學(xué)版),2014(6):18-19.
〔2〕百度百科.云計算[EB/OL].http://baike.baidu. com/view/1316082.htm.2016-06-14.
〔3〕孫濤.基于開源軟件的高校云計算試驗(yàn)環(huán)境部署[J].湖北科技學(xué)院學(xué)報,2015(6):143-145.
〔4〕姜毅,王偉軍,曹麗,劉凱,陳桂強(qiáng).基于開源軟件的私有云計算平臺構(gòu)建 [J].電信科學(xué),2013(1):68-75.
〔5〕黃凱,毛偉杰,顧駿杰.OpenStack實(shí)戰(zhàn)指南[M].北京:機(jī)械工業(yè)出版社,2014.37-54.
T P308
A
1673-260X(2016)08-0033-03
2016-04-24
四川省教育廳自然科學(xué)一般項(xiàng)目(15ZB0329)