天天看點

KVM 虛拟化的實作

一、KVM 虛拟化服務的構成

KVM 虛拟化主要由三大元件構成,即:KVM、QEMU、LIBVIRTD

1、KVM:KVM 是 Linux 核心的子產品,他需要 CPU 的支援,采用硬體輔助虛拟化技術 Intel-VT,AMD-V,記憶體的相關如 Intel 的EPT 和 AMD 的 RVI 技術。

2、QEMU:QEMU是一個虛拟化的仿真工具,通過 ioctl 與核心 kvm 互動完成對硬體虛拟化的支援。

3、LIBVIRTD:Libvirtd 是一個對虛拟化管理的接口和工具,提供使用者端程式 virsh,virt-install,virt-manager,virt-view 與使用者互動。

二、虛拟化服務的必備軟體

qemu-kvm:為 KVM 提供底層仿真支援

libvirt-daemon:守護程序,管理虛拟機

libvirt-client:使用者端軟體,提供用戶端管理指令

libvirt-daemon-driver-qemu:libvirt 連接配接 qemu 的驅動

可選軟體

virt-install :系統安裝工具

virt-manager :圖形管理工具

virt-v2v :虛拟機遷移工具

virt-p2v :實體機遷移工具

三、虛拟機的組成

1、核心虛拟化子產品(KVM)

2、系統裝置仿真(QEMU)

3、虛拟機管理程式(LIBVIRT)

4、XML 檔案(虛拟機配置聲明檔案,位置 /etc/libvirt/qemu/ )

5、磁盤鏡像檔案(虛拟機的硬碟,位置 /var/lib/libvirt/iamges/ )

四、虛拟機管理

使用 virsh 指令對 kvm 虛拟機進行正常管理。

a、檢視虛拟機資訊

1、檢視 KVM 節點(伺服器)資訊

virsh nodeinfo      

2、列出虛拟機

virsh list [--all]      

3、列出虛拟網絡

virsh net-list [--all]      

4、檢視指定虛拟機的資訊

virsh nodeinfo 虛拟機名稱      

b、開關機操作

1、運作|重新開機|關閉 指定的虛拟機

virsh start|reboot|shutdown 虛拟機名稱      

2、強制關閉指定虛拟機

virsh destory 虛拟機名稱      

3、将指定虛拟機設定為開機自動運作

virsh autostart [--disable] 虛拟機名稱      

五、常用鏡像盤類型對比

KVM 虛拟化的實作

經過以上表格的鏡像盤格式對比,我們可以很肯定的知道,KVM 使用 QCOW2 格式的鏡像盤時,對伺服器資源的使用率最高的,當然系統預設的鏡像盤格式。

六、虛拟機磁盤管理

使用指令 qemu-img

a、使用 qemu-img 指令對虛拟機的磁盤進行管理。

b、qemu-img 支援非常多的磁盤格式,例如 raw、qcow2、vdi、vmdk 等等。

c、qemu-img 指令格式

qemu-img 指令 參數 塊檔案名稱 大小
常用指令有:
create           建立一個磁盤
convert          轉換磁盤格式
info             檢視磁盤資訊
snapshot         管理磁盤快照
1、建立鏡相盤檔案
qemu-img create -f 格式 磁盤路徑 大小
例如:
qemu-img create -f qcow2 disk.img 50G
表示建立一個名為 disk.img,大小為 50G,格式為 qcow2 的鏡像盤檔案
2、檢視鏡像盤檔案的資訊
qemu-img info 磁盤路徑
例如:
qemu-img info disk.img
3、加 -b 參數使用後端模闆檔案
例如:
qemu-img create -b disk.img -f qcow2 disk1.img
表示以後端鏡像盤 disk.img 為模闆,建立一個名為 disk1.img 格式為 qcow2 的鏡像盤,這裡沒有指定大小,表示與後端鏡像盤 disk.img 相同大小。      

七、COW 技術原理

COW,即:Copy On Write 寫時複制,該技術主要實作以下功能

a、直接映射原始盤的資料内容

b、當原始的舊資料有修改時,再修改之前自動将舊資料存入前端盤

c、對前端盤的修改不回寫到原始盤

如下圖所示:

KVM 虛拟化的實作

在 KVM 虛拟化中,對于 COW 技術的運用可謂是無處不在,最明顯的莫過于虛拟機的克隆。

八、KVM 虛拟機的遠端管理

a、使用 virsh 用戶端工具

1、連接配接本地

[root@localhost ~]# virsh -c qemu:///system (預設選項)      

2、連接配接遠端

[root@localhost ~]# virsh -c qemu+ssh://[email protected]:port/system      

b、使用 virt-manager 用戶端工具

1、virt-manager 也可以通過 add connection 管理其它機器上的虛拟機,一般通過 “ remote tunnel over ssh ” 就可以了。

2、需要注意的是 virt-manager 需要使用 ssh 免密登陸,如果沒有免密登陸,需要單獨安裝 python 的 ssh 相關子產品,這裡我們可以使用部署 key 的方法解決。

九、建立虛拟交換機

a、原理:調用 dnsmasp 提供 DNS、DHCP 等功能

b、建立配置檔案 /etc/libvirt/qemu/networks/default.xml,并粘貼以下内容:

<network>
   <name>default</name>
   <bridge name="virbr0"/>
   <forward mode="nat"/>
   <ip address="192.168.20.254" netmask="255.255.255.0">
      <dhcp>
         <range start="192.168.20.1" end="192.168.1.200"/>
      </dhcp>
   </ip>
</network>      
[root@localhost ~]# cd /etc/libvirt/qemu/networks/
[root@localhost networks]# vim default.xml      
KVM 虛拟化的實作

注意:bridge name="virbr0",這裡時網卡名稱,一定要與伺服器的網卡名稱相同,不然會報錯。

c、使用 virsh 管理虛拟網絡

net-list                          檢視虛拟網絡
net-define default.xml                  建立虛拟網絡
net-undefine default                   删除虛拟網絡
net-start default                     啟動虛拟網絡
net-destroy default                    停止虛拟網絡
net-edit default                     修改 default 的網絡配置
net-autostart default                   設定 default 虛拟網絡開機啟動      

建立虛拟網絡

[root@localhost networks]# virsh net-define eth1.xml      

十、XML 管理

a、XML 配置檔案說明

1、定義了一個虛拟機的名稱、CPU、記憶體、虛拟磁盤、網卡等各種參數。

2、預設位于 /etc/libvirt/qemu/虛拟機名稱.xml。

b、導出 XML 配置檔案

1、檢視:virsh dumpxml 虛拟機名稱。

2、備份:virsh dumpxml 虛拟機名稱 > 虛拟機名稱.xml。

c、編輯虛拟機設定

1、對虛拟機的配置進行調整

①、編輯:virsh edit 虛拟機名稱。

②、若修改 name、memory、disk、network,可自動儲存為新虛拟機配置。

2、定義虛拟機

根據修改後的獨立的 xml 檔案定義新虛拟機。

virsh define XML描述檔案

3、删除虛拟機

必要時可以删除多餘的 XML 配置

①、比如虛拟機改名的情況

②、避免出現多個虛拟機的磁盤或者 MAC 位址沖突

③、virsh undefine 虛拟機名稱

十一、建立模闆虛拟機

a、使用 virt-manager 指令調出虛拟系統管理器,建立虛拟機

[root@localhost ~]# virt-manager      
KVM 虛拟化的實作

b、選擇網絡安裝,并前進

KVM 虛拟化的實作

c、在 URL 框中輸入我們自己的内部 yum 源位址(centos 目錄為挂載的CD光牒目錄,對于CD光牒的挂載,這裡省略)

KVM 虛拟化的實作

d、設定記憶體、CPU

KVM 虛拟化的實作

注意:這裡記憶體最好時大于 2048M,CPU 最小為 2 ,否則後面的虛拟機系統無法安裝。

e、設定磁盤鏡像,選擇建立自定義存儲,建立存儲卷,如下圖所示的過程。

KVM 虛拟化的實作
KVM 虛拟化的實作
KVM 虛拟化的實作
KVM 虛拟化的實作
KVM 虛拟化的實作

f、設定虛拟機名稱并指定網絡,完成之後,就會進入 Centos 的系統安裝界面,至于系統的安裝,我們就不再一步步示範了。

KVM 虛拟化的實作

繼續閱讀