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