目前小瑞在公司內大量的使用,虛擬化技術。最早期我還沒有來到這家公司時,使用 “暈倒” 系統的 Virtual PC ,後來又有人使用VM Ware 來建立虛擬機器。而在小瑞來了之後,開始引進Xen 技術。這些林林總總的虛擬化技術,有什麼差別呢?以下是小瑞,這幾年來的心得筆記。
引用至 天涯社區論壇 作者 风无痕606 随拍:宽窄巷子--最成都 作品
虛擬化在做什麼? 嗯...我感覺跟上面那個小丑有點像。機器能力好的,同時可以多玩幾個球,機器能力比較差的,就少玩幾個球。如果小丑不小心踩到狗屎;或是不小心手滑了一下..那..所有的球全部會掉到地上。
取用 井上雄彥漫畫 灌籃高手,著名的 “手滑了一下”
為什麼要使用虛擬化技術
除了愛台灣的理由外,還有幾個小瑞覺得還蠻重要的考量點。
1. 舊OS 可以借屍還魂
經營的比較久的公司,或多或少,都會有一些比較早期的作業系統,運作一些陳年的應用程式。
例如:NT 4.0 ,上面寫了一些怪怪的應用程式,公司內User 還在使用,你無法停掉這個系統,可能就會碰到一些問題。 “暈倒” 公司,已經不再對 NT 4.0 做支援了,你的舊設備供應商,有些可能也倒了。新的設備,NT 4.0 又不一定有支援。這時你除了祈求舊的硬體設備,不要故障外;還有另外一個選擇,就是使用虛擬化技術。把NT 4.0 安裝在虛擬化下,如此即可擺脫,老舊硬體的夢魘,還可以跟著時代的進步,使用新的硬體設備。
2.中央機房的能源支出
現在各個中央機房的能源支出,已經越來越高。每增加一部主機,機櫃就要增加電力支出,原本早期一條機櫃,可能只需20安培的電力即可運作,現在可能要50-100安培,才可支應電力支出。除了機櫃電力外,每單位平方的空間,因主機散發的熱量提高,所需的空調電力,也會增加,造成了惡性循環。此時應用虛擬化技術,可減少實體主機數量,有效的減少能源支出。所以這也算是一種綠色科技。
3.數據安全等級不同的需求
以往如果為了資料安全等級不同,可能把伺服器分開架設,也可能座落在不同的地點。當人員在需要實體操作時,必須來往於不同的機房間,或對不同的伺服器做操作。使用虛擬化技術,可以把不等安全等級需求的主機,架設在同一台機器上,再於各機上,實作各自所需的安全等級,減少了主機分散的管理。
當然虛擬化不是萬能的,還是受限在底層機器Host 的規格限制,而且還要小心手滑事件的發生,把整籃子的雞蛋打破了。
還有目前的虛擬化技術大部份所做的模擬,只針對CPU / RAM / HDD / NET 等核心的設備。比較沒有在對 TV-Card ,或其它遊戲用的設備做模擬,所以目前虛擬化技術,主要以應用在伺服器上為主。
目前常見的虛擬化技術有那些呢?
1. 全虛擬化 Full Virtualization
2. 半虛擬化 Para-Virtualization
3. 作業系統層虛擬化 OS-Virtualization
有什麼差別
全虛擬化 Full Virtualization
顧名思義,就是底層不管3,7,21 ,虛擬機所要用的設備,全部都給它模擬。Guest OS 是完全不知道,自己活在虛擬環境下。所以在Host OS 上的所有Guest OS , 所要做的任何I/O 作業,全部透過Host OS 的模擬器去進行。Guest OS 及Host OS 完全獨立在,不同的記憶體區塊,不會互相干擾,所以全虛擬化,理論上可以模擬運行,所有的作業系統。至於效能呢? 運作的有點抱歉,除非不得已,小瑞不會使用這個方式。代表軟體: Virtual PC ,VM-Ware,Virtual Box,KVM等等...
半虛擬化 Para-Virtualization
嗯..沒錯,只模擬一半的意思。也就是被模擬的Guest OS ,自己很清楚,是活在虛擬化的環境。所以很多指令,要遵守交通規則,因為它知道,自己不是這套Hardware上,唯一的OS。例如呼叫CPU ,以前是用 Ring 0 ,現在要用Ring 1,優先權稍低一點。以免多台Guest OS ,發生車禍。要做到這點,就必須修改Guest OS 的核心,把一些指令調一調。這樣的好處是,Host OS 不用模擬CPU 這個東東,負荷大幅減輕。效能就明顯優於全虛擬化。不過,不是所有OS 核心程式,都是可以改的;Linux 是Open Source 源碼公開,所以要修改很簡單,大家都可以去改;Win “暈倒” 系統呢,抱歉哦,沒有公開源碼。所以Linux 上可以執行 “半虛擬化” , Windows 只能執行 “全虛擬化” 囉。你想要使用 “半暈倒” 系統嗎? 得等MS 公司自己改哦, 嗯...等花兒謝了吧…半虛擬化代表:Xen
作業系統層虛擬化 OS-Virtualization
這是比較cool 的虛擬化作法。也就是,它只是在原作業系統上模擬出一個行程,所有的CPU/RAM/IO 等資源,全部都共用原生的Host OS,完全沒有模擬Hardware 的負擔,所以跟在原機上執行的效能,幾乎一樣,大約只差1-3%的效能。不過限制就比較嚴格,Host OS 與Guest OS 必須使用同一個核心,所以在Linux 下只能模擬Linux ,在Windows 下,只能模擬Windows 。在這樣的模擬技術下,Guest OS 的檔案資料,基本上,你在Host OS 下可以完全看到,他只是Host OS 下的一個子目錄。
代表軟體:OpenVZ
這3種常見的虛擬化技術,效能排序為 OS > Para > Full,如果可以的話,使用OS-Virtualization 是最優的,再來是使用 Para-Virtualization ,如果真的沒有辦法,才選擇 Full-Virtualization。以上是小瑞對虛擬化技術的心得整理。至於實作的部份,找時間再貼上吧。
分類:MIS易筋經,虛擬化
標籤:Full Virtualization, Open VZ, OS Virtualization, Para Virtualization, Virtual PC, VM Ware, Xen, 虛擬化
其实虚拟技术不错,普通用户可以拿来学习系统,例如用virtualbox学习安装winxp
這是一個很不錯的使用方式, 讓普通用戶, 用來學習系統, 反正測試壞了, 就重新蓋掉, 也不會影響到原系統; 目前就小瑞本身較常用的方式, 除了測試自己不會的技術外, 也會把這樣的技術部署至, 一些公司使用的Server 系統, 主要好處就是, 備援及回覆的機制比較簡單! ^_^
[…] 之前講了虛擬化技術的整理,這一篇來用Xen 的Full Virtualization,建立一個全虛擬化的作業系統。底層用FC8 ,虛機使用Oracle Enterprise R4 U7 i386 ,把建立的過程記錄一下。 登入 vm01 VNC Server […]
[…] 虛擬化技術的整理 及 使用Xen建立完整虛擬化系統 […]