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