虛擬化技術伴隨著云計算服務產業的發展已經日趨成熟了,VMware, Microsoft、Red Hat和Citrix都已經在各自的虛擬化層中實現了對CPU和內存的虛擬化。VMware則更進一步,提出了軟件定義數據中心的理念,旨在將虛擬化技術延伸到網絡和存儲。
虛擬化這些資源的意義何在呢?對用戶而言有什么益處?相對于虛擬化CPU和內存而言,虛擬化網絡和存儲又有什么特殊的價值?這絕對值得我們認真思考。
CPU虛擬化提升效率
如果把CPU虛擬化定義為抽象物理CPU以方便工作負載使用計算資源,則VMware并不是第一個實現CPU虛擬化的廠商,現代操作系統早就做到了。負載包括線程和進程,操作系統負責將這些線程和進程調度到CPU中運行。
VMware通過CPU虛擬化技術解決難題的是如何在一個操作系統實例中運行多個應用。實現這一任務的困難之處在于每一個應用都與操作系統之間有著密切的依賴關系。一個應用通常只能運行于特定版本的操作系統和中間件之上。這就是Windows用戶常常提到的“DLL地獄”。
因此,大多數用戶只能在一個Windows操作系統實例上運行一種應用,操作系統實例獨占一臺物理服務器。這種狀況會導致物理服務器的CPU資源被極大地浪費。能夠使多個操作系統實例同時運行在一臺物理服務器之上,是VMware所提供的CPU虛擬化技術的價值所在。通過整合服務器充分利用CPU資源,可以給用戶帶來極大的收益。
服務器整合的益處能夠得以實現的前提是工作負載并不需要知曉它們正在共享CPU,虛擬化層必須具備這種能力。這是CPU虛擬化與其它虛擬化形式所不同的地方。
內存虛擬化保駕護航
VMware的CPU虛擬化通過時間片的方式實現CPU的共享。而通過虛擬化技術來共享內存就沒這么簡單了。假設一個應用程序需要2GB物理內存,即使分配2GB虛擬內存給它,后面對應的物理內存也必須存在。否則應用程序的性能將變得很差。
VMware通過透明頁共享技術可以實現一定程度上的內存共享。虛擬化層能夠識別出各操作系統只讀內存區域(代碼頁)中的相同部分,這些頁面在內存中只保留一個副本。Windows操作系統自身所使用的內存大多為代碼頁,因此在運行有N個Windows實例的物理服務器上vSphere只保留一個Windows操作系統副本。這就是為什么在VDI的環境中你只需要為VDI映像分配比物理桌面少得多的內存。
CPU時間分片是虛擬化層能夠實現的,內存卻不能按時間分片。多個應用可以共用一個CPU,但多個應用卻不能同時使用一段內存區域。CPU的速度在持續增長,虛擬機的密度主要受限于服務器上物理內存的數量。
網絡虛擬化軟硬轉移
對于未來虛擬化技術,我們所面臨的重要問題之一就是網絡虛擬化如何工作,能給我們帶來什么樣的收益?這個問題的答案差不多是這樣:網絡虛擬化將虛擬網絡的配置從硬件交換機移到了虛擬化平臺。使虛擬化管理員可以更容易地創建和變更虛擬網絡。網絡配置也可以很容易地隨著虛擬機移動。
云管理軟件可以基于服務目錄自動創建工作負載所需要的虛擬網絡。這與虛擬化層可以很容易地配置虛擬CPU和虛擬內存所帶來的好處是相似的。但是在節省成本,提高投資回報方面,它并不像服務器整合所帶來的收益那么明顯。
但是網絡虛擬化也有CPU虛擬化和內存虛擬化所不具備的獨到之處。它將一部分通過網絡硬件實現的工作轉移給了虛擬網絡軟件。VMware很早就已經在軟件中實現了虛擬交換機。微軟的Hyper-V中也有類似的東西。運行在同一主機上的兩臺虛擬機要相互通訊,網絡流量不需要通過物理網卡傳送到物理交換機。如果你把服務于某個應用的WEB服務器、應用服務器和數據庫服務器放在同一臺主機上。
只有數據庫服務器的流量會流經網卡(使用NAS)或HBA卡(使用光纖存儲),因此網絡虛擬化可以減少物理服務器所需網口的數量。這是不是可以稱之為“網絡整合”呢?減少三分之一到一半的網線(以及TOR交換機的端口)也算是一大成就了。
如此一來,用戶將不再需要那些昂貴且智能的交換機。所有的智能都移到了軟件之中,誰還需要智能交換機呢?你只需要一臺能夠轉發數據包的傻瓜交換機就可以了。網絡虛擬化技術將改變交換機產業。這兩點可以解釋VMware收購Nicira時Cisco所做出的反映。
存儲虛擬化小路包抄
與CPU的虛擬化不同,存儲虛擬化并不是VMware或Microsoft的主要投資目標。早就有多種抽象物理存儲的方法在應用了,LUN就是一種邏輯抽象,存儲管理員負責將它映射到物理存儲。一些創新型的企業如Tintri和Virsto也是通過提供獨特的存儲抽象技術來創造價值的。
VMware現在有一款名為vSphere Storage Appliance的產品,可以將最多三臺物理服務器的本地硬盤存儲整合成池,這個虛擬存儲池可以通過一個訪問點進行訪問,提供冗余能力和高可用服務。如果VMware將vSphere Storage Appliance擴展為32節點的服務器集群會如何?為32節點集群提供存儲虛擬化服務,如果服務器內部有足夠多的磁盤來容納數據。
而且虛擬存儲陣列能夠滿足應用對存儲性能的要求,你可能就不需要另外購買NAS或者光纖存儲了。
與內存類似,這種方式的虛擬存儲并不能實現多個負載共享同一塊存儲區域。如果一個負載需要2TB網絡存儲,也就意味著需要占用2TB的本地存儲池。所以不會像CPU虛擬化和服務器虛擬化一樣有明顯的整合收益。
如果這些本地存儲池能夠取代網絡和光纖存儲陣列,則會帶來與網絡虛擬化類似的收益。服務器本地的直連存儲要比網絡上的共享存儲便宜得多。如果這一技術能在VMware客戶中得以大量應用,在存儲方面的成本節省將是非常顯著的。
編輯的話
虛擬化技術分為很多種,要想讓虛擬化技術能夠真正的幫助企業網絡提高辦公效率,就需要將上述的幾項有機結合起來,載以云計算和大數據的強大后盾,相輔相成,這樣一來,企業在發展云計算方面也會容易得多,效率提升的也就更明顯。