Docker容器還是虛擬機?Canonical的LXD成功消除二者隔閡
譯文
在LXD的幫助下,Docker容器已經能夠在模擬虛擬機的同時保持著與裸機相當接近的運行速度與高安全性水平。
CoreOS已經成為一個理想的起點,它向我們充分展示了Docker與容器化技術能夠給Linux系統平臺帶來怎樣的重塑效果。現在Canonical公司也加入到了游戲中來,雖然他們選擇的方向明顯有所不同。
Canonical公司的全新項目名為LXD,全稱是Linux Container Demon。除了傳統的各類容器化應用程序之外,它還允許用戶利用Docker容器機制來部署在功能上毫無妥協而且彼此獨立的Linux虛擬機環境。
在一段視頻資料中,Canonical公司產品經理Dustin Kirkland將LXD描述為一套能夠“以用戶期望在裸機上獲得的性能表現運行完整容器體系的系統,而且其使用體驗與正常虛擬機完全相同。”
LXD利用容器技術對整套系統的運作模式進行虛擬化處理,同時盡***可能使其與裸機運行效果保持對等。有鑒于此,用戶可以在不同一秒鐘的時間內啟動新的虛擬機系統,而且這些虛擬機能夠以***的高密度進行運作——具體而言,每臺物理主機上將能夠承載成百上千套虛擬機系統。
在一封郵件當中,Kirkland進一步介紹了該項目在發展過程中所充分考量的多項重要因素:Canonical公司在OpenStack領域取得的技術成果、該公司為LXC提交的上游調整方案(LXC正是Docker所采用的基礎技術)以及客戶的實際需求。該公司“意識到客戶以及市場對于在容器體系下運行通用而且完整的操作系統環境擁有著迫切的渴望,”Kirkland解釋稱。“這主要是考慮到提升安全性、強化性能表現、增加系統密度以及實現廣泛可移植性等方面的需要。”
正如當下眾多以容器技術為核心的項目一樣(其中也包括Docker本身),LXD利用Go語言進行編寫、同時為其各項功能提供命令行界面以及RESTful API。它還包含有多項擴展機制,允許其容器以安全方式訪問存儲與網絡資源,而且使用與Linux容器相同的技術方案、從而帶來豐富的安全功能,其中包括:cgroups、用戶命名空間以及(前提是供應商已經提供相關支持)硬件輔助型容器化機制。
除了系統本身的高密度與在主機硬件上足以與原生機制相比肩的性能表現之外,LXD還擁有速度極快的實時遷移功能。這項功能允許管理員將活動容器當中的內容在不同物理主機之間隨意移動。該功能的出現要歸功于Canonical公司為上游體系提交的技術成果,即Checkpoint Restart(簡稱CRIU)。Kirkland還勾勒出了美好的未來發展圖景:“我們完全可以在一套容器環境下運行〈毀滅戰士〉游戲,同時在不破壞游戲體驗的同時將其在兩臺不同的主機之間往來遷移——沒錯,完全無需中斷游戲內容。”
硬件輔助容器化功能可能最值得大家予以高度關注。為了能夠讓LXD以一套真正的虛擬機管理程序的姿態為用戶服務,Canonical公司表示其“與芯片廠商進行持續協作,旨在確保硬件輔助功能可以切實為這些容器環境的安全性及隔離性提供幫助,正如我們如今所使用的傳統虛擬機一樣。”
說完了好消息,現在再來報告一點壞消息。LXD***的弊端在于它在嚴格意義上屬于一套Linux到Linux解決方案,而且就目前而言它所使用的全部功能都只能在Linux環境下實現。當被問及未來是否有可能推出面向Windows平臺的移植版本時——考慮到微軟公司最近宣布有計劃以某種方式為Windows添加容器化技術支持——Kirkland并沒有給出明確的答復,而僅僅表示:“由于容器本身的天然屬性,”他在郵件中寫道,“LXD永遠只能在Linux到Linux的前提條件下實現。這也正是我們的關注重點。Linux用戶陣營中的其它版本(也就是非Ubuntu版本)也能夠運行在LXD容器當中。但從本質上講,整個項目的正常起效仍然需要以Linux為基礎。”
原文鏈接:
http://www.infoworld.com/article/2843865/virtualization/canonicals-lxd-turns-docker-into-vm.html
原文標題:Docker container or VM? Canonical's LXD splits the difference
核子可樂譯