1 虛擬化技術(shù)分類
在計算機(jī)技術(shù)中航罗,虛擬化 (virtualization) 是一種資源管理技術(shù),是將計算機(jī)的各種實體資源屁药,如服務(wù)器 粥血、 網(wǎng)絡(luò) 、 內(nèi)存及存儲等酿箭,予以抽象 复亏、 轉(zhuǎn)換后呈現(xiàn)出來,打破實體結(jié)構(gòu)間的不可切割的障礙缭嫡,使用戶可以用比原本的組態(tài)更好的方式來應(yīng)用這些資源缔御。因此,虛擬化的核心是對資源的抽象妇蛀,我們可以在同一個主機(jī)上同時運(yùn)行多個系統(tǒng)或應(yīng)用耕突,從而提高系統(tǒng)資源的利用率,實現(xiàn)降低成本 讥耗、 方便管理的目的有勾。
虛擬化技術(shù)有以下這些層次分類:
這里重點說明平臺虛擬化技術(shù)。平臺虛擬化分為以下幾種類型:
(1) 完全虛擬化
虛擬機(jī)完全模擬完整的底層硬件環(huán)境和特權(quán)指令的執(zhí)行過程古程,無須修改客戶操作系統(tǒng)蔼卡。例如 Virtualbox、vmware、QEMU 等雇逞。
【1】Virtualbox:我們可以在VirtualBox上安裝并且執(zhí)行Solaris荤懂、Windows、DOS塘砸、Linux节仿、IBM OS/2 Warp、BSD等系統(tǒng)作為客戶端操作系統(tǒng)掉蔬。
【2】vmware: vmware 是業(yè)界非常穩(wěn)定且安全的桌面虛擬機(jī)軟件廊宪, VMware 虛擬機(jī)可讓我們在一臺機(jī)器上同時運(yùn)行二個或更多 Windows 、 DOS 女轿、 LINUX 系統(tǒng)箭启。在虛擬網(wǎng)路,實時快照蛉迹,拖曳共享文件夾傅寡,支持 PXE 等方面均有特別之處,使用 vmware 北救,我們可在單一的桌面上同時運(yùn)行不同的操作系統(tǒng)荐操,進(jìn)行開發(fā) 、 測試 珍策、 部署新的應(yīng)用程序托启。
預(yù)啟動執(zhí)行環(huán)境(Preboot eXecution Environment,PXE)也被稱為預(yù)執(zhí)行環(huán)境攘宙,提供了一種使用網(wǎng)絡(luò)接口(Network Interface)啟動計算機(jī)的機(jī)制驾中。這種機(jī)制讓計算機(jī)的啟動可以不依賴本地數(shù)據(jù)存儲設(shè)備(如硬盤)或本地已安裝的操作系統(tǒng)。
【3】QEMU:QEMU 本身是一個非常強(qiáng)大的虛擬機(jī)模聋,它可以利用 Xen、KVM 等技術(shù)來加速唠亚。加速之后链方,就可以把客戶操作系統(tǒng)的 CPU 指令直接轉(zhuǎn)發(fā)到物理 CPU,以提升運(yùn)行效率灶搜。
(2)硬件輔助虛擬化
硬件輔助虛擬化指的是祟蚀,利用硬件 ( 主要是 CPU ) 來處理敏感指令來實現(xiàn)完全虛擬化的功能,無須修改客戶操作系統(tǒng)割卖。例如 VmwareWorkstation 前酿, Xen , KVM鹏溯。
【1】Xen :Xen 是一個開放源代碼虛擬機(jī)監(jiān)視器罢维,由劍橋大學(xué)開發(fā)。它打算在單個計算機(jī)上運(yùn)行多達(dá)100個滿特征的操作系統(tǒng)丙挽。操作系統(tǒng)必須進(jìn)行顯式地修改以在Xen上運(yùn)行肺孵。這使得Xen無需特殊硬件支持匀借,就能達(dá)到高性能的虛擬化。
【2】KVM:KVM (全稱是 Kernel-based Virtual Machine) 是 Linux 下 x86 硬件平臺上的全功能虛擬化解決方案平窘。 KVM 允許每個虛擬機(jī)有自己的私有硬件吓肋,包括網(wǎng)卡、磁盤以及圖形適配卡等瑰艘。
(3)半虛擬化 (paravirtualization)
部分硬件接口以軟件的形式提供給客戶機(jī)操作系統(tǒng)是鬼,需要修改客戶操作系統(tǒng),例如早期的 Xen紫新。
(4)操作系統(tǒng)級虛擬化
內(nèi)核通過創(chuàng)建多個虛擬的操作系統(tǒng)實例 來隔離不同的進(jìn)程均蜜。Docker 容器技術(shù)即在此范疇內(nèi)。
2 比較 Docker 容器技術(shù)與傳統(tǒng)虛擬化技術(shù)
- Docker 是內(nèi)核級的虛擬化弊琴,因此可以實現(xiàn)更高的接近原生性能兆龙,同時對資源的額外需求很低,內(nèi)存與硬盤消耗敲董,相對傳統(tǒng)虛擬機(jī)方式紫皇,少很多;
- Docker 幾乎可以在任意的平臺上運(yùn)行腋寨,包括物理機(jī) 聪铺、 虛擬機(jī) 、 公有云 萄窜、 私有云 铃剔、 個人電腦 、 服務(wù)器等查刻,同時支持主流的操作系統(tǒng)發(fā)行版本键兜,所以很容易遷移;
- 啟動和停止 Docker 容器可以在秒級實現(xiàn)穗泵,這相比傳統(tǒng)的虛擬機(jī)方式快了一個數(shù)量級 ;
- 因為Docker 容器占用很少的系統(tǒng)資源普气,所以一臺主機(jī)上可以同時運(yùn)行上千個 Docker 容器 ;傳統(tǒng)虛擬機(jī)方式運(yùn)行 N 個不同的應(yīng)用就要啟用 N 個虛擬機(jī),而每個虛擬機(jī)需要單獨分配獨占的內(nèi)存 佃延、 硬盤等資源现诀,對資源的消耗很大,所以一臺主機(jī)最多只能運(yùn)行幾十個容器履肃,就會達(dá)到性能瓶頸仔沿。
- 傳統(tǒng)的虛擬機(jī)方式提供了相對封閉的隔離,可以說是完全隔離尺棋。而 Docker 則利用 Linux 系統(tǒng)上的多種安全防護(hù)技術(shù)來實現(xiàn)嚴(yán)格的隔離封锉。除此之外,Docker 還改善并加強(qiáng)了容器的安全控制和鏡像的安全機(jī)制,極大地提高了 Docker 的安全性烘浦。
歸納如下:
特性 | Docker 容器 | 傳統(tǒng)虛擬機(jī) |
---|---|---|
啟動速度 | 秒級 | 分鐘級 |
性能 | 接近原生 | 較差 |
消耗內(nèi)存 | 很小 | 較多 |
硬盤容量 | MB 級 | GB 級 |
單機(jī)運(yùn)行密度 | 上千個容器 | 幾十個容器 |
隔離性 | 安全隔離 | 完全隔離 |
遷移性 | 好 | 一般 |
從上圖中可以看出抖坪,傳統(tǒng)虛擬化方式需要有額外的虛擬機(jī)管理程序和虛擬機(jī)操作系統(tǒng) 。而Docker 容器是直接在宿主機(jī)操作系統(tǒng)層面上實現(xiàn)虛擬化闷叉,所以屬于輕量級虛擬化方案擦俐。
擁有這么多優(yōu)秀的特性,你說 Token 容器技術(shù)能不流行嗎握侧?