、“后”、“左”、“右”、“豎直”、“水平”、“頂”、“底”、“內(nèi)”、“外”等指示的方位或位置關(guān)系為基于附圖所示的方位或位置關(guān)系,僅是為了便于描述本發(fā)明和簡化描述,而不是指示或暗示所指的裝置或元件必須具有特定的方位、以特定的方位構(gòu)造和操作,因此不能理解為對本發(fā)明的限制。此外,術(shù)語“第一”、“第二”僅用于描述目的,而不能理解為指示或暗示相對重要性。
[0027]在本發(fā)明的描述中,需要說明的是,除非另有明確的規(guī)定和限定,術(shù)語“安裝”、“相連”、“連接”應(yīng)做廣義理解,例如,可以是固定連接,也可以是可拆卸連接,或一體地連接;可以是機械連接,也可以是電連接;可以是直接相連,也可以通過中間媒介間接相連,可以是兩個元件內(nèi)部的連通。對于本領(lǐng)域的普通技術(shù)人員而言,可以具體情況理解上述術(shù)語在本發(fā)明中的具體含義。
[0028]下面結(jié)合附圖描述根據(jù)本發(fā)明實施例的基于虛擬容器的大數(shù)據(jù)存儲與管理系統(tǒng)及方法。
[0029]圖1是根據(jù)本發(fā)明一個實施例的基于虛擬容器的大數(shù)據(jù)存儲與管理系統(tǒng)的結(jié)構(gòu)框圖。如圖1所示,根據(jù)本發(fā)明一個實施例的基于虛擬容器的大數(shù)據(jù)存儲與管理系統(tǒng),包括:元數(shù)據(jù)服務(wù)器110、調(diào)度器120 (即主節(jié)點,也稱主服務(wù)器)和從服務(wù)器130 (即從節(jié)點,也稱容器代理)。
[0030]其中,元數(shù)據(jù)服務(wù)器110用于維護租戶信息和用戶信息,并在用戶訪問元數(shù)據(jù)和容器時進行權(quán)限認證,其中租戶信息包括但不限于:團體名稱、聯(lián)系方式和支付信息。元數(shù)據(jù)服務(wù)器110包括:租戶管理模塊、用戶管理模塊和權(quán)限認證模塊,其中,租戶管理模塊用于維護每個租戶信息,并為租戶管理員提供設(shè)置用戶權(quán)限的機制;用戶管理模塊用于維護用戶的信息,并對用戶進行身份認證;權(quán)限認證模塊用于在用戶訪問元數(shù)據(jù)和容器時進行權(quán)限認證。
[0031]調(diào)度器120包括兩層調(diào)度,其中,上層調(diào)度為容器級別的調(diào)度,下層調(diào)度為任務(wù)級別的調(diào)度,上層調(diào)度用于接收用戶的請求,并為用戶分配和配置對應(yīng)的容器,下層調(diào)度由每個大數(shù)據(jù)計算框架的主節(jié)點完成,調(diào)度器120具有接收用戶提交任務(wù)的接口,以根據(jù)用戶需求和從服務(wù)器130發(fā)送的全局資源和任務(wù)運行情況,從集群中選擇多個物理機以通過物理機中的容器執(zhí)行任務(wù),并向物理機上容器發(fā)送啟停命令。
[0032]從服務(wù)器130與調(diào)度器120相互通訊,用于根據(jù)調(diào)度器120發(fā)送的啟停命令控制物理機上的容器的啟停,并監(jiān)控物理機的資源和任務(wù)運行情況,以及將資源和任務(wù)運行情況反饋給調(diào)度器120。在本發(fā)明的一個實施例中,從服務(wù)器130包括容器控制器、資源監(jiān)控模塊和通信模塊,其中,容器控制器用于對物理機上的容器進行監(jiān)控,并根據(jù)啟停命令控制容器的啟停;資源監(jiān)控模塊用于監(jiān)測物理機的資源和任務(wù)執(zhí)行情況,其中,資源包括:CPU使用、內(nèi)存占用、網(wǎng)絡(luò)1和磁盤占用情況;通信模塊用于與調(diào)度器120相互通信,并向調(diào)度器120發(fā)送物理機的資源和任務(wù)執(zhí)行情況,并接收調(diào)度器120發(fā)送的啟停命令。
[0033]在本發(fā)明的一個實施例中,用戶通過SSH向容器進行任務(wù)提交。
[0034]具體而言,元數(shù)據(jù)服務(wù)器的功能包括如下三部分:租戶管理、用戶管理以及權(quán)限認證。租戶管理:元數(shù)據(jù)管理服務(wù)器維護每個租戶信息,包括團體名稱、聯(lián)系方式、支付信息等,同時為租戶管理員提供設(shè)置用戶權(quán)限的機制,限制租戶內(nèi)的用戶能夠訪問的應(yīng)用集合,防止非法訪問。用戶管理:存儲用戶的信息,對用戶進行身份認證,同時通過加密存儲與加密傳輸保證用戶信息安全。權(quán)限認證:在用戶在訪問元數(shù)據(jù)和應(yīng)用容器的時候進行權(quán)限認證,防止對元數(shù)據(jù)的篡改以及對應(yīng)用的非法訪問。
[0035]主服務(wù)器(調(diào)度器)。系統(tǒng)中分為兩層調(diào)度,上層是容器級別的調(diào)度,下層是作業(yè)級別的調(diào)度。上層調(diào)度負責(zé)接收用戶的請求,為用戶分配、配置對應(yīng)的容器,下層的調(diào)度則交給每個大數(shù)據(jù)計算框架的master節(jié)點自己來做。分兩層調(diào)度的優(yōu)點是降低了系統(tǒng)和各個計算框架的耦合度,使得各框架以及用戶自己的代碼不需要經(jīng)過修改就可以運行于本系統(tǒng)上。調(diào)度器對外暴露編程接口接受用戶提交的任務(wù),并根據(jù)用戶的需求和從容器代理那里得到的全局的資源、任務(wù)運行情況,從集群中選擇一部分物理機來執(zhí)行該任務(wù)。調(diào)度器通知這些物理機上的容器代理啟動容器,并把作業(yè)提交給容器,等待作業(yè)執(zhí)行完畢,調(diào)度器再通知容器代理關(guān)閉容器。
[0036]從服務(wù)器(容器代理)。容器代理在集群中的角色就是從服務(wù)器,集群中的每一臺物理機上都運行著一個容器代理程序。容器代理包含三個子模塊。容器控制器:該模塊內(nèi)部封裝了容器的命令,用于啟動、監(jiān)控、關(guān)閉容器。資源監(jiān)控:監(jiān)控本機的CPU使用、內(nèi)存占用、網(wǎng)絡(luò)10、磁盤占用等。通信模塊:負責(zé)與調(diào)度器通信,給調(diào)度器發(fā)送本機的資源占用情況,并接收調(diào)度器對于容器的控制命令。
[0037]本發(fā)明的基于虛擬容器的大數(shù)據(jù)存儲與管理系統(tǒng)解決了如何在異構(gòu)的底層存儲硬件之上,提供統(tǒng)一的存儲與計算池,滿足用戶多模態(tài)的存儲需求與多樣化的計算需求,并且能夠隔離不同用戶的資源與應(yīng)用。本發(fā)明的基于虛擬容器的大數(shù)據(jù)存儲與管理系統(tǒng),采用虛擬容器技術(shù)進行資源與環(huán)境的隔離,采用雙層調(diào)度的架構(gòu)降低了頂層調(diào)度器負載以及分布式應(yīng)用與調(diào)度器的耦合度,并且對實時調(diào)度存儲系統(tǒng)提供了支持。
[0038]圖2是根據(jù)本發(fā)明一個實施例的基于虛擬容器的大數(shù)據(jù)存儲與管理方法的流程圖。如圖2所示,根據(jù)本發(fā)明實施例的基于虛擬容器的大數(shù)據(jù)存儲與管理方法,包括以下步驟:
[0039]1、用戶向調(diào)度器提交創(chuàng)建集群請求,其中,集群請求包括但不限于:應(yīng)用類型、節(jié)點數(shù)、硬件描述,其中,硬件描述包括:CPU頻率、核數(shù)、硬盤大小和內(nèi)存大??;
[0040]2、調(diào)度器向從服務(wù)器發(fā)送資源占用情況請求;
[0041]3、從服務(wù)器將物理機的資源占用情況反饋給調(diào)度器,調(diào)度器選擇滿足資源占用情況請求的物理機的集合,其中,資源占用情況以鏈表的形式存儲在調(diào)度器中;
[0042]4、調(diào)度器通向所述從服務(wù)器發(fā)送容器啟動命令;
[0043]5、從服務(wù)器根據(jù)要求設(shè)置物理機上的容器的資源占用上限并啟動容器,其中,從服務(wù)器利用應(yīng)用容器引擎對任務(wù)占用的資源和環(huán)境進行隔離;
[0044]6、在容器啟動完成后,從服務(wù)器通知調(diào)度器;
[0045]7、調(diào)度器將容器的集群的IP發(fā)送給用戶;
[0046]8、用戶向容器提交任務(wù),在本發(fā)明的一個實施例中,用戶通過SSH向容器提交任務(wù);
[0047]9、當(dāng)任務(wù)執(zhí)行完畢后,容器向用戶發(fā)送執(zhí)行結(jié)果。
[0048]具體而言,前端以Web應(yīng)用的形式呈現(xiàn)給用戶,用戶使用Web應(yīng)用創(chuàng)建租戶,并通過Web端提供的預(yù)置選項為租戶申請創(chuàng)建應(yīng)用容器集群。創(chuàng)建完成后租戶管理員可以設(shè)置租戶中的成員以及成員對租戶內(nèi)應(yīng)用集群的訪問權(quán)限。用戶通過租戶管理員分配的賬戶和密碼通過SSH連接上虛擬容器進行任務(wù)的提交。
[0049]調(diào)度器采用兩層調(diào)度的架構(gòu),第一層調(diào)度是粗粒度的調(diào)度,負責(zé)監(jiān)控整個集群中資源的占用和分配情況,并且在收到租戶創(chuàng)建集群的請求之后,負責(zé)從集群中通過分配算法選出適合為該請求提供服務(wù)的物理機,并在這些機器上啟動相應(yīng)的容器。第二層調(diào)度負責(zé)作業(yè)粒度的調(diào)度。租戶申請創(chuàng)建的集群啟動完成后,用戶便可以給該集群提交作業(yè),該集群需要根據(jù)當(dāng)前各容器的負載情況,對作業(yè)進行分片與分配,交給集群中的部分或者全部容器進行計算。
當(dāng)前第2頁
1 
2 
3