芮坤坤
(安徽商貿(mào)職業(yè)技術(shù)學(xué)院電子信息工程系,蕪湖 安徽 241002)
云計(jì)算是一種通過(guò)網(wǎng)絡(luò)統(tǒng)一組織和靈活調(diào)用各種ICT信息資源,實(shí)現(xiàn)大規(guī)模計(jì)算的信息處理方式,云計(jì)算可以利用分布式計(jì)算和虛擬資源等技術(shù),通過(guò)網(wǎng)絡(luò)將分散的ICT信息資源(如計(jì)算與存儲(chǔ)、運(yùn)作應(yīng)用程序、軟件等)集中起來(lái)形成共享的資源池,并以動(dòng)態(tài)按需和可度量的方式向用戶提供網(wǎng)絡(luò)資源服務(wù),用戶也可以通過(guò)網(wǎng)絡(luò)獲取大量的ICT信息資源[1]。
按照云計(jì)算服務(wù)的資源所在層次,可以分為基礎(chǔ)設(shè)施即服務(wù)(IaaS)、平臺(tái)即服務(wù)(PaaS)、軟件即服務(wù)(SaaS)等,云計(jì)算可以面向機(jī)構(gòu)內(nèi)部提供網(wǎng)絡(luò)服務(wù)的私有云,也可以面向公眾提供服務(wù)的公共云,以及二者相結(jié)合的混合云。
基礎(chǔ)設(shè)施即服務(wù)(IaaS):消費(fèi)者使用“基礎(chǔ)計(jì)算資源”,如處理能力、存儲(chǔ)空間、運(yùn)作的網(wǎng)絡(luò)組件或中間件,消費(fèi)者可以掌控操作系統(tǒng)、存儲(chǔ)空間、已部署的網(wǎng)絡(luò)應(yīng)用程序和網(wǎng)絡(luò)組件(如防火墻、負(fù)載平衡器等),但不能掌控云基礎(chǔ)架構(gòu)[2]。
平臺(tái)即服務(wù)(PaaS):消費(fèi)者使用主機(jī)運(yùn)作應(yīng)用程序,消費(fèi)者可以掌控運(yùn)作應(yīng)用程序的環(huán)境(同時(shí)也擁有了部分主機(jī)的掌控權(quán)),消費(fèi)者不能掌控操作系統(tǒng)、存儲(chǔ)空間、運(yùn)作的網(wǎng)絡(luò)基礎(chǔ)架構(gòu),平臺(tái)是應(yīng)用程序的基礎(chǔ)架構(gòu)。
軟件即服務(wù)(SaaS):消費(fèi)者使用應(yīng)用程序,消費(fèi)者不能掌控操作系統(tǒng)、存儲(chǔ)空間、運(yùn)作的網(wǎng)絡(luò)基礎(chǔ)架構(gòu),SaaS是一種以提供服務(wù)觀念為基礎(chǔ)的平臺(tái),軟件服務(wù)提供商,是以租賃的概念向用戶提供服務(wù),而非購(gòu)買(mǎi),較為常見(jiàn)的一種方式是向用戶提供一組賬號(hào)和密碼。
本文的設(shè)計(jì)方案是搭建云計(jì)算IaaS平臺(tái),選用的是OpenStack項(xiàng)目。該平臺(tái)基于云計(jì)算基礎(chǔ)架構(gòu)(IaaS),基于行業(yè)內(nèi)最成熟、最流行的OpenStack擴(kuò)展的云計(jì)算架構(gòu)系統(tǒng),OpenStack以 Apache許可證授權(quán),是一個(gè)自由軟件和開(kāi)放源代碼項(xiàng)目,目前已經(jīng)吸引了超過(guò) 190家公司和 2 500個(gè)開(kāi)發(fā)者,得到IBM、HP、微軟、Dell、Intel、Red hat、思科、Oracle 等公司的支持和應(yīng)用。國(guó)內(nèi)已知的研發(fā)和應(yīng)用單位有:中科院計(jì)算所、華為、百度、新浪、京東、攜程及愛(ài)奇藝等[3]。
安徽商貿(mào)職業(yè)技術(shù)學(xué)院網(wǎng)絡(luò)中心建設(shè)私有云應(yīng)用服務(wù),選擇搭建安全的云計(jì)算平臺(tái)是首要任務(wù),通過(guò)云安全平臺(tái)實(shí)現(xiàn)計(jì)算資源的池化彈性管理,實(shí)現(xiàn)學(xué)校應(yīng)用的集中管理,實(shí)現(xiàn)統(tǒng)一安全認(rèn)證、授權(quán)管理。作為系統(tǒng)管理和應(yīng)用維護(hù)人員,需要進(jìn)行云計(jì)算架構(gòu)的設(shè)計(jì)、部署和管理。
安徽商貿(mào)職業(yè)技術(shù)學(xué)院云計(jì)算系統(tǒng)由兩臺(tái)服務(wù)器部署IaaS平臺(tái),兩臺(tái)服務(wù)器均運(yùn)行CentOS 6.5 64位操作系統(tǒng)。其中一臺(tái)服務(wù)器部署IaaS控制節(jié)點(diǎn)(Controller),另一臺(tái)服務(wù)器部署 IaaS計(jì)算節(jié)點(diǎn)(Compute Node),最后通過(guò)IaaS部署虛擬機(jī)VM。
IaaS控制節(jié)點(diǎn)需要安裝NTP服務(wù),用來(lái)完成與計(jì)算節(jié)點(diǎn)之間的時(shí)間同步,同時(shí)NTP協(xié)議采用了加密方式來(lái)防止惡意的協(xié)議攻擊。IaaS控制節(jié)點(diǎn)服務(wù)器需要配置系統(tǒng)環(huán)境變量,我們編輯了openrc.sh腳本文件,設(shè)置了如 OS_USERNAME、OS_PASSWORD、OS_TENANT_NAME等變量的值,將腳本內(nèi)容追加到.bash_profile文件中,使系統(tǒng)開(kāi)機(jī)之后可以自動(dòng)加載變量值。
IaaS平臺(tái)的運(yùn)行依賴MySQL數(shù)據(jù)庫(kù),同時(shí)為了安全考慮我們進(jìn)行了mysql_secure_installation,刪除數(shù)據(jù)庫(kù)首次安裝時(shí)創(chuàng)建的匿名用戶。
IaaS平臺(tái)控制節(jié)點(diǎn)的部署包含了 KeyStone、Glance、Nova、Dashboard服務(wù)的安裝和配置。
IaaS平臺(tái)最為關(guān)鍵的是部署KeyStone(身份服務(wù))。KeyStone(Identity Service)是云計(jì)算安全框架重要組件,負(fù)責(zé)身份驗(yàn)證、服務(wù)規(guī)則和服務(wù)令牌的功能,它實(shí)現(xiàn)了云安全框架的 Identity API。KeyStone類(lèi)似一個(gè)服務(wù)總線,或者說(shuō)是整個(gè)云平臺(tái)框架的注冊(cè)表,其他服務(wù)通過(guò)KeyStone來(lái)注冊(cè)其服務(wù)的Endpoint(服務(wù)訪問(wèn)的 URL),任何服務(wù)之間相互的調(diào)用,需要經(jīng)過(guò) KeyStone的身份驗(yàn)證,來(lái)獲得目標(biāo)服務(wù)的Endpoint以此來(lái)找到目標(biāo)服務(wù)。
KeyStone 包 含了 User、Tenant、Role、Service、Endpoint等概念。User即用戶,他們代表可以通過(guò)KeyStone進(jìn)行訪問(wèn)的人或程序;Tenant即租戶,它是各個(gè)服務(wù)中的一些可以訪問(wèn)的資源集合;Role即角色,代表一組用戶可以訪問(wèn)的資源權(quán)限;Service即服務(wù),如 Nova、Glance、Swift服務(wù);Endpoint,翻譯為“端點(diǎn)”,我們可以理解它是一個(gè)服務(wù)暴露出來(lái)的訪問(wèn)點(diǎn),如果需要訪問(wèn)一個(gè)服務(wù),則必須知道他的Endpoint,在 KeyStone 中包含一個(gè) Endpoint模板[4]。
我們?cè)诓渴餕eyStone時(shí)通過(guò)ADMIN_TOKEN=$(openssl rand-hex 10)生成隨機(jī)令牌,通過(guò)keystone-manage pki_setup--keystone-user keystone--keystone-group keystone創(chuàng)建簽名密鑰和證書(shū)。通過(guò)keystone user-create--name=admin--pass=$ADMIN_PASS--email=$MAIL_ADMIN_ADDR,keystone role-create--name=admin,keystone tenant-create--name=admin--description="Admin Tenant",keystone user-roleadd--user=admin--tenant=admin--role=admin創(chuàng)建身份認(rèn)證服務(wù)的管理員、角色等信息。
Glance項(xiàng)目的主要功能是IaaS中提供虛擬機(jī)鏡像的發(fā)現(xiàn)、注冊(cè)和檢索服務(wù)。它通過(guò)提供標(biāo)準(zhǔn)的REST接口,接受對(duì)不同后端存儲(chǔ)的鏡像的查詢請(qǐng)求和返回鏡像的相關(guān)信息。我們通過(guò)keystone user-create--name=glance--pass=$GLANCE_PASS--email=$MAIL_GLANCE_ADDR創(chuàng)建用戶鏡像服務(wù),對(duì)鏡像服務(wù)的 glance-api.conf、glance-registry.conf文件相關(guān)參數(shù)進(jìn)行配置。
Nova組件的主要功能是提供按需分配的虛擬機(jī)。它類(lèi)似于 Rackspaces的 Cloud Servers和亞馬遜的Amazon Elastic Compute Cloud(EC2)。我們通過(guò)keystone user-create--name=nova--pass=$NOVA_PASS在身份認(rèn)證服務(wù)中創(chuàng)建了Nova服務(wù)用戶,對(duì) nova 服務(wù)的“/etc/nova/api-paste.ini”文件設(shè)置相應(yīng)參數(shù)。
Dashboard是一個(gè) Web前端控制臺(tái),用來(lái)展示OpenStack的功能。一個(gè)Dashboard通常情況下由4個(gè)組件組成,分別為 panel、tab(可選)、table和view。其中panel、tab和 table用于導(dǎo)航,真正數(shù)據(jù)存放在 view中。安裝完Dashboard之后,對(duì)“etc/openstack-dashboard/local_settings”文件進(jìn)行參數(shù)設(shè)置,將Caches選項(xiàng)功能打開(kāi),同時(shí)對(duì)ALLOWED_HOSTS、OPENSTACK_HOST參數(shù)進(jìn)行正確設(shè)置。
經(jīng)過(guò)上述幾個(gè)服務(wù)的設(shè)置之后,我們的IaaS控制節(jié)點(diǎn)搭建成功,通過(guò)瀏覽器可以訪問(wèn)到前端界面,如圖1所示。
IaaS計(jì)算節(jié)點(diǎn)的部署需要對(duì)系統(tǒng)環(huán)境變量進(jìn)行配置,包含 HOSTNAME_CONT、HOST_IP_CONT等參數(shù)的配置。在計(jì)算節(jié)點(diǎn)中對(duì)“/etc/nova/nova.conf”文件中的參數(shù)進(jìn)行多項(xiàng)設(shè)置,如openstackconfig--set/etc/nova/nova.conf keystone_authtoken admin_password$NOVA_PASS配置,由于配置步驟較多在此不進(jìn)行贅述。
云計(jì)算網(wǎng)絡(luò)設(shè)置我們是通過(guò)neutron項(xiàng)目完成,將neutron軟件包安裝完之后,我們進(jìn)行了腳本語(yǔ)言的編寫(xiě),#!/bin/bash
執(zhí)行此腳本之后生成了FlatNet扁平網(wǎng)絡(luò)結(jié)構(gòu),至此整個(gè)OpenStack IaaS平臺(tái)搭建完成。
輸入正確的帳戶名和密碼即可進(jìn)入云計(jì)算IaaS平臺(tái)Web界面,界面里包含了系統(tǒng)面板和管理員選項(xiàng),可以進(jìn)行云主機(jī)類(lèi)型添加、鏡像管理和網(wǎng)絡(luò)設(shè)置等操作。
我們?cè)谠浦鳈C(jī)選項(xiàng)中進(jìn)行了啟動(dòng)云主機(jī)操作,對(duì)云主機(jī)的名稱(chēng)、系統(tǒng)參數(shù)、網(wǎng)絡(luò)等選項(xiàng)進(jìn)行相關(guān)設(shè)置,如圖2所示。
通過(guò)正確的部署之后,就開(kāi)啟了一臺(tái)虛擬機(jī)VM,此虛擬機(jī)可獲取到正確的硬件參數(shù)配置和網(wǎng)絡(luò)參數(shù)配置,如圖3所示。
圖2 啟動(dòng)云主機(jī)
圖3 云主機(jī)虛擬化界面
基于OpenStack平臺(tái)的云計(jì)算系統(tǒng)在安徽商貿(mào)職業(yè)技術(shù)學(xué)院網(wǎng)絡(luò)中心進(jìn)行了有效而充分的測(cè)試,實(shí)現(xiàn)了學(xué)校資源的彈性和安全的集中化管理,在后續(xù)工作中我們的研究重點(diǎn)將是云主機(jī)的存儲(chǔ)、訪問(wèn)控制、熱遷移及網(wǎng)絡(luò)VLAN部署。
[1]陳全,鄧倩妮.云計(jì)算及其關(guān)鍵技術(shù)[J].計(jì)算機(jī)應(yīng)用,2009(9):2562-2567.
[2]張耀祥.云計(jì)算和虛擬化技術(shù)[J].計(jì)算機(jī)安全,2011(5):80-82.
[3]李知杰,趙健飛.OpenStack開(kāi)源云計(jì)算平臺(tái)[J].軟件導(dǎo)刊,2012(12):10-11.
[4]黃志成.開(kāi)源云計(jì)算OpenStack在高校計(jì)算機(jī)機(jī)房中的應(yīng)用研究[J].計(jì)算機(jī)與現(xiàn)代化,2013(3):204-206.