服務(wù)器和桌面虛擬化目前已經(jīng)成為大多數(shù)數(shù)據(jù)中心的標(biāo)準(zhǔn)應(yīng)用部署。那么這些數(shù)據(jù)中心為什么還關(guān)注Docker和其他容器技術(shù)呢?容器能夠幫助克服虛擬化的2大根本問(wèn)題。
大多數(shù)情況下,虛擬機(jī)是過(guò)耗的。數(shù)據(jù)中心需要的是同時(shí)同物理主機(jī)能夠安全運(yùn)行多應(yīng)用的能力。將應(yīng)用歸類,這樣其中錯(cuò)誤的代碼就不會(huì)導(dǎo)致其他應(yīng)用的崩潰,這一點(diǎn)是基本的需求。除此之外,還要謹(jǐn)慎的分配主機(jī)服務(wù)器資源給這些實(shí)體。虛擬化之前,IT能夠?qū)嵤┪锢頇C(jī)的應(yīng)用控制。虛擬化實(shí)質(zhì)上再現(xiàn)了整個(gè)物理服務(wù)器作為一個(gè)虛擬機(jī)運(yùn)行一個(gè)應(yīng)用。虛擬化有監(jiān)控程序驅(qū)動(dòng)。它的作用是抽象服務(wù)器資源,讓監(jiān)控程序分配資源給VM。監(jiān)控程序執(zhí)行抽象的開(kāi)銷將造成性能損耗。
通常的解決方案是投入更多的硬件,一般是以CPU的形式而非裸機(jī)服務(wù)器。
容器的優(yōu)勢(shì)
容器要比VM更高效。并非虛擬化或抽象整個(gè)硬件,它們只是抽象應(yīng)用或應(yīng)用的部分。如此粒度的虛擬化意味著資源將不會(huì)浪費(fèi)在冗余的部分。它同時(shí)是低CPU、內(nèi)存和存儲(chǔ)需求的。
Docker利用寫(xiě)入時(shí)復(fù)制文件系統(tǒng)創(chuàng)建容器。通常看來(lái),一個(gè)主映像將被創(chuàng)建,然后從主影像上創(chuàng)建容器。大多數(shù)虛擬機(jī)監(jiān)控程序都有類似的功能,但映像必須是一個(gè)完整的虛擬機(jī)。容器技術(shù)帶來(lái)更加精確的映像。創(chuàng)建的容器可以使應(yīng)用的一個(gè)分支或應(yīng)用的子集。
Docker存儲(chǔ)注意事項(xiàng)
Docker存儲(chǔ)的一些注意都和虛擬化的相類似,然而也存在一些不同。Docker專為直連存儲(chǔ)應(yīng)用而設(shè)計(jì),但隨著環(huán)境的成熟,也會(huì)出現(xiàn)主機(jī)間共享信息和遷移容器的多樣需求。共享存儲(chǔ)將支持高可用、共享訪問(wèn)和容器遷移。但共享存儲(chǔ)勢(shì)必要適應(yīng)比一般虛擬服務(wù)器環(huán)境更多樣的負(fù)載,從I/O角度來(lái)看,Docker存儲(chǔ)環(huán)境和虛擬桌面基礎(chǔ)設(shè)施相類似。
Docker環(huán)境支持從幾十個(gè)容器擴(kuò)展到幾百個(gè)、甚至上千,在幾秒鐘之內(nèi),當(dāng)然它也能迅速的縮小至幾十個(gè)。適應(yīng)這樣的伸縮變化需要支持閃存和磁盤(pán)的混合系統(tǒng)。這個(gè)系統(tǒng)還可能要為適應(yīng)容器增長(zhǎng)而做擴(kuò)展設(shè)計(jì)。
今天,不像VMware和Hyper-V,Docker在存儲(chǔ)上幾乎毫無(wú)特色。缺少特點(diǎn)說(shuō)明存儲(chǔ)硬件上的軟件還要強(qiáng)大,讓企業(yè)能夠具備他們過(guò)去所具備的功能。Docker環(huán)境通過(guò)RESTful API實(shí)施自動(dòng)化,以編程方式創(chuàng)建、執(zhí)行以及移除。這很有意義,存儲(chǔ)系統(tǒng)本身通過(guò)RESTful API完全腳本化。
Docker和容器技術(shù)本身還在起步階段,在接下來(lái)的時(shí)間里還會(huì)有重大的變化。保守來(lái)看,Docker將在存儲(chǔ)管理、增減新協(xié)議支持以及提供存儲(chǔ)服務(wù)方面更有發(fā)展。支持的存儲(chǔ)系統(tǒng)需要足夠靈活以適應(yīng)支持多協(xié)議帶來(lái)的變化。
今天,Docker已經(jīng)支持應(yīng)用部署和測(cè)試。對(duì)著數(shù)據(jù)中心數(shù)量的上升,越來(lái)越多的企業(yè)數(shù)據(jù)中心將會(huì)進(jìn)行比以往更多的開(kāi)發(fā)工作。Docker對(duì)于這些環(huán)境來(lái)講是理想的。但就像虛擬化開(kāi)始應(yīng)用于實(shí)驗(yàn)環(huán)境后來(lái)進(jìn)入商業(yè)領(lǐng)域,Docker和容器作為測(cè)試開(kāi)發(fā)工具起步也將在未來(lái)的企業(yè)應(yīng)用中找到位置。