Linux虛擬化的危險、陷阱和規劃
原創【51CTO 4月14日外電頭條】Linux虛擬化并不是什么新鮮事物,至今大約已經有10個年頭了,單從技術上講,它確實取得了顯著的進步,但這并不意味著它就變簡單了(51CTO相關文章:Linux虛擬化:我愛你的十大誘人理由)。恰恰相反,現在到處都充斥著令人眼花繚亂的虛擬化解決方案,都聲稱可以管好工作負載和存儲,減少復雜性,降低成本和能源消耗,但都沒有回答是否應該部署虛擬化的問題,今天,我們面臨的真正問題是什么樣的虛擬化解決方案適合虛擬化什么樣的工作負載。
另外,虛擬化也不是萬能的,有些工作負載只有直接在物理服務器上運行才能獲得最佳效果。不過話說回來,服務器虛擬化確實有相當多的優點。我們將用4篇文章對Linux虛擬化進行詳細闡述,本文先概述一下Linux虛擬化解決方案,未來幾周內,你將看到有關標準虛擬化戰略,虛擬設備,云計算等更多細節信息。
虛擬化為我們帶來了什么?
首先,我要告訴你的是虛擬化解決方案現在的銷售情況還不錯,通過虛擬化提高了服務器利用率,降低了能源成本,通過最大化每個服務器承擔的工作負載,提高了資源的利用率。以前,運行在商用x86服務器上的Linux往往只使用了一小部分服務器計算能力,大量的計算能力都處于閑置狀態。通過使用虛擬化,你可以確保硬件承載的工作量適當,既不超負荷,又不空轉,同時通過將多個物理服務器上的應用整合到一個服務器還可以節省電力成本。(請參考51CTO相關文章:虛擬化技術在高性能計算機系統中的應用研究)
如果你選擇了合適的工具,并制定好管理方案,虛擬化還可以減少復雜性,提供更方便的系統管理。優秀的虛擬化管理工具可以從一個GUI控制臺管理數十甚至數百個虛擬機,其復雜性不會超過管理一臺物理服務器。例如,使用Parallels Virtuozzo容器,只需要點擊幾下鼠標,配置和部署一個標準操作系統模板就可以讓虛擬機上線了,使用SUSE Studio,你可以在幾分鐘內快速搭建起一個VMware或Xen虛擬化服務器,開源虛擬機Xen 4.0發布,增強了容錯性和可伸縮性。
虛擬化也帶來了更大的靈活性,例如,當工作負載超出其資源承受極限時,通過虛擬化可以將更多的資源分配給同一臺服務器,也可以將虛擬機(VM)移動到容量更大的服務器。如果你在使用基于云的解決方案,天空就是工作負載靈活性的限制。
注意,我們要談的是服務器虛擬化,不會過多涉及桌面級虛擬化解決方案,因此包括VirtualBox,VMware Workstation和Parallels Desktop等在內的桌面級虛擬化工具,還請大家自行研究,但我們強烈建議不要在關鍵業務上使用這些桌面級虛擬化解決方案。(51CTO相關文章:如何面對服務器虛擬化——中小企業篇)
Linux服務器虛擬化解決方案為各種規模的組織提供了大量的選擇,無論你是想整合服務器,還是想給Web 2.0初創公司提供一個解決方案,Linux應該是虛擬化規劃的核心,但問題是它適合哪些項目,應該選擇哪個廠商的解決方案。
#p#
虛擬化的前景
虛擬化涉及的技術領域廣泛,最初,談及Linux虛擬化時,往往指的是完全虛擬化,即主機操作系統運行了多個客戶機操作系統,好像它們都運行在自己的硬件上一樣,也許是Linux,也許是其它操作系統。現在,人們談論虛擬化時可能指的是操作系統虛擬化,存儲虛擬化或虛擬設備。
對于操作系統虛擬化,你會發現有很多成熟的Linux虛擬化解決方案,首先你要決定是使用完全虛擬化還是基于容器的虛擬化,抑或是想要基于云的計算。這里所說的完全虛擬化,我指的是在一個系統管理程序(Hypervisor)上運行一或多個操作系統的解決方案,如Xen,Parallels的 Bare Metal,VMware ESXi和Linux自帶的KVM(Kernel-based Virtual Machine,基于內核的虛擬機)。
完全虛擬化在今天被廣泛使用,但基于容器的虛擬化對某些工作負載來說也是一個很好的解決方案,基于容器的虛擬化一般不會運行多個操作系統,它是在它自己的用戶空間中容納客戶機操作系統,而不是運行在一個單獨的操作系統內核上,基于容器的虛擬化更堅固,因為不需要處理硬件仿真,它需要的系統開銷更少。基于容器的虛擬化的缺點是不允許在同一個硬件平臺上運行多個操作系統,想在一臺服務器上使用基于容器的虛擬化解決方案運行6個Linux實例?沒問題,但如果想和Microsoft Server一起運行幾個Linux客戶機?使用基于容器的虛擬化解決方案就不行了。
對于基于容器的虛擬化解決方案,你可以研究一下Parallels Virtuozzo容器,或是開源但功能更少的OpenVZ,如果你使用的是FreeBSD,你可以嘗試一下jails,如果你使用的是Solaris/OpenSolaris,那么可以試試Zones。
完全虛擬化和基于容器的虛擬化之間有什么實質性區別呢?使用完全虛擬化解決方案,你可以使用大部分操作系統,也可以混合使用,例如,一個小型組織可能在一臺服務器上使用完全虛擬化工具,如Xen、Parallels、KVM、VMware,或微軟的Hyper-V,同時運行Windows Server 2008和SUSE Linux Enterprise Server 10以整合它們的工作負載。
但在托管環境中,你需要在一臺物理服務器上運行幾十個Linux虛擬專用服務器,類似OpenVZ或Virtuozzo可能是最好的選擇。
雖然KVM已經非常成熟,但它仍然不被認為是與Xen,VMware或Parallels解決方案在同一個層次上,KVM狀態頁(http://www.linux-kvm.org/page/Status)列出了已經完成的工作和正在進行的工作,從長遠來看,KVM完全可以達到專業解決方案同等水平,值得一提的是KVM現在已經進入到Linux內核主干,引起了內核社區的極大關注。
#p#
危險,陷阱和規劃
虛擬化不是解決你所有計算問題的萬能方案,事實上,如果你選擇了錯誤的或不當的虛擬化解決方案,讓你頭疼的問題可能更多。為了避免增加你的工作量,對方案進行評估很重要,因為至少未來5年你都得與它們打交道。
首先,確保你的組織準備好迎接虛擬化帶來的挑戰,例如,當兩個部門共享物理硬件運行虛擬機時,誰承擔多少虛擬化成本,誰可以控制底層硬件,需要調整虛擬機資源分配時該誰負責,如何協調部門間的資源爭奪,這些問題都需要好好思考和規劃,否則只會出現混亂的局面。
如果部門自己有IT人員,那么誰有權部署和管理虛擬機?他的管理范圍有多大?這些都不屬于技術問題,但這些問題必須在內存不夠用,存儲不夠用等問題出現之前先得到解決和明確。
你還需要防止虛擬機濫用,在未好好規劃之前,不應該一時沖動就部署虛擬機,管理虛擬機應該象管理物理服務器一樣,應當有計劃地規劃和部署。(51CTO相關文章:服務器虛擬化整合規劃五步走)
另一個需要考慮的是虛擬化工作負載的類型,底層硬件以及虛擬化解決方案的限制,雖然許多工作負載都適合虛擬化,但不是所有的都適合,例如,你要確保為資源密集型應用提供強大的硬件支撐,如果不行,不如讓它們直接運行在物理硬件平臺之上。
還有一個經常被忽略的問題也很重要,那就是培訓,雖然現在的虛擬化工具對系統管理員來說不是很大的挑戰,但也不是每個人都已經熟練掌握,如果你的組織計劃用新的工具集實施虛擬化,培訓應該是實施過程和預算的一部分。
通過本文我們只看到了虛擬化很片面的一部分內容,接下來幾篇文章我們51CTO將介紹虛擬化在企業中的最佳戰略實踐,并會對完全虛擬化和基于容器的虛擬化之間的區別進行深入討論,還會就云計算對你的組織有何意義進行討論,請繼續關注。
【51CTO.com譯稿,合作站點轉載請注明原文譯者和出處。】
原文:Today's Guide to Linux Virtualization 作者:Joe 'Zonker' Brockmeier
【編輯推薦】