當你和 FB 一樣每天要處理 300 TB 的資料,你就會知道虛擬化技術的重要!

你是否發現,雖然公司每年都會編列資訊設備採購預算,但是企業系統的運作總是不順,而且回應時間愈來愈久?

你知道,Google 的 MapReduce 每個月所要處理的資料量超過 400 PB(1 PB = 1024 TB),Facebook 註冊用戶超過 10 億,每天產生 300 TB 以上的資料量?

2011 年全球數位資料的使用量約為 1.8 ZB(1 ZB = 2 的 70 次方位元組)。依據 IDC(International Data Corporation)所做的研究報告預測,到 2020 年的總量將是現在的 44 倍,約為 35.2 ZB。

《編按》:電腦的最小單位為 Bit(位元),以下是所有數量單位:

1 Byte = 8 Bits 1 Kilobyte (KB) = 1024 Bytes
1 Megabyte (MB) = 1024 KB
1 Gigabyte (GB) = 1024 MB
1 Terabyte (TB) = 1024 GB
1 Petabyte (PB) = 1024 TB
1 Exabyte (EB) = 1024 PB
1 Zettabyte (ZB) = 1024 EB
1 Yottabyte (YB) = 1024 ZB

  • 虛擬化讓電腦分工合作,更有效率也能更節省成本

然而,在企業有限的資源下,處理資料的資訊軟硬體設備卻不可能無止境的擴充,加上有許多的伺服器並沒有充分發揮它本身所具備的能力,也就是有許多的運算能力被閒置了。

為了處理這些問題,虛擬化技術就產生了。

虛擬化技術起源於 60 年代, IBM 在當時開發了一套虛擬機監視器(Virtual Machine Monitor)的軟體,作為電腦硬體層上的一層軟體抽象層,它把電腦硬體虛擬分割成一個或多個虛擬機器,並提供多使用者可同時存取大型主機。

所以,虛擬化技術是一種透過組合或分割現有的計算機資源(如,CPU、記憶體與硬碟等),使這些資源能模擬成一個或多個操作環境,進而提供比現有資源更有效率與更節省成本的運算方式技術。

像雲端服務的層級 IaaS(Infrastructure as a Service,將主機、網路設備等利用租賃方式給用戶使用,用戶就不需要自己花錢購買硬體設備)就是透過虛擬化技術對硬體資源進行調適,以提高效能。

簡單來說,利用虛擬化技術,我就可以在自己的電腦上(作者目前使用的是微軟的 Windows 7 作業系統)再建立 Mac OS X、Linux 或其它不同作業統的虛擬機器。這除了可以善用電腦閒置的資源之外,還有另一個好處就是,例如,學校新導入學生成績查詢系統,這系統只支援使用 Linux 的用戶,可是我安裝的是 Windows,這時候就不需要重新安裝系統,只要透過虛擬化技術就可以解決這個問題。

但是,這多個虛擬機器如何協調彼此的工作,如何溝通?尤其在企業中有許多不同的系統由不同等級的硬體設備組成,它們又該如何分配工作才能避免資料的遺失?這種種的問題都是虛擬化技術與分散式計算(如,雲端計算、網格計算)所必須面對的問題。

虛擬化涵蓋了各種不同的技術,按抽象程度的不同可概分為下列幾個層次:

  • 硬體虛擬 化,可以把一台電腦當好幾台用

硬體虛擬化,是在硬體和作業系統之間加入虛擬層(Hypervisor,任務是為虛擬機器模擬出完整的硬體環境,以及分配硬體資源給虛擬機器)。

把硬體虛擬化就等於是一台伺服器被模擬成好幾台虛擬機器,如此,就可以在單一實體機器上同時執行多個作業系統,而彼此之間的資料和軟體不會互相干擾。 對企業而言,也不再需要因為每一部伺服器只能執行特定的工作負載,而準備許多無法充分使用的伺服器;也可以把工作負載整合到數量更少、更充分使用的電腦上。

  • 應用程式虛擬 化,可以避免 DLL Hell 問題

應用程式多會與其他的應用程式共用資源,因此很容易產生問題,例如,某一支應用程式,需要有特定版本的動態連結程式庫(Dynamic-Link Library,DLL)才能正常運作,而另一支應用程式卻可能需要同一個 DLL 的不同版本,此時就可能會出現 DLL Hell(指安裝某軟體後,因其覆蓋了系統上原有的同一個 DLL 檔,導致原有可執行的程式無法執行;但還原回原有的 DLL 檔之後,所新安裝的軟體就無法執行。

若覆蓋到系統所使用的重要 DLL 時可能讓系統容易當機,甚至無法正常啟動)的問題。為了避免發生這種問題,公司往往必須在安裝新應用程式前進行大規模測試,但卻耗費大量的時間與成本。

讓軟體在虛擬環境中執行,可以解決軟體不相容的問題。即使用者在不同的地方,也可以透過網路使用同一套軟體存取資料,還可以控管使用權限。

  • 儲存空間虛擬化,可以讓不同廠牌的設備一起運作並發揮最大效能

把不同廠牌,不同等級的儲存設備利用虛擬層加以整合,就可以將其視為一個完整的儲存空間,再把這些空間分配給有需求的伺服器。如此就可以在新添儲存設備時,仍能善用現有設備,而且也不需要非得購買相同廠牌與同樣等級的產品。

儲存空間虛擬化,可以帶來更有效率、更彈性的調配與應用,以提高資料中心的儲存利用率,進而降低儲存設備投資的費用,最大的好處是可以協助 IT 部門整合企業環境中所有的儲存資源。

虛擬化技術的起源很早,但直到最近幾年因為雲端計算與 Big Data 的發展使其備受重視。依據 IDC 針對虛擬化技術所做的研究報告指出,到了 2014 年,平均每台伺服器將虛擬出 8.5 台的虛擬機器,屆時 70% 的工作都會交由虛擬機器來處理。

(資料來源: Wikipedia,Microsoft 的 Windows 虛擬化:技術概觀;圖片來源:fdecomite, CC Licensed)