容器技術

平衡衝突資源使用需求的技術

有效的將單個操作系統的資源劃分到孤立的組中,以便更好的在孤立的組之間平衡有衝突的資源使用需求,這種技術就是容器技術。

基本介紹


容器技術虛擬化技術提升效率
容器技術已經引起了業內的廣泛關注,有充分的證據表明,容器技術能夠大大提升工作效率。
現在,虛擬化技術已經成為一種被大家廣泛認可的伺服器資源共享方式,它可以在按需構建操作系統實例的過程當中為系統管理員提供極大的靈活性。由於hypervisor虛擬化技術仍然存在一些性能和資源使用效率方面的問題,因此出現了一種稱為容器(Container)的新型虛擬化技術來幫助解決這些問題。
起初,大家普遍認為基於hypervisor的方式可以在最大程度上提供靈活性。所有虛擬機實例都能夠運行任何其所支持的操作系統,而不受其他實例的影響。然而,現在越來越多的用戶發現hypervisor提供這樣一種廣泛支持的特性其實是在給自己製造麻煩。對於hypervisor環境來說,每個虛擬機實例都需要運行客戶端操作系統的完整副本以及其中包含的大量應用程序。從實際運行的角度來說,由此產生的沉重負載將會影響其工作效率及性能表現。
首先,每種操作系統和應用程序堆棧都需要使用DRAM。對於多個運行簡單應用程序的小型虛擬機實例來說,這種方式可能產生很大的系統開銷,降低性能表現。載入並卸載這些堆棧鏡像需要花費很長時間,並且還會增加容器技術伺服器的網路連接數量。對於極端情況來說,如果用戶在上午9點同時啟動上千台虛擬桌面,還有可能導致網路風暴的發生。部署虛擬伺服器的目的之一在於快速創建新的虛擬機實例。然而從網路存儲當中複製鏡像需要花費大量時間,這些操作會延長啟動過程,無疑會限制系統靈活性。因此我們可以選擇使用容器技術。只需要通過簡單的觀察我們便能夠發現容器技術的出現是為了解決多操作系統/應用程序堆棧的問題:
• 在單台伺服器當中為所有虛擬機實例使用相同的操作系統對於大部分數據中心來說都不算是真正的限制。流程管理(Orchestration)可以輕鬆處理這種變化
• 許多應用程序堆棧都是相同的(如LAMP)
• 對於大規模集群來說,在本地硬碟當中存儲操作系統副本將會使得更新過程變得更為複雜
最為重要的是,容器技術可以同時將操作系統鏡像和應用程序載入到內存當中。還可以從網路磁碟進行載入,因為同時啟動幾十台鏡像不會對網路和存儲帶來很大負載。之後的鏡像創建過程只需要指向通用鏡像,大大減少了所需內存。容器技術能夠在同一台伺服器上創建相比於之前兩倍的虛擬機實例數量,因此無疑將會降低系統總投入。但是必須認真進行規劃,因為雙倍的實例數量同樣意味著對於運行這些實例的伺服器帶來了雙倍的I/O負載。人們需要了解除了避免可能發生的啟動風暴之外,容器技術是否還有任何其他性能方面的優勢。能否改進IOPS?能夠提升網路連接效率並且降低容器間的延遲,解決伴隨實例數量增加而產生的問題?
美國某傳統伺服器大廠商的某實驗室完成了至今為止大部分權威實驗,其研究結果表明容器技術相比於hypervisor,容器技術的許多關鍵指標都有重大改進。在進行的所有測試當中,容器技術幾乎擁有和本地平台一樣的運行速度,儘管網路延遲測試還沒有完成。
上述廠商的研究表明容器技術在多個領域當中都比hypervisor擁有更好的性能表現。容器技術的運行速度幾乎是hypervisor的兩倍,在評分當中非常接近於本地操作系統。在和KVM的對比當中,容器技術在硬碟隨機讀取(84,000 vs 48,000 IOPS)和寫入(110,000 vs 60,000 IOPS )方面擁有非常優秀的表現,如果使用本地固態硬碟可以實現更好的SQL性能表現。
高性能計算(HPC)社區也在轉而使用虛擬化和容器技術。一項由巴西天主教大學進行的研究已經取得了一定成果。
“如果可以降低基本的系統開銷(比如CPU、內存、硬碟和網路),那麼HPC無疑會選擇使用虛擬化系統,”研究人員表示。“從這個角度來說,我們發現所有基於容器的系統在CPU、內存、硬碟和網路方面都擁有接近於本地操作系統的性能表現。”
美國某虛擬化公司V***re也針對容器技術進行了一系列評測對比。容器技術研究結果印證了容器技術擁有接近本地系統的性能表現,儘管其並沒有像IBM實驗室那樣針對VMware的hypervisor發布非常詳細的測試報告。而這項報告的容器技術結果有可能促使VMware做出調整,以降低hypervisor的系統開銷。VMware的報告當中沒有提及硬碟I/O問題。
為了擴展適用範圍,容器技術仍然需要在安全方面不斷改進。但是現在,我們可以看到的是這種方式可以解決hypervisor虛擬化當中的大多數性能問題。再加上更加輕鬆和快捷的部署方式,容器技術將會在不久的將來佔據虛擬化市場。