曾瑋+饒堅(jiān)
摘要:針對(duì)手動(dòng)部署OpenStack云計(jì)算環(huán)境過(guò)程復(fù)雜,部署時(shí)間較長(zhǎng),以及OpenStack環(huán)境物理節(jié)點(diǎn)需求較多等問(wèn)題,提出了基于Mirantis Fuel及VirtualBox實(shí)現(xiàn)快速部署OpenStack環(huán)境的方法。首先介紹了VirtualBox虛擬機(jī)及虛擬網(wǎng)絡(luò)的基本構(gòu)建方法,然后闡述了Fuel自動(dòng)化部署工具的安裝步驟,最后,使用Fuel部署工具實(shí)現(xiàn)了OpenStack云計(jì)算環(huán)境的搭建。通過(guò)實(shí)際驗(yàn)證,本文提出的OpenStack云計(jì)算自動(dòng)化構(gòu)建方法快速、高效,具有一定的實(shí)用價(jià)值。
關(guān)鍵詞:Mirantis Fuel;VirtualBox;Openstack;云計(jì)算
中圖分類(lèi)號(hào):TP393 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-9416(2017)07-0069-07
隨著互聯(lián)網(wǎng)技術(shù)的不斷發(fā)展,云計(jì)算作為一種全新的資源管理模式,已經(jīng)逐漸得到了普及。云計(jì)算(Cloud Computing)[1-2]是基于互聯(lián)網(wǎng)的相關(guān)服務(wù)的增加、使用和交付模式,通常涉及通過(guò)互聯(lián)網(wǎng)來(lái)提供動(dòng)態(tài)易擴(kuò)展且經(jīng)常是虛擬化的資源。近年來(lái),多種云計(jì)算的實(shí)現(xiàn)方案也已經(jīng)逐漸成熟[3]。如VMware、Amazon AWS、Microsoft Azure、OpenStack、Eucalyptus等。其中,OpenStack云計(jì)算方案作為一種開(kāi)源、可靠、穩(wěn)定的云計(jì)算解決方案,已經(jīng)逐漸被崛起并被較為廣泛的采用[4-5]。此外,部分高校也實(shí)現(xiàn)了OpenStack云計(jì)算平臺(tái)的部署及運(yùn)用[6-10]。
雖然,國(guó)內(nèi)對(duì)于OpenStack的研究已經(jīng)較為深入,但是,OpenStack的部署方法依然有待優(yōu)化。由于OpenStack本身設(shè)計(jì)較為復(fù)雜,其部署過(guò)程通常較為困難。另一方面,手動(dòng)安裝OpenStack效率較低,不能適用于大量服務(wù)器的虛擬化工作。OpenStack的基礎(chǔ)測(cè)試環(huán)境需要至少4個(gè)計(jì)算機(jī)節(jié)點(diǎn)[11]。對(duì)于需要部署OpenStack測(cè)試環(huán)境的部分研究者而言,若在物理機(jī)上進(jìn)行部署,則耗時(shí)耗力。
為了能夠解決OpenStack手動(dòng)部署效率低的問(wèn)題,本文提出了一種基于Mirantis Fuel及VirtualBox的OpenStack快速部署方案。通過(guò)該方案部署OpenStack環(huán)境方法較為簡(jiǎn)答、效率較高。該方案較好地解決了目前高校研究者手動(dòng)部署OpenStack環(huán)境時(shí),部署效率低、環(huán)境安裝困難的問(wèn)題。
1 OpenStack環(huán)境快速搭建
1.1 VirtualBox的安裝及網(wǎng)絡(luò)環(huán)境配置
VirtualBox最初是由德國(guó)Innotek公司開(kāi)發(fā),由Sun Microsystems公司出品的軟件。VirtualBox是一款非常先進(jìn)的虛擬機(jī)軟件, 它實(shí)現(xiàn)了在原有物理操作系統(tǒng)上,虛擬出若干子系統(tǒng),這些子系統(tǒng)分別擁有各自的資源。VirtualBox的各個(gè)虛擬機(jī)可以同時(shí)運(yùn)行在宿主操作系統(tǒng)上,VirtualBox負(fù)則模擬相關(guān)的硬件資源[12]。
在進(jìn)行OpenStack的安裝之前,我們首先需要配置VirtualBox的網(wǎng)絡(luò)環(huán)境。需配置三個(gè)不同的虛擬網(wǎng)絡(luò),分別為Net1(10.20.0.0/24)、Net2(172.16.0.0/24)和Net3(172.16.1.0/24),如圖1所示。其中,Net1將作為虛擬機(jī)的管理網(wǎng)絡(luò),Net2作為虛擬機(jī)的公共訪問(wèn)網(wǎng)絡(luò),Net3作OpenStack節(jié)點(diǎn)的內(nèi)部通信網(wǎng)絡(luò)。具體安裝步驟如下:
(1)下載并安裝VirtualBox軟件。
(2)打開(kāi)VirtualBox虛擬機(jī),選擇File→Preference→Network,選擇Host-only Networks。選擇新建Host-Only網(wǎng)絡(luò)(命名為VirtualBox Host-Only Ethernet Adapter #2)。選擇“編輯網(wǎng)絡(luò)”,設(shè)置IPv4 Address為10.20.0.1,設(shè)置Network Mask為255.255.255.0。
(3)依據(jù)步驟(2),分別創(chuàng)建VirtualBox Host-Only Ethernet Adapter #3、#4,并分別設(shè)置IPv4地址為172.16.0.254和172.16.1.1,子網(wǎng)掩碼設(shè)置為255.255.255.0。在創(chuàng)建三個(gè)Host-Only網(wǎng)絡(luò)后,宿主計(jì)算機(jī)對(duì)應(yīng)出現(xiàn)三個(gè)對(duì)應(yīng)的網(wǎng)絡(luò)適配器。
1.2 虛擬機(jī)的創(chuàng)建及配置
1.2.1 創(chuàng)建虛擬機(jī)
(1)創(chuàng)建Fuel Master虛擬機(jī)節(jié)點(diǎn)。
Fuel管理節(jié)點(diǎn)將作為其他OpenStack的底層管理節(jié)點(diǎn)。它能夠?qū)崿F(xiàn)OpenStack的自動(dòng)部署。
打開(kāi)Virtual Box虛擬機(jī),創(chuàng)建Fuel Master虛擬機(jī)節(jié)點(diǎn)。設(shè)置該虛擬機(jī)類(lèi)型為L(zhǎng)inux、版本為Red Hat(64bit),設(shè)置內(nèi)存為4GB并創(chuàng)建VDI磁盤(pán)。
(2)創(chuàng)建Controller控制節(jié)點(diǎn)。
在Virtual Box中,創(chuàng)建控制節(jié)點(diǎn)的虛擬機(jī),并命名為OpenStack Controller。這里,設(shè)置此虛擬機(jī)的類(lèi)型為L(zhǎng)inux,版本為Ubuntu(64 bit),內(nèi)存為4GB,分配50GB磁盤(pán)空間。
(3)創(chuàng)建Compute虛擬機(jī)計(jì)算節(jié)點(diǎn)。
創(chuàng)建三個(gè)相同配置的虛擬機(jī)作為計(jì)算節(jié)點(diǎn),并依次命名為:OpenStack Compute 0、1、2。其類(lèi)型設(shè)置為L(zhǎng)inux,版本為Ubuntu(64 bit),虛擬機(jī)內(nèi)存為2GB,磁盤(pán)大小為50GB。
在創(chuàng)建完成之后,我們需要為計(jì)算節(jié)點(diǎn)分配更多的CPU資源。選中要編輯的計(jì)算節(jié)點(diǎn)虛擬機(jī),單擊Setting按鈕。在彈出的Setting對(duì)話(huà)框中,選擇System選項(xiàng),選擇Processor標(biāo)簽頁(yè)。為計(jì)算節(jié)點(diǎn)分配2個(gè)CPU的計(jì)算資源。endprint
創(chuàng)建完畢后,分別啟動(dòng)Fuel Master、Controller及Compute節(jié)點(diǎn),如圖2所示。
1.2.2 虛擬機(jī)的網(wǎng)絡(luò)配置
在完成虛擬機(jī)的創(chuàng)建后,我們需分別對(duì)其進(jìn)行網(wǎng)絡(luò)配置:
選中Fuel Master虛擬機(jī),點(diǎn)擊Setting按鈕,選擇網(wǎng)絡(luò)選項(xiàng)。在Adapter 1中,勾選“Enable Network Adapter”。設(shè)置“Attached to”為“Host-Only Adapter”。點(diǎn)擊Name的下拉菜單,選擇“VirtualBox Host-Only Ethernet Adapter #2”。此外,我們需要將“Promiscuous Mode”,即混雜模式設(shè)置為“Allow All”。最后,勾選“Cable Connected”。
按照上一步驟,設(shè)置Adapter 2。設(shè)置名稱(chēng)為VirtualBox Host-Only Ethernet Adapter #3。打開(kāi)Adapter 3,勾選“Enable Network Adapter”,并設(shè)置“Attached to”為“NAT”。
此處,啟用了Fuel Master的三塊網(wǎng)卡。其中,第一塊網(wǎng)卡設(shè)置為Nat 1,第二塊網(wǎng)卡則分配到Nat 2,而第三塊網(wǎng)卡則使用VirtualBox自帶的NAT網(wǎng)絡(luò)功能,實(shí)現(xiàn)NAT上網(wǎng)(如圖3所示)。
2 基于Fuel實(shí)現(xiàn)OpenStack快速安裝
2.1 安裝Fuel Master控制節(jié)點(diǎn)
2.1.1 Fuel的基本安裝
Mirantis開(kāi)發(fā)的Fuel是OpenStack自動(dòng)化部署的有利工具。Fuel最大的作用在于解決了OpenStack安裝繁瑣,入門(mén)門(mén)檻較高的問(wèn)題。這里,我們采用的是Mirantis Fuel 8.0版本。圖4給出了本次部署環(huán)境的整體架構(gòu)。
(1)安裝Fuel UI。訪問(wèn)Mirantis的官方網(wǎng)站(https://www.mirantis.com),下載Mirantis Fuel 8.0的ISO鏡像文件。
打開(kāi)VirtualBox,選中Fuel Master虛擬機(jī),打開(kāi)設(shè)置頁(yè)面并選擇Storage選項(xiàng)。選中“Controller:IDE”,添加下載的Mirantis Fuel 8.0 ISO鏡像。
啟動(dòng)Fuel Master虛擬機(jī),進(jìn)入引導(dǎo)頁(yè)面。當(dāng)進(jìn)入“Welcome to Fuel Installer”提示頁(yè)面后,選中第一項(xiàng),即“Fuel Install(Static IP)”,回車(chē)確定,進(jìn)入安裝。這里,安裝過(guò)程可能需要5-10分鐘。當(dāng)安裝界面提示“是否進(jìn)入Fuel設(shè)置頁(yè)面”時(shí),鍵入回車(chē),進(jìn)入Fuel設(shè)置頁(yè)面(如圖5所示)。
選定“Network Setup”,可以看到當(dāng)前Fuel自動(dòng)設(shè)置了第一塊網(wǎng)卡(eth0)的IP地址為10.20.0.2。默認(rèn)情況下,我們不需要進(jìn)行任何設(shè)置的更改,直接選擇“Quit Setup”,然后選擇不保存退出即可。完成了基本的設(shè)置后,F(xiàn)uel會(huì)繼續(xù)完成剩余的安裝部分,這部分的安裝可能需要10-20分鐘。
在完成安裝后,F(xiàn)uel會(huì)進(jìn)入“Welcome to the Fuel server”的歡迎界面。
(2)配置網(wǎng)卡信息。進(jìn)入/etc/sysconfig/network-scripts目錄,使用vi編輯ifcfg-eth1文件,將其內(nèi)容修改為如下代碼:
NAME=eth1
DEVICE=eth1
TYPE=Ethernet
BOOTPROTO=static
ONBOOT=yes
IPADDRESS=172.16.0.1
NETMASK=255.255.255.0
使用vi編輯ifcfg-eth2文件,將其內(nèi)容替換為如下代碼:
NAME=eth2
DEVICE=eth2
TYPE=Ethernet
BOOTPROTO=dhcp
ONBOOT=yes
執(zhí)行systemctl restart network.service重啟網(wǎng)絡(luò)。
2.1.2 配置Fuel Master節(jié)點(diǎn)
由于Fuel進(jìn)行了相關(guān)安全策略的限制,默認(rèn)情況下我們只能夠訪問(wèn)其SSH端口(22端口)。因此,要訪問(wèn)Fuel UI的管理界面,我們需要借助Xshell工具。
下載并安裝Xshell(http://www.netsarang.com/products/xsh_overview.html)。
選擇文件→新建,彈出“新建回話(huà)屬性對(duì)話(huà)框”。在主機(jī)輸入框中填入10.20.0.2,即Fuel Master虛擬機(jī)的IP地址(如圖6所示)。
在左側(cè)的類(lèi)別欄中,選擇“用戶(hù)身份驗(yàn)證”,然后依次填入用戶(hù)名和密碼。在上一小節(jié)中,F(xiàn)uel安裝成功后的歡迎界面中顯示了SSH登錄賬戶(hù)和密碼信息(用戶(hù)名root,密碼r00tme)。
在選擇列別欄中,選擇“隧道”,單擊“添加”按鈕。偵聽(tīng)端口和目標(biāo)端口均填寫(xiě)8443,目標(biāo)主機(jī)則應(yīng)為10.20.0.2,保存。
在完成Xshell的配置后,打開(kāi)會(huì)話(huà)窗口,選擇10.20.0.2進(jìn)行連接。在連接成功后,訪問(wèn)https://localhost:8443即可打開(kāi)Fuel UI。使用admin(密碼admin)即可登錄。自此,我們即完成了Fuel的配置和安裝(如圖7所示)。
2.2 安裝Controller節(jié)點(diǎn)和Compute節(jié)點(diǎn)
2.2.1 網(wǎng)絡(luò)配置
在前面的Fuel Master的安裝過(guò)程中,我們?yōu)槠湓黾恿薔et1和Net2兩個(gè)網(wǎng)絡(luò),以及NAT網(wǎng)絡(luò)。這里,我們同樣的方式為OpenStack Controller和Compute節(jié)點(diǎn)配置Net1和Net2網(wǎng)絡(luò),此外,還需要為其配置Net3網(wǎng)絡(luò),以作為OpenStack的內(nèi)部網(wǎng)絡(luò)。endprint
選擇OpenStack Controller節(jié)點(diǎn),打開(kāi)其網(wǎng)絡(luò)設(shè)置界面。將Adapter 1、2、3均設(shè)置為Host-only網(wǎng)絡(luò),并分別將其配置為VirtualBox Host-Only Ethernet Adapter #2、#3和#4。
按上一步驟,分別設(shè)置OpenStack Compute 0、1、2的Net1、Net2和Net3網(wǎng)絡(luò)。
依次啟動(dòng)Controller、Compute 0、Compute 1和Compute 2虛擬機(jī)。至此,Controller及Compute虛擬機(jī)網(wǎng)絡(luò)便配置成功。
2.2.2 安裝Controller和Compute節(jié)點(diǎn)
(1)安裝OpenStack環(huán)境。在Fuel中,OpenStack是以子環(huán)境的形式存在的。在部署Controller及Compute節(jié)點(diǎn)前,需要?jiǎng)?chuàng)建OpenStack環(huán)境。
首先,訪問(wèn)并登陸https://localhost:8443,在首頁(yè)中選擇“新建OpenStack環(huán)境”,并命名為“demo”。
勾選虛擬化技術(shù)為“QEMU-KVM”。這里,由于我們是在VirtualBox虛擬機(jī)上構(gòu)建OpenStack,因此必須勾選“QEMU-KVM”。設(shè)置Neutron網(wǎng)絡(luò)為“Neutron with VLAN segmentation”。
在存儲(chǔ)后端設(shè)置頁(yè)面,設(shè)置Block Storage、Object Storage、Image Storage和Ephemeral Storage的存儲(chǔ)為Ceph。最后,選擇“新建”按鈕創(chuàng)建OpenStack環(huán)境。
(2)安裝Controller節(jié)點(diǎn)及Compute節(jié)點(diǎn)。打開(kāi)新建的OpenStack環(huán)境,點(diǎn)擊節(jié)點(diǎn)標(biāo)簽,選擇增加節(jié)點(diǎn)。此時(shí),我們可以看到在節(jié)點(diǎn)列表中出現(xiàn)了四個(gè)未命名的節(jié)點(diǎn),如:Untitled(02:99)。這里,可以點(diǎn)擊Untitled名稱(chēng)進(jìn)行修改。這里,括號(hào)中的部分則表示節(jié)點(diǎn)實(shí)際對(duì)應(yīng)的VirtualBox虛擬機(jī)的MAC地址的最后四位。
在節(jié)點(diǎn)列表中,找到內(nèi)存為4GB的節(jié)點(diǎn),該節(jié)點(diǎn)即為即將部署為Controller節(jié)點(diǎn)的虛擬機(jī)。選中該節(jié)點(diǎn)。
在分配角色區(qū)域,勾選Controller,設(shè)置其為OpenStack Controller節(jié)點(diǎn)。選擇應(yīng)用變更,保存設(shè)置。
依次選中剩余的三個(gè)虛擬機(jī)節(jié)點(diǎn),并在分配角色區(qū)域,選擇Compute及Storage - Ceph OSD。點(diǎn)擊應(yīng)用變更,保存設(shè)置。
點(diǎn)擊Dashboard標(biāo)簽頁(yè),執(zhí)行“部署”操作。此時(shí),在節(jié)點(diǎn)頁(yè)面可以看到Fuel正在為Controller及Compute虛擬機(jī)節(jié)點(diǎn)安裝Ubuntu操作系統(tǒng)。在完成Ubuntu操作系統(tǒng)后,F(xiàn)uel會(huì)繼續(xù)分別為Controller及Compute節(jié)點(diǎn)安裝OpenStack相關(guān)服務(wù)。當(dāng)安裝完成后,F(xiàn)uel將提示四個(gè)節(jié)點(diǎn)的狀態(tài)均為已就緒(如圖8所示)。
訪問(wèn)http://172.16.0.3/horizon/auth/login/,打開(kāi)OpenStack的管理界面。使用admin(密碼admin)進(jìn)入OpenStack。此時(shí),我們即完成了Fuel自動(dòng)安裝部署OpenStack(如圖9所示)。
上傳Windows Server等操作系統(tǒng)ISO鏡像文件上傳到OpenStack平臺(tái),并進(jìn)行安裝。在安裝完畢后,可以通過(guò)遠(yuǎn)程桌面連接及VNC連接運(yùn)行于OpenStack中的操作系統(tǒng)(如圖10、圖11所示)。
這里,OpenStack的Glace負(fù)責(zé)管理操作系統(tǒng)鏡像文件。OpenStack可以基于已有鏡像進(jìn)行快速部署。我們可以根據(jù)實(shí)際需求,使用ISO鏡像工具制作個(gè)性化的ISO文件并上傳至OpenStack平臺(tái)。對(duì)不同應(yīng)用場(chǎng)景安裝不同的操作系統(tǒng)。至此,OpenStack云平臺(tái)即部署完成。
3 Fuel OpenStack自動(dòng)安裝及OpenStack手動(dòng)安裝對(duì)比
表1從多個(gè)不同角度,對(duì)“OpenStack物理環(huán)境手動(dòng)部署”和本文提出的“基于Fuel及VirtualBox的OpenStack自動(dòng)化部署”進(jìn)行了較為全面的對(duì)比。通過(guò)實(shí)踐發(fā)現(xiàn),由于OpenStack本身較為復(fù)雜,其手動(dòng)安裝過(guò)程通常較為繁瑣。初次安裝時(shí),我們有可能花費(fèi)若干天的時(shí)間才能實(shí)現(xiàn)OpenStack部署。而使用Fuel自動(dòng)化安裝工具,我們可以構(gòu)建基于VirtualBox的虛擬環(huán)境來(lái)快速安裝OpenStack。通過(guò)實(shí)際測(cè)試,F(xiàn)uel自動(dòng)化部署OpenStack比手動(dòng)部署OpenStack更為快速便捷。此外,通過(guò)使用VirtualBox虛擬機(jī),也很好地解決了部署OpenStack實(shí)驗(yàn)環(huán)境需要較多物理機(jī)的問(wèn)題。通過(guò)Fuel、VirtualBox及OpenStack的有機(jī)集合,我們能夠在較短的時(shí)間內(nèi),以較少的物理資源,實(shí)現(xiàn)OpenStack云計(jì)算環(huán)境的快速部署。
4 結(jié)語(yǔ)
本文闡述了基于Fuel及VirtualBox實(shí)現(xiàn)自動(dòng)化部署OpenStack云計(jì)算環(huán)境的基本方法,旨在幫助研究者快速進(jìn)入OpenStack云計(jì)算環(huán)境。基于VirtualBox虛擬機(jī)的部署方案,能夠較好地解決硬件條件不足的問(wèn)題。而基于Fuel自動(dòng)安裝OpenStack則較好地解決了OpenStack手動(dòng)部署較為復(fù)雜的問(wèn)題。通過(guò)實(shí)踐表明,本文提出的自動(dòng)化部署方案,切實(shí)可行,具有一定的研究?jī)r(jià)值。
參考文獻(xiàn)
[1]羅軍舟,金嘉暉,宋愛(ài)波,等.云計(jì)算:體系架構(gòu)與關(guān)鍵技術(shù)[J].通信學(xué)報(bào),2011,32(7):3-21.
[2]黃晨暉,林泳琴.基于云計(jì)算的虛擬計(jì)算機(jī)實(shí)驗(yàn)室的研究與實(shí)現(xiàn)[J].實(shí)驗(yàn)室研究與探索, 2010,29(11):178-181.
[3]李立耀,趙少卡,王燁,等.Dandelion:OpenStack云平臺(tái)的快速部署機(jī)制[J].計(jì)算機(jī)應(yīng)用, 2015,35(11):3070-3074.
[4]武佳寧.基于OpenStack的云平臺(tái)虛擬集群部署設(shè)計(jì)[J].微型電腦應(yīng)用,2016,32(6):15-17.
[5]趙少卡,李立耀,凌曉,等.基于OpenStack的清華云平臺(tái)構(gòu)建與調(diào)度方案設(shè)計(jì)[J].計(jì)算機(jī)應(yīng)用, 2013,33(12):3335-3338.
[6]李磊,李小寧,金連文.基于Openstack的科研教學(xué)云計(jì)算平臺(tái)的構(gòu)建與運(yùn)用[J].實(shí)驗(yàn)技術(shù)與管理, 2014,31(6):127-133.
[7]李磊,李達(dá)港,金連文,等.基于OpenStackSwift構(gòu)建高可用私有云存儲(chǔ)平臺(tái)[J].實(shí)驗(yàn)技術(shù)與管理, 2015,32(5):141-144.
[8]鄭楠,陳立南,鄭禮雄,等.基于CloudStack和OpenStack的KVM虛擬機(jī)跨平臺(tái)遷移方法[J].通信學(xué)報(bào), 2014,35(Z1):72-75.
[9]陳天,陳楠,黃志蘭,等.基于OpenStack的異構(gòu)混合云解決方案[J].電信科學(xué),2015,31(7):132-138.
[10]邵珠興,陳彩.基OpenStac的云存儲(chǔ)系統(tǒng)的大文件存儲(chǔ)方案[J].計(jì)算機(jī)工程與設(shè)計(jì), 2015,36(2):396-400.
[11]陳陶,顧雙雙,柳鈕滔,等.基OpenStack Juno版的私有云平臺(tái)部署及實(shí)踐[J].物聯(lián)網(wǎng)技術(shù), 2015,5(6):64-67.
[12]隨飛揚(yáng),王杰鋒,馬維駿,等.便攜網(wǎng)絡(luò)實(shí)驗(yàn)環(huán)境的構(gòu)建與應(yīng)用[J].實(shí)驗(yàn)科學(xué)與技術(shù),2014,12(2):12-15.endprint
數(shù)字技術(shù)與應(yīng)用2017年7期