成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

新視界 | 也許這才是大規(guī)模分發(fā)容器鏡像的正確姿勢(shì)

hufeng / 3061人閱讀

摘要:負(fù)責(zé)承載操作系統(tǒng)的分布式文件系統(tǒng)只需要使用必要的文件,而且事實(shí)上只需要下載并在本地緩存這部分必要數(shù)據(jù)。而第二項(xiàng)原則在于元數(shù)據(jù)即與文件存在相關(guān)的信息,而非文件內(nèi)容被優(yōu)先對(duì)待。這套鏡像隨后可進(jìn)行任意分發(fā),并被用于啟動(dòng)該項(xiàng)任務(wù)。

隨著Docker技術(shù)的日漸火熱,一些容器相關(guān)的問(wèn)題也浮出水面。本文就容器數(shù)量激增后造成的分發(fā)效率低下問(wèn)題進(jìn)行了探討,并提出了一種新的解決方法。發(fā)現(xiàn)問(wèn)題,解決問(wèn)題,正是IT技術(shù)不斷進(jìn)步的真諦,小數(shù)深以為然。

容器技術(shù)令應(yīng)用程序的配置與部署工作效率極大提高,但在不同IT運(yùn)維領(lǐng)域的具體提升效果卻又不盡相同。舉例來(lái)說(shuō),其在利用數(shù)據(jù)中心存儲(chǔ)與網(wǎng)絡(luò)容量進(jìn)行容器鏡像的大規(guī)模分發(fā)時(shí)往往表現(xiàn)得比較不盡如人意。

這確實(shí)有點(diǎn)反直覺(jué):容器技術(shù)一直以高效的服務(wù)運(yùn)行能力與相較于虛擬機(jī)的可觀資源節(jié)約水平為人們所稱(chēng)道,為什么也會(huì)存在效率低下問(wèn)題?答案出在Docker鏡像的存儲(chǔ)與下載方式上。從傳統(tǒng)角度講,存儲(chǔ)在庫(kù)中的每套鏡像都必須擁有與其各層相關(guān)的全部文件,這意味著對(duì)任意主機(jī)設(shè)備上的Docker鏡像進(jìn)行更新,我們就需要從該庫(kù)中下載完整的鏡像。

在面對(duì)小型Web應(yīng)用中的少量容器時(shí),這種機(jī)制似乎構(gòu)不成什么大問(wèn)題。然而我們可以設(shè)想一旦容器系統(tǒng)數(shù)量增長(zhǎng)至數(shù)百、數(shù)千乃至數(shù)百萬(wàn)之巨時(shí),那么庫(kù)的體積就會(huì)隨著容器系統(tǒng)的增加而不斷攀升,而每一次更新所需要下載的數(shù)據(jù)量也會(huì)越來(lái)越大。與此同時(shí),獲取Docker鏡像的下載流量也將提升至數(shù)GB,這顯然是我們所無(wú)法接受的。

像Twitter這樣的企業(yè)無(wú)疑運(yùn)行有大量容器系統(tǒng),自然也經(jīng)歷過(guò)上述困擾。這種狀況會(huì)隨著更多企業(yè)采用容器技術(shù)而變得愈發(fā)普遍,并導(dǎo)致大型容器庫(kù)的規(guī)模不斷向外擴(kuò)展。

我們認(rèn)為解決容器臃腫難題的可行方案之一正是名為CernVM文件系統(tǒng)(簡(jiǎn)稱(chēng)CernVM-FS)的技術(shù)成果。其由CERN(歐洲核子研究中心)開(kāi)發(fā)而成,同時(shí)囊括了來(lái)自世界各地的高能物理學(xué)領(lǐng)域、特別是費(fèi)米實(shí)驗(yàn)室的辛勤貢獻(xiàn)。

CernVM-FS的作用在于幫助科學(xué)家分發(fā)每年開(kāi)發(fā)出的高達(dá)2TB的軟件數(shù)據(jù)——其中一部分軟件甚至每周都需要面向數(shù)十萬(wàn)臺(tái)計(jì)算機(jī)進(jìn)行多次分發(fā)與上傳。CernVM-FS采用一整套獨(dú)特的索引、重復(fù)數(shù)據(jù)刪除、緩存與地理分布機(jī)制,旨在最大程度降低與每次下載相關(guān)的組件數(shù)量,同時(shí)盡可能加快必要的下載數(shù)據(jù)量。

Mesosphere與CERN目前正在探索如何將CernVM-FS同Apache Mesos加以結(jié)合,從而了解其在容器下載工作中的實(shí)際效果以及我們?cè)诖笮腿萜鳝h(huán)境下的處理效率。

CernVM-FS工作原理深度解析

CernVM-FS的基本構(gòu)想誕生于2008年,當(dāng)時(shí)CERN的研究人員與現(xiàn)在的人們一樣因?yàn)榈讓佑布摂M化的需求而開(kāi)始審視容器技術(shù),即尋求新的應(yīng)用程序部署機(jī)制。相較于創(chuàng)建鏡像或者軟件包,他們想到使用一套全局分布式文件系統(tǒng)幫助科學(xué)家們將自己的軟件一次性安裝在一臺(tái)Web服務(wù)器上,而后立足世界任意位置對(duì)其進(jìn)行訪問(wèn)。

作為一套分布式文件系統(tǒng),其首要原則就是在任意時(shí)間段之內(nèi),全部可用文件都只有一小部分接受實(shí)際訪問(wèn)。舉例來(lái)說(shuō),要運(yùn)行一臺(tái)Web服務(wù)器,大家只需要使用操作系統(tǒng)(例如glibc與OpenSSL)中的一部分庫(kù)。負(fù)責(zé)承載操作系統(tǒng)的分布式文件系統(tǒng)只需要使用必要的文件,而且事實(shí)上CVMFS只需要下載并在本地緩存這部分必要數(shù)據(jù)。當(dāng)時(shí)研究人員們選擇了HTTP作為下載協(xié)議,從而接入其它可用Web緩存基礎(chǔ)設(shè)施(例如Akamai、CloudFront、Squid以及NGINX代理服務(wù)器等等)。

而第二項(xiàng)原則在于元數(shù)據(jù)(即與文件存在相關(guān)的信息,而非文件內(nèi)容)被優(yōu)先對(duì)待。一般來(lái)講,文件系統(tǒng)所承載的軟件會(huì)受到“l(fā)ibssl.so是否存在于lib32當(dāng)中?抑或是存在于/lib64目錄當(dāng)中?還是存在于/usr/lib32當(dāng)中?”這類(lèi)請(qǐng)求所困擾。在處理這些請(qǐng)求時(shí),通用型分布式文件系統(tǒng)往往表現(xiàn)得很差。CernVM-FS則將全部元數(shù)據(jù)保存在SQlite文件當(dāng)中,并將其作為常規(guī)文件進(jìn)行下載與緩存。在這種情況下,數(shù)百萬(wàn)計(jì)的元數(shù)據(jù)請(qǐng)求就能夠以本地方式進(jìn)行解析,使得CernVM-FS在速度表現(xiàn)上幾乎與本地POSIX文件系統(tǒng)保持一致。

第三項(xiàng)原則在于,軟件只能夠在發(fā)布點(diǎn)處進(jìn)行修改——其他一切客戶(hù)都只能在高可用性水平下實(shí)現(xiàn)只讀操作。多數(shù)此前存在的文件系統(tǒng)在設(shè)計(jì)中都無(wú)法處理CAP定理提到的權(quán)衡難題,因?yàn)檫@類(lèi)系統(tǒng)會(huì)假定客戶(hù)的目標(biāo)始終是讀取最新的可用數(shù)據(jù)版本。在這種情況下,軟件必須在應(yīng)用或者容器運(yùn)行的同時(shí)保持即時(shí)性,這意味著運(yùn)行過(guò)程中該文件系統(tǒng)必須交付單一快照。

有鑒于此,CERN決定使用內(nèi)容可尋址存儲(chǔ)與梅克爾樹(shù)狀結(jié)構(gòu)。與git類(lèi)似,各文件會(huì)在內(nèi)部根據(jù)其(惟一的)加密內(nèi)容散列進(jìn)行命名。存在于不同目錄內(nèi)的同一文件的多套副本(例如不同Ubuntu鏡像當(dāng)中的“l(fā)s”實(shí)體)會(huì)被合并為單一文件。SQlite文件目錄取決于其中文件的內(nèi)容散列值。如此一來(lái),其root散列值(一個(gè)160位整數(shù))將最終確定整套文件系統(tǒng)快照。要關(guān)閉信任鏈,系統(tǒng)會(huì)提供一個(gè)經(jīng)過(guò)加密的root散列值,每個(gè)客戶(hù)端則對(duì)接收到的數(shù)據(jù)的每一位進(jìn)行驗(yàn)證,從而確保其來(lái)自預(yù)期來(lái)源且未被篡改。

如今,CernVM-FS負(fù)責(zé)為分布在全球各地的約十萬(wàn)臺(tái)計(jì)算機(jī)交付來(lái)自大型強(qiáng)子對(duì)撞機(jī)實(shí)驗(yàn)軟件的數(shù)百萬(wàn)個(gè)文件與目錄。

Mesos中的容器化器

Mesos通過(guò)所謂“容器化器(containerizer)”利用多種實(shí)現(xiàn)手段提供任務(wù)容器化能力。容器化器負(fù)責(zé)對(duì)運(yùn)行當(dāng)中的各個(gè)任務(wù)加以隔離,同時(shí)限定各個(gè)任務(wù)可以使用的資源量(例如CPU、內(nèi)存、磁盤(pán)以及網(wǎng)絡(luò))。Mesos容器化器的作用可以通過(guò)所謂“隔離器(isolator)”輕松得到擴(kuò)展,后者可被視為一種執(zhí)行特定任務(wù)的插件(舉例來(lái)說(shuō),在容器當(dāng)中啟動(dòng)外部分卷)。

最后但同樣重要的是,容器化器還能夠?yàn)槿蝿?wù)提供一套運(yùn)行時(shí)環(huán)境。它允許用戶(hù)將全部關(guān)聯(lián)性同任務(wù)本體一道預(yù)打包至文件系統(tǒng)鏡像當(dāng)中。這套鏡像隨后可進(jìn)行任意分發(fā),并被用于啟動(dòng)該項(xiàng)任務(wù)。

Mesos目前已經(jīng)擁有多種類(lèi)型的容器化器。其默認(rèn)選項(xiàng)為Mesos容器化器——這款工具采用Linux命名空間與cgropus以實(shí)現(xiàn)任務(wù)隔離同資源使用量控制,同時(shí)配合一整套隔離器實(shí)現(xiàn)外部功能交付。另外還有一套Docker容器化器,其利用Docker工具以提取鏡像并啟動(dòng)Docker容器。

Mesos容器化器目前已通過(guò)擴(kuò)展實(shí)現(xiàn)了多種鏡像格式的支持能力,其中包括Docker與AppC,旨在建立一套“統(tǒng)一容器化器”。這套方案令新鏡像格式的支持變得非常輕松:利用統(tǒng)一容器化器,我們只需要為新的鏡像格式構(gòu)建一款所謂“配置器(provisioner)”,并復(fù)用全部現(xiàn)有隔離代碼即可。舉例來(lái)說(shuō),Mesos用戶(hù)可以繼續(xù)使用Docker鏡像,但全部提取、隔離與其它任務(wù)都通過(guò)Mesos而非Docker工具實(shí)現(xiàn)。

集成CernVM-FS與Mesos以實(shí)現(xiàn)容器鏡像分發(fā)

內(nèi)容可尋址存儲(chǔ)的介入、出色的安全水平以及久經(jīng)考驗(yàn)的擴(kuò)展能力使得CernVM-FS成為一款極具吸引力的容器鏡像分發(fā)處理工具。為了測(cè)試其實(shí)際效果,我們創(chuàng)建了一套新的CernVM-FS庫(kù),并將其添加到一套Ubuntu安裝軟件包當(dāng)中。在此之后,我們立足于CVMFS構(gòu)建了一款Mesos容器鏡像配置器。相較于直接下載完整鏡像,它能夠利用CernVM-FS客戶(hù)端以本地方式遠(yuǎn)程啟動(dòng)鏡像root目錄。該配置器可將CernVM-FS庫(kù)名稱(chēng)作為輸入數(shù)據(jù)(其在內(nèi)部被映射至該CernVM-FS服務(wù)器的URL)以及充當(dāng)容器鏡像root所必需的庫(kù)內(nèi)路徑。

如此一來(lái),我們就能夠立足于同一CernVM-FS庫(kù)實(shí)現(xiàn)多種容器鏡像的發(fā)布。從本質(zhì)上講,CernVM-FS庫(kù)的作用等同于一套安全且可擴(kuò)展的容器鏡像注冊(cè)表。

從容器化器的角度來(lái)看,一切其實(shí)絲毫未受影響。它仍然負(fù)責(zé)處理包含有鏡像目錄樹(shù)的本地目錄,并利用一切必要元素實(shí)現(xiàn)容器啟動(dòng)。不過(guò)這種作法的最大優(yōu)勢(shì)在于CernVM-FS擁有經(jīng)過(guò)細(xì)化調(diào)整的重復(fù)數(shù)據(jù)刪除功能(在配合Docker的情況下,基于文件或者塊而非層),這意味著我們現(xiàn)在能夠在無(wú)需下載完整鏡像的前提下啟動(dòng)容器。一旦容器啟動(dòng)完成,CernVM-FS會(huì)下載必要的文件以進(jìn)行任務(wù)處理。

在我們的測(cè)試當(dāng)中,我們啟動(dòng)了一套Ubuntu容器,而后在shell當(dāng)中運(yùn)行了一條命令。在傳統(tǒng)場(chǎng)景當(dāng)中,我們需要下載完整的Ubuntu鏡像,其體積約為300 MB。然而,當(dāng)我們使用CernVM-FS配置器時(shí),我們只需要下載該任務(wù)所必需的文件——具體為不足6MB。

由于CernVM-FS采用內(nèi)容可尋址存儲(chǔ),因此我們不需要重復(fù)下載同樣的文件。所以,如果我們進(jìn)一步啟動(dòng)其它容器(例如一套CentOS鏡像)并運(yùn)行不同的命令,那么我們只需要下載新命令所需要的文件,并復(fù)用此前已經(jīng)在Ubuntu鏡像中下載過(guò)的全部通用關(guān)聯(lián)性(例如Bash或者libc.so)。在這種模式下,容器層的概念已經(jīng)不復(fù)存在,重復(fù)數(shù)據(jù)刪除將立足于更為細(xì)化的層面進(jìn)行。

我們還計(jì)劃添加對(duì)該配置器的支持以利用對(duì)應(yīng)的檢驗(yàn)機(jī)制啟動(dòng)任意CernVM-FS目錄。這將幫助開(kāi)發(fā)人員更為輕松地在處理容器鏡像時(shí)實(shí)現(xiàn)快速迭代,并使得運(yùn)維人員便捷地在不同容器鏡像版本間來(lái)回切換。

配合容器普及的浪潮

CERN與Mesosphere的技術(shù)團(tuán)隊(duì)對(duì)于將CernVM-FS與Apache Mesos集成充滿(mǎn)期待,這也意味著IT行業(yè)將更為廣泛地采納應(yīng)用程序容器技術(shù)。如果各企業(yè)與機(jī)構(gòu)希望從根本層面改善應(yīng)用程序構(gòu)建、代碼部署以及數(shù)據(jù)中心運(yùn)行的實(shí)現(xiàn)方式,則必須要立足于高于當(dāng)前實(shí)際規(guī)模的水平上進(jìn)行容器的啟動(dòng)、關(guān)閉、更新以及管理。CernVM-FS與Mesos之間的緊密集成將能夠成為一種可行途徑,幫助各類(lèi)用戶(hù)解決容器采納道路上的存儲(chǔ)容量及網(wǎng)絡(luò)帶寬瓶頸。

作為一項(xiàng)新興的技術(shù),關(guān)于Docker的坑很多,需要我們共同來(lái)填滿(mǎn)。大家如果有相關(guān)的疑問(wèn)和困惑,也歡迎留言和小數(shù)進(jìn)行討論。

原文鏈接:https://mesosphere.com/blog/2016/03/08/cernvmfs-mesos-containers/

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/26557.html

相關(guān)文章

  • 解鎖高性能計(jì)算與區(qū)塊鏈應(yīng)用,阿里云Kubernetes服務(wù)召喚神龍

    摘要:阿里云容器服務(wù)已經(jīng)發(fā)布了基于容器集群的開(kāi)源區(qū)塊鏈解決方案,利用容器技術(shù)可以在分鐘之內(nèi)部署完成一個(gè)生產(chǎn)級(jí)別安全高可用的區(qū)塊鏈應(yīng)用運(yùn)行環(huán)境,幫助企業(yè)可以加速業(yè)務(wù)創(chuàng)新。對(duì)節(jié)點(diǎn),阿里云服務(wù)會(huì)自動(dòng)開(kāi)啟相應(yīng)調(diào)度能力。 摘要: 阿里云ECS彈性裸金屬服務(wù)器(神龍)已經(jīng)與其容器服務(wù)全面兼容,用戶(hù)可以選擇在彈性裸金屬服務(wù)器上直接運(yùn)行容器、管控Kubernetes/Docker容器集群,如此將會(huì)獲得非常出...

    KitorinZero 評(píng)論0 收藏0
  • 在國(guó)內(nèi) docker build 正確姿勢(shì)

    摘要:由于某些原因,在國(guó)內(nèi)構(gòu)建第三方鏡像是一件考驗(yàn)?zāi)托牡氖虑?。?guó)內(nèi)有不少的鏡像源,比如中科大阿里云。以中科大的鏡像源為例,可以這樣指定鏡像源通常作為一個(gè)服務(wù)由系統(tǒng)在開(kāi)機(jī)時(shí)啟動(dòng),所以我們需要把上面的指令加到服務(wù)的配置中。 由于某些原因,在國(guó)內(nèi)構(gòu)建第三方docker鏡像是一件考驗(yàn)?zāi)托牡氖虑?。在神奇的?guó)度生活,自然也要用神奇的生活方式。跟解決其他同類(lèi)問(wèn)題一樣,解決這個(gè)問(wèn)題常用兩種方法,一曰換源,二...

    frolc 評(píng)論0 收藏0
  • 從GooglePaaS平臺(tái)說(shuō)起,解析中美Docker生態(tài)圈

    摘要:新一代也有輕量的特性,介紹谷歌的輕量特性,應(yīng)用要具有彈性要分布發(fā)布,再一個(gè)容錯(cuò)性強(qiáng)易于維護(hù),也要對(duì)計(jì)算資源故障進(jìn)行容錯(cuò)。 5月18日,第八屆中國(guó)云計(jì)算大會(huì)在北京國(guó)家會(huì)議中心召開(kāi)。作為領(lǐng)先的云計(jì)算創(chuàng)新技術(shù)實(shí)踐者,數(shù)人云CEO王璞博士應(yīng)邀出席并在全體大會(huì)上進(jìn)行主題為中美容器之融合與變革的分享,以下是演講實(shí)錄: 容器VS虛擬化 showImg(https://segmentfault.com...

    NSFish 評(píng)論0 收藏0
  • 如何在Rancher Catalog中使用VMware Harbor

    摘要:這相當(dāng)于在原始安裝程序中調(diào)整文件。警告我并沒(méi)有告訴這件事,因?yàn)檫@可能會(huì)嚇到他或任何其他專(zhuān)家。在創(chuàng)建應(yīng)用商店條目的過(guò)程中,還有兩個(gè)問(wèn)題需要解決變量需要設(shè)置為確切值,這樣用戶(hù)就可以通過(guò)它連接到該實(shí)例。 Harbor Registry是VMware公司的Docker鏡像管理產(chǎn)品。相較于其他鏡像倉(cāng)庫(kù),Harbor提供身份管理功能,安全性更高,支持單個(gè)主機(jī)上的多個(gè)registry,這些功能正是很...

    explorer_ddf 評(píng)論0 收藏0
  • 阿里如何實(shí)現(xiàn)100%容器鏡像化?八年技術(shù)演進(jìn)之路回顧

    摘要:八年時(shí)間,阿里集團(tuán)實(shí)現(xiàn)了內(nèi)部容器化鏡像化,經(jīng)歷了幾代演進(jìn)。容器技術(shù)在阿里的演進(jìn)過(guò)程伴隨著阿里技術(shù)架構(gòu)本身的演進(jìn)。 八年時(shí)間,阿里集團(tuán)實(shí)現(xiàn)了 100%內(nèi)部容器化鏡像化,經(jīng)歷了幾代演進(jìn)。本文將從最初的架構(gòu)開(kāi)始,向大家介紹下阿里內(nèi)部的容器化演化過(guò)程。 PouchContainer 現(xiàn)在服務(wù)于阿里巴巴集團(tuán)和螞蟻金服集團(tuán)的絕大部分 BU, 包括交易&中間件,B2B/CBU/ICBU,搜索廣告數(shù)據(jù)...

    tyheist 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<