作用 虛擬化是一個廣義的術語,是指計算元件在虛擬的基礎上而不是真實的基礎上運行,是一個為了簡化管理,最佳化資源的解決方案。如同空曠、通透的寫字樓,整個樓層沒有固定的牆壁,用戶可以用同樣的成本構建出更加自主適用的辦公空間,進而節省成本,發揮空間最大利用率。這種把有限的固定的資源根據不同需求進行重新規劃以達到最大利用率的思路,在
IT 領域就叫做
虛擬化技術 。
微軟虛擬化技術 虛擬化技術 與多任務以及
超執行緒 技術是完全不同的。多任務是指在一個作業系統中多個程式同時並行運行,而在
虛擬化技術 中,則可以同時運行多個作業系統,而且每一個作業系統中都有多個程式運行,每一個作業系統都運行在一個虛擬的CPU或者是
虛擬主機 上;而超執行緒技術只是單CPU模擬雙CPU來平衡程式運行性能,這兩個模擬出來的CPU是不能分離的,只能
協同工作 。
虛擬化技術 有很多定義,下面就給出了一些這樣的定義。
“虛擬化是以某種用戶和
應用程式 都可以很容易從中獲益的方式來表示計算機資源的過程,而不是根據這些資源的實現、地理位置或物理包裝的專有方式來表示它們。換句話說,它為數據、計算能力、存儲資源以及其他資源提供了一個邏輯視圖,而不是物理視圖。” —— Jonathan Eunice, Illuminata Inc。
“虛擬化是表示計算機資源的邏輯組(或
子集 )的過程,這樣就可以用從原始配置中獲益的方式訪問它們。這種資源的新虛擬視圖並不受實現、地理位置或底層資源的物理配置的限制。” —— Wikipedia
“虛擬化:對一組類似資源提供一個通用的抽象接口集,從而隱藏屬性和操作之間的差異,並允許通過一種通用的方式來查看並維護資源。” —— Open Grid Services Architecture Glossary of Terms。
目的 虛擬化的主要目的是對IT基礎設施進行簡化。它可以簡化對資源以及對資源管理的訪問。
消費者可以是一名最終用戶、
應用程式 、訪問資源或與資源進行互動的服務。資源是一個提供一定功能的實現,它可以基於標準的接口接受輸入和提供輸出。資源可以是硬體,例如
伺服器 、
磁碟 、網路、儀器;也可以是
軟體 ,例如Web 服務。
消費者通過受虛擬資源支持的標準接口對資源進行訪問。使用標準接口,可以在IT基礎設施發生變化時將對消費者的破壞降到最低。例如,最終用戶可以重用這些技巧,因為他們與虛擬資源進行互動的方式並沒有發生變化,即使底層物理資源或實現已經發生了變化,他們也不會受到影響。另外,
應用程式 也不需要進行升級或套用
補丁 ,因為標準接口並沒有發生變化。
IT 基礎設施的總體管理也可以得到簡化,因為虛擬化降低了消費者與資源之間的耦合程度。因此,消費者並不依賴於資源的特定實現。利用這種
松耦合 關係,
管理員 可以在保證管理工作對消費者產生最少影響的基礎上實現對 IT 基礎設施的管理。管理操作可以手工完成,也可以半自動地完成,或者通過服務級協定(
SLA )驅動來自動完成。
在這個基礎上,
格線計算 可以廣泛地利用
虛擬化技術 。
格線計算 可以對 IT 基礎設施進行虛擬化。它處理 IT 基礎設施的共享和管理,動態提供符合用戶和
應用程式 需求的資源,同時還將提供對基礎設施的簡化訪問。
軟體簡介 有了
虛擬化技術 ,用戶可以動態啟用虛擬伺服器(又叫
虛擬機 ),每個伺服器實際上可以讓作業系統(以及在上面運行的任何
應用程式 )誤以為虛擬機就是實際硬體。運行多個
虛擬機 還可以充分發揮物理
伺服器 的計算潛能,迅速應對
數據中心 不斷變化的需求。
虛擬化概念並不是新概念。早在20世紀70年代,
大型計算機 就一直在同時運行多個作業系統實例,每個實例也彼此獨立。不過直到當今,軟硬體方面的進步才使得
虛擬化技術 有可能出現在基於行業標準的大眾化x86
伺服器 上。
實際上,如今
數據中心 管理人員面臨的虛擬化解決方案種類繁多,有些是專有方案,而有些是開源方案。總的來說,各自都基於以下三種基本技術當中的一種,但哪種技術效果最好,這取決於要進行虛擬化處理的具體工作負荷以及優先業務目標。
完全虛擬 hypervisor可以捕獲
CPU 指令,為指令訪問硬體控制器和外設充當中介。因而,完全
虛擬化技術 幾乎能讓任何一款作業系統不用改動就能安裝到
虛擬伺服器 上,而它們不知道自己運行在虛擬化環境下。主要缺點是,hypervisor給處理器帶來開銷。
在完全虛擬化的環境下,hypervisor運行在裸硬體上,充當
主機作業系統 ;而由hypervisor管理的虛擬伺服器運行
客戶端 作業系統(guest OS)。
準虛擬 完全虛擬化是處理器密集型技術,因為它要求
hypervisor 管理各個
虛擬伺服器 ,並讓它們彼此獨立。減輕這種負擔的一種方法就是,改動客戶作業系統,讓它以為自己運行在
虛擬環境 下,能夠與hypervisor
協同工作 。這種方法就叫準虛擬化(para-virtualization)。
Xen是開源準
虛擬化技術 的一個例子。作業系統作為虛擬伺服器在Xen hypervisor上運行之前,它必須在核心層面進行某些改變。因此,Xen適用於BSD、Linux、Solaris及其他
開源作業系統 ,但不適合對像Windows這些專有的作業系統進行虛擬化處理,因為它們無法改動。
準
虛擬化技術 的優點是性能高。經過準虛擬化處理的
伺服器 可與hypervisor
協同工作 ,其回響能力幾乎不亞於未經過虛擬化處理的伺服器。準虛擬化與完全虛擬化相比優點明顯,以至於
微軟 和VMware都在開發這項技術,以完善各自的產品。
系統虛擬 實現虛擬化還有一個方法,那就是在作業系統層面增添
虛擬伺服器 功能。Solaris Container就是這方面的一個例子,Virtuozzo/OpenVZ是面向Linux的
軟體 方案。
就作業系統層的虛擬化而言,沒有獨立的hypervisor層。相反,
主機作業系統 本身就負責在多個
虛擬伺服器 之間分配硬體資源,並且讓這些伺服器彼此獨立。一個明顯的區別是,如果使用作業系統層虛擬化,所有
虛擬伺服器 必須運行同一作業系統(不過每個實例有各自的
應用程式 和
用戶賬戶 )。
雖然作業系統層虛擬化的靈活性比較差,但本機速度性能比較高。此外,由於架構在所有
虛擬伺服器 上使用單一、標準的作業系統,管理起來比異構環境要容易。
桌面虛擬 伺服器虛擬化主要針對伺服器而言,而虛擬化最接近用戶的還是要算的上桌面虛擬化了,桌面虛擬化主要功能是將分散的桌面環境集中保存並管理起來,包括桌面環境的集中下發,集中更新,集中管理。桌面虛擬化使得桌面管理變得簡單,不用每台終端單獨進行維護,每台終端進行更新。終端數據可以集中存儲在中心機房裡,安全性相對傳統桌面套用要高很多。桌面虛擬化可以使得一個人擁有多個桌面環境,也可以把一個桌面環境供多人使用,節省了license。另外,桌面虛擬化依託於伺服器虛擬化。沒有伺服器虛擬化,這個桌面虛擬化的優勢將完全沒有了。不僅如此,還浪費了許多管理資本。
硬體助力軟體 不像大型機,
PC 的硬體在設計時並沒有考慮到虛擬化,而就在不久前,它還是完全由
軟體 來承擔這項重任。隨著
AMD 和
英特爾 推出了最新一代的x86處理器,頭一回在CPU層面添加了支持虛擬化的功能。
遺憾的是,這兩家公司的技術各自獨立開發,這意味著它們的代碼不相兼容。不過,硬體虛擬化支持功能讓hypervisor從極其繁重的管理事務中脫離出來。這除了提高性能外,還有作業系統不用改動就能在準虛擬化環境下運行,包括
Windows 環境。
CPU層
虛擬化技術 不會自動發揮作用。為了專門支持它,必須開發
虛擬化軟體 。不過,因為這種技術的優點非常誘人,預計各種類型的
虛擬化軟體 會源源不斷地開發出來。
廠商 隨著虛擬化套用變得越來越熱門熱門,簡單分析幾大虛擬化廠商之間的優缺點
Citrix 公司:Citrix公司是近兩年增長非常快的一家公司,他得益於雲計算的興起,Citrix公司主要有三大產品,伺服器虛擬化XenServer,優點是便宜,管理一般;套用虛擬化XenAPP,桌面虛擬化Xendesktop。後兩者是目前為止最成熟的桌面虛擬化與套用虛擬化廠家。企業級VDI解決方案中不少都是使用Citrix公司的Xendesktop與Xenapp的結合使用。
IBM :在2007年11月的IBM虛擬科技大會上,IBM就提出了“新一代虛擬化”的概念。只是時之今日,成功的案例全並不多見,像陝西榆林地區的中國神華分公司的失敗案例到是不少。不過筆者認為IBM虛擬化還是具備以下兩點優勢:第一,IBM豐富的產品線;對自有品牌良好的兼容性,第二,強大的研發實力,可以提供較全面的諮詢方案,只是成本過高,不是每一個客戶都這么富有的。加上其對第三方支持兼容較差,運維操作也比較複雜,對於企業來說是把雙刃劍。並且IBM所謂的虛擬化只是伺服器虛擬化,而非真正的虛擬化。
VMware :做為業內虛擬化領先的廠商VMware公司,一直以其易用性和管理性得到了大家的認同。只是受其架構的影響限制,VMware還主要是在X86平台伺服器上有較大優勢,而非真正的IT信息虛擬化。加上,其本身只是軟體方案解決商,而非像IBM與微軟這樣擁用各自己陣地用戶基礎的廠商。所以當前,對於VMware公司來說將面臨著多方面的挑戰,這其中包括微軟、XenSource(被Citrix購得)以及Parallels、IBM公司。所以,未來對於VMware公司來說這條道虛擬化之道能否繼續順風順水下去還真不好說。
微軟:2008年,隨著微軟Virtualization的正式推出,微軟已經擁有了從桌面虛擬化、伺服器虛擬化到套用虛擬化、展現層虛擬化的完備的產品線。至此,其全面出擊的虛擬化戰略已經完全浮出水面。因為,在微軟眼中虛擬化絕非簡單的加固伺服器和降低數據中心的成本。他還意味著幫助更多的IT部門最大化ROI,並在整個企業範圍內降低成本,同時強化業務持續性。這也是微軟為什麼研發了一系列的產品,用以支持整個物理和虛擬基礎架構。
並且,近兩年隨著虛擬化技術的快速發展,虛擬化技術已經走出了區域網路,從而延伸到了整個廣域網。幾大廠商的代理商業越來越重視客戶對虛擬化解決方案需求的分析,因此也不局限於僅與一家廠商代理虛擬化產品。
評價 每種虛擬化方法都有各自的優點,選擇哪個則取決於用戶的具體情況。一組
伺服器 基於同一作業系統,這非常適用於通過作業系統層實現合併。
準
虛擬化技術 集兩者之所長,如果與支持虛擬化技術的處理器一起部署,優點更為明顯。它不但提供了良好性能,還提供了可運行多種異構
客戶端 作業系統的功能。
在三種方法中完全虛擬化性能受到的影響最大,但提供了這個優點:既能讓
客戶端 作業系統彼此完全隔離,還能讓它們與
主機作業系統 完全隔離。它非常適用於
軟體質量保證 及測試,另外還支持種類最廣泛的
客戶端 作業系統。
完全虛擬化解決方案提供了其他獨特功能。譬如說,它們可以對
虛擬伺服器 拍“
快照 (snapshot)”,保留
狀態 、有助於
災難恢復 。這種虛擬伺服器映像可以用來迅速配置新的伺服器實例。越來越多的
軟體 公司甚至開始提供評測版產品,作為可下載、預包裝的虛擬伺服器映像。
就跟物理
伺服器 一樣,虛擬伺服器需要不斷得到支持和維護。越來越流行的
伺服器虛擬化 已為第三方工具造就了興旺的市場,無論是物理環境到
虛擬環境 的遷移實用程式,還是面向
虛擬化技術 的各大
系統管理 控制台,它們都旨在簡化從傳統IT環境遷移到高效、具有
成本效益 的虛擬環境的過程。
維護 對於任何虛擬化環境來說,一個非常重要的方面是減少動態的和複雜的 IT 基礎設施的管理和維護需求。另外,通過
軟體 和工具實現的模式和技術都支持這些管理任務。這些模式和技術的組合可以實現以下功能:
為 IT 基礎設施中所有資源的管理訪問提供單一且安全的
接口 ,允許
管理員 對所有資源進行診斷 ,對所有資源進行配置和修改管理 ,發現並維護可用資源目錄, 監視資源並記錄它們平時的健康狀況, 當某個條件達到已建立的上限值時,
觸發器 就會執行相應操作;此時執行的操作可能包括通知管理員手工作出回響,也可能會根據正確的條件自動進行回響 根據資源的使用情況、可用性和服務級別要求提供資源或收回資源;資源的提供可以手工、半自動或根據建立好的策略自動完成 獲得並維護資源的使用和檢測信息,並提供適當的報告,例如對資源消耗進行記錄 提供補充最終用戶或
應用程式 安全性 的安全機制 ,為滿足最終用戶和應用程式 SLA 而記錄所有資源的性能信息
模式簡介 虛擬化可以通過很多方法來證實。它不是一個單獨的實體,而是一組模式和技術的集合,這些技術提供了支持資源的邏輯表示所需的功能,以及通過標準接口將其呈現給這些資源的消費者所需的功能。這些模式本身都是前面介紹過的各種不同虛擬形式的重複出現。
下面是在實現虛擬化時常常使用的一些模式和技術:
單一資源多個邏輯表示
這種模式是虛擬化最廣泛使用的模式之一。它只包含一個物理資源,但是它向消費者呈現的邏輯表示卻仿佛它包含多個資源一樣。消費者與這個虛擬資源進行互動時就仿佛自己是唯一的消費者一樣,而不會考慮他正在與其他消費者一起共享資源。
多個資源單一邏輯表示
這種模式包含了多個組合資源,以便將這些資源表示為提供單一接口的單個邏輯表示形式。在利用多個功能不太強大的資源來創建功能強大且豐富的
虛擬資源 時,這是一種非常有用的模式。
存儲虛擬化 就是這種模式的一個例子。在
伺服器 方面,
集群技術 可以提供這樣的幻想:消費者只與一個系統(頭節點)進行互動,而集群事實上可以包含很多的處理器或節點。實際上,這就是從 IT 技術設施的角度看到的
格線 可以實現的功能。
在多個資源之間提供單一邏輯表示
這種模式包括一個以多個可用資源之一的形式表示的虛擬資源。虛擬資源會根據指定的條件來選擇一個物理資源實現,例如資源的利用、回響時間或臨近程度。儘管這種模式與上一種模式非常類似,但是它們之間有一些細微的差別。首先,每個物理資源都是一個完整的副本,它們不會在邏輯
表示層 上聚集在一起。其次,每個物理資源都可以提供邏輯表示所需要的所有功能,而不是像前一種模式那樣只能提供部分功能。這種模式的一個常見例子是使用
應用程式 容器來均衡任務負載。在將請求或
事務 提交給
應用程式 或服務時,消費者並不關心到底是幾個容器中執行的哪一個應用程式的副本為請求或事務提供服務。消費者只是希望請求或
事務 得到處理。
單個資源單一邏輯表示
這是用來表示單個資源的一種簡單模式,就仿佛它是別的什麼資源一樣。啟用 Web 的企業
後台 應用程式 就是一個常見的例子。在這種情況下,我們不是修改後台的
應用程式 ,而是創建一個前端來表示 Web 界面,它會映射到
應用程式接口 中。這種模式允許通過對後台
應用程式 進行最少的修改(或根本不加任何修改)來重用一些基本的功能。也可以根據無法修改的組件,使用相同的模式構建服務。
複合或分層虛擬
這種模式是剛才介紹的一種或多種模式的組合,它使用物理資源來提供豐富的功能集。信息虛擬化是這種模式一個很好的例子。它提供了底層所需要的功能,這些功能用於管理對資源、包含有關如何處理和使用信息的元數據以及對信息進行處理的操作的全局命名和引用。例如 Open Grid Services Architecture(
OGSA )或者 Grid Computing Components,實際上都是虛擬化的組合或虛擬化的不同層次。
評估 1、使用習慣、感受: 企業大量的分散的PC採用集中式運算結合虛擬化技術進行集中式的管理確實為我們企業提供了很好的解決方案。不過我們知道計算資源是不可缺少的,不過是存在的位置不同而已,我們放在終端上還是伺服器上都是無法減少的。假設我們當今每個人桌面的計算資源相當於(cpu雙核2.0 記憶體2G)在這種環境下我們已經習慣了的用戶體驗轉移到伺服器上,100個用戶的並發那就要求伺服器提供100X2X2等於400的CPU運算能力和200G的記憶體才可以滿足用戶習慣了的體驗環境(冗餘未計算內)。那么我們計算如果我們的企業有500個用戶呢,如果是1000個用戶呢。實際上我們不可能為我們的用戶提供如此的計算能力的,那么也就從這個單方面就必須犧牲用戶的體驗了。其二在每個用戶都要去伺服器端下載它所用的作業系統對頻寬壓力是巨大的,用戶越多這個因素就越明顯,所以這個因素也需要企管人員重點考慮。用戶的體驗沒以前好了,會不會對IT人員的工作推進造成影響呢?
2、設備和軟體兼容性: 我們習慣了即插即用的外設設備,新的系統會不會對日常的工作習慣造成影響呢,如果有了影響是如何避免的呢?我們的IT管理人員的工作量是增加了還是降低了,效率是提高了還是降低了?需要我們企管人員具體考量。
3、成本: 企業花費的每一分錢都會具體考慮投入產出比,一個好的管理工具要推廣,最起碼它能夠給企業在一個時間內帶來成倍以上的收益才給與考慮的。集中式的
虛擬化 方案帶來的投入成本主要是
虛擬化 軟體授權費用,正版作業系統的授權,正版辦公軟體的授權,瘦客戶機的採購費用,網路設備的換代費用,新的存儲設備增加費用,伺服器集群的硬體和軟體採購費用,甚至有一些網路改造的費用。由於新的技術對管理人員的技術要求的提高相應的就會有技術人員的培訓學習費用,新增管理人員費用。由於設備的成倍增加帶來的還有機房改造電力消耗的各種費用。 考慮到各種費用的總和,計算出的單點改造成本,還要考慮到日後虛擬化平台升級費用和兼容性是否能匹配企業內部的系統升級。然後才可以制定一個完整的財務規劃來應對整個項目的開支和升級。這個計畫就需要整個集團公司所有部門一起參與協調。
4、多媒體和大型程式體驗: 在一些設計部門和跟設計關聯部門,需要大型的設計程式由於當今顯示卡虛擬化的技術尚未成熟,所以在這個場景中是無法套用的。
5、軟硬體架構改變: 新的系統和新的套用,我們有做好準備嗎來應對管理架構的改變,來應對團隊組織的改變嗎?最後建議我們的企管人員對於雲計算模式引入虛擬化產品的方案問一句:我們準備好了嗎?
解決方案 軟體方案 純
軟體 虛擬化解決方案存在很多限制。“客戶”作業系統很多情況下是通過虛擬機監視器(Virtual Machine Monitor,VMM)來與硬體進行通信,由VMM來決定其對系統上所有虛擬機的訪問。(注意,大多數處理器和記憶體訪問獨立於
VMM ,只在發生特定事件時才會涉及VMM,如
頁面錯誤 。)在純
軟體 虛擬化解決方案中,VMM在
軟體 套件中的位置是傳統意義上作業系統所處的位置,而作業系統的位置是傳統意義上
應用程式 所處的位置。這一額外的通信層需要進行
二進制轉換 ,以通過提供到物理資源(如處理器、記憶體、
存儲 、顯示卡和網卡等)的接口,模擬硬體環境。這種轉換必然會增加系統的複雜性。此外,客戶作業系統的支持受到
虛擬機環境 的能力限制,這會阻礙特定技術的部署,如64位客戶作業系統。在純軟體解決方案中,軟體堆疊增加的複雜性意味著,這些環境難於管理,因而會加大確保系統可靠性和
安全性 的困難。
虛擬化
硬體方案 而CPU的
虛擬化技術 是一種硬體方案,支持
虛擬技術 的CPU帶有特別最佳化過的
指令集 來控制虛擬過程,通過這些指令集,VMM會很容易提高性能,相比
軟體 的虛擬實現方式會很大程度上提高性能。
虛擬化技術 可提供基於晶片的功能,藉助兼容VMM
軟體 能夠改進純軟體解決方案。由於虛擬化硬體可提供全新的架構,支持作業系統直接在上面運行,從而無需進行
二進制轉換 ,減少了相關的性能開銷,極大簡化了VMM設計,進而使VMM能夠按通用標準進行編寫,性能更加強大。另外,在純
軟體 VMM中,缺少對64位客戶作業系統的支持,而隨著
64位處理器 的不斷普及,這一嚴重缺點也日益突出。而CPU的
虛擬化技術 除支持廣泛的傳統作業系統之外,還支持64位客戶作業系統。
虛擬化 虛擬化技術 是一套解決方案。完整的情況需要CPU、
主機板晶片組 、BIOS和
軟體 的支持,例如VMM軟體或者某些作業系統本身。即使只是CPU支持
虛擬化技術 ,在配合VMM的
軟體 情況下,也會比完全不支持虛擬化技術的系統有更好的性能。
兩大CPU巨頭
Intel 和
AMD 都想方設法在虛擬化領域中占得先機,但是AMD的
虛擬化技術 在時間上要比Intel落後幾個月。Intel自2005年末開始便在其處理器產品線中推廣套用Intel Virtualization Technology(Intel VT)
虛擬化技術 。Intel已經發布了具有Intel VT
虛擬化技術 的一系列處理器產品,包括
桌面 平台的Pentium 4 6X2系列、Pentium D 9X0系列和Pentium EE 9XX系列,還有Core Duo系列和Core Solo系列中的部分產品,以及
伺服器 /
工作站 平台上的Xeon LV系列、Xeon 5000系列、Xeon 5100系列、Xeon MP 7000系列以及Itanium 2 9000系列;同時絕大多數的Intel下一代主流處理器,包括Merom核心
移動處理器 ,Conroe核心桌面處理器,Woodcrest核心伺服器處理器,以及基於Montecito核心的Itanium 2高端伺服器處理器都將支持Intel VT虛擬化技術。
虛擬化 而
AMD 方面也已經發布了支持AMD Virtualization Technology(AMD VT)
虛擬化技術 的一系列處理器產品,包括Socket S1接口的Turion 64 X2系列以及Socket AM2接口的Athlon 64 X2系列和Athlon 64 FX系列等等,並且絕大多數的AMD下一代主流處理器,包括即將發布的Socket F接口的Opteron都將支持AMD
VT虛擬化技術 。