国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

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

hufeng / 3064人閱讀

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

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

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

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

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

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

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

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

Mesosphere與CERN目前正在探索如何將CernVM-FS同Apache Mesos加以結(jié)合,從而了解其在容器下載工作中的實際效果以及我們在大型容器環(huán)境下的處理效率。

CernVM-FS工作原理深度解析

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

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

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

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

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

如今,CernVM-FS負責(zé)為分布在全球各地的約十萬臺計算機交付來自大型強子對撞機實驗軟件的數(shù)百萬個文件與目錄。

Mesos中的容器化器

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

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

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

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

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

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

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

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

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

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

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

配合容器普及的浪潮

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

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

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

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

轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/26557.html

相關(guān)文章

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

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

    KitorinZero 評論0 收藏0
  • 在國內(nèi) docker build 正確姿勢

    摘要:由于某些原因,在國內(nèi)構(gòu)建第三方鏡像是一件考驗?zāi)托牡氖虑椤鴥?nèi)有不少的鏡像源,比如中科大阿里云。以中科大的鏡像源為例,可以這樣指定鏡像源通常作為一個服務(wù)由系統(tǒng)在開機時啟動,所以我們需要把上面的指令加到服務(wù)的配置中。 由于某些原因,在國內(nèi)構(gòu)建第三方docker鏡像是一件考驗?zāi)托牡氖虑椤T谏衿娴膰壬睿匀灰惨蒙衿娴纳罘绞健8鉀Q其他同類問題一樣,解決這個問題常用兩種方法,一曰換源,二...

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

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

    NSFish 評論0 收藏0
  • 如何在Rancher Catalog中使用VMware Harbor

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

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

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

    tyheist 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<