說起服務器虛擬化這一議題(當然,這也正是本文的討論核心),大家不可避免地會將意見緊緊圍繞在VMware、Hyper-V這一核心身邊,而相對弱勢的Xen與KVM也經常會被提及。然而如今一匹黑馬以雷霆萬鈞之勢殺入這一領域,并與眾位傳統巨頭廝殺個不可開交——這就是Docker。
既然說到了Docker,我們自然需要首先從容器技術入題——這一機制與原本基于虛擬機管理程序的服務器虛擬化方案略有不同。不過將應用程序封裝在操作環境下的單一容器當中,確實能夠帶來諸多等同于利用虛擬機系統載入并運行應用程序的優勢:二者都能順利由任何適合的物理設備加以承載,而且其運行完全無需考慮任何依賴性或者其它限制性前提。
當然,Docker與VMware解決方案之間的關鍵性差異在于,Docker是一套基于Linux且使用LXC的系統——所謂LXC是一套用戶空間接口,專門針對Linux內核中所包含的功能。
LXC的目標在于創建一套盡可能與標準Linux安裝版本相一致的環境,但卻無需使用獨立的內核體系。正如linuxcontainers.org網站上的表述:“LXC通常被視為某種中間點,介于增強性chroot與高成熟度虛擬機系統之間。”
由于Docker的構建立足于LXC之上,因此其只適用于Linux環境(例如RHEL 7與Ubuntu 14.04服務器版本)而且只能運行Linux應用程序。有鑒于此,大家可以徹底放棄利用其運行Windows系統應用或者其它能夠在常見虛擬機管理程序上順利運行的操作系統應用的念頭。
二者之間的另一大關鍵性差異在于,相較于過去自身充當獨立系統的虛擬化方案,Docker容器事實上選擇了Linux內核共享的處理方式——該內核源自運行在主機設備上的單一操作系統。具體而言,運行在同一臺主機設備上的多套容器全部共享同一套Linux內核。該操作系統中的共享部分處于只讀狀態,但不同容器卻擁有自己的可寫入部分。
進一步了解容器機制的優勢所在
那么與經過長時間發展而早已成熟的服務器虛擬化技術相比,新近涌現的容器機制到底擁有哪些優勢?面對條件有別的實際情況,我們又應該如何在二者之間做出取舍?
容器機制的核心優勢之一在于,用戶可以在一臺主機設備上運行更多套容器體系、具體數量高于虛擬機系統。其原理相信大家不難理解,由于每套虛擬機本身就是一個獨立的系統,因此需要為其操作系統及虛擬化硬件外加其它特殊功能分配專有資源。如果每套虛擬機系統的大小為10Gb,那么十套虛擬機系統的總體積就是10 x 10 = 100Gb——資源總和屬于純粹的累加關系。
然而如果將十套甚至上百套10Gb容器共同運行,大家也遠遠用不上100Gb這樣規模的資源總和。理由很簡單,所有容器都共享著同樣一部分資源,這就徹底避免了資源重復分配所帶來的嚴重浪費。
實際上,所有容器所共享的只有一套操作系統(更嚴格地講,應該是一套系統內核)。整套容器體系內不存在任何虛擬硬件部分——而只是一點點應用程序外加其操作環境。這就意味著,即使在同一臺主機之上,大家能夠運行的容器數量也要遠遠超過完整的虛擬機系統。
采取這種內核及其它資源共享的處理方式還能帶來其它附加成效,具體來講,這能讓各容器在不到一秒鐘的時間內啟動完畢。相比之下,虛擬機系統就完全不具備這樣的優勢,因為它由開啟到能夠正常運行的過程需要等等整套虛擬系統的啟動、且具體時長往往達到數分鐘甚至更多。
Canonical公司(Ubuntu系統贊助商)CEO Mark Shuttleworth則一再重申了這種速度優勢所帶來的實際效益。“Canonical公司為用戶提供內核及用戶空間起效承諾,保證其能夠支持大家創建出實際效果與虛擬機相等同的容器體系,而且即使是普通的非root用戶、也能在該系統中獲得與虛擬機root用戶相媲美的體驗。與KVM相比,不僅速度更快、而且體積更小巧,”他解釋稱。
除此之外,其它優勢更是不勝枚舉。舉例來說,大家可以在AWS以及Azure公有云環境下運行Docker容器,此外容器也更容易進行共享。這些特性對于測試及開發團隊而言就顯得尤為重要——同時也是Docker最常被提及、也是最受推崇的潛在優勢之一。
容器機制目前還不足以成為完整服務器虛擬化方案的替代品
不過VMware及其它虛擬機方案供應商尚不必太過憂慮,因為目前的容器機制還不足以成為完整服務器虛擬化方案的替代品——至少就當下來看是如此。
這是因為虛擬化領域中充斥著大量極為復雜的管理基礎設施,旨在幫助用戶進行虛擬機系統的保存、登錄與運行,外加在不同主機之間的遷移、創建高可用性集群以及其它類似任務等等。以VMware的vCenter、微軟的System Center虛擬機管理器以及其它第三方管理產品為代表的解決方案已經在這條道路上浸淫多年并積累下豐富而可靠的實踐經驗。
盡管谷歌、紅帽、CoreOS、IBM以及微軟都已經開始著手推進開源Kubernetes Docker管理系統的發展與完善,但單就目前來看、Docker還不足以提供可與服務器虛擬化相抗衡的實際效果。而且我們還無法確定,容器技術到底能否在短時間內迅猛發展、從而切實滿足企業用戶對于具體業務實施方案的高級需求。
綜上所述,可以看到Docker虛擬化技術在未來的發展道路上絕對值得大家認真關注。IT168也將在今后的報道中密切留意其最新動向,并第一時間將最新消息帶給大家。