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