如何選擇虛擬化方案與軟件?
各位朋友大家好,今天我給大家說說實(shí)現(xiàn)虛擬化的方案與軟件以及怎么選擇哪種適合自己的虛擬化方案。在說虛擬化的方案前我稍微給大家撤下虛擬化產(chǎn)生的背景:
隨著計(jì)算技術(shù)與科學(xué)技術(shù)的發(fā)展,在計(jì)算機(jī)行業(yè)出現(xiàn)一種問題,那就是好的服務(wù)器比如DELL,IBM非常的昂貴,差點(diǎn)的服務(wù)器也有比如國產(chǎn)的某某普,做為一個(gè)初創(chuàng)的互聯(lián)網(wǎng)企業(yè),資金是非常緊的,怎么能做到既節(jié)約成本又能保證數(shù)據(jù)安全?
虛擬化軟件:
虛擬化為此就誕生了,在實(shí)際的生產(chǎn)環(huán)境中,虛擬化技術(shù)主要用來解決高性能的物理硬件產(chǎn)能過剩和老的舊的硬件產(chǎn)能過低的重組重用,透明化底層物理硬件,從而***化的利用物理硬件。于是乎各大互聯(lián)網(wǎng)大佬們紛紛投入精力解決這個(gè)問題,隨著時(shí)間的推移與各大互聯(lián)網(wǎng)企業(yè)的技術(shù)沉淀,目前市面主要有以下虛擬化軟件:VMware的ESXi,Citrix的Xenserver,微軟的Hyper-V,開源的主要有紅帽的KVM,Xen兩種。
虛擬化實(shí)現(xiàn)方案:
市場有以上那么多虛擬化軟件,當(dāng)然還有一些小眾的,例如VirtualBox這里我就不多說了,他們的目的都是一樣的:“實(shí)現(xiàn)虛擬化”,但他們實(shí)現(xiàn)虛擬化的方案可大不相同,下面我們簡單了解下:
全虛擬化
又叫硬件輔助虛擬化技術(shù),最初所使用的虛擬化技術(shù)就是全虛擬化(Full Virtualization)技術(shù),它在虛擬機(jī)(VM)和硬件之間加了一個(gè)軟件層–Hypervisor,或者叫做虛擬機(jī)管理程序(VMM)。
什么是Hypervisor?
Hypervisor是一種運(yùn)行在物理服務(wù)器和操作系統(tǒng)之間的中間軟件層,可允許多個(gè)操作系統(tǒng)和應(yīng)用共享一套基礎(chǔ)物理硬件,因此也可以看作是虛擬環(huán)境中的“元”操作系統(tǒng),它可以協(xié)調(diào)訪問服務(wù)器上的所有物理設(shè)備和虛擬機(jī),也叫虛擬機(jī)監(jiān)視器(Virtual Machine Monitor)。Hypervisor是所有虛擬化技術(shù)的核心。非中斷地支持多工作負(fù)載遷移的能力是Hypervisor的基本功能。當(dāng)服務(wù)器啟動并執(zhí)行Hypervisor時(shí),它會給每一臺虛擬機(jī)分配適量的內(nèi)存、CPU、網(wǎng)絡(luò)和磁盤,并加載所有虛擬機(jī)的客戶操作系統(tǒng)。
Hypervisor分兩種類型:
類型 1,這種 Hypervisor 是直接運(yùn)行在物理硬件之上的。類型 1 Hypervisor 的一個(gè)例子是基于內(nèi)核的虛擬機(jī)(KVM —— 它本身是一個(gè)基于操作系統(tǒng)的 hypervisor)。
類型 2,這種 Hypervisor 運(yùn)行在另一個(gè)操作系統(tǒng)(運(yùn)行在物理硬件之上)中。
類型 2 Hypervisor 包括 QEMU 和 WINE。因?yàn)檫\(yùn)行在虛擬機(jī)上的操作系統(tǒng)通過Hypervisor來最終分享硬件,所以虛擬機(jī)發(fā)出的指令需經(jīng)過Hypervisor捕獲并處理。為此每個(gè)客戶操作系統(tǒng)(Guest OS)所發(fā)出的指令都要被翻譯成CPU能識別的指令格式,這里的客戶操作系統(tǒng)即是運(yùn)行的虛擬機(jī),所以Hypervisor的工作負(fù)荷會很大,因此會占用一定的資源,所以在性能方面不如裸機(jī)。但是運(yùn)行速度要快于硬件模擬。全虛擬化***的優(yōu)點(diǎn)就是運(yùn)行在虛擬機(jī)上的操作系統(tǒng)沒有經(jīng)過任何修改,唯一的限制就是操作系統(tǒng)必須能夠支持底層的硬件,不過目前的操作系統(tǒng)一般都能支持底層硬件,所以這個(gè)限制就變得微不足道了。VMware Workstation軟件就是此類型。
半虛擬化
它就是在全虛擬化的基礎(chǔ)上,把客戶操作系統(tǒng)進(jìn)行了修改,增加了一個(gè)專門的API,這個(gè)API可以將客戶操作系統(tǒng)發(fā)出的指令進(jìn)行***化,即不需要Hypervisor耗費(fèi)一定的資源進(jìn)行翻譯操作,因此Hypervisor的工作負(fù)擔(dān)變得非常的小,因此整體的性能也有很大的提高。不過缺點(diǎn)就是,要修改包含該API的操作系統(tǒng),但是對于某些不含該API的操作系統(tǒng)(主要是windows)來說,就不行能用這種方法,Xen就是一個(gè)典型的半虛擬化的技術(shù)。Xen只負(fù)責(zé)CPU,內(nèi)存,中斷管理。計(jì)算機(jī)別的功能由Dam0機(jī)管理。
虛擬化方案選擇:
在說虛擬化選擇方案前,我稍微啰嗦一句在工作中,我們怎么抉擇我們該選擇哪種方案前,首先要根據(jù)工作需求,切忌為實(shí)現(xiàn)技術(shù)而選擇。下面我說下我的選擇方法:
公司有開發(fā)人員小于10人運(yùn)維1人,我們就用Vmvare的虛擬化軟件系列的VMware Workstation模擬器
公司有開發(fā)人員大于10人且小于30人運(yùn)維1人或2人,我們就用Vmvare的虛擬化軟件系列的VMware ESXi
公司有開發(fā)人員大于30人運(yùn)維人員大于3人,我們就考慮KVM或者Xen.
我這樣劃分的根據(jù)是基于公司技術(shù)團(tuán)隊(duì)的實(shí)力和軟件的輕重來抉擇,當(dāng)然也不是***,如果你公司技術(shù)團(tuán)隊(duì)的實(shí)力非常牛,你也非常牛,公司不差錢想燒錢,也可以考慮直接用KVM+openstack這種重量級的虛擬化解決方案。