Linux基礎架構學習 - 使用KVM進行虛擬化
使用KVM進行虛擬化
本章介紹如何設計和實現企業級虛擬化解決方案。 我專注于基于內核的虛擬機(KVM),因為它是基于Linux的。 本章的主題包括如何理解虛擬化,選擇硬件和配置網絡; 存儲; 文件系統選擇; 優化; 安全問題; 以及將它們放在一起的參考架構。
什么是虛擬化?
操作系統的虛擬化是在另一臺機器中創建虛擬機(VM)。 主機稱為虛擬機管理程序,guest虛擬機稱為虛擬機。 如圖3-1所示,五個虛擬機在一個物理機箱上運行。 假設主機或虛擬機管理程序正在運行RedHat或CentOS,并且VM也在運行相同的操作系統,那么最終會有六個操作系統副本。

使用KVM,首先安裝基本操作系統,然后安裝KVM軟件包,然后開始創建VM。
為企業使用虛擬化的一些優點如下:
- 減少資本支出,因為您購買的服務器較少
- 更快的配置,因為您可以按需擴展
- 由于服務器較少,降低了能源成本
- 使用高可用性使災難恢復變得更容易
- 更容易支持遺留應用程序
- 更接近遷移到云端
- 由于數據中心占地面積較小,因此減少了支持需求
無論如何,虛擬化并不是靈丹妙藥。使用虛擬化的一些缺點如下:
- 虛擬化的抽象層增加了性能損失。
- 虛擬化平臺上的過度配置很容易,導致高峰時段的系統性能下降。
- 軟件定義網絡的采用緩慢導致難以管理的虛擬網絡和擁擠的虛擬網絡。
- 將應用程序重寫為更加虛擬/云友好可能會導致額外的前期采用成本。
- 丟失虛擬機管理程序可能導致虛擬機管理程序上丟失大量虛擬機。
- 虛擬化管理需要在運營領域進行額外的培訓和流程。
虛擬化解決方案
一些不同的企業級虛擬化解決方案如下:
LXC
https://linuxcontainers.org/
OpenVZ的
http://openvz.org/Main_Page
QEMU / KVM
http://www.linux-kvm.org/page/Main_Page
VMware的
http://www.vmware.com/
XenServer的
http://www.xenserver.org/
微軟的Hyper-V,基于Windows
http://www.microsoft.com/en-us/server-cloud/solutions/virtualization.aspx
Bhyve,基于FreeBSD
http://bhyve.org/
本章介紹KVM。選擇哪個平臺的選擇可能很復雜。一種可能的選擇是使用虛擬基準測試軟件(例如SPEC virt(http://www.spec.org/virt_sc2013/))比較環境中的兩個或更多解決方案。使用SPEC virt,您可以啟動大量虛擬機,然后運行不同的工作負載,例如Web服務器,數據庫服務器等。最后,SPEC virt會發布一系列可以比較的數字,以確定XenServer,KVM或其他虛擬化平臺是否能為您提供更好的性能。
Linux容器(LXC); 它是一個用戶空間界面,用于創建以及管理系統和應用程序容器。 與KVM相比,LXC是輕量級的,對于每個虛擬機管理程序,通??梢詣摻ū萔M更多的Linux容器。 在企業中,您可能會找到VM以及LXC。 LXC和KVM之間的主要區別在于,使用KVM,您可以運行不同的內核,每個VM一個,但是使用LXC,您可以共享相同的內核。 LXC也僅限于與虛擬機管理程序相同的操作系統,但KVM不是; 您可以在VM上安裝與虛擬機管理程序不同的操作系統。 管理LXC的工具與管理KVM的工具不同。 Libvirt是一個虛擬化管理庫,可用于管理KVM VM和Linux容器。 Libvirt非常靈活,可以管理眾多虛擬化技術。 LXC的一個例子如圖3-2所示。

OpenVZ也是基于容器的,類似于LXC。使用LXC與OpenVZ的選擇可能很復雜。 LXC得到了RedHat的支持,所以如果您是CentOS或RedHat商店,您可能會發現更容易獲得LXC與OpenVZ的支持。另一種迅速普及的基于容器的技術是Docker(https://www.docker.com/)。 Docker可用于快速應用程序部署。
十多年來,VMware一直是虛擬化解決方案的領導者。 VMware中的虛擬機管理程序基于Linux,管理服務器基于Windows。使用VMware的一個優點是虛擬機管理程序嵌入在某些服務器中,這樣可以省去安裝虛擬機管理程序的麻煩。 VMware和Microsoft虛擬化解決方案的一個警告是許可成本。雖然兩者都提供免費虛擬化解決方案,但他們的企業產品并非免
在Linux領域,XenServer,VMware和KVM是虛擬化的領先提供商。您在企業中的選擇取決于許多因素:
- 提供工程師技能
- 安裝的操作系統基礎
- 組織內部的政治
- 供應商和合作伙伴關系
- 業務需求
- 企業采用的技術方向
例如,如果您正在運行Linux并且沒有Windows服務器,那么使用Hyper-V是沒有意義的; KVM可能是更好的選擇。 另一方面,如果您更喜歡具有全功能圖形用戶界面和基于Linux的虛擬機管理程序的成熟產品,那么VMware可能是比KVM更好的解決方案。 選擇KVM的一個優點是RedHat完全支持它。 Citrix也完全支持XenServer; 但是,它并沒有像KVM那樣與RedHat或CentOS緊密集成。