1》虛擬化技術: 電腦虛擬化技術是多種技術的綜合實現,它包括硬體平臺,操作系統,存儲以及網路等,簡單地說,虛擬化技術就是在單台主機上可以虛擬多個虛假主機,並可以在這些虛擬主機上運行不同的操作系統平臺,虛擬化技術的出現可以節約大量的硬體資源與能源消耗,降低資金成本,虛擬化現在已經是每個企業必有的項目 ...
1》虛擬化技術:
電腦虛擬化技術是多種技術的綜合實現,它包括硬體平臺,操作系統,存儲以及網路等,簡單地說,虛擬化技術就是在單台主機上可以虛擬多個虛假主機,並可以在這些虛擬主機上運行不同的操作系統平臺,虛擬化技術的出現可以節約大量的硬體資源與能源消耗,降低資金成本,虛擬化現在已經是每個企業必有的項目;目前所提供的比較成熟的虛擬化解決方案主要有VMware,Xen,KVM以及Kyper-V,虛擬化技術通過Hypervisor動態模擬與分配電腦硬體資源給虛擬機操作系統,由於Hypervisor可以模擬多個硬體資源給Guest OS,因而對Guest OS而言,就像運行在獨立,真實的硬體資源上一樣,架構如下圖所示:
*****應用層*****
**Guest OS Guest OS Guest OS**
****** Hypervisor(虛擬機監控器)***
*** 硬體層 ***
1>VMware虛擬化技術:
VMware是全球數據中心解決方案的領導品牌,它為我們提供了高性能,高可用,管理方便的虛擬機管理程式,是目前大多數企業虛擬化環境部署的首選方案,VMware虛擬化的工作原理是直接在電腦硬體或主機操作系統上插入一個精簡的軟體層,該軟體層包含一個以動態和透明方式分配硬體資源的虛擬化管理程式,多個操作系統可以同時運行在單台物理機上,彼此之間共用硬體資源;由於是將整台電腦(包括CPU,記憶體,操作系統和網路設備)封裝起來,因此,虛擬機可與所有標準的x86操作系統,應用程式和設備驅動程式完全相容,可以同時在單台電腦上安全運行多個操作系統和應用程式,每個操作系統和應用程式都可以在需要時訪問其所需的資源;
VMware虛擬化產品最大的優勢在於其完善的虛擬化管理平臺以及可靠的基礎架構,為企業計算環境提供完善,穩定,可靠的虛擬技術;VMware虛擬化產品的不足主要包括:首先,VMware虛擬化技術主要針對的是x86架構,對於複雜的企業運算環境,VMware無法滿足所有電腦主機的需要,其次VMware在雲計算方面的發展略顯遲緩,在性能與容災方面表現不容,最後,VMware是商業產品,用戶需要為此支付大量的許可費用;
2>Xen虛擬技術:
Xen是由劍橋大學開發的開源虛擬機監控器,Xen的目標是在單台主機上運行上百台全功能的虛擬機,Xen支持半虛擬化與全虛擬化技術,半虛擬化技術的性能要比全虛擬化技術高很多,全虛擬化技術是通過中間層軟體模擬真實的硬體設備,最終虛擬機使用模擬設備時就需要中間層將相應的指令轉換為物理硬體指令進行操作,也就是說虛擬機無法直接發送操作指令給物理硬體,必須經過模擬軟體轉換代碼後才可以發送給物理硬體執行具體操作;而半虛擬化技術則可以實現部分虛擬機與部分硬體直接通信,虛擬機可以直接發送操作指令給部分硬體設備,這樣虛擬機的效率就可以提升很多倍,Xen的優勢在於開源且技術非常成熟,但隨著RedHat以及Ubuntu目前已經將系統預設的虛擬組件更新為KVM,所以Xen的市場已經開始受到影響;
3>KVM虛擬化技術:
KVM是基於x86架構上Linux操作系統的全虛擬化解決方案,由於KVM本身就工作於內核環境中,所以執行效率要比傳統意義上的虛擬化技術高很多,KVM虛擬化需要Intel VT或AMD-V技術的支持,可以使用下麵的命令確定本機CPU是否支持以上兩種虛擬化技術:
egrep ‘(vmx|svm)’ /proc/cpuinfo
相對於Xen而言,KVM從Linux 2.6.20後已經集成到內核模塊中,使用Linux內核作為虛擬調度器管理虛擬機,更直接的硬體調度代表更高的效率,KVM核心代碼也非常簡訊精湛,未來KVM將會慢慢成為主流虛擬化技術;
2》KVM虛擬化應用案例:
1>安裝KVM組件:
安裝KVM組件需要先確保系統已經滿足了最低安裝要求,部署KVM虛擬化需要通過BIOS開啟CPU的虛擬化功能,確保至少6GB的磁碟剩餘空間以及2GB記憶體 空間,KVM虛擬機支持的存儲方式有:本地磁碟文件,物理磁碟分區,LVM分區,iSCSI磁碟,GFS2文件系統,光纖LUNs設備等;
1)部署操作系統時安裝KVM組件:
KVM虛擬化組件可以在安裝操作系統的過程中選擇Virtualization,Virtualization Client,VirtualizationPlatform,Virtualization Tools組件包;
通過Kickstart方式安裝系統時需要在Kickstart配置文件中加入如下內容:
@Virtualization
@Virtualization-Client
@Virtualization-Platform
@Virtualization-Tools
2)在現有的操作系統平臺上安裝虛擬化組件:
配置YUM源後,可以直接通過組包來安裝虛擬化組件,列如如下命令:
yum groupinstall “Virtualization Tools”
2>創建虛擬機操作系統:
系統中的虛擬化組件安裝完成後,就可以創建虛擬主機了,如果安裝了圖形環境,就可以用virt-manager命令開啟KVM管理器界面,單擊“NEW”按鈕創建 虛擬主機,也可以通過命令行工具virt-install命令直接安裝部署虛擬主機;
1)使用圖形管理工具創建虛擬機:
virt-manager是系統所提供的虛擬機管理程式,用來通過圖形創建以及管理虛擬機,下麵介紹virt-manager創建虛擬機的具體方法:
第一步:在命令終端輸入virt-manager命令開啟圖形管理程式;
註意:kvm 安ERROR Failed to connect socket to '/var/run/libvirt/libvirt-sock': No such file or directory
/etc/init.d/messagebus restart
第二步:選擇hypervisor並單擊“Connect”按鈕,連接hypervisor,預設為qemu,預設連接的是本機hypervisor,選擇Connect to remote host,在host框中輸入計 算機主機名或IP地址後,也可以連接其他主機的hypervisor;
第三步:單擊“Create a new virtua machine”按鈕,開啟新建虛擬機嚮導,新建虛擬機嚮導中將提示進行以下內容的設置;
**虛擬機名稱以及安裝方式,安裝方式可以選擇ISO,光碟,PXE等方式;
**安裝介質路徑,選擇具體的光碟機或ISO文件路徑,以及操作系統類型;
**配置記憶體與CPU參數;
**配置存儲參數,可以選擇創建新的虛擬存儲文件,也可以選擇使用已存在的存儲設備,預設虛擬機鏡像文件路徑為/var/lib/libvirt/images;
**配置網路,架構以及其他硬體參數,網路選擇橋接可以實現虛擬機直接訪問外部網路; 虛擬機選擇橋接網路時,需要宿主主機創建一個共用的 橋接網路設備,也就是所謂的網橋,如果宿主主機的物理網卡名稱為eth0,則創建虛擬橋接設備的具體步驟如下:
查看網卡橋接:
第四步:安裝部署虛擬機操作系統,虛擬主機部署完成後,可以通過硬體信息按鈕查看該虛擬機硬體的信息;
3》監控虛擬機操作系統:
1>修改監控屬性:
使用virt-manager的屬性視窗可以修改虛擬主機的性能監控屬性,開啟virt-manager程式後可以選擇Edit菜單下的Preferences子菜單,我們可以勾選Disk I/O與 Network I/O選項啟用磁碟與網路介面性能查詢功能;
2>監控圖形:
打開virt-manager程式,單擊view菜單下的字菜單,根據需要決定是否勾選CPU U撒個,Disk I/O, Network I/O,就可以顯示效果圖;
3>查看虛擬機詳細信息:
virt-manager還可以查看虛擬機連接的詳細信息 ,通過Edit菜單下的Condition Details,我們可以進一步查看hypervisor,真實主機CPU以及記憶體使用情 況,虛擬網路設置,存儲池設置以及網路介面信息;
4》虛擬存儲:
KVM存儲池是被libvirt所管理的文件,目錄或存儲設備,存儲池可以位於本地,也可以通過網路共用,存儲池最終可以被虛擬主機所使用,預設libvirt使用基於目錄的存儲池設計,/var/lib/libvirt/images目錄就是預設的存儲池;本地存儲池可以是本地的一個目錄,磁碟設備,物理分區或LVM捲,但本地存儲池不適合於大規模產品部署,也不支持虛擬機遷移功能,網路共用存儲池使用標準的網路協議進行存儲設備的共用,它支持SAN,IP-SAN,NFS,GFS2等協議,在KVM虛擬化技術中 ,存儲池可以包含多個存儲捲,對虛擬主機而言,這些存儲捲將被識別為物理硬體存儲設備;
下麵將以目錄存儲以及共用NFS存儲為例,演示KVM存儲池及存儲捲的創建流程:
1>創建基於目錄的虛擬存儲池與存儲捲:
1)創建目錄:
mkdir /var/lib/libvirt/test
2)修改文件安全相關屬性:
註意: 安裝semanage工具的方法:
yum -y install policycoreutils-python
3)創建存儲池:
virt-manager
存儲池名稱為test,類型為基於目錄的存儲池,還需要輸入存儲池目錄的具體路徑;
4)創建存儲捲:
完成存儲池的創建後,我們就可以在池中創建存儲捲了,單擊選擇需要創建捲的存儲池,根據提示輸入捲名稱,格式類型,最大存儲空間,實際分配 空間;
2>為虛擬機添加使用存儲設備:
存儲捲創建完成後,我們的虛擬機就可以使用這些捲了,通過虛擬機管理器選擇一個虛擬機雙擊打開控制視窗,點選設備列表,顯示設備列表,選擇“Add Hardware”按鈕添加新的設備,在添加虛擬硬體視窗中選擇Storage存儲設備,因為我們已經為虛擬機創建好了存儲捲設備,因此我們選擇已經存在的存儲空間
,並輸入存儲捲的絕對路徑,進入虛擬機操作系統,通過fdisk查看磁碟信息將包含剛剛添加的存儲捲設備,標記為/dev/vdb;
下麵將演示如何在KVM虛擬化環境中創建基於NFS的存儲池以及存儲捲設備,這裡假設已經準備好了一臺NFS共用伺服器:
1)創建存儲池:
與基於目錄的存儲池類似,我們創建一個新的存儲池,第一步依然是填寫存儲池名稱以及類型;第二步根據實際情況填寫NFS伺服器主機名或IP地址 (192.168.0.254),伺服器共用目錄(/nfs),本地掛載點(/var/lib/libvirt/nfs);
2)創建邏輯捲:
與基於目錄的存儲捲類似,我們通過“New Volume”按鈕創建存儲捲,根據提示輸入捲名,格式類型,最大存儲容量,分配存儲容量;
5》虛擬網路設置:
KVM虛擬化使用一種稱為虛擬交換的技術實現虛擬機的網路互聯,虛擬交換是運行在宿主主機上的一個軟體結構,虛擬主機通過與這個虛擬交換進行直連實現與外界通信,當我們部署完成虛擬化環境後,libvirt進程會在宿主主機上自動創建一個預設的虛擬交換virbr0,我們可以通過ifconfig命令查看該虛擬交換設備的詳細信息;
虛擬交換可以運行在NAT模式,路由模式與獨立模式,預設情況下libvirtd進程使用的是NAT作為虛擬交換的工作模式:
NAT模式:NAT模式使用的是IP欺騙技術,該技術可以使虛擬主機使用宿主主機的IP地址與外部主機通信,此時虛擬主機之間不管是相同網段還是不同網段都 可以互相通信,但預設位於宿主主機外部的電腦設備不可以通虛擬交換設備連接的虛擬機通信,也就是說虛擬主機不可以連接真實機外面的其他 主機;
路由模式:路由模式虛擬交換將與真實設備的物理網路相連接,實現數據包的出站與入站,宿主主機將承擔路由的角色;
獨立模式:獨立模式使每個虛擬交換設備都是一個獨立的網路,並且與宿主主機也是相互獨立的,連接在相同虛擬交換設備的虛擬主機是可以進行通信的;
1>創建新的虛擬交換網路:
創建完虛擬交換後,所有的虛擬主機都可以添加虛擬網卡介面連接該虛擬設備,打開虛擬主機後,在硬體列表下方使用Add Hardware按鈕添加虛擬網路接 口,選擇Network網路設備,在右側填寫該網路介面需要連接的宿主主機的虛擬交換設備,除此之外,我們還需要填寫該虛擬主機MAC地址以及設備驅動方 式;