7月5日消息,據(jù)國外媒體報(bào)道,容器技術(shù)對數(shù)據(jù)驅(qū)動(dòng)科學(xué)研究有很深的影響,開發(fā)人員越來越喜歡這種技術(shù)。而容器技術(shù)到底是什么呢?今天,我們一起來看看。
要了解容器,我們必須從Linux cgroups和命名空間開始,Linux內(nèi)核功能可以在容器和主機(jī)上運(yùn)行的其他進(jìn)程之間創(chuàng)建墻壁。最初由IBM開發(fā)的Linux命名空間包裝了一套系統(tǒng)資源,并將它們呈現(xiàn)出一個(gè)流程,使其看起來像是專用于該進(jìn)程。
最初由Google開發(fā)的Linux cgroup管理一組進(jìn)程系統(tǒng)資源(如CPU和內(nèi)存)的隔離和使用。例如,如果您的應(yīng)用程序占用大量CPU周期和內(nèi)存,科學(xué)計(jì)算應(yīng)用程序則可以將這些應(yīng)用程序放在cgroup中以限制其CPU和內(nèi)存使用。
容器技術(shù)也叫做Docker,廣泛用于科學(xué)研究中。加州大學(xué)戴維斯分校生物信息學(xué)家 C. Titus Brown 介紹說,實(shí)驗(yàn)室開發(fā)的工具極少能拿來就用,它們通常以必須接受處理和配置的腳本或者源代碼的形式存在。大多數(shù)軟件需要額外的工具和程序庫,但用戶可能并未安裝。即便用戶能獲得軟件并運(yùn)行它,計(jì)算環(huán)境的不同也會(huì)無意中改變其性能并且影響可重復(fù)性。容器通過將運(yùn)行所需軟件要求配置的計(jì)算環(huán)境的關(guān)鍵要素打包進(jìn)一個(gè)輕量級的虛擬機(jī),減少了這種復(fù)雜性。
像FreeBSD Jails和Solaris Zones一樣,Linux容器是獨(dú)立的執(zhí)行環(huán)境,它們擁有獨(dú)立的CPU、內(nèi)存塊I / O和網(wǎng)絡(luò)資源,共享主機(jī)操作系統(tǒng)的內(nèi)核。結(jié)果像虛擬機(jī)那樣,擺脫了客戶操作系統(tǒng)的所有重量和啟動(dòng)開銷。
加州伯克利國家能源研究科學(xué)計(jì)算機(jī)中心計(jì)算機(jī)專家 Deborah Bard 已幫助很多研究人員在實(shí)驗(yàn)室的超級計(jì)算機(jī)上安裝了他們的軟件。她回憶說,安裝用于望遠(yuǎn)鏡模擬和分析的復(fù)雜軟件通道之前需要三四天。利用容器則將這一時(shí)間縮減到幾個(gè)小時(shí)。在具有Web規(guī)模要求的應(yīng)用程序環(huán)境中,與傳統(tǒng)服務(wù)器虛擬化相比,容器是一個(gè)吸引人的主張。