玩轉虛擬化(1)---虛擬化及企業應用

        很多用過VMware Workstation的朋友認爲,虛擬化就是將一個操作系統在另一個操作系統中運行的技術。其實不然,虛擬化(Virtualization)這個定義比我們想象的要大得多,但是並不遙遠。比如我們熟悉的磁盤RAID、Apache中的虛擬主機,這些都是虛擬化的例子。
虛擬化的定義:
        我們可以簡單的認爲,虛擬化就是將計算機的資源不斷抽象化的過程。
虛擬化的分類:
(1)資源虛擬化:主要將計算機某些系統資源抽象化,如存儲設備、網絡、網絡名稱等。磁盤分區、RAID就是存儲設備虛擬化的一個例子,虛擬主機也是網絡名稱虛擬化的例子。
(2)應用軟件虛擬化:主要將軟件抽象化,使之不需要以來特定的運行環境,就是常聽說的“綠色軟件”(Portable)。常用的應用軟件虛擬化工具包括微軟的APP-V、Citrix的XenApp以及VMware的ThinApp。
(3)平臺虛擬化:主要就是將計算機的主要資源(CPU、內存、網卡)抽象化,並且讓訪問這些資源的對象都通過抽象層訪問。常用的平臺虛擬化軟件有微軟的Hyper-V Server、Citrix的XenServer以及VMware的ESXi。
我們爲什麼要使用虛擬化技術?
        大部分的操作系統在開發時,出於安全、性能、商業上的考慮,都會針對硬件直接控制。如果將硬件抽象出來再安裝多個操作系統時,很可能出現兼容性的問題。比如我們在VMware中創建的虛擬機中會出現無法識別聲卡、網卡等現象,但是這些現象還是很容易解決的。上次在VMware Server 2.0中創建ESXi的虛擬機,提示無法識別SCSI Controller,這下就愁壞了我們!因此在使用虛擬機時,軟、硬件的設計和架構就成了是否能順利運行的重點,而不同的虛擬化架構,當然是針對不同的資源的,因此針對不同的資源,就有不同類別虛擬化。咋說起來跟繞口令似的呢?
常見的虛擬機軟件:
        VMware Workstation/Server。
        Microsoft Virtual PC/Virtual Server/Windows Virtual PC。
        Citrix Xen。
        Sun VirtualBox。
不同的虛擬化技術:
(1)完全虛擬化(Full Virtualization):目前主流的虛擬平臺產品都是這樣的,主要是指客戶端操作系統在這種虛擬平臺上運行時,不需要做任何修改。
(2)硬件輔助虛擬化(Hardware-Assisted Virtualization):或者稱爲“硬件虛擬機”(HVM),主要是指操作系統在這裏運行虛擬機時,必須靠系統的硬件來完成虛擬化的過程。在Intel的VT和AMD的AMD-V推出之後,主流虛擬機廠商也在現有產品基礎上推出新版本來融入此功能。如VMware的Workstation6.5、7.0(測試中……)
(3)部分虛擬化(Partial Virtualization):此類虛擬機產品在運行時,系統之提供部分的虛擬化,無法正常安裝完整的操作系統。
(4)半虛擬化(Para Virtualization):或者稱爲“泛虛擬化”。操作系統在這裏運行時,必須就該核心才能順利安裝,早期的Xen就屬於此類。
虛擬機產品運行層:
        不管是那一種架構,所有的虛擬機既然要抽象化計算機的硬件資源,就必須有一個管理機制來管理抽象化之後的資源,這個機制一般稱爲:Hypervisor或者Virtual Machine Monitor。大家不要看名字裏有一個Hyper-V,就以爲這個跟微軟的產品有關係哦~兩者名字上的偶同不能影響我們對Hypervisor的理解。我們使用的虛擬機也就是Hypervisor這一層的軟件。虛擬機在安裝時,會在系統的硬件之上插入一層Hypervisor接管硬件。之後再安裝的操作系統都是在Hypervisor之上,和硬件之間幾乎沒有任何關係。
硬件支持虛擬化:
        之前有的朋友問我,爲什麼我不能在虛擬機中安裝64位操作系統?我的機器不能安裝ESXi?我跟朋友說用一個小工具能夠測試主板、CPU是否支持虛擬化,也就是之前一篇文章中提到的secruable。現在因爲Intel的VT或者AMD的AMD-V技術的存在,主流的主板、CPU全部支持虛擬化。
企業級虛擬化平臺的應用
寄居架構和原生架構:
        不管是VMware的Workstation還是Microsoft的Virtual PC,都必須安裝在一個操作系統之上。如果這個操作系統崩潰了,所有運行在這臺宿主機的虛擬操作系統就全部停止。這種情況在正式的應用場合是不允許發生的,因此來說,一個不依靠任何操作系統的虛擬化平臺概念就誕生了。
寄居架構:
        這一類產品最大的特色就是必須在一個已經安裝好的操作系統上運行,稱爲寄居架構(Hosted)。這樣的好處就是硬件兼容性強。只要寄居的操作系統能使用的硬件,虛擬操作系統上都能使用。然而宿主機操作系統出現問題時,虛擬操作系統將無法使用,這便無法使用在重視安全及穩定的企業中。哪個企業不怕自己的服務器崩潰?不怕數據在崩潰時丟失?因此運行在一個獨立的內存空間並能完全掌握硬件資源的虛擬機產品是極其必要的。
原生架構:
        相對於寄居架構的就是原生架構,或者稱爲裸架構。在原生架構上,虛擬機產品直接運行在硬件上,將所有的硬件資源接管過來,僅負責和虛擬操作系統通信以及資源協調,崩潰的機率很小。在其上的任何一個虛擬操作系統崩潰了,都不會影響其他虛擬操作系統,因此對於企業應用來說是非常合適的。
        原生架構的虛擬操作系統爲了保持其穩定性,自然不可能將所有桌面產品的驅動程序都添加,因此最大的問題就是硬件兼容性。但是大部分原生架構產品都支持主流服務器及存儲設備,如iSCSI、SAN、SAS,並且聲明經過官方測試,爲的就是保證在企業運行環境中的穩定性。
企業環境究竟需要什麼樣的虛擬機?
1、服務器隔離原則
        企業環境和桌面應用在本質上就有極大差異,在講究安全、穩定、高可用和便捷管理的企業環境來說,服務的隔離是一個基本的原則。比如說我們在自己的電腦上同時安裝QQ和MSN客戶端,能夠同時一兩種不同的方式來進行交流,但是當企業中的Web服務器和Oracle數據庫同時安裝在一臺服務器上,二者同時進行對系統資源的競爭會讓服務器變得很慢,而操作系統、Web服務器或者Oracle數據庫中任何一方的崩潰將導致整個企業應用的崩潰。因此很多企業都強調,在一個操作系統中只安裝一個服務,就是爲了確保企業應用的穩定性。
2、提高硬件資源效率
        隨着網絡環境的過度膨脹,加上服務器的空間、耗電、散熱成本的提高,CPU資源的利用率過低,虛擬機廠商將目標定爲“在單一實體服務器上運行多個操作系統”。這樣我們可以讓每一個系統服務都以獨佔操作系統的方式,共存於一臺實體服務器中,也就是服務器的合併。這不僅保持了服務的隔離,更讓前面提到的所有問題得到解決。
3、高可用性
        服務器合併之後,由於虛擬機的硬件在抽象化之後,比實體機更有利於存在於企業應用環境。打個比方來說,企業最在乎的高可用(HA)、容錯、負載均衡、備份等之前必須靠複雜的技術或者昂貴的設備所能解決的問題,使用虛擬化竟然能夠一併解決。
除此之外,虛擬機更可以解決目前設備無法解決的問題,包括動態的主機遷移、統一的桌面管理,甚至是創建永遠不會崩潰的企業集成環境,使用虛擬化技術都能夠一併實現。
哈哈,就先到這裏吧。面對枯燥的文字,產生了意睡~
今天的重點就是:企業爲什麼需要虛擬化技術,以及需要什麼樣的虛擬化技術?
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章