◆李東興
作者:李東興,北京師范大學全球變化與地球系統科學研究院助理工程師,研究方向為虛擬化、高性能計算、大數據分析與處理(100875)。
虛擬化有狹義和廣義之分。狹義虛擬化指的是物理資源的抽象化,是單一物理資源的多個邏輯表示,或者多個物理資源的單一邏輯表示。廣義虛擬化是一種簡化管理、優化資源的解決方案,計算機元件在虛擬的基礎上而不是真實的基礎上運行[1]。虛擬化技術即實現虛擬化的方法,它具有屏蔽同一類物理設備的專有特性、將相同特性的物理設備進行資源整合、將整合的資源虛擬出多個類似的虛擬設備和對虛擬設備進行統一管理等多種功能。根據不同的分類標準,虛擬化技術有不同的分類方法。
根據實現技術位于系統的不同層次,虛擬化技術分為軟件虛擬化技術和硬件虛擬化技術 傳統PC由操作系統控制、管理和分配軟硬件資源,存在資源利用率低、計算機的存儲和IO系統長期處于“閑”的狀態等缺陷[2]。軟件虛擬化技術通過第三方軟件把計算機虛擬為多個獨立的虛擬機,解決上述缺陷,提高資源利用率。常用的虛擬化軟件有VMW的VMware、VMS的Workstation、Oracle的VirtualBox和 Microsoft的 Virtual PC。
硬件虛擬化,首先底層硬件必須支持虛擬化技術,另外,作為該結構核心的VMM(虛擬機監視器,為系統管理程序,可以理解為平臺硬件和操作系統的抽象)不僅要直接控制管理硬件資源,還需要為虛擬機提供虛擬環境。常用的VMM有 Ken、KVM。
根據虛擬化技術的實現方法不同,虛擬化可分為完全虛擬化、并行虛擬化和操作系統虛擬化 完全虛擬化又稱為原始虛擬化,其原理如表1所示。VMM(Hypervisor)在裸機硬件和虛擬機操作系統之間,負責裸機硬件資源的分配與管理,所以,底層裸機硬件并不是操作系統所擁有,而是操作系統通過VMM共享。
表1 完全虛擬化示意表
并行虛擬化又稱超虛擬化,其原理如表2所示。與完全虛擬化類似,也使用VMM實現對底層硬件的共享訪問,并且將與虛擬化有關的程序集成到操作系統中。
表2 并行虛擬化示意表
操作系統虛擬化,其原理如表3所示。所有的虛擬機必須運行同一種操作系統,沒有VMM,在物理機操作系統之上實現服務器的虛擬化,提供一種更瘦的虛擬架構體系[3]。
表3 操作系統虛擬化示意表
根據虛擬化技術的具體應用和解決方案不同,虛擬化技術可以分為服務器虛擬化、存儲虛擬化、應用虛擬化、桌面虛擬化、網絡虛擬化 服務器虛擬化又稱為基于主機的虛擬化,是將服務器的CPU、內存、IO設備等物理資源轉化為多個虛擬的邏輯資源。具有同一接口標準的邏輯資源被組裝成多個完全獨立的服務器。
存儲虛擬化又稱為存儲控制器的虛擬化,在物理存儲系統和服務器之間增加一個虛擬層——控制器,它管理和控制所有存儲并對服務器提供存儲服務。
應用虛擬化將應用程序與底層操作系統邏輯隔離,為應用程序提供了一個虛擬的運行環境,從而實現應用程序(或軟件)即服務[4]。通過應用虛擬化技術,可以增強軟件的可移植性,有利于保障底層操作系統的安全,提高應用程序的兼容性。
桌面虛擬化是指將計算機的桌面進行虛擬化,以達到桌面使用的安全性和靈活性。桌面虛擬化通過任何設備,在任何地點、任何時間訪問在網絡上的屬于個人的桌面系統。
不同的虛擬化技術適用于不同的領域、應用環境和用戶需求。如:基于軟件朝著開源的方向發展,從成本開銷和應用上看,軟件虛擬化較硬件虛擬化的開銷更低,更傾向于普通用戶用于軟件測試;從數據中心的安全和發展的角度看,應用更多的是硬件虛擬化,所以軟件虛擬化越來越受到普通用戶的青睞,硬件虛擬化更適用于大型數據中心。
不同類型的虛擬化技術也有不同的實現方法。如服務器虛擬化方法有完全虛擬化、并行虛擬化和操作系統虛擬化;服務器硬件虛擬化技術包括CPU虛擬化、內存虛擬化、存儲虛擬化、網絡虛擬化等。
服務器虛擬化 服務器虛擬化將物理主機的CPU、內存、IO設備等物理資源轉化為可以統一管理的邏輯資源,充分發揮服務器硬件的性能,提升硬件資源的利用率。虛擬化的邏輯資源必須具有同一接口標準才能成為一臺虛擬機,邏輯資源實際上不存在,沒有實際的意義;服務器虛擬化的目的是實現資源共享,提高物理資源整體利用率,使資源使用最大化,如表4所示。
表4 物理體系結構(上表)和虛擬體系結構(下表)對比
應用軟件 應用軟件 …… 應用軟件操作系統1 操作系統2 操作系統3虛擬機軟件主機操作系統裸機
服務器虛擬化包括兩種形式:一對多,如以上定義所述,將單臺物理服務器虛擬出多臺相互獨立的虛擬服務器;多對一,將多臺物理服務器資源進行整合,提供資源動態調配,即使用多臺物理主機虛擬成一臺超級計算機,如云計算平臺和高性能計算集群。第一種主要用于普通用戶測試和學習,第二種主要用于科學計算和云服務,需要專業人士實現和維護。
第一種形式的服務器虛擬化主要有四個特點:同時性,在單一物理服務器上可以同時運行多個虛擬機,即可以同時運行多個操作系統;獨立性,在同一服務器上的虛擬機之間相互隔離、相互獨立、互不干擾,并且獨立于物理硬件;封裝性,整個虛擬機以文件形式保存,可以通過移動和復制文件的方式實現服務器的虛擬化;跨平臺性,無需修改任何配置文件就可在任何服務器上運行。
第二種服務器虛擬化具有以下特點:各服務器型號和性能相同;各服務器操作系統相同;封裝良好,任意一臺服務器出現故障不影響整體使用;高速互聯網絡。
存儲虛擬化 存儲虛擬化一般在存儲設備(主盤柜)的控制器中實現,可以整合IBM、EMC、HP、NetAPP等多臺不同品牌、型號、類型、接口的存儲設備,形成一個統一的存儲池,從而提高存儲容量、性能。在虛擬化層通過利用多路徑軟件、瘦供給、快照、卷拷貝、卷鏡像、遠程鏡像、數據自動分層等存儲特性實現統一管理,當存儲池發生變化時,主機應用不會被迫中斷。
存儲虛擬化通過控制器將存儲模塊(包括硬盤和raid卡)統一管理,主機操作系統操作的是一塊硬盤(物理卷組),然后可以根據用戶需求劃分不同的邏輯卷。用戶只是管理自己的邏輯數據,不必關心數據實際的存儲位置。服務器不直接與存儲硬件打交道,而與控制器交流,存儲硬件的增減、調換、分拆、合并對服務器完全透明。
存儲虛擬化的優勢為:隱藏了復雜程度,特別對使用者而言,不必了解其內部實現;允許將現有的功能集成使用、統一管理,降低了管理人員的難度;擺脫了物理容量的局限,擴大了邏輯容量;減少硬盤碎片的產生,提高硬盤容量的使用率。磁盤陣列存儲是目前虛擬化技術最成熟的產品和應用。
桌面虛擬化 桌面虛擬化技術利用虛擬化技術將終端用戶同底層操作系統和應用程序分開,終端用戶可獨立連接多個獨立操作系統和應用程序的鏡像,而操作系統和應用軟件都集中在數據中心,實質上是將用戶使用與系統管理進行了有效的分離。
桌面虛擬化的優點:靈活的訪問和使用;廣泛與簡化的終端設備支持;終端設備采購、維護成本大大降低;集中管理、統一配置;使用安全;降低耗電、節能減排。常用的桌面虛擬化軟件有遠程桌面協議(RDP)、Hyper-V、View(ICA)、Xen。另外,TeamViewer和VNC應用也比較廣泛。
網絡虛擬化 網絡虛擬化在日常工作中最典型的應用有虛擬網卡、VPN和VLAN。
虛擬網卡是硬件虛擬化的一部分。可以把單一物理網卡根據用戶的應用需求抽象為不同的邏輯網卡,即虛擬IP;VPN,虛擬專用網,為節省成本,不同用戶通過VPN主機進行加密通訊接入互聯網;VLAN,虛擬局域網,通過三層協議交換機將不同網段的設備或用戶組織起來,他們之間的通信好像在同一網段中一樣。服務器分散部署而導致的利用率低下的弊端,提高服務器的可靠性和利用率。
2)簡化資源使用的復雜度,更快、更方便部署系統。虛擬化技術的實現是一項復雜的工程,運用虛擬化技術的目的是使用者更快更方便地完成自己的部署,滿足自我需求,簡化實現的流程和過程。虛擬化技術良好的封裝性使得用戶不必了解內部實現,從而實現用戶的需求。就如操作系統的發展一樣,虛擬化技術的出現和發展會使應用在多個層面朝著傻瓜模式發展。
3)簡化資源管理,提供自動的資源分配、回收方式。利用虛擬化技術,可以在一臺機器上模擬出許多不同的操作系統,建立一個高效、方便的測試環境,實現集中式管理,簡化操作流程,系統維護簡便快捷。
4)降低開銷和管理成本。虛擬化技術的實施,最大程度地降低基礎架構建設的成本和開銷。服務器的整合,不僅提高了硬件利用率,還減少了硬件需求,即硬件數量的減少。服務器數量的減少,數據中心的占用面積、機架空間以及電源、制冷、電纜、存儲和網絡組件也相應減少,專業人員的設備管理成本和安全風險也必然降低。
虛擬化技術在提高資源利用率和給用戶提供便利的同時,也凸顯出很多弊端
1)降低物理設備的使用壽命,對基礎設施的建設提出嚴峻的考驗。據統計,利用虛擬化技術可以使物理資源的使用率提高到80%,但同時帶來的是物理設備的使用壽命降低30%,宕機率達到51%,如圖1所示。
2)增加物理設備更新頻率和維護成本。任何事物都有兩面性,虛擬化技術在提高設備使用率的同時,使用壽命縮短,從長期看,設備的維護成本和開銷也必然提高。
3)增大服務器的使用風險。雖然虛擬化技術提供了安全機制,但安全不是絕對的。一臺服務器上出現重大的硬件故障只會影響這臺服務器上的服務,但該服務器在運行10臺虛擬服務器時,面臨的風險就大得多,可能導致所有
虛擬化技術在十幾年的發展過程中呈現了若干優勢
1)整合資源,提高資源利用率。隨著信息化水平的不斷提高和業務的增長,必然需要更多的服務器支持新的應用。這種解決方式的弊端在于造成資源的浪費,增加了網絡成本。而虛擬化技術的應用,可以有效整合分散的物理資源,提供統一的管理和服務,避免因虛擬機全部崩潰;多個獨立存儲(物理卷)要比存儲虛擬化組成的物理卷組出現問題帶來的風險小得多。
4)數據遷移帶來的困難。從表面上看,從物理環境遷移到虛擬環境與物理服務器遷移到物理服務器沒什么不同。然而,數據遷移工作更多地依靠以太網實現,網絡傳輸速度使數據遷移不僅費時費錢,更容易造成數據丟失。
數據中心(IDC)主要提供VPS服務、云存儲和高性能計算三種業務。筆者結合自己管理的北京師范大學某高性能計算中心說明虛擬化技術在其中的應用。該高性能計算機由計算節點、存儲節點和計算網絡三部分組成,主要用于科學計算。
服務器虛擬化的應用 當前世界上用于科學計算的超級計算機80%以上都是計算機集群,這種分布式高性能計算機集群是由功能和特性相同的普通服務器虛擬化成一臺超級計算機,用于滿足用戶的模式運算。這種服務器虛擬化方式是上文提到的第二種服務器虛擬化技術。當前性能較好的服務器其資源有限,特別是CPU的性能和總核數,不能滿足用戶的計算需求。以IBM最新的IBM System x3850 X6產品為例,該服務器CPU為英特爾至強E7-4800/8800 v2,CPU主頻高達3.2 GHz,有4個處理器,60個內核,最大支持6 TB內存。在獨立服務器中,其計算性能出色,內存容量較大,浮點計算能力理論值達到1.5 TFLOPS。而該高性能計算平臺計算集群由256個低端的Intel(R)Xeon(R) CPU E5540,主頻為2.53 GHz,共1024核組成,其計算能力達到10 TFLOPS。該平臺單臺服務器(刀片)其計算性能遠低于IBM System x3850 X6,但總計算性能高其一個數量級,而且資源的維護成本要低于IBM System x3850 X6。對于客戶(使用者)來講,不必了解集群的內部實現,只需要申請滿足自己需要的資源(核數)即可。
另外,在該高性能計算中心托管的其他幾十臺獨立運行的服務器有80%采用上文提到的第一種服務器虛擬化技術,作為技術測試和低數據量的計算。數據中心的設備使用壽命最高為10年,隨著使用周期的延長,設備的物理磨損程度的提高,管理和維護開銷不斷增加,因此在設備的使用壽命周期內最大化的利用服務器資源的性能也可以節約最終的開銷。
存儲虛擬化的應用 數據存儲系統是該高性能計算機的重要組成部分。磁盤陣列存儲是目前虛擬化技術最成熟的產品和應用。這種設備采用虛擬化技術,把若干相同特性的物理硬盤通過磁盤陣列技術變成一塊raid盤,該raid盤可以根據用戶需求劃分成不同的邏輯卷供不同的主機使用,既能實現硬盤整合,提高容量,減少硬盤碎片,對存儲空間和連接主機進行集中管理,更能滿足多用戶多任務的需求。
數據存儲是數據中心運營的重要功能,而磁盤陣列是存儲虛擬化技術在數據中心的基本應用,目前所有品牌的存儲都支持磁盤陣列,磁盤陣列的類型也從raid0發展到raid6。除了磁盤陣列技術,存儲虛擬化在高性能計算中心還有兩方面的應用。一是把多個存儲盤柜虛擬整合為一個邏輯盤柜。眾所周知,一個盤柜一般由12或16塊硬盤組成,每塊硬盤的容量目前最大為4 TB,即單個盤柜的容量最大為64 TB,遠遠達不到數據中心建設的規模。一般而言,一個存儲系統通常由主盤柜和擴展柜組成,在該中心的存儲通常通過Mapper技術虛擬化為一個物理盤組。二是在虛擬化盤柜的技術上,采用Google File System升級物理盤柜的文件系統,提高其并行讀寫能力。
網絡虛擬化的應用 網絡虛擬化技術被廣泛應用于數據中心的網絡建設中。該高性能計算平臺網絡主要包括管理網絡和計算網絡。管理網絡通過普通千兆因特網互聯實現,計算網絡是計算平臺達到高性能的重要基礎設施,是通過單向帶寬為40 Gb的infiniBand交換機互聯實現的,所以物理設備除了交換機外,計算節點(刀片服務器)必須支持上述網卡。除了計算網絡采用虛擬化技術外,VLAN和VPN也應用于該平臺的網絡建設,高性能計算平臺的大量數據具有保密性,高風險是其顯著特征之一,網絡安全是平臺管理和監控的重要任務之一。比如2014年在比特幣等虛擬貨幣盛行市場的時候,很多黑客利用高性能計算平臺的眾核優勢來盈利,如該性能計算平臺被黑客用來挖礦,在安全監控的保障下,問題得到發現,及時解決。當時,筆者切斷所有用戶的公網訪問權限,用戶必須通過校園網VPN服務和校內賬號認證才能順利申請資源和提交任務。
此外,桌面虛擬化技術也被應用于該高性能計算平臺。筆者利用桌面虛擬化的優勢,使用KVM來解決管理網絡不能正常訪問狀況的問題查詢和歸因,這樣既方便管理操作,又充分利用了其降低能耗的特點,緩解中心運營中高能耗的壓力。由此可見,虛擬化技術構成了該分布式高性能集群的基礎架構,保證其順利運轉。
隨著計算機技術的飛速發展,無線互聯網絡和傳感器等物聯網技術的日益成熟,虛擬化技術將被更多地應用于手機業務,對提升移動終端的效率和安全性,降低移動終端的成本起著極大的推動作用。
[1]王曉梅,馬芳.計算機虛擬化技術應用分析[J].信息與電腦:理論版,2012(5):80.
[2]沐士光,師秀鳳.虛擬化技術探討[J].中小企業管理與科技,2009(19):275-276.
[3]宋曉光,楊哂哂,呂淵鳴.虛擬化技術在數字化校園建設中的應用[J].中國教育網絡,2011(2):76-78.
[4]付平武.應用虛擬化技術應用與研究[J].電腦知識與技術,2013(20):51.