Docker與存儲紀實
在容器中運行應用的想法——也作為OS級虛擬化著稱——目前來看是一種潮流技術。這種技術的真身可以追溯到大型機時代。
但是在過去的12個月當中,在單一OS中運行多個相隔離的負載的思想被一款產品重新引爆。這家公司和產品統一命名作Docker。
Docker是一款支持單一OS同時運行多應用的平臺產品,可以直接部署于物理服務器之上或作為虛擬機。
這一切都實現自“用戶空間”的多拷貝,用戶空間就是應用在Linux或是Unix平臺運行的地方。
Docker如此受追捧,原因在于其解決了運行VM的一些問題和花銷,每一個VM都需要配備專有的內存和存儲資源。
VM支持深度隔離并虛機個別升級,但是在跑相似或者完全相同的OS版本的大環境中,幾乎每個虛機都運行著耗內存的重復進程,還保留著完全相同或近似相同的啟動卷。
在面向網絡規模的計算中,傳統服務器虛擬化效率很低。
集裝箱生動描述了容器間的隔離。默認情況下,相互隔離的容器在實現任何意圖和目的時都好像擁有整個操作系統。這種隔離會因容器與外界交互的需要被不時打斷。而如果沒有這種交互,容器也就失去了存在意義。
因此,容器是有條件實現網絡交通并訪問數據的。
Docker將在存儲上嶄露頭角?
與VM相比,容器是輕量的,并也被應用于存儲。
Docker的一大神奇特色就是其疊加式文件系統,它實現了寫入時拷貝,將任何更新了的信息存入容器的根文件系統。因此容器默認將不具備永久性存儲。
然而,Docker卻擁有支持訪問更多永久性存儲資源的功能——Docker卷和數據容器。
從兩年前的全面啟動,Docker開源容器已經覆蓋到大部分的應用開發和測試環境。Docker還有多少時日能夠部署于主存儲還很難預測,但專家認為它將采取和VMware類似的方式,逐漸的去增加特性到服務器虛擬化軟件來幫助創建、配置和管理存儲。
“從存儲的角度來看Docker,關鍵在于你真的需要一個具有眾多特性的存儲系統,”Storage Switzerland主席George Crump這樣表示。“就想早期的VMware,Docker的存儲局面還很緊張。”
Crump表示,VMware已經為Docker開辟了主存儲系統的先路,盡管這將會是一個緩慢的過程。
“我想Docker的用武之地首先會是有很多相同實例的存儲環境。比如說你正在擴展的80 Oracle或SQL Server應用。”
盡管類似,但Docker與VM存儲并不一樣
Docker是打包共享操作系統上的Linux應用及其依賴關系的開源軟件。目前為止,圍繞于Docker存儲容器的議論已經高于企業應用的廣度。
但Crump和其他行業觀察者表示,容器成為VM存儲的補充只是時間問題。
Docker公司商業化了開源Docker容器,但競爭者在衍生,包括由合作伙伴轉為競爭對手的CoreOS。谷歌在去年也揭幕了其基于Kubernetes開源容器集群管理框架的谷歌容器。
EMC、 Asigra、 Catalogic和Zadara都在推出支持Docker容器的產品。微軟表示將會在Windows Server 2016上支持Docker。
“Docker已經影響了我們考慮架構和基礎設施的的方式,但照目前我們的存儲來看,一個Docker實例就像是虛擬機,”NC-based Signature Tech Studio副總Rob Hines說道,“它能夠訪問Zadara。一開始我們會在VPSA里面運行少量的容器。但我不知道如果我準備好將成百上千的工作投進VPSA會怎樣,也許這會是我們的最終目標。”
“VM和容器最大的不同在于粒度,”StorageIO Group創始人Greg Schulz說,“我能在一臺物理機上啟動5-10個VM。而對于容器而言,我可能同時運行成百上千個輕量的實例。”
Docker還缺少數據保護上的本地存儲特性,像是復制和快照。
數據持久性和可移植性上面的缺失也在阻礙容器技術在共享存儲上的全面應用。