在過去的十年中,整個數據中心業界似乎已經接受了虛擬化。還有尚未被虛擬化征服的領域嗎?幾乎沒有了。鑒于虛擬化技術本身變化得非常快。因此想要找到傳統遺留應用程序所帶來的挑戰,支持和遷移到現代化應用的解決方案也就非常難。
在近期的新技術論壇上,Nimboxx公司的聯合創始人兼CTO David Cauthronn為我們回顧了虛擬化的歷史,及其如何影響了虛擬管理程序的商業化的現實。
虛擬機管理程序是一種商品——那么,我們該何去何從?
虛擬化的物理計算機是公共和私有云計算從臺式機到數據中心的骨干,使企業能夠優化硬件利用率,提高安全性,支持多租戶等等更多的功能特點。
早期的虛擬化方法植根于模擬的CPU,如基于PowerPC的x86 MAC電腦,使用戶能夠運行DOS和Windows.不僅需要模擬CPU,還需要模擬硬件環境的其余部分,包括圖形適配器,硬盤,網卡,內存和接口。
在20世紀90年代后期,VMware在虛擬化方面做出了一項重大突破,其發明的一種技術能夠讓大部分的代碼直接在CPU上執行,而無需轉換或模擬。
在VMware之前,兩款或更多的操作系統運行在同一臺硬件設備上會因為彼此之間相互爭奪資源和試圖執行特權指令而造成損壞。VMware能夠智能的攔截這些類型的指令,動態重寫了代碼并為重用和快速執行存儲了新的轉換方式。
總之,這些技術比以前的仿真模擬器運行快得多并且能夠幫助定義x86虛擬化——包括“虛擬機管理程序”的舊的主機的概念,這一構建的平臺是用來使IT部門能夠創建和運行虛擬機平臺。
關鍵的變化
多年來,VMware及其專利一直可以說是統治著整個虛擬化領域。在服務器端的裸機上運行,VMware的ESX成為領先的1型(或本地)管理程序。在客戶端,在一個現有的桌面臺式機操作系統內運行的VMware工作站也位列最高的“2型”(或托管)管理程序之間。
虛擬化不再是一款只是讓開發人員或跨平臺虛擬化軟件使用的技術了,其已然通過把服務器放入可替代的虛擬化容器,提高了數據中心的效率和可管理性,證明了自己是一款功能強大的工具。
在過去的幾年中,一些有趣的開源項目不斷涌現,包括Xen和QEMU(快速模擬器)。但這些開源項目無論是在運行速度方面還是靈活性方面都不及VMware,當然他們也為后來者證明了這是一條值得開拓的道路奠定了基礎。
2005年左右,AMD和英特爾創造了新的處理器擴展到了x86架構,提供硬件輔助以處理特權指令。其產品分別被AMD和英特爾稱為AMD-V和VT-x,這些擴展帶來了相當的改觀,最終為服務器虛擬化市場帶來了新的參與競爭者。不久之后,Xen利用這些新的擴展創建了硬件虛擬機(HVMs),其使用QEMU的設備仿真模擬與英特爾VT-x和AMD-V擴展對于硬件的援助,以支持像微軟Windows這樣的專有操作系統。
一家名為Qumranet的公司也推出包括Linux內核的虛擬化基礎設施——稱為基于Kernel的虛擬機(KVM)——并開始使用QEMU設施以托管虛擬機。甚至微軟最終也在2008年通過發布其Hyper-V進入了該市場。
一個新行業的問世
當虛擬化實質上成了“免費的”——或者至少可以不用付出昂貴的許可費時——新的使用案例便應運而生了。具體而言,亞馬遜開始使用Xen平臺,以出租他們的一些額外的計算能力給第三方的客戶。通過他們的API,他們開始了彈性云計算的革命,應用程序本身可以進行資源的自我配置,以適合其工作負載。
今天,開源虛擬機管理程序已經成熟,并且在云計算領域已經變得相當普遍。企業紛紛在VMware的協助下積極的開拓,尋找架構,使用KVM和Xen系統虛擬管理程序。這些努力的重點已不再是控制成本,而是為了更充分利用云計算的彈性,同時為這些開源的替代品建立起新的標準。
未來:高性能彈性基礎設施
隨著虛擬管理程序的日漸商品化,現如今的創新開始更加專注于私人/公共云的硬件架構和軟件系統周邊:存儲架構,軟件定義的網絡,智能化和自動的業務流程,應用程序API.
傳統的服務器應用程序,已經能夠被方便裝備到虛擬機也在慢慢地退休,讓位給彈性,自我定義的云應用程序,云計算才是計算的未來——雖然二者將同時經營相當長一段時間。
展望未來,企業IT部門會對于虛擬化技術的商品化所作出反應,可以分為如下幾種:
維持現狀:進行相關的變化改革是非常艱難的,而一些企業會感覺他們已經對部署多年的解決方案感到得心應手了。這意味著他們會繼續采用目前已經使用了20到25的存儲和管理架構。這也意味著他們將繼續支付管理程序的許可證費用,被鎖定在虛擬化平臺設計的遺留應用程序,缺乏一個路徑以支持企業內部的彈性云應用。
公共云:采用公共云可以幫助企業免除自行管理基礎設施的負擔。然而,公有云可能不是運行需要專用的資源和增強安全性傳統的服務器應用程序的最佳場所。此外,雖然公共云資源在部署最初可以說是成本有效的,但在大規模的經常性費用開支方面采用企業內部資本投資似乎更具吸引力。
云框架:這包括工具集,如OpenStack,這是真正的云計算一個非常優秀的開源框架。諸如Rackspace這樣的公司能夠讓其實現規模化的運作管理。然而,企業的IT部門真正能夠在OpenStack部署上所建立和管理的數量是非常少的。
Hyperconverged基礎設施:諸如Nimboxx這樣的企業都提供交鑰匙解決方案,提供相同的彈性云計算的好處,這樣的框架和工作流程能夠支持單一的,模塊化設備的傳統遺留應用程序。這些數據中心的一箱式解決方案,使企業能夠從小處著手,并以最小的增量進行擴展。他們還能夠充當傳統遺留應用程序和彈性的云應用之間的橋梁。
當企業在考慮hyperconverged基礎設施解決方案時,區分“堆棧業主(stack owners)”和“棧棧依賴(stack dependents)”之間的關系是非常重要的。stack dependents是在虛擬機中運行的解決方案,以另一家供應商的管理程序為基礎。而Stack owners是供應商運行在裸機上的,自行構建的整個堆棧。
這些差異如何體現出來:
許可證:Stack owners效仿主要云提供商所使用的開源虛擬機管理程序(KVM和Xen),無需支付昂貴的軟件許可證費用。而Stack dependents通常會提供多管理程序的支持,但與開放源代碼版本只有有限的集成。
性能:Stack owner運行在裸機上,使其能夠直接控制存儲硬件資源與計算。而Stack dependents在虛擬機中運行,這意味著每一個I/O操作都是一個不必要的低效率路徑。盡管stack dependents宣稱有16000個IOPS來自一個三節點群集,stack owners則可以從單個節點提供180000 IOPS.
簡單性:Stack owners從一個單一的窗格玻璃面板管理整個端到端的基礎設施,能夠在一款企業內部的私有云解決方案提供公共云的體驗。Stack dependents減輕一些存儲管理的復雜性,但總的來說,系統和虛擬機管理仍然需要多接口,多個應用程序。
安全:Stack owners能夠對硬件的各方面實施直接控制,可以支持諸如對靜止狀態的數據實施加密的技術。而Stack dependents由于是在虛擬機上運行,缺乏控制。在其設計過程中,內在的要求是(如管理程序)在堆棧啟動前啟動,而這阻礙了其獲得敏感部位數據集的能力。
軟件定義:Stack owners擁有一切,這意味著軟件定義的任何事情都是可能的,包括實時,自助學習系統,可以根據需求提供或切斷資源供給和重新分配工作負載。Stack dependents 僅僅只是擁有存儲池。
真正的突破將來自那些能夠使我們的大企業,以及那些規模較小企業能夠方便的消費這些復雜技術。下一代的類似于VMware這樣的公司將是那些能夠成功地提供一款真正的彈性私有云,并能夠以簡單的易于部署,易于擴展,高性能的產品來支持傳統工作復雜性的企業。