1 虛擬化技術分類
在計算機技術中,虛擬化 (virtualization) 是一種資源管理技術,是將計算機的各種實體資源,如服務器 、 網絡 、 內存及存儲等,予以抽象 、 轉換後呈現出來,打破實體結構間的不可切割的障礙,使用戶可以用比原本的組態更好的方式來應用這些資源。因此,虛擬化的核心是對資源的抽象,我們可以在同一個主機上同時運行多個系統或應用,從而提高系統資源的利用率,實現降低成本 、 方便管理的目的。
虛擬化技術有以下這些層次分類:
這裏重點說明平臺虛擬化技術。平臺虛擬化分爲以下幾種類型:
(1) 完全虛擬化
虛擬機完全模擬完整的底層硬件環境和特權指令的執行過程,無須修改客戶操作系統。例如 Virtualbox、vmware、QEMU 等。
【1】Virtualbox:我們可以在VirtualBox上安裝並且執行Solaris、Windows、DOS、Linux、IBM OS/2 Warp、BSD等系統作爲客戶端操作系統。
【2】vmware: vmware 是業界非常穩定且安全的桌面虛擬機軟件, VMware 虛擬機可讓我們在一臺機器上同時運行二個或更多 Windows 、 DOS 、 LINUX 系統。在虛擬網路,實時快照,拖曳共享文件夾,支持 PXE 等方面均有特別之處,使用 vmware ,我們可在單一的桌面上同時運行不同的操作系統,進行開發 、 測試 、 部署新的應用程序。
預啓動執行環境(Preboot eXecution Environment,PXE)也被稱爲預執行環境,提供了一種使用網絡接口(Network Interface)啓動計算機的機制。這種機制讓計算機的啓動可以不依賴本地數據存儲設備(如硬盤)或本地已安裝的操作系統。
【3】QEMU:QEMU 本身是一個非常強大的虛擬機,它可以利用 Xen、KVM 等技術來加速。加速之後,就可以把客戶操作系統的 CPU 指令直接轉發到物理 CPU,以提升運行效率。
(2)硬件輔助虛擬化
硬件輔助虛擬化指的是,利用硬件 ( 主要是 CPU ) 來處理敏感指令來實現完全虛擬化的功能,無須修改客戶操作系統。例如 VmwareWorkstation , Xen , KVM。
【1】Xen :Xen 是一個開放源代碼虛擬機監視器,由劍橋大學開發。它打算在單個計算機上運行多達100個滿特徵的操作系統。操作系統必須進行顯式地修改以在Xen上運行。這使得Xen無需特殊硬件支持,就能達到高性能的虛擬化。
【2】KVM:KVM (全稱是 Kernel-based Virtual Machine) 是 Linux 下 x86 硬件平臺上的全功能虛擬化解決方案。 KVM 允許每個虛擬機有自己的私有硬件,包括網卡、磁盤以及圖形適配卡等。
(3)半虛擬化 (paravirtualization)
部分硬件接口以軟件的形式提供給客戶機操作系統,需要修改客戶操作系統,例如早期的 Xen。
(4)操作系統級虛擬化
內核通過創建多個虛擬的操作系統實例 來隔離不同的進程。Docker 容器技術即在此範疇內。
2 比較 Docker 容器技術與傳統虛擬化技術
- Docker 是內核級的虛擬化,因此可以實現更高的接近原生性能,同時對資源的額外需求很低,內存與硬盤消耗,相對傳統虛擬機方式,少很多;
- Docker 幾乎可以在任意的平臺上運行,包括物理機 、 虛擬機 、 公有云 、 私有云 、 個人電腦 、 服務器等,同時支持主流的操作系統發行版本,所以很容易遷移;
- 啓動和停止 Docker 容器可以在秒級實現,這相比傳統的虛擬機方式快了一個數量級 ;
- 因爲Docker 容器佔用很少的系統資源,所以一臺主機上可以同時運行上千個 Docker 容器 ;傳統虛擬機方式運行 N 個不同的應用就要啓用 N 個虛擬機,而每個虛擬機需要單獨分配獨佔的內存 、 硬盤等資源,對資源的消耗很大,所以一臺主機最多隻能運行幾十個容器,就會達到性能瓶頸。
- 傳統的虛擬機方式提供了相對封閉的隔離,可以說是完全隔離。而 Docker 則利用 Linux 系統上的多種安全防護技術來實現嚴格的隔離。除此之外,Docker 還改善並加強了容器的安全控制和鏡像的安全機制,極大地提高了 Docker 的安全性。
歸納如下:
特性 | Docker 容器 | 傳統虛擬機 |
---|---|---|
啓動速度 | 秒級 | 分鐘級 |
性能 | 接近原生 | 較差 |
消耗內存 | 很小 | 較多 |
硬盤容量 | MB 級 | GB 級 |
單機運行密度 | 上千個容器 | 幾十個容器 |
隔離性 | 安全隔離 | 完全隔離 |
遷移性 | 好 | 一般 |
從上圖中可以看出,傳統虛擬化方式需要有額外的虛擬機管理程序和虛擬機操作系統 。而Docker 容器是直接在宿主機操作系統層面上實現虛擬化,所以屬於輕量級虛擬化方案。
擁有這麼多優秀的特性,你說 Token 容器技術能不流行嗎?