文章目錄
- 開篇
- 摘要
- 本文大綱
- 虛擬化的概念
- 虛擬化的分類
- 伺服器虛擬化的方面
- 本文總結
- 後續
開篇
上篇我們講述了雲端運算的發展曆史,當然也是IT資訊產業發展的一個未來的趨勢,正如我們的互連網應用的蓬勃發展,目前包括一些RIA富用戶端應
用的迅速發展,還包括開源軟體和HTML5的未來的推廣,無疑都是為了為使用者提供更好的服務。當然雲端運算的提出,也是在前人的肩膀上,通過柔和現
有的技術,為使用者或者企業提供更好的服務的一種新的IT模式,因此我們可以說雲端運算本身帶來的是一種IT產業格局的變化,因此,我們對雲端運算抱的
態度可能不會說是非它不可,但是我們必須要思想上對其能夠把我,在自己的公司資訊化的決策中,可以將其列為未來的企業發展的一個重要戰略之一。
本篇將會從雲端運算的核心技術之一或者說是,完成雲端運算這個新興概念的底層的核心技術虛擬化的相關概念的介紹,至少我們應該知道雲端運算這個
浪漫的名詞,它的底層實現是採用什麼技術,是什麼需求,促使這樣的概念的提出等等,具體的關於雲端運算概念的相關的介紹,我們也已經在第一篇中
提過,所以我們這裡只要知道,虛擬化是實現雲端運算的一個核心的技術之一就好。
摘要
虛擬化技術的產生也是電腦技術發展道路上的一個趨勢和必然現象,在電腦發展道路上起到了重要的作用,虛擬化的技術早在20世紀50年代就
已經提出,第一次將虛擬化的技術應用到商業應用中還是20世紀的60年代,並且將虛擬化技術提出並應用到商業中的第一個公司就是IBM,IBM可以說
是在虛擬化技術方面一直是領導者,現在虛擬化的技術用到的地方太多了,隨便舉例吧,無論是作業系統的虛擬記憶體,還是說是虛擬機器或者目前的服務
器的虛擬化或者是PC的虛擬化等都是離不開虛擬化技術。隨著虛擬化技術的廣泛使用,為資料中心和應用部署帶來了新的管理與部署方式,虛擬化技術
的使用,提高了高效便捷的管理,提高了資源的利用率,虛擬化技術目前以成為多家商業巨頭的重要企業戰略。
本文將會從下面的幾個方面進行闡述。
1、虛擬化的概念
2、虛擬化的常見類型
3、虛擬化的方面
本文大綱
1、開篇
2、摘要
3、本文大綱
4、虛擬化的概念
5、虛擬化的常見類型
6、虛擬化技術的演化
7、伺服器虛擬化的方面
8、本文總結
9、後續
10、參考文獻
虛擬化的概念
虛擬化概念的提出,是相對於真實的資源來說的,虛擬化的簡單的來說就是,類比真實環境下啟動並執行完全狀態到一個虛擬化的環境中,一般來說我
們知道電腦資源分為二種,硬體資源和軟體資源。
虛擬化技術正是將虛擬化技術應用在電腦資源上的,所以既可以針對硬體也可以針對軟體,一般來說電腦的軟硬體資源結構圖,可能是如下情
況:
上面給出的可虛擬化的電腦資源的組圖,基本上涵蓋了可虛擬化的資源。
看過電腦作業系統教材的朋友,應該都知道作業系統中的記憶體虛擬化的技術,比如我們的現在用的比較多的作業系統的虛擬化案頭的虛擬記憶體的
概念,這個怎麼理解呢,我認為就可以用虛擬化的技術來解釋。在作業系統中的虛擬記憶體的的思想就是作業系統在硬碟的某個地區內,將記憶體中不使用
的狀態資料IO到硬碟上,等到某個程式需要使用的資料不在記憶體中的時候,通過IO操作,將應聘的資料IO到記憶體中,就算我們的本身的記憶體很小,但是
我們卻能運行資料量很大的程式,原因就是因為,我們在把資料裝入記憶體的過程中,並不是一次性的全部載入,有點類似我們平時應用程式的消極式載入
的意思呵呵,不過思路可不同,不能混淆。下面我們來簡單的說明下過程。
這裡將記憶體中的部分記憶體空間釋放,提供給當前要啟動並執行程式,具體的IO到硬碟中的資料,根據一些策略來完成切換。我這裡並不詳細的講述這個方
面的內容,詳細的介紹,請大家查閱相關資料呵呵。
下面我們來看看關於虛擬化的相關概念性的定義吧
1.維基百科對虛擬化的描述
虛擬化是將電腦資源進行抽象的一種方法,通過虛擬化出來的電腦資源,我們可以像我們未虛擬化訪問物力資源的形式,來訪問虛擬化後的資
源。並且這種抽象後的資源,不會受到物力資源配置、地區、實現等因素的影響。
2、資訊技術術語庫
虛擬化是某些事物的虛擬版本,例如作業系統,電腦系統,CUP,記憶體,硬碟,負載平衡,路由器等。
3、IBM的虛擬化定義
虛擬化是資源的邏輯表示,不受物理限制的約束。
通過上面的總結,我們不難發現他們之間的共性。
a、虛擬化的對象是各式各樣的資源。
b、經過虛擬化後的邏輯資源,隱藏了一些細節性的維護。
c、使用者可以在虛擬環境中,使用真實環境中的部分或者全部功能。
虛擬化的分類
可虛擬化的資源有多種多樣,我們前面也是給出了按照軟硬體方面的內容,來分析的,一般都是軟硬體相結合的形式,下面我們來按照虛擬化的分類
來講述下,虛擬化資源的不同類型,針對每個類型虛擬化的具體的作用和功效是什麼,我們來簡單的分析下。我們先看下可虛擬化資源的整體結構。
開篇的時候,我們對虛擬化的軟硬體資源進行了拆分,下面我們針對拆分後的結果進行分類,從下面的幾個類型進行講述,我們先來看看基礎設施
分類的內容。
一、基礎設施的虛擬化
在這些虛擬化的資源中,我想我們使用最多的虛擬化的實踐就是-按照VMware Workstation提供的虛擬機器,我們通過按照虛擬機器虛擬一個邏輯的操
作系統,同時虛擬化後的作業系統,我們可以和正常的作業系統使用一樣來使用虛擬化的作業系統,這個虛擬化後的作業系統,就是一個獨立的作業系統,我們
需要為這個虛擬作業系統重新安裝相應的軟體,
我們平時在管理一些資料檔案,網路資源,儲存資源時,我們都認為是基礎設施類型的虛擬化,網路的虛擬化指的是將網路中的軟硬體資源整合,為使用者
提供虛擬化的網路連結技術,針對網路的虛擬化技術,我們可以分為區域網路虛擬化和廣域網路虛擬化,區域網路的虛擬化,是將區域網路內的多個網路虛擬成為一個
邏輯網路,或者將區域網路進行劃分,劃分成多個子網,通過這樣的方法來提供網路的資源使用率,廣域網路的虛擬化的典型代表是VPN,通過使用VPN的技術,我
們能夠遠端存取公司內部的網路資源,就像是在公司內部訪問一樣,同時這樣的技術,保證了外部網路連結的安全性和私密性。
基於儲存的虛擬化技術是指,為物理裝置提供一個抽象的邏輯視圖,使用者通過這個視圖來訪問整合後的資源,採用這個技術的典型代表是磁碟陣列
技術(RAID) 該技術通過將多塊物理硬碟組合成為磁碟陣列,用廉價的裝置,組合成高容錯,高效能的儲存空間。
二、作業系統的虛擬化
我想大部分的從事IT的朋友,可能在沒有充分瞭解虛擬化技術之前,我們對虛擬化技術的理解,在作業系統層面上的認識比較多,認為作業系統的
虛擬化就是虛擬化,還有就是作業系統中的記憶體的虛擬化,印表機的虛擬化等。系統的虛擬化,實現了作業系統與物理裝置的分離,例如,我們可以在
windows的作業系統上安裝Linux作業系統,我們都知道一個電腦上不能同時運行多個物理的作業系統,但是通過虛擬化技術,我們就能將一個計算
機裝置上,同時運行多個作業系統,這個我想大家的理解最深刻。
我們通過使用虛擬機器來建立多個作業系統執行個體,那麼我們就可以在電腦中通過同事運行多個系統執行個體來完成多系統的同時運行,並且,我們使用
虛擬機器,我們需要為虛擬機器的運行環境提供相應資源的虛擬。
通過我們可以看到虛擬機器的下的運行裝置,是通過虛擬機器從電腦物力資源中分配相應的電腦資源來提供給虛擬機器運行環境,這樣,我們在
使用虛擬機器中的作業系統執行個體時,就和我們的物理作業系統一樣使用方便。
並且通過虛擬化後的作業系統,如果我們將一些自己的應用程式安裝在虛擬機器上之後,我們通過建立快照,建立的機器映像,我們就可以還原鏡
像,虛擬機器會從快照中恢複虛擬機器的執行個體。一般恢複執行個體只要幾分鐘的時間,我們可以通過這樣的方式,來迅速的恢複一個作業系統或者為我們省去了
一些不必要的按照應用程式的時間浪費。
三、軟體的虛擬化
除了前面講述的2個虛擬化類型的資源,還有一種是應用類型的虛擬化技術,我們通過將軟體虛擬化技術,我們可以實現軟體和作業系統之間解耦,
為軟體提供一個虛擬運行環境。例如如下的情境,我們現在開發一個應用程式,我們在虛擬化的伺服器上部署相應的組件,當使用者訪問相關的應用程
序時,我們通過虛擬化伺服器將組件推送到客戶的用戶端的虛擬化環境中,完成應用,當客戶關閉軟體時,將客戶的變更和資料資訊傳送回虛擬服務
器,這樣使用者可以不單局限於單一的用戶端,可以在不同的終端使用自己的應用程式。
還有比較典型的軟體虛擬化技術的代表是JAVA的虛擬機器,JAVA的虛擬機器將進階程式設計語言編譯成中繼語言,JAVA虛擬機器將中繼語言解釋成特定平台
上可執行檔二進位機器碼,從而達到了一次編譯,處處啟動並執行效果,不過當然這是目標,可能還有一些細節的問題需要處理。
我這裡就不給去其他的例子了,那麼我們可以看看,我們實現應用虛擬化的簡單過程。
伺服器虛擬化的方面
伺服器虛擬化技術,我們上篇就講述了伺服器虛擬化的相關概念,並且分析了伺服器虛擬化的核心技術的三個方面,CUP,記憶體,裝置及IO,本節
針對這三個方面進行闡述,實現的優勢及特點。
1、Cpu
CPU的虛擬化技術,是將物理的CPU抽象為虛擬CPU,我們知道,任意時刻,物理的CPU只能處理一個指令,我們也知道分時的CPU通過CPU的
執行時間,來對多個指令進行響應,不停的切換始終,執行不同的指令。我們很早的時候,是採用集中式的伺服器模式,就是一台中央伺服器,多個客
戶端,每個Client Access Server內的CPU響應自己的命令,這個時候,客戶在使用電腦的時候,感覺不到自己使用的是集中式的伺服器,而是感覺自己
使用的單獨的PC,這個時候,我們可以說內部其實就已經有了虛擬化的概念。
CPU的虛擬化的過程中會出現如下的問題,有的時候,如果我們在虛擬機器裡面執行一些類似中斷,或者是記憶體管理的指令這樣的命令操作的時候,
我們其實是要訪問實體資源,那麼我們如何處理這樣的問題,我們只能通過虛擬機器監視器監視這樣的操作。然後執行相應的處理。
在X86結構體系下,關於CPU的虛擬化提供了二種方式,全虛擬化和半虛擬化,我們來介紹下這2類虛擬化的原理。
全虛擬化:是指我們通過虛擬機器監視器,監視使用者的操作,當使用者執行某些特殊指令時,虛擬機器監視器將這些指令進行動態轉換,轉化成由虛擬
機可完成的相同的指令序列。一般全虛擬化採用的是二進位動態翻譯機制,通過這樣的機制,給客戶的感覺就是自己的系統就是運行在真實的實體環境
當中。
半虛擬化:是指通過超級調用的形式,使虛擬機器完成真實實體環境中特殊指令的執行,半虛擬化要求客戶的作業系統與虛擬機器是相容的,否則如果
虛擬機器無法操控物理的作業系統,那麼將無法完成超級調用的操作。
只要採用虛擬化技術,就會造成效能上的損失,隨著虛擬機器技術的發展,目前CPU生產廠商中的絕對代表Intel、AMD已經將硬體輔助虛擬化技術帶
入了CPU,Intel的Intel-VT,AMD-V,通過CPU提供的硬體輔助技術,就是提供虛擬化操作的相關指令集合,這些指令集合輔助完成前面我們介紹的全
虛擬化與半虛擬化中解決的問題。
2、記憶體及裝置、IO
這塊的內容,本章就不講述了,基本上來說與電腦作業系統中的講述的虛擬化的應用差不多,我這裡就不詳說了。
本文總結
本章主要講述了虛擬化的相關概念,介紹了虛擬化資源的分類及虛擬化的幾種類型,並且分析了虛擬化產生的優勢,通過虛擬化技術,我們提供了
資源的利用率,提高了系統的效能,虛擬化技術隨著硬體及軟體的不斷髮展,虛擬化技術將會在IT產業中佔據越來越重要的角色,所以我們對虛擬化技
術方面的只是瞭解的越深入,對未來的IT的發展方向就越有把握。
後續
下一篇我們就開始講述虛擬化技術方面內容了,希望大家看完本章內容後,如果有什麼意見和建議,請您提出來,我在下篇書寫的時候,會及時的
改進,謝謝您的意見,由於個人水平有限,錯誤或不足之處還請多多指點。