最近網絡上有一篇熱帖-----《虛擬化,一個時代的落幕》,大有“蒼天已死,黃天當立,歲在甲子,天下大吉”的意思。細細算來,從上世紀60年代,IBM劃時代的推出基于大型機的虛擬化,到今天也差不多一個甲子了,是不是真的虛擬化已死,黃天當立?讓我們嘗試著透過層層迷霧,揭開虛擬化的謊言與真相。
謊言1:數據中心全面上云,虛擬化靠邊站
要搞清楚這個問題,先要回顧一下虛擬化的技術內涵和發展歷程。通常,我們說虛擬化,包含三個部分,即計算虛擬化、存儲虛擬化和網絡虛擬化。其中計算虛擬化發展的歷史最長,可以追溯到1959年,牛津大學的計算機教授,克里斯·托弗在國際信息處理大會上發表了一篇名為《大型高速計算機中的時間共享》(Time Sharing in Large Fast Computer)的學術報告,他在文中首次提出了 “虛擬化” 的基本概念,這篇文章也常被認為是云技術的鼻祖。存儲虛擬化出現的時間較晚,1987 年,加州大學伯克利分校提出的RAID(Redundant Array of Independent Disk)技術,將多塊硬盤通過硬件或軟件方式結合成虛擬的單塊大容量的磁盤來使用,可以認為是存儲虛擬化的起源。網絡虛擬化則完全是為了應對云計算的快速發展,當集群規模達到一定程度后,傳統的網絡技術,不夠靈活,管理復雜,SDN(Software Defined Network)即應運而生。由此可以看到,自始至終,虛擬化都是云的基礎性技術,沒有好的虛擬化就沒有好的云基礎設施。
如果說虛擬化數據中心和云有所區別的話?首先是業務視角不同,虛擬化更多是從管理員視角提供資源管理和運維能力,由管理員進行業務發放,強調集中管控;云則是從租戶視角來進行資源申請和服務部署,強調分權管理,互不干擾。其次是商業模式不同,虛擬化服務于內部運營,通過統籌資源,自動運維,來降低企業IT系統的運行成本;云則是服務于海量的、彈性的外部租戶,通過資源共享、彈性伸縮、計量計費來實現IT資源的商業變現。最后是解決的客戶痛點不同,虛擬化的本質是提升IT資源的使用效率,提供的是Iaas層的能力;云則更多關注客戶在數字化轉型中的困境,通過引入大數據、人工智能、區塊鏈等新技術,以Paas和Saas服務的方式提供給客戶。
而且我們也看到隨著政企數字化轉型的深入,對于虛擬化提供商也提出了新的要求,包括租戶管理、服務化改造、多云管理等,頭部的廠商如VMware、Nutanix也紛紛推出了支持多租服務化和混合云的解決方案。對于政企客戶,可以選擇先建一個虛擬化資源池,根據業務發展逐步迭加能力,是一種做加法的建設模式;也可以選擇全面上云,再根據自己的需求,裁剪不需要的能力,是一種做減法的建設模式。本質上虛擬化和云都是IT基礎設施一種建設模式,各有場景,將長期并存,共同服務于政企數字化轉型。
真相1:虛擬化技術是云的基石,虛擬化數據中心和云各有場景,將長期并存。
虛擬化技術發展歷程
謊言2:虛擬化是落后技術,將為容器所替代
虛擬化,或者說是計算虛擬化,在x86時代得到了長足的發展。最早出現的是完全虛擬化,即在HostOS的基礎上,迭加一個HyperVisor層,以純軟件的VMM模擬完整的底層硬件,包括CPU、內存、時鐘、外設等,這樣GuestOS及之上的應用,不需要做任何適配就可以在虛擬機上運行。帶來的問題是,所有指令都需要軟件轉換,VMM 的設計會比較復雜,系統整體性能受到影響。
為了解決性能問題,出現了半虛擬化,半虛擬化是一種通過修改 Guest OS 部分訪問特權狀態的代碼,以便直接與 VMM 交互的技術,部分硬件接口以軟件的形式提供給 Guest OS。這樣做可以提升虛機性能,帶來的問題是GuestOS必須進行適配,甚至運行在虛擬機中的應用程序也需要修改,不能直接運行于HostOS之上。
因此,硬件輔助虛擬化技術得到發展,這個技術方向是由芯片廠商大力倡導的,Intel-VT(Intel Virtualization Technology)和 AMD-V 是目前 x86 平臺上可用的兩種硬件輔助虛擬化技術,華為的鯤鵬-V是基于ARM技術的硬件輔助虛擬化。硬件輔助虛擬化最大的優勢是由CPU來提供虛擬指令,不需要VMM來進行捕獲和轉換,可以極大提升虛擬化的性能,同時又能具有全虛擬化隔離硬件差異,GuestOS和應用無需適配的優勢,是虛擬化目前的主流。
但是,虛擬化仍然是GuestOS和HostOS兩層架構,比較重型,無法應對一些敏捷的、需要快速發布、快速部署的業務,尤其是互聯網業務,因此操作系統虛擬化,也就是容器技術,應運而生。操作系統虛擬化是一種在服務器操作系統中使用的、沒有 VMM 層的輕量級虛擬化技術,內核通過創建多個虛擬的操作系統實例(內核和庫)來隔離不同的進程(容器),不同實例中的進程完全不了解對方的存在。
容器技術,也就是操作系統虛擬化,打掉了GuestOS,整個系統棧更扁平,因此也更加輕量,效率更高。因此有人提出,是不是虛擬化應當完全走向容器?
這個觀點有失絕對,首先,容器技術出現的大背景是互聯網業務,需要快速迭代,快速發布,是典型的敏態業務,但是大量的傳統業務,更關注運行時的穩定性、可靠性、安全性,屬于穩態業務,虛擬化更有優勢。其次,目前大部分業務沒有做容器化改造,已經進行容器化改造的很多傳統業務,除了架構更加復雜,也沒有看到太多客戶價值,在一定的時期內,沒有必要改弦更張。從虛擬化到容器有較高的學習成本,大部分企業的IT人員,首要的是保證企業業務的穩定運行,根據企業業務的發展和場景的需要,選擇傳統虛擬化或者容器技術,而且現在主流的技術提供商,如VMware、OpenShift都提供了虛機、容器雙棧的技術,可以讓客戶自由的選擇,完全沒有必要技術焦慮。
真相2:容器也是虛擬化技術的一個門類,兩者的應用場景不同,沒有必要技術焦慮。
主流計算虛擬化技術架構對比
謊言3:虛擬化只適合通用應用,無法支持關鍵應用
這個誤讀來自于對虛擬化的刻板印象——虛擬化就是需要指令轉化,資源消耗大,性能和可靠性存在隱患,不能支持關鍵應用。誠然,過去的虛擬化較多的承載一些桌面云、辦公OA系統、企業網站等相對通用,對性能和穩定要求相對較低的應用。但是隨著虛擬化技術的發展,如前文所述的硬件輔助虛擬化,解決了從應用到CPU之間的性能損耗;Intel和華為主導的NoF+標準協議,通過SPDK實現跨層直通,進一步解決了應用到外部存儲之間的數據訪問性能,使得虛擬化能夠和高可靠、高性能的外部存儲結合起來,提供確定性的SLA,越來越多關鍵應用如企業的設計平臺、證券的交易系統、醫院的HIS系統開始部署在虛擬機之上。
虛擬化的優勢是資源利用率高,能夠方便的進行共享,又著重改進了性能和可靠性,進一步拓展了虛擬化的應用場景,體現出了旺盛的生命力。
真相3:虛擬化改進了性能和可靠性,在支持好通用應用的基礎上,逐步走向關鍵應用。
謊言4:虛擬化是純軟件,和硬件沒有關系。
前文已經提到過硬件輔助虛擬化,足夠說明虛擬化不止是軟件,需要關注軟件與硬件的協同和互補。我們還應當看到超融合,這是虛擬化的一個十分重要的應用場景,通過虛擬化軟件定義超融硬件,以軟硬一體的方式來進行一站式部署,逐步成為虛擬化的主流部署方式。
當前,超融合有一個明顯的趨勢,就是走向專用的超融合硬件。Cisco的HyperFLex,就定義了四種超融合節點,包括面向單純計算的UCS系列硬件,和面向存算均衡的混合節點,以及面向高性能場景的全閃存+NVMe的節點,以及面向邊緣的的節點。HPE的Nimble和EMC VxRail也定義了一系列的超融合專屬硬件。值得注意的還有DPU卡,作為近期的熱點——DPU讓超融合通過可組合的方式發揮專用硬件的優勢。DPU是數據處理單元,其目標是將CPU從單調且重復的數據處理中解放出來,他是超融合架構的數據中樞:DPU與盤框的組合,將存儲虛擬化的能力卸載到DPU,可實現完全無CPU的存儲節點;DPU與CPU結合,卸載計算虛擬化的能力,可以實現完全無盤的計算節點;DPU和DPU之間可以通過卸載網絡虛擬化實現進行數據互通和流動,讓每顆CPU都能像訪問本地盤一樣,訪問所需要的數據,消除了原有的跨節點數據瓶頸。VMware的Monterey項目一直致力于孵化DPU技術,在最近的VxRail8.0中,已經支持將EXSi自動部署于DPU,實現對虛擬化層的卸載,為整個超融合系統提供更高的性能。
因此,我們談到虛擬化技術,不應該只想到軟件,還要關注虛擬化軟件與硬件的協同和互補,關注全棧的基礎設施能力,虛擬化本質是數據中心軟件和硬件的粘合劑。
真相4:虛擬化不止軟件,還要關注硬件,關注全棧能力,虛擬化是數據中心軟件和硬件的粘合劑。
基于DPU的超融合基礎設施
謊言5:虛擬化只能支持小規模數據中心,無法應用于中大型數據中心
的確,對于小規模數據中心,虛擬化極輕極簡,是主流選擇,但是并不意味著虛擬化不能應用于大型數據中心。
從技術架構上看,數據中心虛擬化合包含四個部分,即計算虛擬化、存儲虛擬化、網絡虛擬化和運維管理平臺。這其中計算虛擬化和存儲虛擬化支持的規模取決與廠商的軟件能力,目前主流廠商使用分布式架構提供上千節點的支持能力并不鮮見。VMware的vSAN之所以限定在64節點,更多的是一種商業考慮而非技術約束。網絡虛擬化即SDN,則更是為大型數據中心所生,一般中小型數據中心反而很難應用SDN的能力。
唯一的瓶頸在于運維管理平臺,對于大型數據中心除了普通的設備管理和日常運維,更重要的是服務提供,這部分能力隨著運維管理平臺發展成為兼顧管理員視角和租戶視角的私有云管平臺也能得到解決。因此,虛擬化支持中大型數據中心不是一個技術問題。
事實上,在中大型數據中心中已經分布著為數不少的虛擬化資源池,如桌面云資源池、辦公資源池、視頻處理資源池,這些資源池在以前被認為是一個一個的小煙囪,必欲用云統一收編為后快,但是隨著多云技術的出現,隨著越來越多企業意識到,使用同一朵云,必然會帶來設備商綁定、同質化競爭、數據權屬等一系列問題,開始考慮引入多云——既有自有云,又有公有云,還有廣泛的虛擬化資源池,使用多云管理平臺統一管理起來,掌握IT基礎設施的主動權。從多云的視角看,虛擬化資源池就是數據中心的一部分,客戶可以根據業務的要求,廠商的能力,商務的情況,自由的進行選擇和組合。
真相5:虛擬化將長期在中大型數據中心中占有一席之地。
基于多云架構的企業數據中心
關于虛擬化,有太多誤讀和誤解,但是回歸技術本身,我們會發現他仍然是一個快速發展和產生突破的技術方向;回歸業務邏輯,我們會發現他仍然是廣大客戶的真實訴求和務實選擇。不識廬山真面目,只緣身在此山中。事實是虛擬化已經無處不在,既是公有云的堅實基礎,又是廣大企業IT客戶的可靠拍檔,以至于大家忽略了他的存在,忽略了他才是數據中心的根技術,忽略了他一直扮演著數據中心軟硬件之間的粘合劑,忽略了他才是企業數字化轉型需要夯實的第一公里,需要我們長期的研究、積累和發展。