新聞中心
當(dāng)前位置:網(wǎng)站首頁 > 新聞中心
淺聊著名的云計算虛擬化
云計算(cloud computing),根據(jù)維基百科的解釋為:是一種基于互聯(lián)網(wǎng)的計算方式,通過這種方式,共享的軟硬件資源和信息可以按需求提供給計算機(jī)各種終端和其他設(shè)備。其中重點在于共享和按需。
在大多數(shù)情況下,我們不能完全利用到我們花費重金購買的物理設(shè)備的所有資源。如何將有限的計算資源做到共享和按需,發(fā)揮其最大的作用并攫取回我們在物理設(shè)備所投入的資金?
如何將多個廉價的或老舊設(shè)備歸集到一起,以發(fā)揮他們的剩余價值?
如何將本地的設(shè)備共享給千里之外的同事?云計算概念提出目的亦是包含了要解決這些問題的答案。
目前我們主要依靠虛擬化技術(shù)來解決將不可切割的硬件資源抽象和轉(zhuǎn)換成可二次配置的單元,以實現(xiàn)更好的配置現(xiàn)有的計算、存儲和網(wǎng)絡(luò)等資源??梢姮F(xiàn)今的云計算落地方案基本上依靠于虛擬化技術(shù)。
虛擬化技術(shù)最早是IBM公司在上世紀(jì)60年代末所提出的,當(dāng)時 IBM 公司為實現(xiàn)多用戶對大型計算機(jī)同時交互訪問而開發(fā)的一套被稱之為虛擬機(jī)監(jiān)視器(Virtual Machine Monitor 簡稱為 VMM)的軟件。在現(xiàn)在的虛擬化技術(shù)中,VMM 是運行在硬件服務(wù)器和操作系統(tǒng)中間層的軟件,它方便同時有多個相同或不同的操作系統(tǒng)和應(yīng)用共享底層硬件基礎(chǔ)設(shè)施。在云計算中常提及的Hypervisor與 VMM 具有相同含義,其實質(zhì)是一種資源配置的管理技術(shù)。
虛擬化根據(jù)針對的對象不同還可分為平臺虛擬化,應(yīng)用程序虛擬化,資源虛擬化等。平臺虛擬化是針對物理硬件及操作系統(tǒng)層面而言的,根據(jù)其實現(xiàn)方式又可分為完全虛擬化、半虛擬化、操作系統(tǒng)級虛擬化以及硬件輔助虛擬化等。
完全虛擬化(Full virtualization簡稱 FV )
是指虛擬機(jī)模擬了完整的底層硬件,使得為原始硬件設(shè)計的操作系統(tǒng)或其它系統(tǒng)軟件完全不做任何修改就可以在虛擬機(jī)中運行。在 CPU 的完全虛擬化實現(xiàn)機(jī)制中主要依靠了特權(quán)級壓縮和二進(jìn)制翻譯(BT)技術(shù)等來實現(xiàn)的。
這些技術(shù)出現(xiàn)的原因和 CPU 實現(xiàn)機(jī)制有很大關(guān)聯(lián)。CPU 對于指令進(jìn)行了分級處理,對于高敏感指令有單獨的執(zhí)行區(qū)域稱之為內(nèi)核態(tài),用戶的代碼不能直接訪問內(nèi)核態(tài),而這些高敏感代碼則需要執(zhí)行在內(nèi)核態(tài)中,客戶操作系統(tǒng)是無法直接訪問內(nèi)核態(tài)的,所以需要依靠這些技術(shù)來解決客戶機(jī)的高敏感指令的執(zhí)行障礙。敏感指令在操作系統(tǒng)和硬件之間被捕捉處理,客戶操作系統(tǒng)無需修改,所有軟件都能在虛擬機(jī)中運行。使用完全虛擬化技術(shù)的公司及產(chǎn)品有:IBM CP/CMS,VirtualBox,VMware Workstation,Parallels, QEMU,Hyper-V 等。Paravirtualization 簡稱 PV
類似于全虛擬化。它也是使用VMM分享存取底層的硬件,區(qū)別在于它的客戶操作系統(tǒng)集成了虛擬化方面的代碼。也就是說半虛擬化技術(shù)需要安裝的客戶機(jī)的操作系統(tǒng)要進(jìn)行定制。這無疑是讓用戶使用受到很大的限制。使用該種虛擬化的架構(gòu)曾有 Xen 等,但現(xiàn)在還使用這種虛擬化技術(shù)的已經(jīng)不多。
操作系統(tǒng)級虛擬化(OS-level virtualization)
也有人稱之為容器化,是操作系統(tǒng)自身的一個特性,它允許多個相互隔離的用戶空間實例的存在。例如Parallels Virtuozzo Containers、OpenVZ、LXC以及類Unix系統(tǒng)上的chroot,Solaris上的Zone都是使用了該技術(shù)。這種虛擬化技術(shù)在當(dāng)前應(yīng)用還是比較多的,例如當(dāng)前售賣 VPS 的商家中有部分就是使用的 OpenVZ 的架構(gòu);主流的 Docker 是基于 LXC 開發(fā)的一種容器工具;Android 手機(jī)的雙域功能基本上多是基于 LXC 技術(shù)實現(xiàn)的。但是這種技術(shù)有很大的限制那就是客戶機(jī)內(nèi)核版本不能升級,操作系統(tǒng)類型也得和宿主機(jī)相同,這讓用戶對客戶機(jī)系統(tǒng)和內(nèi)核的選擇受到了很大的限制,如前文所講它的本質(zhì)依舊是用戶空間實體和組管理。但隨著技術(shù)的發(fā)展,它在輕量化的應(yīng)用場景上應(yīng)該也有著不錯的前景。
硬件輔助虛擬化(Hardware virtualization)
利用硬件(主要是CPU)輔助處理敏感指令以實現(xiàn)完全虛擬化的功能,客戶操作系統(tǒng)無需修改。例如VMware Workstation,Xen,KVM產(chǎn)品或架構(gòu)都是應(yīng)用了該技術(shù)。當(dāng)前市場中的幾乎所有的主流硬件都是支持硬件輔助虛擬化技術(shù)的。VMM 技術(shù)的出現(xiàn),可能要歸功于 X86 架構(gòu)從誕生時帶來的問題——不支持虛擬化。
CPU 的演進(jìn)一直兼容著之前的指令集,在 X86 架構(gòu)的祖先 Intel 8086 誕生時沒有設(shè)計虛擬化相關(guān)的指令,所以X86 架構(gòu)在一段時間里都是不支持硬件虛擬化的。直至 Intel 在 2005 年發(fā)布了 IVT技術(shù),如果你不細(xì)究也可以認(rèn)為就是 VT-x 。Intel 的 VT-x 技術(shù)為 CPU 添加上了虛擬化技術(shù)的一個指令集,VT-x有助于提高基于軟件的虛擬化解決方案的靈活性與穩(wěn)定性。
通過按照純軟件虛擬化的要求消除 VMM 代表客戶操作系統(tǒng)來聽取、中斷與執(zhí)行特定指令的需要,不僅能夠有效減少 VMM 干預(yù),還為 VMM 與客戶操作系統(tǒng)之間的傳輸平臺控制提供了有力的硬件支持,這樣在需要 VMM干預(yù)時,將實現(xiàn)更加快速、可靠和安全的切換。對應(yīng)的 AMD 發(fā)布了相應(yīng)的自家硬件輔助虛擬化技術(shù)稱之為 AMD-V。
X86架構(gòu)的硬件輔助虛擬化結(jié)合Linux全虛擬化解決方案已是當(dāng)前主流成熟的虛擬化解決方案,這也是為什么我們在好多的云產(chǎn)品部署要求中可以看到 CPU 需要支持基于Intel VT /AMD-V以上X86指令集架構(gòu)的原因。
我們對于云產(chǎn)品的選擇上會去看它的出生,當(dāng)前現(xiàn)狀以及未來情況。就以上幾點而言 KVM 無疑是比較好的選擇。它雖生在了以色列,但是過繼給了Red Hat這個開源社區(qū)的領(lǐng)軍人物。之后Red Hat便舍棄 Xen開始全面扶持 KVM,從 RHEL6 開始 KVM便被默認(rèn)內(nèi)置于內(nèi)核中。而且 KVM 也針對 Linux 平臺做了優(yōu)化。在性能上繼承了Linux很好的性能和伸縮性;在性能方面,在15年的一篇關(guān)于KVM的性能測試的文章上描述KVM 的性能相比宿主機(jī)而言僅下降了1.5%以內(nèi)。KVM拓展性也非常好,客戶機(jī)和宿主機(jī)都可以支持非常多的 CPU數(shù)量和非常大的內(nèi)存,可以過載使用 CPU和內(nèi)存,還可借助 KSM 技術(shù)實現(xiàn)對內(nèi)存的過量使用,且保證性能依舊非常不錯。KVM 社區(qū)活躍,可見未來前景依舊不錯。
由于KVM僅是一個簡單的虛擬化模塊,它的易用性并不高。這里我們可以使用OpenStack來作為它的一個上層建筑,用以更便捷的實施、部署以及使用。OpenStack適用于各種規(guī)模的集群環(huán)境,它豐富的功能幾乎支持所有的虛擬化管理程序,不論是開源的(Xen與KVM)還是廠商的(Hyper-V與VMware),這個特色讓它可以滿足公共云和私有云用戶及運營商的需求。
目前而言,有95%的OpenStack平臺由 KVM驅(qū)動,這讓它開箱使用時就能擁有不俗的表現(xiàn)。 OpenStack社區(qū)活躍,讓其技術(shù)更易跟上科技發(fā)展的潮流技術(shù),從而能夠繼續(xù)引領(lǐng)時代發(fā)展的步伐。所以說選擇OpenStack作為云計算解決方案不失為一個明智的選擇。
|