黃振華 劉翠煥 武亞麗 尹益艷 閆亮 劉玉龍
【摘要】? ? 本文為滿足民辦高校實(shí)訓(xùn)教學(xué)計(jì)算能力、存儲(chǔ)能力和高可用性需求,提出了基于Docker的高可用云平臺(tái)實(shí)訓(xùn)部署架構(gòu)設(shè)計(jì)。
【關(guān)鍵詞】? ? Docker? ? 高可用? ? 架構(gòu)
一、引言
本文將Docker與Hadoop技術(shù)應(yīng)用于高校實(shí)訓(xùn)教學(xué)平臺(tái),結(jié)合高可用特性,滿足高校實(shí)訓(xùn)平臺(tái)模塊化教學(xué)、按需組合、按需擴(kuò)展和快速布署的需求。
二、應(yīng)用技術(shù)研究
云計(jì)算是通過(guò)網(wǎng)絡(luò)統(tǒng)一組織和靈活調(diào)用軟件、運(yùn)行平臺(tái)、計(jì)算與存儲(chǔ)等資源,實(shí)現(xiàn)大規(guī)模計(jì)算的信息處理方式。Hadoop大數(shù)據(jù)處理平臺(tái)需要較高的讀寫(xiě)速率。傳統(tǒng)虛擬化技術(shù)無(wú)法達(dá)到真實(shí)物理主機(jī)的水平,難以靈活配置文件和自動(dòng)化創(chuàng)建、部署機(jī)制[1]。Docker作為輕量級(jí)虛擬化容器技術(shù),具有可移植、易使用、跨平臺(tái)等優(yōu)勢(shì)[3],其使用Linux內(nèi)核,能夠達(dá)到接近物理主機(jī)的資源利用率,主要包括以下組件:
Docker Client:客戶端與Docker Daemon守護(hù)進(jìn)程通信,現(xiàn)實(shí)對(duì)Docker Container的管理[3]。
Docker Daemon:常駐Linux系統(tǒng),啟動(dòng)Docker Server進(jìn)程接受Docker Client的請(qǐng)求,Docker Server根據(jù)請(qǐng)求內(nèi)容將其發(fā)到對(duì)應(yīng)的Docker應(yīng)用服務(wù)容器處理。
Docker Registry:存儲(chǔ)應(yīng)用服務(wù)的容器鏡像,支持創(chuàng)建、搜索、下載和上傳鏡像。官方Docker Hub可搭建私有鏡像庫(kù)[2]。
Docker Container:承載應(yīng)用服務(wù)的主體,按指定應(yīng)用服務(wù)容器鏡像計(jì)算資源配額、網(wǎng)絡(luò)參數(shù)、安全策略等生成相應(yīng)的應(yīng)用服務(wù)隔離進(jìn)程。
容器化應(yīng)用交由Kubernetes管理,目標(biāo)是簡(jiǎn)單且高效的部署、規(guī)劃、更新、維護(hù),滿足學(xué)生和教師不同教學(xué)模塊。Hadoop集群本身也提供一定的系統(tǒng)高可用性。
三、實(shí)訓(xùn)平臺(tái)架構(gòu)設(shè)計(jì)
以《面向?qū)ο蟪绦蛟O(shè)計(jì)》和《Hadoop技術(shù)》兩門(mén)課程為例,均需安裝JDK、Eclipse、MySQL搭建教學(xué)和開(kāi)發(fā)環(huán)境。虛擬化和容器技術(shù)透明化底層物理硬件,可充分利用老舊硬件。集群方式根據(jù)計(jì)算和性能需求動(dòng)態(tài)添加。
將常用應(yīng)用做成鏡像存儲(chǔ)在Docker Registry中,使用Dockerfile文件,拉取系統(tǒng)鏡像,讓鏡像根據(jù)Dockerfile文件的內(nèi)容自己編譯安裝,減少下載內(nèi)容和人為干預(yù),減少出錯(cuò)。Dockerfile文件機(jī)制:
1)下載基礎(chǔ)系統(tǒng)鏡像;
2)使用Dockerfile的內(nèi)建指令下載安裝軟件;
3)使用Dockerfile內(nèi)建指令加載對(duì)應(yīng)的配置文件。
基于Docker的高可用云平臺(tái)架構(gòu)設(shè)計(jì)[4]。如下圖:
高可用性:底層數(shù)據(jù)庫(kù)采用基于Galera Cluster的雙活多主MariaDB集群,實(shí)現(xiàn)多主架構(gòu)、同步復(fù)制、緊密耦合、無(wú)需主從切換、熱Standby、自動(dòng)節(jié)點(diǎn)配置、對(duì)應(yīng)用透明、無(wú)需進(jìn)行讀寫(xiě)分離。
數(shù)據(jù)存儲(chǔ):采用FastDFS,解決大容量存儲(chǔ)和負(fù)載均衡。
集群應(yīng)用服務(wù)器:采用Redis共享Session和Tomcat集群,實(shí)現(xiàn)動(dòng)態(tài)添加節(jié)點(diǎn)。
四、結(jié)束語(yǔ)
本文提出的基于Docker的高可用性云平臺(tái)架構(gòu)是一種新型的、動(dòng)態(tài)化的系統(tǒng)部署方式,為高校實(shí)訓(xùn)應(yīng)用部署提供了一種有效途徑參考。
參? 考? 文? 獻(xiàn)
[1] 趙樂(lè)樂(lè),黃剛,馬越. 基于Docker的Hadoop平臺(tái)架構(gòu)研究. 計(jì)算機(jī)技術(shù)與發(fā)展. 2016年9月.第26卷,第9期. 99-103
[2] 張建,謝天鈞. 基于Docker的平臺(tái)即服務(wù)架構(gòu)研究. 信息技術(shù)與信息化. 2014年11月. 第10期. 131-134
[3] 孫宏亮.Docker源碼分析(一):Docker 架構(gòu)[EB/OL].[2014-09-25].http: / / www.infoq.com /cn/arti-cles /docker-source-code-analysis-part1.
[4] 張利修. 基于Docker的高可用性應(yīng)用集群架構(gòu)研究_張利修. 數(shù)字技術(shù)與應(yīng)用. 2017年12月021. 39-40