馬銘冀,姜延凱
(河北省教育發(fā)展研究與信息管理中心,河北 石家莊050091)
Docker應(yīng)用于私有云平臺(tái)
——以河北省級(jí)教育數(shù)據(jù)中心為例
馬銘冀,姜延凱
(河北省教育發(fā)展研究與信息管理中心,河北 石家莊050091)
Docker是一種開(kāi)源容器級(jí)虛擬化技術(shù),基于它可建立PaaS云服務(wù),相較于傳統(tǒng)虛擬化主機(jī)如:VMware、KVM,Docker生成的虛擬主機(jī)更為輕量級(jí),數(shù)量可較傳統(tǒng)服務(wù)器虛擬化提升5倍以上。Docker對(duì)于推進(jìn)教育信息化基礎(chǔ)設(shè)施資源建設(shè),特別是PaaS平臺(tái)建設(shè)具有一定意義,為此本文給出一種基于Docker、Kubernetes以及自研CloudBean平臺(tái)的省級(jí)教育數(shù)據(jù)中心PaaS私有云平臺(tái)搭建的技術(shù)思路。
云計(jì)算;Docker;CloudBean;教育信息化;PaaS;開(kāi)源
隨著云計(jì)算潮流的不斷演進(jìn),以服務(wù)器虛擬化技術(shù)為核心的云計(jì)算技術(shù)在數(shù)據(jù)中心不斷落地,采用此類技術(shù)構(gòu)建的IaaS數(shù)據(jù)中心至少能帶來(lái)三點(diǎn)好處,一是用戶使用資源更方便,用戶無(wú)需再關(guān)注硬件設(shè)備細(xì)節(jié),只需根據(jù)業(yè)務(wù)發(fā)展需要?jiǎng)討B(tài)申請(qǐng)與擴(kuò)容計(jì)算、存儲(chǔ)、網(wǎng)絡(luò)資源;二是數(shù)據(jù)中心管理更簡(jiǎn)單,信息化管理部門(mén)采用統(tǒng)一虛擬化管理平臺(tái)即可用更低的運(yùn)營(yíng)成本、更簡(jiǎn)便的管理方式管理數(shù)據(jù)中心資源,由運(yùn)維轉(zhuǎn)變成運(yùn)營(yíng);三是資源集約化程度更高,采用服務(wù)器虛擬化技術(shù)的數(shù)據(jù)中心通??梢陨a(chǎn)物理服務(wù)器數(shù)量15倍以上的虛擬化服務(wù)器,相同的硬件環(huán)境能滿足更多的用戶需求。
較于傳統(tǒng)非虛擬化技術(shù)的數(shù)據(jù)中心而言,IaaS數(shù)據(jù)中心是一種質(zhì)的進(jìn)步,但這種進(jìn)步也面臨如下挑戰(zhàn):
(1)虛擬主機(jī)為重量級(jí),每臺(tái)虛擬機(jī)均需要有獨(dú)立的操作系統(tǒng)、運(yùn)行庫(kù)、存儲(chǔ)空間等,有較大的資源消耗,通常兩路4CPU/64GB內(nèi)存物理服務(wù)器可生產(chǎn)20臺(tái)左右2CPU/4GB內(nèi)存虛擬主機(jī)。
(2)數(shù)據(jù)中心中有大量的業(yè)務(wù)屬于輕量級(jí)網(wǎng)站、數(shù)據(jù)庫(kù)、后端業(yè)務(wù),其資源需求量總體不高,獨(dú)立放置于虛擬主機(jī)中也存在一定的資源浪費(fèi),同時(shí)也面臨技術(shù)管理跟不上的問(wèn)題;
(3)移動(dòng)互聯(lián)網(wǎng)、大數(shù)據(jù)在數(shù)據(jù)中心不斷地落地,必然催生出指數(shù)級(jí)的虛擬主機(jī)資源需求,如何更低成本滿足這些需求。
上述問(wèn)題的本質(zhì)其實(shí)可以歸結(jié)為如何在可控的成本之下,生產(chǎn)更多數(shù)量的虛擬主機(jī),以及如何更高效的使用與管理這些生產(chǎn)出來(lái)的大規(guī)模虛擬主機(jī)。
目前省級(jí)教育數(shù)據(jù)中心已實(shí)現(xiàn)了服務(wù)器虛擬化技術(shù),并搭建了規(guī)模不一的IaaS平臺(tái)。筆者認(rèn)為隨著我省教育信息化應(yīng)用的深度推進(jìn),依賴于IaaS平臺(tái)支撐信息化業(yè)務(wù)仍會(huì)面臨較高運(yùn)維成本和相對(duì)低的資源使用效率,業(yè)務(wù)處室里相當(dāng)多的業(yè)務(wù)應(yīng)歸類于輕量級(jí)業(yè)務(wù),即大多數(shù)業(yè)務(wù)僅需要基礎(chǔ)的應(yīng)用環(huán)境 (如:WEB環(huán)境、數(shù)據(jù)庫(kù)環(huán)境、測(cè)試環(huán)境)并不關(guān)注于虛擬主機(jī)操作系統(tǒng)層面的細(xì)節(jié),事實(shí)上考慮到虛擬主機(jī)信息安全、運(yùn)維能力等多方面因素,也不建議業(yè)務(wù)用戶介入主機(jī)層面細(xì)節(jié),一是業(yè)務(wù)用戶擅長(zhǎng)于業(yè)務(wù)開(kāi)發(fā),但主機(jī)運(yùn)維與安全管理能力較弱;二是業(yè)務(wù)上線僅需要應(yīng)用環(huán)境,不需要關(guān)注于底層主機(jī)細(xì)節(jié);基于此筆者認(rèn)為數(shù)據(jù)中心信息化基礎(chǔ)設(shè)施資源建設(shè)時(shí)應(yīng)著力發(fā)展PaaS私有云平臺(tái),即面向業(yè)務(wù)用戶提供標(biāo)準(zhǔn)、規(guī)范并專業(yè)的應(yīng)用支撐環(huán)境,目前業(yè)內(nèi)有多種PaaS云平臺(tái)實(shí)施技術(shù),包括:IBM、Oracle的私有云方案,國(guó)內(nèi)如:百度、新浪的PaaS公有云平臺(tái),筆者認(rèn)為對(duì)于教育數(shù)據(jù)中心來(lái)講,搭建私有云PaaS平臺(tái)即要考慮實(shí)施成本,又要考慮平臺(tái)本身的科研屬性,因此筆者建議并提出一種基于開(kāi)源Docker[1]、Kubernetes以及自研的CloudBean的PaaS平臺(tái)搭建思路,當(dāng)然這個(gè)思路的基礎(chǔ)是Docker操作系統(tǒng)級(jí)虛擬化技術(shù)。
Docker是一種基于go語(yǔ)言開(kāi)發(fā),并遵從Apache 2.0協(xié)議開(kāi)源的容器級(jí)虛擬化技術(shù),其源代碼托管于Github上,它由PaaS供應(yīng)商dotCloud于2013年發(fā)布,Docker發(fā)布后獲得業(yè)內(nèi)極大關(guān)注,主流的IT服務(wù)商,如:谷歌、微軟、IBM、紅帽均加入Docker聯(lián)盟,共同推動(dòng)Docker的應(yīng)用與普及。
Docker本質(zhì)上是基于LXC(Linux Container)的操作系統(tǒng)容器級(jí)虛擬化技術(shù),它的幾個(gè)主要特點(diǎn)包括:
(1)隔離性,Docker生成的虛擬主機(jī)實(shí)例相互隔離,互不干擾,Docker宿主機(jī)基于AUFS文件系統(tǒng)構(gòu)建,通過(guò)AUFS可以保證多個(gè)容器實(shí)例可以互不影響并獨(dú)立共享使用根文件系統(tǒng);并基于Linux內(nèi)核的namespace技術(shù),通過(guò)pid、net、ipc、mnt、uts等namespace將虛擬主機(jī)的進(jìn)程、網(wǎng)絡(luò)、消息、文件系統(tǒng)、主機(jī)名稱進(jìn)行有效隔離。
(2)資源彈性,Docker基于cgroup技術(shù)進(jìn)行資源層面彈性管理,通過(guò)它可以實(shí)現(xiàn)CPU、內(nèi)存等資源的分配與使用。
(3)靈活鏡像管理,Docker虛擬主機(jī)基于鏡像技術(shù)構(gòu)建,每啟動(dòng)一個(gè)Docker實(shí)例前需要通過(guò)公開(kāi)下載或基于Dockerfile文件創(chuàng)建一個(gè)新的image鏡像,采用鏡像的管理方式使得應(yīng)用系統(tǒng)的發(fā)布變得非常靈活與便捷,同時(shí)基于鏡像也間接方便了虛擬主機(jī)的遷移與移動(dòng)。
目前主流使用的IaaS層面服務(wù)器虛擬化技術(shù)多是基于完全虛擬化技術(shù),即由Hypervisor層完整模擬一個(gè)“物理主機(jī)”,在生成主機(jī)上制備操作系統(tǒng),在操作系統(tǒng)上安裝并部署相應(yīng)運(yùn)行庫(kù)文件、業(yè)務(wù)系統(tǒng)等,這種虛擬化手段典型代表是VMware ESX、KVM等,相比較于傳統(tǒng)的服務(wù)器虛擬化技術(shù),Docker更為輕量級(jí),它直接省缺了“物理主機(jī)”的模擬,通過(guò)各實(shí)例共享宿主機(jī)操作系統(tǒng)的方式生產(chǎn)虛擬主機(jī),雙方的架構(gòu)對(duì)比如圖1所示。
圖1 虛擬化架構(gòu)對(duì)比
通過(guò)這種直觀的比較可以看出:一是Docker生產(chǎn)的虛擬主機(jī)數(shù)量要比前者多的多,通常在實(shí)踐使用時(shí)同等硬件資源在虛擬主機(jī)數(shù)量上可多出5-10倍;二是基于Docker生產(chǎn)的虛擬主機(jī)屬于輕量級(jí),其啟動(dòng)速度會(huì)更快,資源利用會(huì)更高效;三是Docker虛擬主機(jī)更適合承擔(dān)單一業(yè)務(wù),如:只充當(dāng)數(shù)據(jù)庫(kù)服務(wù)器、WEB服務(wù)器、消息服務(wù)器,這種模式其實(shí)更容易節(jié)約資源,并確保構(gòu)建業(yè)務(wù)組件化、標(biāo)準(zhǔn)化。
上述的三個(gè)特性,可以得出一個(gè)這樣的使用場(chǎng)景,對(duì)于信息化基礎(chǔ)設(shè)施預(yù)算比較低或采購(gòu)周期比較長(zhǎng)的用戶,可以通過(guò)Docker技術(shù)在同等硬件條件下具備搭建更多的虛擬主機(jī)的能力,對(duì)于一些業(yè)務(wù)處室特定的時(shí)期,如學(xué)位考試、專升本考試、大學(xué)生畢業(yè)等業(yè)務(wù)高峰期,可以通過(guò)標(biāo)準(zhǔn)化業(yè)務(wù)組件橫向大批量擴(kuò)展,快速啟動(dòng)部署的方式支撐業(yè)務(wù)高峰期,低谷期資源快速回收。
在面向教育數(shù)據(jù)中心的PaaS私有云平臺(tái)架構(gòu)層面上,本文設(shè)計(jì)了一種三層PaaS平臺(tái)架構(gòu),第一層為容器資源層,第二層是容器管理層,第三層為門(mén)戶層,架構(gòu)如圖2所示。
圖2 基于三層的PaaS云平臺(tái)架構(gòu)
這三層的主要作用如下:
(1)容器資源層
容器資源層是整個(gè)PaaS平臺(tái)的資源基礎(chǔ),它向上提供容器的計(jì)算、存儲(chǔ)、網(wǎng)絡(luò)資源,該層主要由計(jì)算集群、數(shù)據(jù)存儲(chǔ)集群、鏡像倉(cāng)庫(kù)組成。
其中計(jì)算集群負(fù)責(zé)提供容器虛擬主機(jī)資源,采用普通兩路機(jī)架服務(wù)器 (8*2.0GHz CPU、96GB內(nèi)存、1TB以上磁盤(pán),雙網(wǎng)卡),其操作系統(tǒng)可選用Ubuntu、CentOS或CoreOS[2],CoreOS是一種新型,經(jīng)過(guò)重新精減后,可專職從事Docker容器的Linux操作系統(tǒng),CoreOS極為精練,它使用systemd和fleet來(lái)對(duì)Docker容器進(jìn)行管理,使用etcd這種鍵值數(shù)據(jù)庫(kù)進(jìn)行服務(wù)發(fā)現(xiàn)和配置信息共享。業(yè)內(nèi)通常推薦采用CoreOS,但考慮到CoreOS在省級(jí)數(shù)據(jù)中心普及較低,這里推薦采用CentOS 7。計(jì)算節(jié)點(diǎn)的網(wǎng)絡(luò)建議采用虛擬網(wǎng)絡(luò)架構(gòu)Open-vSwitch[5],以適應(yīng)于大規(guī)模的容器集群業(yè)務(wù)。
鏡像倉(cāng)庫(kù)負(fù)責(zé)管理整個(gè)PaaS集群中的本地容器鏡像,它至少采用一臺(tái)普通物理服務(wù)器 (4*2.0GHz CPU、32GB內(nèi)存、2TB以上磁盤(pán),雙網(wǎng)卡)搭建的docker-registry服務(wù)器構(gòu)成,通常推薦采用兩臺(tái)服務(wù)器,這樣可以做到鏡像互備。
存儲(chǔ)集群負(fù)責(zé)提供容器虛擬主機(jī)運(yùn)行所需要的額外數(shù)據(jù)空間,它基于開(kāi)源的Ceph[3]分布式文件系統(tǒng),通過(guò)建議至少由三臺(tái)普通兩路機(jī)架服務(wù)器(4*2.0GHzCPU、32GB內(nèi)存、4TB以上磁盤(pán),雙網(wǎng)卡)搭建,該Ceph集群掛接至計(jì)算集群所有節(jié)點(diǎn)。
(2)容器管理層
容器管理層是整個(gè)PaaS平臺(tái)的資源調(diào)度中心。它調(diào)度與管理所有的容器虛擬主機(jī),容器管理層推薦采用Google推出的開(kāi)源版Kubernetes[4]進(jìn)行管理,該管理工具可跨平臺(tái)使用,能夠靈活調(diào)度大規(guī)模Docker容器虛擬主機(jī)。Kubernetes的Master、etcd組件由一臺(tái)獨(dú)立普通物理服務(wù)器支撐,minion組件安裝在各計(jì)算節(jié)點(diǎn)中。
(3)門(mén)戶層
門(mén)戶層作用是為管理人員、用戶提供統(tǒng)一服務(wù)門(mén)戶,門(mén)戶層的實(shí)現(xiàn)是基于自主開(kāi)發(fā)的CloudBean平臺(tái)搭建,CloudBean平臺(tái)是基于Python與PHP開(kāi)發(fā),支持KVM、Docker兩種虛擬環(huán)境的資源納管,可面向后臺(tái)管理運(yùn)營(yíng)人員提供統(tǒng)一IaaS、PaaS數(shù)據(jù)中心、物理主機(jī)、虛擬主機(jī)的統(tǒng)一管理、調(diào)度入口,同時(shí)也可以面向終端用戶提供簡(jiǎn)單的虛擬主機(jī)自助管理服務(wù)。門(mén)戶層CloudBean平臺(tái)部署在一臺(tái)獨(dú)立的物理服務(wù)器或docker容器中。
CloudBean部署后的效果如圖3、圖4所示:
圖3 CloudBean門(mén)戶效果
圖4 CloudBean門(mén)戶效果
門(mén)戶層是整個(gè)PaaS服務(wù)的入口。通過(guò)三層的架構(gòu)與實(shí)施可以實(shí)現(xiàn)一個(gè)支撐數(shù)千虛擬主機(jī)規(guī)模,并能擴(kuò)展至上萬(wàn)容器虛擬主機(jī)的PaaS云平臺(tái),由于自主研發(fā)的CloudBean平臺(tái)也具有一定的容器資源管理能力,因此對(duì)于中小規(guī)模的PaaS平臺(tái)運(yùn)營(yíng)也可以采用二層PaaS架構(gòu),即省略中間的容器管理層。
通過(guò)本文的設(shè)計(jì)可以搭建省級(jí)教育數(shù)據(jù)中心PaaS私有云平臺(tái),部署PaaS云后能夠極大的提升教育信息化應(yīng)用服務(wù)水平,基于PaaS至少能在如下幾個(gè)方面的業(yè)務(wù)有所突破:
(1)業(yè)務(wù)處室各類業(yè)務(wù)系統(tǒng)部署方面,如前面所述實(shí)現(xiàn)PaaS云后,以非常標(biāo)準(zhǔn)的方式提供各類WEB服務(wù)、數(shù)據(jù)庫(kù)服務(wù)、中間件、消息等服務(wù)環(huán)境,會(huì)更方便、更低成本、更快速度部署各類業(yè)務(wù)系統(tǒng);此外在各業(yè)務(wù)的峰值時(shí)可更靈活、更快速擴(kuò)展應(yīng)用環(huán)境資源。
(2)信息化科研與測(cè)試方面,由于可大規(guī)模的部署容器虛擬主機(jī),在信息化方面的科研、以及測(cè)試任務(wù)中可靈活搭建相應(yīng)的測(cè)試實(shí)驗(yàn)床,如可快速、穩(wěn)定地搭建數(shù)千個(gè)容器虛擬主機(jī)充當(dāng)客戶端進(jìn)行各類壓力測(cè)試。
筆者相信隨著不斷深化PaaS平臺(tái)的應(yīng)用場(chǎng)景,像分配電子郵件一樣為所有工作人員人手分配一臺(tái)虛擬主機(jī)為目標(biāo),必將極大地調(diào)動(dòng)各方使用與應(yīng)用信息化的動(dòng)力,這種主動(dòng)性與積極性的提升必將會(huì)推動(dòng)教育信息化整體應(yīng)用水平的飛躍。
基于本文給出通過(guò)開(kāi)源與自研的PaaS私有云平臺(tái)具有低成本、使用維護(hù)方便、部署簡(jiǎn)單的特點(diǎn),但較于更成熟的商用PaaS平臺(tái)仍存在以下不足,如:大規(guī)模資源調(diào)度與擴(kuò)展、穩(wěn)定性、可靠性、功能的完備與易用性等方面,這些不足將會(huì)在后續(xù)的工作中不斷完善。
[1]Docker[DB/OL].https://www.docker.com.
[2]CoreOS[DB/OL].http://www.coreos.com.
[3]ceph[DB/OL].http://www.ceph.com.
[4]Kubernetes[DB/OL].https://github.com/Google-CloudPlatform/kubernetes.
[5]open-vswitch[DB/OL].http://www.openvswitch. org/.
[6]謝浩暉,高濟(jì).基于NGPD的PaaS平臺(tái)研究與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用研究,2011,(05).
[7]姜文周,馬明麗,李先毅.基于Cloud Foundry的PaaS云平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)[J].微型機(jī)與應(yīng)用,2014,(02).
[8]何穎,唐彥,林勇.基于多租戶架構(gòu)的PaaS構(gòu)建剖析[J].數(shù)字通信,2012,(03).
[9]徐鵬,張巖江,蘇森.PaaS云資源調(diào)度技術(shù)研究[J].華中科技大學(xué)學(xué)報(bào)(自然科學(xué)版),2013,(S2).
(編輯:郭桂真)
G434
B
1673-8454(2017)08-0082-03