如何使用基於容器的虛擬化提高效率效能

2021-09-23 01:07:26 字數 1431 閱讀 1927

本文講的是如何使用基於容器的虛擬化提高效率效能【it168雲計算】如果你不介意只使用一種作業系統的話,那麼和傳統的hypervisor相比,基於容器的虛擬化能夠提供更高的效率與效能。

基於容器的虛擬化使用單個核心執行乙個作業系統的多個例項。每個例項在乙個完全隔離的環境中執行,因此不存在乙個容器訪問另乙個容器中檔案這樣的風險。因此,基於容器的虛擬化是安全的。

而且這種虛擬化方式的資源使用效率也是非常高的,因為所有的容器都執行在同乙個核心上。但是這種方式同樣存在弊端:只有乙個核心意味著無法選擇其他的作業系統。在對虛擬化方式進行評估時,了解它們之間的差異以及每種虛擬化方式的優勢是非常重要的。

基於容器的虛擬化與hypervisor的差異

hypervisor與基於容器的虛擬化存在一些不同之處。首先,基於hypervisor的虛擬化,其每個虛擬機器都需要安裝乙個完整的作業系統,這當然包括核心。這一需求使得基於hypervisor的虛擬化相當厚重但也非常靈活。因為每個虛擬機器都有自己的核心,所以hypervisor只需要協調虛擬機器訪問硬體裝置。因此,你可以安裝任何作業系統,而且它們都是在完全隔離的環境中執行的。

另一方面,在基於容器的虛擬化環境中,虛擬機器與硬體的關係更緊密,因為所有的虛擬機器都使用同乙個核心,不再需要hypervisor。流行的基於容器的虛擬化執行在windows核心(使用parallels virtuozzo虛擬化容器時)或者linux核心之上。由於linux核心具備開放性以及靈活性,所以在多數情況下基於容器的虛擬化通常使用linux核心。而且可以使用很多開放以及免費的解決方案。

通常企業不會使用基於容器的虛擬化,他們偏愛hypervisor使用多種作業系統。但是基於容器的虛擬環境是虛擬主機提供商的乙個理想選擇。基於容器的虛擬化為使用者提供了一種高效、安全的執行服務的方式。

為簡化虛擬機器的維護,虛擬主機提供商力圖為所有的虛擬機器提供相同的作業系統。例如,只需要公升級物理伺服器的linux核心,就完成了執行在該物理伺服器上的數百台虛擬機器的核心公升級工作。如果最先考慮的是實現效率的最大化而不是在不同的作業系統之間進行選擇,而且要使用影響更為深遠的方式(比如cgroups)對效能進行優化,那麼基於容器的虛擬化是一種理想的解決方案。

linux lxc為基於容器的虛擬化提供了便利

lxc是最新的linux附加產品之一,它天生就能建立基於容器的虛擬化解決方案。lxc基於chroot和所謂的chroot jail。允許在單個核心之上執行彼此隔離的虛擬機器。但是lxc並沒有完全複製chroot jail——實際上只需要二進位制檔案、庫檔案以及配置檔案。同樣,可以對單個虛擬機器進行最大化的精簡。

linux容器虛擬化另一項重大的改進就是使用了cgroups。cgroups可以在核心級別建立資源組,而且你可以指定這些資源的優先順序。這樣,你就可以確保所有的虛擬機器恰好具備它所需要的資源。

基於容器的虛擬化的上述兩個方面建立了乙個非常高效的環境,正是在這個高效的環境中同乙個作業系統的多個例項可以提供您的使用者使用。

原文發布時間為:2012-06-12

容器虛擬化實現的原理

要想實現容器虛擬化,跟傳統的虛擬機器虛擬化有著本質的區別,容器虛擬化,需要進行以下六種資源的隔離,而這些隔離需要linux系統核心來支援,下面簡單整理了需要被隔離的資源及核心支援的情況 linux namespaces來實現 1 主機名和網域名稱 簡稱 uts 核心版本 2.6.19 系統呼叫引數 ...

容器級虛擬化如何進行資源分配

我們都知道,在使用主機級虛擬化的時候,是可以直接指定cpu,記憶體的使用量的,那容器級虛擬化如何實現呢?使用的是核心支援的一種叫做control groups cgroups 來實現使用者空間的資源分配 把系統級的資源分成多個組,把每個組內的資源量分配到特定的使用者空間上去 cgroups blki...

虛擬化技術與容器的優劣

在很久很久以前,開發軟體需要具備一台物理伺服器,在這個物理伺服器上搭建作業系統 linux windows 再在os之上開發管理自己的軟體。這樣做的缺點有 1 因為需要伺服器所以會花費掉一筆巨資,開發成本也就隨之上公升了。2 開發周期長,從購買物理伺服器到os搭建,在到真正開發軟體中途會浪費掉不少時...