999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

一種適用于Docker Swarm集群的調度策略和算法

2017-06-29 12:00:35馬曉光劉釗遠
計算機應用與軟件 2017年5期
關鍵詞:靜態容器集群

馬曉光 劉釗遠

(西安郵電大學計算機學院 陜西 西安 710061)

一種適用于Docker Swarm集群的調度策略和算法

馬曉光 劉釗遠

(西安郵電大學計算機學院 陜西 西安 710061)

Swarm是基于Docker容器的集群管理工具。通過分析研究Swarm整體架構和調度策略,針對集群的資源碎片問題和負載均衡問題,提出一種靜態平衡和動態預測相結合的容器調度算法。通過測試,該算法能夠減少集群的靜態資源碎片,提高集群資源的利用率,并能維持集群的負載均衡。

云計算 資源碎片 負載均衡 Docker容器 Swarm

0 引 言

Docker[1-4]自開源以來,就受到了廣泛的關注和討論,由于眾多新穎的特性以及項目本身的開放性,Docker迅速獲得包括Google、Microsoft、VMware等業界行業領導者的青睞,并對其提供支持。Docker公司隨之迎來了巨大的發展機遇,并在2014年12月發布了原生態容器集群管理工具Swarm。Swarm基于Go語言進行開發,用于管理Docker集群,使Docker集群對于用戶而言當于一個虛擬的整體。

Docker在云生態中占有重要地位, Swarm在云架構PaaS(平臺及服務)/IaaS(基礎設施及服務)層中也占有重要地位。Swarm主要完成的工作是:根據調度策略將容器運行在合適的節點上,由于節點上運行容器的不同,其資源利用率也有所差別。而每個節點的資源利用率又決定了整個集群的負載情況。因此,集群調度策略的優略就顯得尤為重要。

不同的容器需求不同維度的資源,當一個節點任意維度的資源耗盡時,如果有多維資源需求的容器被啟動,那么該節點將不能滿足創建容器的需求,也就不能運行此容器。在這種情況下,其他維度的剩余資源就被閑置了下來,而這些未被利用的資源就稱為資源碎片[5-6],這是一種極大的浪費。所以,就需要減少資源碎片的大小。同時,集群整體負載的均衡情況決定了集群在服務時的整體表現,為了提高集群的服務質量,需要保證整個集群的負載均衡。

本文分析研究了Swarm的整體架構和調度策略,提出一種靜態平衡和動態預測相結合的容器調度算法。通過測試,本算法能夠減少節點的靜態資源碎片,維持整個集群的負載均衡。

1 Swarm集群框架與調度策略

1.1 Swarm架構

Swarm采用了C/S架構,Swarm主要架構如圖1所示。

圖1 Swarm架構

Docekr Client是客戶端,負責發送指令,Swarm master是服務器端,負責管理整個集群。Swarm集群分為Swarm Node和Docker Node。

Swarm master運行在Swarm node上,主要工作是完成調度任務和管理集群。用戶通過Swarm Client初始化集群各個模塊并管理集群,discovery模塊負責發現集群的節點并收集信息,scheduler模塊負責容器請求的調度任務,Cluster API定義了集群接口,是實際任務的完成者,leadship是Swarm的HA(高可用性)機制。

Docker Node是指運行Docker Daemon的節點。Docker Daemon根據Swarm master的任務啟動相應容器。Docker Node通過Swarm Agent向管理節點注冊信息,以便管理節點在執行任務的時候可以發現該節點。

1.2 Swarm調度策略及資源碎片問題

Swarm的scheduler模塊分為filter組件和strategy組件。filter組件通過標簽對節點進行過濾。用戶在創建集群時,需要根據節點的不同功能給與節點不同的標簽,用戶一旦啟動容器,scheduler會根據用戶提供的標簽,過濾出匹配標簽的節點集合供strategy組件處理。

strategy組件對集群提供邏輯調度功能。主要有以下三種策略:spread、binpack和random。用戶選擇的策略將會決定集群如何計算節點的權重,集群默認使用spread策略。其中random策略用來對程序進行測試,僅對節點進行隨機選擇;spread和binpack策略首先計算節點的權重,然后選擇合適的節點運行容器。

節點權重的計算策略為:首先根據用戶申請的容器配制信息計算CPU和內存的利用率,并將其結果求和,隨后,spread策略會優先選擇權重小的節點運行容器,而binpack會優先選擇權重大的節點運行容器。前者的優點是,如果節點出現故障,將會損失少量的容器。后者的優點是將更多的容器運行在較少的機器上,節省物理資源。

盡管swarm調度策略簡單而有效,但是其忽略了一個重要問題,資源碎片問題。由于不同的容器需求不同維度的資源,當一個節點的任意維度資源耗盡時,如果有多維資源需求的容器被啟動,那么該節點將不能滿足創建容器的需求,也就不能運行此容器。在這種情況下,其他維度的剩余資源就被閑置了下來,而這些未被利用的資源就被稱為資源碎片,這是一種極大的浪費。所以就需要減少資源碎片的大小來提高節點的資源利用率。

同時Swarm在計算節點優先級時,由于計算方法的簡單,隨著集群的規模的擴大,就會產生相同優先級的節點。現有的容器調度策略只是對相同優先級的節點進行了隨機的分配,并沒有對相同優先級節點進行再次比較,但是,容器在運行時是動態地申請節點上的資源,這會造成在實際運行環境中,集群負載的不均衡。由于集群整體負載的均衡情況決定了集群在服務時的整體表現,相同優先級節點的資源負載并不相同,因此,用戶體驗也不相同,這就降低了集群提供服務的質量。

2 Swarm調度策略的優化

根據上述情況,本文提出了靜態資源平衡和動態資源預測的策略對Swarm調度策略進行優化。

2.1 靜態資源平衡策略

多維資源的存在引發了資源碎片的問題。由1.2節可知,在一個滿負載的節點上,資源碎片顯然存在,節點資源分配是否平衡則關系到資源碎片的大小。為了減小資源碎片,需要改進Swarm現有調度策略,在集群分配容器時,需要度量容器分配后多維資源的平衡情況,從而選擇平衡情況最好的節點啟動容器。

2.2 動態資源調度策略

雖然靜態資源平衡策略考慮了靜態資源碎片的問題。但是,并沒有考慮資源動態的變化問題,容易造成集群負載不均的情況。因此,根據這種情況,需要在靜態平衡策略的基礎上增加動態調度策略作為補充。分析Swarm整體架構,其中并沒有提供動態收集節點信息的模塊,這就需要增加此模塊實現動態資源調度策略,修改后Swarm框架如圖2所示。

圖2 動態資源調度框架

首先在Swarm中添加receiver模塊,供scheduler模塊調用,receiver模塊用來接收monitor模塊傳輸的節點實時預測信息。monitor模塊運行在每個節點上,實時監控節點多維資源的使用情況。由于每個節點資源使用情況會隨著時間產生不同的波動。僅僅提供當前節點信息并不能代表節點資源的實際使用情況。所以需要研究監控節點的變化趨勢和時間關系,可以有效地預測出未來節點的資源使用情況,完成調度功能。

3 算法的設計與實現

3.1 優化調度算法的設計流程

總結上述策略,本文提出靜態動態相結合和的優化調度算法,該算法流程如圖3所示。

圖3 優化調度算法流程

(1) scheduler模塊獲取申請容器的配制信息。

(2) 靜態資源平衡算法計算靜態權值。

(3) receiver模塊獲取monitor模塊動態預測的節點的信息。

(4) scheduler模塊獲取receiver模塊的節點信息,計算動態權值。

(5) scheduler模塊根據靜態權值對節點排序。

(6) scheduler模塊對靜態權值相等的節點根據動態權值進行二次排序。

(7) scheduler模塊選擇權值最小的節點分配容器。

3.2 靜態資源平衡算法

這里通過計算CPU資源和內存資源之間的方差來度量節點資源的平衡情況。因為方差度量了一組數據的離散程度。方差越小代表這組數據越穩定,反之,則越不穩定。

靜態資源平衡算法如下:

設節點的資源維度為D[1,2,…,d],節點已分配的資源為U[u1,u2…,ud],節點的資源總量為T[t1,t2,…,td],節點即將分配的資源為P[p1,p2,…,pd],節點的資源利用率R[r1,r2,…,rd]。

當用戶向集群申請一個容器。首先集群調度模塊獲取容器的配制信息,使用式(1)計算出每個節點在分配此容器后的靜態資源利用率。

(1)

然后使用式(2)計算每個節點的平均資源利用率:

(2)

最后使用式(3)計算每個節點的CPU資源和內存資源的方差S2,方差即為節點的靜態權值:

(3)

3.3 動態資源調度算法

1) 預測模型的選取

在選取預測算法時,需要考慮預測模型是否能夠反映節點負載的真實情況,同時又要求算法應具有較小的時間復雜度[7]。由于Swarm是基于Docker的原生態集群,其Docker輕量級和便攜性的優勢在Swarm中體現的非常突出。通過綜合考量,應該避免使用時間復雜度高的高次曲線對節點負載情況進行模擬,以免過度消耗集群的整體資源,削弱Swarm集群的整體表現。基于上述原因,本文采用灰色模型GM(1,1)[8-9]對節點的狀態變化進行模擬預測。

灰色系統理論是鄧聚龍在1982年創立的一門新興橫斷學科,它以“部分信息已知,部分信息未知”的“小樣本”、“貧信息”不確定性系統為研究對象,主要通過對部分已知信息的生成、開發,提取有價值的信息,實現對系統運行規律的正確認識和確切描述,并據以進行科學預測。其主要優點包括以下幾點:需求樣本量小,樣本不需要有規律性分布,計算工作量小,定量分析結果與定性分析結果一致,預測準確度高。

2) 基于灰色模型的節點負載預測

由于Swarm原有調度策略中只計算了CPU和內存兩個維度的資源,因此這里假設節點的CPU利用率為Uc,內存利用率為Um。首先通過monitor獲得節點的前n時刻的Uc={Uc(1),Uc(2),…,Uc(n)}和Um={Um(1),Um(2),…,Um(n)}后,采用GM(1,1)預測算法模擬,然后對n+1時刻的Uc和Um值進行預測。計算方法如下:

步驟1 設時間序列x(0)={x(0)(1),x(0)(2),…,x(0)(n)}有n個原始值,使用式(4)通過一次累加生成新的序列x(1)={x(1)(1),x(1)(2),…,x(1)(n)}:

(4)

根據灰色預測方法,得出GM(1,1)模型相應的微分方程為式(5):

(5)

其中,α稱為發展灰數;μ稱為內生成控制灰數。

(6)

(7)

Y=(x(0)(2),x(0)(3),…,x0(n))T

(8)

步驟3 求解微分方程,根據式(9)即可得預測模型:

(9)

步驟4 根據式(10)對預測模型值累減,得到預測值:

(10)

步驟5 精度檢驗,根據式(11)計算原始數據和預測數據的相對殘差:

(11)

3) 基于灰色模型的動態資源調度算法

步驟1 獲得當前的CPU和內存利用率的時間序列x(0),并根據式(4)對其進行一次累加計算,得到一次處理的數據序列x(1)。

步驟2 根據B和Y的計算公式(式(7)和式(8)),形成B矩陣和Y矩陣。

步驟3 對B和Y矩陣進行矩陣運算,根據式(6)求出發展灰數α和內生控制灰數μ。

步驟6 根據式(11)對預測模型進行殘差檢驗,評估模型是否達到要求。

步驟7 對n+1時間節點的CPU和內存預測值求和得出節點的動態權值。

4 實驗設計及結果分析

本實驗搭建2個Swarm集群,集群1使用Swarm1.0.1搭建,集群2使用修改后的Swarm1.01源碼包重新編譯并搭建。每個集群由3臺普通PC組成。其組成如表1所示。

表1 集群配制

由于實驗條件限制,現設計實驗如下:

實驗一 對兩個Swarm集群申請如表2序列容器。集群1算法為Swarm原算法,集群2算法為靜態資源平衡算法。每個集群容器的運行情況如表3所示。

表2 容器申請序列

表3 容器運行對比結果

圖4 集群資源碎片對比圖

由圖4可知,集群2中的靜態資源碎片相比集群1有明顯下降,由表3可知,集群2相比集群1可以多運行一個維度為[1,2]的容器。改進算法能夠減少靜態資源碎片,增加資源的利用率。

實驗二 為方便計算,本文定義動態資源度量單位S=(Uc+Um)×100。每個節點的初始狀態如表4所示。

表4 節點初始狀態

本實驗通過在集群2上增加動態預測算法和靜態資源平衡算法作比較,表5為每個節點的運行容器的情況。本文通過模擬程序給予node1中單核滿負載,其他節點為初始狀態。同時,給予容器1、3和5號容器CPU滿載,2號容器CPU滿載并使用1GB的內存,容器運行情況如表5所示。

表5 容器運行對比結果

集群負載對比情況如圖5所示。由圖5可知,靜態平衡算法會出現集群整體負載不均衡的情況,增加動態預測算法后,集群整體負載相對均衡。

圖5 集群負載均衡對比圖

總結上述實驗,優化調度算法不僅可以減少集群的靜態資源碎片,提高資源利用率,而且可以均衡集群的動態負載。

5 結 語

Docker容器隨著其生態圈的完善,越來越受到大家的青睞。Swarm作為Docker的原生態集群管理工具也顯得更加重要。本文在分析Swarm集群框架和調度策略的基礎上,針對原有調度策略在解決靜態資源碎片問題上存在的不足,提出靜態平衡算法,并在此基礎上增加動態預測算法均衡集群的動態負載。實驗表明,優化調度算法能改善集群資源碎片過多的問題,提高資源利用率,同時能夠均衡集群的動態負載。

[1] 楊保華,戴王劍,曹亞侖.Docker技術入門與實戰[M].北京:機械工業出版社,2015.

[2] 孫宏亮.Docker源碼分析[M].北京:機械工業出版社,2015.

[3]LiuD,ZhaoL.Theresearchandimplementationofcloudcomputingplatformbasedondocker[C]//2014 11thInternationalComputerConferenceonWaveletActiveMediaTechnologyandInformationProcessing,2014:475-478.

[4]BernsteinD.Containersandcloud:fromLXCtoDockertoKubernetes[J].IEEECloudComputing,2014,1(3):81-84.

[5]HuangW,LiX,QianZ.Anenergyefficientvirtualmachineplacementalgorithmwithbalancedresourceutilization[C]//2013SeventhInternationalConferenceonInnovativeMobileandInternetServicesinUbiquitousComputing(IMIS),2013:313-319.

[6]TsengHW,WuRY,ChangTS.AneffectiveVMmigrationschemeforreducingresourcefragmentsinclouddatacenters[C]//Proceedingsofthe2014ConferenceonResearchinAdaptiveandConvergentSystems,2014:320-325.

[7] 李丹程,王曉晨,宋曉雪,等.基于OpenStack的資源負載預測方法研究[J].計算機應用研究,2014,31(7):2178-2182.

[8] 段峰,楊芬.灰色預測模型的研究及應用[J].湘南學院學報,2008,29(2):17-21.

[9] 郭正紅,馬辛華,蘭安怡.基于層次分析法權重和灰色服務器負載預測的云計算on-line遷移策略[J].計算機測量與控制,2015,23(3):1002-1004,1007.

A SCHEDULING STRATEGY AND ALGORITHM FOR DOCKER SWARM CLUSTER

Ma Xiaoguang Liu Zhaoyuan

(SchoolofComputerScience,Xi’anUniversityofPostsandTelecommunications,Xi’an710061,Shaanxi,China)

Swarm is a cluster management tool based on the Docker container. Aiming at the problem of resource fragment and load balancing of cluster, container scheduling algorithm combining static balance and dynamic prediction is proposed by analyzing the overall structure and scheduling strategy of Swarm. Through testing, the algorithm can reduce the static resource fragment of the cluster, improve the utilization rate of the cluster resource, and maintain the cluster load balance.

Cloud computing Resource fragment Load balancing Docker container Swarm

2016-05-18。馬曉光,碩士生,主研領域:計算機技術。劉釗遠,教授。

TP338.8

A

10.3969/j.issn.1000-386x.2017.05.049

猜你喜歡
靜態容器集群
Different Containers不同的容器
靜態隨機存儲器在軌自檢算法
難以置信的事情
海上小型無人機集群的反制裝備需求與應對之策研究
一種無人機集群發射回收裝置的控制系統設計
電子制作(2018年11期)2018-08-04 03:25:40
Python與Spark集群在收費數據分析中的應用
勤快又呆萌的集群機器人
取米
機床靜態及動態分析
機電信息(2015年9期)2015-02-27 15:55:56
具7μA靜態電流的2A、70V SEPIC/升壓型DC/DC轉換器
主站蜘蛛池模板: 亚洲一区二区日韩欧美gif| 色屁屁一区二区三区视频国产| 国产真实二区一区在线亚洲| 在线观看国产精美视频| 2022精品国偷自产免费观看| 91精品啪在线观看国产| 亚洲欧美日韩中文字幕一区二区三区| 国产成人AV男人的天堂| 亚洲国产成人在线| 色综合成人| 欧美精品另类| 极品私人尤物在线精品首页| 欧美h在线观看| 久久婷婷五月综合色一区二区| 亚洲中字无码AV电影在线观看| 久久亚洲高清国产| AV片亚洲国产男人的天堂| 国产精品久久久精品三级| 麻豆精品在线视频| а∨天堂一区中文字幕| 午夜啪啪网| 亚洲人成影院午夜网站| 亚洲成年人片| 久久国产香蕉| 中文字幕调教一区二区视频| av午夜福利一片免费看| 无码中文字幕精品推荐| 午夜福利免费视频| 久久大香香蕉国产免费网站| 午夜国产大片免费观看| 91福利免费| 亚洲经典在线中文字幕| 亚洲AⅤ综合在线欧美一区| 色综合中文| 亚洲成a人片在线观看88| 中文字幕乱妇无码AV在线| 88av在线播放| 成人日韩视频| 色综合成人| 四虎影视8848永久精品| 久久福利网| 国产精品极品美女自在线网站| 精品无码国产自产野外拍在线| 91精品免费久久久| 国产SUV精品一区二区6| 国产乱人伦偷精品视频AAA| 欧美国产综合色视频| 国产精品主播| 最新加勒比隔壁人妻| 国产亚洲精品无码专| 国产国拍精品视频免费看| 伦精品一区二区三区视频| 91视频日本| 国产精品第| 制服丝袜一区二区三区在线| 中文字幕有乳无码| 中国特黄美女一级视频| 欧美成人日韩| 妇女自拍偷自拍亚洲精品| 福利视频一区| 国产毛片网站| 亚洲日韩日本中文在线| 99热国产在线精品99| 天天综合网亚洲网站| 欧美亚洲欧美| 欧美成人精品一级在线观看| 色哟哟精品无码网站在线播放视频| 国产精品成人啪精品视频| 亚洲成人免费看| 狠狠色噜噜狠狠狠狠奇米777| 97在线观看视频免费| 国产第一页免费浮力影院| 久久国产精品77777| 99re精彩视频| 玖玖精品在线| 久久黄色视频影| 欧美国产日韩在线观看| 天堂成人在线| 日本一区二区不卡视频| 精品人妻系列无码专区久久| 国产免费高清无需播放器| 欧美在线黄|