容器化集群資源搶占式調(diào)度技術(shù)研究
發(fā)布時(shí)間:2021-11-27 05:54
隨著互聯(lián)網(wǎng)用戶規(guī)模和應(yīng)用種類的爆炸式增長(zhǎng),互聯(lián)網(wǎng)行業(yè)面對(duì)的數(shù)據(jù)規(guī)模也飛速擴(kuò)張,分布式集群的重要性日益升高,在云計(jì)算技術(shù)逐漸成熟后,分布式集群已經(jīng)成為幾乎所有企業(yè)和機(jī)構(gòu)在解決數(shù)據(jù)存儲(chǔ)和處理問(wèn)題時(shí)的不二選擇。分布式集群可作為多種工作的運(yùn)行平臺(tái),也需要滿足多種工作的需求:包括批處理工作和實(shí)時(shí)工作,不同種類的工作對(duì)于服務(wù)質(zhì)量有著不同的衡量標(biāo)準(zhǔn)。分布式系統(tǒng)的一大挑戰(zhàn)在于對(duì)批處理工作和實(shí)時(shí)工作進(jìn)行調(diào)度,在降低實(shí)時(shí)工作超時(shí)率的同時(shí)減少批處理工作的執(zhí)行時(shí)間以提升集群中資源緊張時(shí)的服務(wù)質(zhì)量。容器技術(shù)作為一種新興的虛擬化技術(shù),對(duì)信息安全和資源使用都帶來(lái)了巨大的便利,已經(jīng)受到各大公司和機(jī)構(gòu)的歡迎,人們開(kāi)始選擇將集群容器化后進(jìn)行使用。在容器化集群中現(xiàn)有的調(diào)度策略的粒度比較粗糙,通常選擇直接殺死批處理工作或者預(yù)先為實(shí)時(shí)工作保留集群資源來(lái)降低實(shí)時(shí)工作的超時(shí)率,但這會(huì)增加批處理工作的執(zhí)行時(shí)間并降低集群資源利用率。本文提出了一種容器化集群中的調(diào)度策略,UpPreempt,它可以做出基于容器掛起的細(xì)粒度多容器資源搶占決策。UpPreempt在進(jìn)行調(diào)度時(shí)支持較緊急的實(shí)時(shí)工作從正在運(yùn)行中的批處理工作上搶占資源,在決定搶占時(shí)...
【文章來(lái)源】:上海交通大學(xué)上海市 211工程院校 985工程院校 教育部直屬院校
【文章頁(yè)數(shù)】:72 頁(yè)
【學(xué)位級(jí)別】:碩士
【部分圖文】:
–1Docker架構(gòu)
上海交通大學(xué)碩士學(xué)位論文第二章相關(guān)工作圖2–2虛擬機(jī)的架構(gòu)Figure2–2ArchitectureofVM操作系統(tǒng)的虛擬機(jī)實(shí)例,但是這種做法會(huì)造成很大的資源浪費(fèi),并且會(huì)拖慢虛擬機(jī)創(chuàng)建、銷毀等操作的速度,也增加了編排、伸縮和遷移等調(diào)度的難度。事實(shí)上通常在生產(chǎn)環(huán)境中,開(kāi)發(fā)人員的開(kāi)發(fā)環(huán)境都是統(tǒng)一的,因此不需要派生出不同的操作系統(tǒng)來(lái)進(jìn)行服務(wù)的開(kāi)發(fā)。無(wú)論哪種虛擬化技術(shù),安全問(wèn)題都是通過(guò)沙箱(Sandbox)機(jī)制來(lái)解決的。沙箱是一種隔離進(jìn)程執(zhí)行的機(jī)制,其目的在于對(duì)一些存在安全威脅或暫時(shí)不能信任的進(jìn)程進(jìn)行權(quán)限的管理,例如禁止發(fā)行者未知的用戶程序訪問(wèn)當(dāng)前路徑的上級(jí)目錄,或訪問(wèn)其它同組用戶的空間及文件等。虛擬化技術(shù)通過(guò)這一機(jī)制來(lái)為用戶提供虛擬的計(jì)算和存儲(chǔ)資源,虛擬機(jī)通過(guò)Hypervisor層來(lái)實(shí)現(xiàn)沙箱,而容器技術(shù)則是通過(guò)Linux提供的chroot功能來(lái)實(shí)現(xiàn)的。原本Linux的chroot是修改根目錄的一個(gè)命令,容器采用這種方式修改進(jìn)程組(或樹(shù))的根目錄,以此限制訪問(wèn)的權(quán)限。隨著Linux系統(tǒng)命名空間(Namespace)技術(shù)的進(jìn)步,開(kāi)發(fā)人員可以通過(guò)命名空間的方式將一個(gè)(組)進(jìn)程與另一個(gè)(組)進(jìn)程進(jìn)行隔離,使這兩個(gè)(組)進(jìn)程之間彼此不能影響,這就是容器機(jī)制。而Google提出的Controlgroups(Cgroups)技術(shù)被整合進(jìn)Linux內(nèi)核之中,這種技術(shù)可以對(duì)進(jìn)程組之間的物理資源進(jìn)行隔離、分配和管理,也成為容器進(jìn)行物理資源分配的基!11—
第二章相關(guān)工作上海交通大學(xué)碩士學(xué)位論文圖2–3在Linux系統(tǒng)中的/proc/[PID]/ns/目錄下,使用ls-l命令查看文件Figure2–3Seethefilesinthefolder/proc/[PID]/ns/onLinuxsystemusingcommand[ls-l]表2–1Namespace類型Table2–1TypesofLinuxNamespace.類型含義內(nèi)核版本調(diào)用參數(shù)Mountnamespaces掛載點(diǎn)2.4.19CLONE_NEWNSUTSnamespaces主機(jī)名2.6.19CLONE_NEWUTSIPCnamespaces進(jìn)程間通信2.6.19CLONE_NEWIPCPIDnamespaces進(jìn)程id2.6.24CLONE_NEWPIDNetworknamespaces網(wǎng)絡(luò)通信2.6.29CLONE_NEWNETUsernamespaces用戶3.8CLONE_NEWUSER命名空間(Namespace)是Linux系統(tǒng)自帶的隔離方法。使用Namespace后,進(jìn)程組(樹(shù))、內(nèi)存、網(wǎng)絡(luò)接口套接字、用戶(組)名、UTS、IPC等資源不再是全局性的,而是屬于某特定的Namespace。程序開(kāi)發(fā)人員使用Linux系統(tǒng)時(shí),對(duì)于機(jī)器上的資源是否隔離并不關(guān)心,而是希望自己可以獨(dú)占整個(gè)機(jī)器進(jìn)行配置和開(kāi)發(fā),因?yàn)槿绻麢C(jī)器上同時(shí)運(yùn)行著其它應(yīng)用程序的話,進(jìn)程之間可能會(huì)相互影響,造成無(wú)法預(yù)料的錯(cuò)誤。Linux系統(tǒng)提供的Namespace機(jī)制解決了這一問(wèn)題,不同的Namespace間是彼此透明、互不干擾的。常見(jiàn)的Linux支持的命名空間類型有6種,分別對(duì)掛載、主機(jī)名/域名、IPC、PID、網(wǎng)絡(luò)和用戶進(jìn)行隔離,如表2–1所示。在3.8以上版本的Linux系統(tǒng)中的/proc/[PID]/ns/目錄下,使用ls-l命令查看文件,如圖2–3所示,箭頭右側(cè)所指即為所屬的namespace的id。創(chuàng)建一個(gè)Namespace需要使用Linux提供的schead庫(kù)函數(shù)中的clone()方法,clone方法可以讓子進(jìn)程啟動(dòng)/bin/bash程序,clone()不同于fork(),一般使用clone方法時(shí)首先—12—
本文編號(hào):3521682
【文章來(lái)源】:上海交通大學(xué)上海市 211工程院校 985工程院校 教育部直屬院校
【文章頁(yè)數(shù)】:72 頁(yè)
【學(xué)位級(jí)別】:碩士
【部分圖文】:
–1Docker架構(gòu)
上海交通大學(xué)碩士學(xué)位論文第二章相關(guān)工作圖2–2虛擬機(jī)的架構(gòu)Figure2–2ArchitectureofVM操作系統(tǒng)的虛擬機(jī)實(shí)例,但是這種做法會(huì)造成很大的資源浪費(fèi),并且會(huì)拖慢虛擬機(jī)創(chuàng)建、銷毀等操作的速度,也增加了編排、伸縮和遷移等調(diào)度的難度。事實(shí)上通常在生產(chǎn)環(huán)境中,開(kāi)發(fā)人員的開(kāi)發(fā)環(huán)境都是統(tǒng)一的,因此不需要派生出不同的操作系統(tǒng)來(lái)進(jìn)行服務(wù)的開(kāi)發(fā)。無(wú)論哪種虛擬化技術(shù),安全問(wèn)題都是通過(guò)沙箱(Sandbox)機(jī)制來(lái)解決的。沙箱是一種隔離進(jìn)程執(zhí)行的機(jī)制,其目的在于對(duì)一些存在安全威脅或暫時(shí)不能信任的進(jìn)程進(jìn)行權(quán)限的管理,例如禁止發(fā)行者未知的用戶程序訪問(wèn)當(dāng)前路徑的上級(jí)目錄,或訪問(wèn)其它同組用戶的空間及文件等。虛擬化技術(shù)通過(guò)這一機(jī)制來(lái)為用戶提供虛擬的計(jì)算和存儲(chǔ)資源,虛擬機(jī)通過(guò)Hypervisor層來(lái)實(shí)現(xiàn)沙箱,而容器技術(shù)則是通過(guò)Linux提供的chroot功能來(lái)實(shí)現(xiàn)的。原本Linux的chroot是修改根目錄的一個(gè)命令,容器采用這種方式修改進(jìn)程組(或樹(shù))的根目錄,以此限制訪問(wèn)的權(quán)限。隨著Linux系統(tǒng)命名空間(Namespace)技術(shù)的進(jìn)步,開(kāi)發(fā)人員可以通過(guò)命名空間的方式將一個(gè)(組)進(jìn)程與另一個(gè)(組)進(jìn)程進(jìn)行隔離,使這兩個(gè)(組)進(jìn)程之間彼此不能影響,這就是容器機(jī)制。而Google提出的Controlgroups(Cgroups)技術(shù)被整合進(jìn)Linux內(nèi)核之中,這種技術(shù)可以對(duì)進(jìn)程組之間的物理資源進(jìn)行隔離、分配和管理,也成為容器進(jìn)行物理資源分配的基!11—
第二章相關(guān)工作上海交通大學(xué)碩士學(xué)位論文圖2–3在Linux系統(tǒng)中的/proc/[PID]/ns/目錄下,使用ls-l命令查看文件Figure2–3Seethefilesinthefolder/proc/[PID]/ns/onLinuxsystemusingcommand[ls-l]表2–1Namespace類型Table2–1TypesofLinuxNamespace.類型含義內(nèi)核版本調(diào)用參數(shù)Mountnamespaces掛載點(diǎn)2.4.19CLONE_NEWNSUTSnamespaces主機(jī)名2.6.19CLONE_NEWUTSIPCnamespaces進(jìn)程間通信2.6.19CLONE_NEWIPCPIDnamespaces進(jìn)程id2.6.24CLONE_NEWPIDNetworknamespaces網(wǎng)絡(luò)通信2.6.29CLONE_NEWNETUsernamespaces用戶3.8CLONE_NEWUSER命名空間(Namespace)是Linux系統(tǒng)自帶的隔離方法。使用Namespace后,進(jìn)程組(樹(shù))、內(nèi)存、網(wǎng)絡(luò)接口套接字、用戶(組)名、UTS、IPC等資源不再是全局性的,而是屬于某特定的Namespace。程序開(kāi)發(fā)人員使用Linux系統(tǒng)時(shí),對(duì)于機(jī)器上的資源是否隔離并不關(guān)心,而是希望自己可以獨(dú)占整個(gè)機(jī)器進(jìn)行配置和開(kāi)發(fā),因?yàn)槿绻麢C(jī)器上同時(shí)運(yùn)行著其它應(yīng)用程序的話,進(jìn)程之間可能會(huì)相互影響,造成無(wú)法預(yù)料的錯(cuò)誤。Linux系統(tǒng)提供的Namespace機(jī)制解決了這一問(wèn)題,不同的Namespace間是彼此透明、互不干擾的。常見(jiàn)的Linux支持的命名空間類型有6種,分別對(duì)掛載、主機(jī)名/域名、IPC、PID、網(wǎng)絡(luò)和用戶進(jìn)行隔離,如表2–1所示。在3.8以上版本的Linux系統(tǒng)中的/proc/[PID]/ns/目錄下,使用ls-l命令查看文件,如圖2–3所示,箭頭右側(cè)所指即為所屬的namespace的id。創(chuàng)建一個(gè)Namespace需要使用Linux提供的schead庫(kù)函數(shù)中的clone()方法,clone方法可以讓子進(jìn)程啟動(dòng)/bin/bash程序,clone()不同于fork(),一般使用clone方法時(shí)首先—12—
本文編號(hào):3521682
本文鏈接:http://sikaile.net/kejilunwen/ruanjiangongchenglunwen/3521682.html
最近更新
教材專著