李志軍, 孔朋朋, 雷振伍
?。ū狈焦I(yè)大學(xué) 電氣與控制工程學(xué)院, 北京 100144)
摘要:云計(jì)算是當(dāng)前計(jì)算機(jī)領(lǐng)域非常熱門的研究方向,在此背景下,闡述了云計(jì)算、私有云的相關(guān)概念及其應(yīng)用。詳細(xì)介紹了開源云計(jì)算框架OpenStack及其核心組件。提出了一個(gè)基于OpenStack的私有云平臺(tái)架構(gòu)方案,在實(shí)際工作中部署了私有云平臺(tái)并對(duì)相應(yīng)的計(jì)算、存儲(chǔ)、網(wǎng)絡(luò)、鏡像等資源進(jìn)行管理。
關(guān)鍵詞:云計(jì)算;私有云服務(wù);OpenStack
0引言
云計(jì)算是網(wǎng)格計(jì)算、分布式計(jì)算、效用計(jì)算、網(wǎng)格存儲(chǔ)、虛擬化、負(fù)載均衡等傳統(tǒng)計(jì)算機(jī)技術(shù)和網(wǎng)絡(luò)技術(shù)發(fā)展融合的產(chǎn)物[1]。狹義上來說,云計(jì)算指IT基礎(chǔ)設(shè)施的交付和使用模式,用戶通過網(wǎng)絡(luò)從“云”端獲取資源(硬件、平臺(tái)、軟件),云中的資源隨取隨得、隨時(shí)擴(kuò)展、按需使用,正如大家使用水電這些公用資源一樣。廣義上來說,云計(jì)算是指服務(wù)的交付和使用模式,用戶通過網(wǎng)絡(luò)獲得所需的服務(wù),這些服務(wù)是任意的,既可以是與信息技術(shù)(Information Technology, IT)相關(guān)的,也可以是其他的服務(wù)。云計(jì)算從服務(wù)性質(zhì)上來說,可以分為公有云、私有云和混合云。公有云是云計(jì)算服務(wù)提供商為公眾提供服務(wù)的云計(jì)算平臺(tái);私有云則是云計(jì)算服務(wù)提供商為企業(yè)在其內(nèi)部建設(shè)的專有云計(jì)算系統(tǒng);混合云則是同時(shí)提供公有云和私有云服務(wù)的一種折中方案[2]。
本文介紹了當(dāng)前最具有發(fā)展前景的云平臺(tái)開源框架OpenStack,研究私有云搭建的可行性方案,給出方案的整體架構(gòu),并通過PackStack工具部署了一個(gè)可用的私有云環(huán)境,通過實(shí)際搭建的私有云平臺(tái)來研究私有云資源的管理技術(shù)。
1OpenStack介紹
1.1OpenStack簡介
OpenStack是一個(gè)由美國國家航空航天局(National Aeronautics and Space Administration, NASA)和Rackspace公司合作研發(fā)并發(fā)起的開源項(xiàng)目,旨在為所有的公有云和私有云的建設(shè)及管理者提供可滿足自身需求的、易于實(shí)施且可大規(guī)模擴(kuò)展的開源云計(jì)算平臺(tái)[3]。OpenStack云計(jì)算平臺(tái)包括Keystone(身份認(rèn)證)、Nova(計(jì)算)、Glance(鏡像)、Neutron(網(wǎng)絡(luò))、Cinder(塊存儲(chǔ))、Swift(對(duì)象存儲(chǔ))、Horizon(前端界面)等組件。OpenStack作為目前最為火熱的開源云計(jì)算項(xiàng)目,具有強(qiáng)大的社區(qū)支持,有大量的開發(fā)人員參與,發(fā)展迅速。國際上已經(jīng)有很多使用OpenStack搭建的公有云、私有云、混合云,例如RackspaceCloud、惠普云、MercadoLibre的IT基礎(chǔ)設(shè)施云、AT&T的CloudArchitec、戴爾的OpenStack解決方案等。而在國內(nèi),OpenStack的熱度也在逐漸升溫,阿里巴巴、百度、中興、華為等都對(duì)OpenStack產(chǎn)生了濃厚的興趣并參與其中。本文使用的是 OpenStack 的第十個(gè)版本——Juno 版本。
1.2OpenStack核心組件
OpenStack主要有 7 個(gè)核心組件:
(1) 計(jì)算組件(Nova):為虛擬主機(jī)提供計(jì)算資源。通過虛擬化技術(shù)(如 KVM、 LXC、 Xen、 VMware Esxi 等實(shí)現(xiàn)計(jì)算、網(wǎng)絡(luò)、存儲(chǔ)等資源池的構(gòu)建及應(yīng)用),將計(jì)算能力通過虛擬機(jī)的方式交付用戶[4]。
(2) 身份認(rèn)證(Keystone):為OpenStack 提供統(tǒng)一的授權(quán)和身份驗(yàn)證。
(3) 網(wǎng)絡(luò)管理(Neutron):管理虛擬機(jī)的網(wǎng)絡(luò)資源,如IP 的分配、劃分子網(wǎng)、 內(nèi)網(wǎng)和公網(wǎng)的映射連接、 負(fù)載均衡、防火墻等功能。
(4) Web界面(Horizon):基于 OpenStack API 接口,使用 python 語言開發(fā)的 Web 端管理門戶。
(5) 鏡像管理(Glance):云平臺(tái)虛擬機(jī)鏡像的存儲(chǔ)、查詢、管理組件。
(6) 塊存儲(chǔ)(Cinder):為云主機(jī)提供云硬盤服務(wù),實(shí)現(xiàn)塊存儲(chǔ)的管理。
(7) 對(duì)象存儲(chǔ)(Swift): 對(duì)象文件的存儲(chǔ)讀取,實(shí)現(xiàn)方式使用的是鍵值對(duì)形式。
各個(gè)組件之間的關(guān)系如圖1所示。
2私有云平臺(tái)架構(gòu)
2.1私有云概述
私有云主要是在企業(yè)或公司內(nèi)部使用,代替?zhèn)鹘y(tǒng)的IT服務(wù)。與傳統(tǒng)IT架構(gòu)相比,私有云將硬件資源(包括計(jì)算資源、存儲(chǔ)資源、網(wǎng)絡(luò)資源等)通過虛擬化技術(shù)提供給企業(yè)內(nèi)部使用,其對(duì)外是不可見的,此外,私有云可以根據(jù)客戶對(duì)服務(wù)的性能要求、成本要求,提供個(gè)性化的架構(gòu),是一種真正以服務(wù)為導(dǎo)向的云環(huán)境,因此私有云被視為極具發(fā)展?jié)摿εc研究價(jià)值的服務(wù),各大公司都在不斷加入此浪潮之中。 對(duì)于私有云的部署,企業(yè)可以根據(jù)自身特點(diǎn)與需求,采用不同的解決方案,既可以部署在企業(yè)防護(hù)區(qū)內(nèi)的數(shù)據(jù)中心,亦可部署在一個(gè)值得信賴的第三方托管機(jī)構(gòu)。私有云具有傳統(tǒng)IT可控、高可用性、非常安全等優(yōu)點(diǎn),又具有公有云的資源共享、可以動(dòng)態(tài)地伸縮和資源分配、易于管理等優(yōu)勢(shì),提高了整個(gè)IT系統(tǒng)的安全性[5]。
2.2私有云平臺(tái)架構(gòu)
本文中,對(duì)私有云平臺(tái)的建設(shè),主要是結(jié)合實(shí)驗(yàn)室建設(shè)發(fā)展方面的考慮,建設(shè)虛擬實(shí)驗(yàn)室,搭建云平臺(tái)來實(shí)現(xiàn)資源的虛擬化,最終將工業(yè)控制系統(tǒng)(如pcs7,SimaticIT等)移植到私有云平臺(tái)上。
本文搭建的私有云平臺(tái)基于OpenStack的開源框架,包括三個(gè)角色:客戶端 、控制節(jié)點(diǎn)以及計(jì)算節(jié)點(diǎn)。其中客戶端可以是實(shí)驗(yàn)室局域網(wǎng)段內(nèi)任一物理機(jī);控制節(jié)點(diǎn)則部署了Nova、Glance、Swift、Cinder、keystone及Horizon等組件;計(jì)算節(jié)點(diǎn)由支持虛擬化技術(shù)的2臺(tái)HP服務(wù)器組成,主要用于運(yùn)行虛擬化實(shí)例,提供計(jì)算服務(wù)。整個(gè)云平臺(tái)的架構(gòu)如圖2所示。
對(duì)于整個(gè)云平臺(tái)的層次來說,底層是由物理服務(wù)器組成的硬件層,提供CPU、存儲(chǔ)、網(wǎng)絡(luò)等資源,而OpenStack通過虛擬化技術(shù)整合管理底層資源,供運(yùn)行于其上的虛擬機(jī)使用。工業(yè)控制系統(tǒng)及仿真系統(tǒng)則部署在云平臺(tái)的大量虛擬機(jī)之中,供客戶端用戶使用。對(duì)于云平臺(tái)的訪問,OpenStack也提供了管理員用戶與普通用戶兩種用戶角色,實(shí)現(xiàn)了權(quán)限控制。
本文搭建的私有云平臺(tái)主要用于像高校實(shí)驗(yàn)室等中小型環(huán)境,所以各個(gè)組成部分均位于同一局域網(wǎng)內(nèi),這樣內(nèi)部網(wǎng)絡(luò)的任一用戶均可訪問云計(jì)算資源。私有云平臺(tái)的網(wǎng)絡(luò)架構(gòu)如圖3所示。
云平臺(tái)的網(wǎng)絡(luò)部分由3個(gè)網(wǎng)絡(luò)構(gòu)成:公共網(wǎng)絡(luò)、管理網(wǎng)絡(luò)、數(shù)據(jù)網(wǎng)絡(luò)。各網(wǎng)的實(shí)現(xiàn)及功能如下所示:
eth0(公共網(wǎng)絡(luò)):網(wǎng)段:10.1.101.0/24;功能:公共網(wǎng)絡(luò),為網(wǎng)絡(luò)節(jié)點(diǎn)訪問外部網(wǎng)絡(luò)提供通道。
eth1(管理網(wǎng)絡(luò)、數(shù)據(jù)網(wǎng)絡(luò)):網(wǎng)段:10.20.0.0/24;管理網(wǎng)絡(luò):用于OpensTack各組件之間的通信;數(shù)據(jù)網(wǎng)絡(luò):用于實(shí)現(xiàn)云部署中數(shù)據(jù)之間的通信。
3私有云平臺(tái)實(shí)現(xiàn)
私有云平臺(tái)由控制節(jié)點(diǎn)、 計(jì)算節(jié)點(diǎn)及網(wǎng)絡(luò)節(jié)點(diǎn)組成。 控制節(jié)點(diǎn)是云平臺(tái)的核心, 用戶通過控制節(jié)點(diǎn)實(shí)現(xiàn)對(duì)整個(gè)云平臺(tái)的管理、監(jiān)控。 其他計(jì)算節(jié)點(diǎn)、網(wǎng)絡(luò)節(jié)點(diǎn)需要向控制節(jié)點(diǎn)注冊(cè), 由控制節(jié)點(diǎn)來統(tǒng)一調(diào)度資源。 網(wǎng)絡(luò)節(jié)點(diǎn)負(fù)責(zé)控制云平臺(tái)的內(nèi)部網(wǎng)絡(luò)與外部網(wǎng)絡(luò),計(jì)算節(jié)點(diǎn)負(fù)責(zé)虛擬機(jī)的創(chuàng)建、運(yùn)行、銷毀等服務(wù)。
3.1前期規(guī)劃
硬件環(huán)境:采用3臺(tái)HP gen8刀片服務(wù)器,每臺(tái)服務(wù)器配置12核CPU、64 GB內(nèi)存、1.8 TB硬盤。
每臺(tái)機(jī)器有4個(gè)網(wǎng)卡,只用到em1,em2。公共網(wǎng)絡(luò)和管理網(wǎng)絡(luò)合用em1,內(nèi)部數(shù)據(jù)網(wǎng)絡(luò)使用em2。
軟件環(huán)境:CentOS7+PackStack+OpenStack-Juno。
3.2部署過程
OpenStack有多種部署方式,一般可劃分為三類:一是源碼部署,將OpenStack所需組件的源碼及其依賴的源碼下載到服務(wù)器中,再進(jìn)行安裝、配置,這種方式雖然可以使相關(guān)人員對(duì)OpenStack源碼及其配置有一定了解,但部署過程相當(dāng)繁瑣,不適用于實(shí)際應(yīng)用。二是通過相應(yīng)的命令工具進(jìn)行安裝,雖然較源碼安裝方便,但其過程仍然比較繁瑣。三是通過一些開發(fā)者或者公圖4使用PackStack部署
OpenStack流程司開發(fā)的工具進(jìn)行安裝,如rdo、fuel、devstack等,這些工具使用簡單,配置方便,有的則已經(jīng)商用,在本文中選取其中具有代表性的PackStack工具。PackStack 是Redhat提供的OpenStack部署工具,可以在CentOS上快速地部署一套多節(jié)點(diǎn)OpenStack集群。它的操作也非常簡單,只要生成一個(gè)answer文件,略微定制一下組件需要安裝的位置就可以快速部署了。整個(gè)部署過程如圖4所示。
4OpenStack私有云平臺(tái)實(shí)踐
4.1創(chuàng)建系統(tǒng)實(shí)例
云平臺(tái)的基本目標(biāo)就是建立數(shù)據(jù)中心,為相關(guān)用戶提供計(jì)算、存儲(chǔ)等服務(wù)。OpenStack提供的Web管理界面組件Horizon簡單易用、功能豐富,在登錄Horizon后,就可以執(zhí)行創(chuàng)建測(cè)試用戶、項(xiàng)目、網(wǎng)絡(luò)、云主機(jī)等操作了。本文中完成了項(xiàng)目創(chuàng)建、用戶創(chuàng)建、網(wǎng)絡(luò)搭建、本地鏡像上傳、flavor和安全組設(shè)置,虛擬機(jī)實(shí)例的創(chuàng)建、測(cè)試、銷毀一系列操作,驗(yàn)證了搭建的私有云平臺(tái)的可用性。在Windows鏡像制作過程中遇到了較大問題,Windows 原版鏡像文件中的硬盤驅(qū)動(dòng)不適用于OpenStack的虛擬環(huán)境,如果直接使用原版鏡像,則不能成功啟動(dòng)實(shí)例。解決方法是在制作鏡像文件時(shí)手動(dòng)安裝相應(yīng)的virtio驅(qū)動(dòng)。
4.2創(chuàng)建實(shí)例化網(wǎng)絡(luò)
本文中創(chuàng)建的實(shí)例化網(wǎng)絡(luò)是OpenStack云平臺(tái)的一種典型結(jié)構(gòu),其網(wǎng)絡(luò)拓?fù)淙鐖D5 所示。Extnet(10.1.101.0/24)網(wǎng)絡(luò)拓?fù)涫桥c互聯(lián)網(wǎng)連接的外部網(wǎng)絡(luò),由管理員創(chuàng)圖5云平臺(tái)網(wǎng)絡(luò)拓?fù)浣?,該外部網(wǎng)絡(luò)是云主機(jī)與互聯(lián)網(wǎng)交互的途徑;Admin_net(192.168.0.0/24)網(wǎng)絡(luò)拓?fù)涫亲鈶艟W(wǎng)絡(luò)及其子網(wǎng),其上連接的是租戶創(chuàng)建的云主機(jī);跨在外部網(wǎng)絡(luò)和租戶網(wǎng)絡(luò)之間的是具有網(wǎng)關(guān)臂和接口臂的路由器,負(fù)責(zé)租戶網(wǎng)絡(luò)與外部網(wǎng)絡(luò)的通信。
5結(jié)論
本文在云計(jì)算、私有云有關(guān)理論基礎(chǔ)上,提出了一種基于開源框架OpenStack構(gòu)建私有云計(jì)算平臺(tái)的可行性方案,并通過PackStack工具實(shí)現(xiàn)了私有云平臺(tái)的搭建,以便為科研實(shí)驗(yàn)室或者中小企業(yè)提供彈性計(jì)算服務(wù),滿足不同用戶、不同階段的需求[6]。云計(jì)算的核心是虛擬化技術(shù),而一種新型的虛擬化技術(shù)Docker的出現(xiàn),為私有云計(jì)算發(fā)展提供了新的方向。與傳統(tǒng)的KVM等虛擬化技術(shù)相比,Docker具有更輕量級(jí)、啟動(dòng)更快、占用資源更少的特點(diǎn)。所以,將Docker與OpenStack相結(jié)合是進(jìn)一步優(yōu)化私有云平臺(tái)的重要方向之一。
參考文獻(xiàn)
?。?] 翁武欽.云計(jì)算核心技術(shù)及行業(yè)運(yùn)用發(fā)展趨勢(shì)淺析[J]. 信息通信, 2014(6):251,253.
[2] 湯儒,李秦偉.Openstack云環(huán)境中KVM虛擬機(jī)性能分析[J].微型機(jī)與應(yīng)用,2013,32(23):9496,100.
?。?] 李小寧,李磊,金連文,等.基于OpenStack構(gòu)建私有云計(jì)算平臺(tái)[J]. 電信科學(xué), 2012,28(9):18.
?。?] 吳明禮,任天鴻,李也白,等.基于OpenStack的私有云平臺(tái)資源管理技術(shù)的研究與應(yīng)用[J]. 工業(yè)技術(shù)創(chuàng)新, 2015,2(3):334341.
[5] 徐磊,王磊.基于OpenStack的私有云搭建的研究[J]. 信息通信, 2014(5):47.
?。?] 姚遠(yuǎn),左曉棟.云計(jì)算安全國家標(biāo)準(zhǔn)研究[J].電子技術(shù)應(yīng)用,2014,40(8):46,9.