一、libvirt架構概述:
libvirt是用來管理虛拟機或虛拟化功能的軟體集合,主要包括:libvirt API,libvirtd程序和virsh工具集三部分。最初的目的是為不同的hypervisor提供統
ibvirtd該背景程序主要實作以下功能:
(1)遠端代理
所有remote client發送來的指令,由該程序監測執行
(2)本地環境初始化
libvirt服務的啟停,使用者connection的響應等
(3)根據環境注冊各種Driver(qemu, xen, storage…)的實作
不同虛拟化技術以Driver的形式實作,由于libvirt對外提供的是統一的接口,是以各個
Driver就是實作這些接口,即将Driver注冊到libvirt中。

檢視libvirtd服務狀态
如果libvirtd服務停止運作,那麼你将不能管理虛拟機,也就是不能使用virt-manager等工具來管理虛拟機。
虛拟機的所有配置是放置在一個xml檔案中,位置在/etc/libvirt/qemu/目錄中。
可以看到建立的3個虛拟機,libvirt的xml檔案分為幾個重要部分,整體結構如下:
虛拟機整體資訊
系統資訊
硬體資源特性
突發事件處理
虛拟磁盤(單個或多個)
虛拟CD光牒(可選)
虛拟網絡(單個或者多個)
Vnc/spice配置
具體格式可以參考:http://libvirt.org/formatdomain.html
二、使用virt-manager管理虛拟機
virt-manager應用程式是一個桌面使用者接口,用于通過libvirt管理虛拟機。它的主要目标是管理KVM,不過也可以管理Xen和LXC(Linux容器)。它提供了運作域的彙總視圖,目前性能和資源利用統計。向導可以允許建立新域,以及配置、調整域的資源配置設定和虛拟硬體。内嵌的VNC和SPICE的用戶端提供了一個全圖形控制台。
virt-manager主要功能:
定義和建立虛拟機
硬體管理
性能監視
虛拟機的儲存和恢複、暫停和繼續、關閉和啟動
控制台
線上和離線遷移
1、啟用virt-manager
2、配置虛拟機啟動選項
3、添加USB裝置:
可以添加主控端上的USB裝置到虛拟機中使用,選擇新增硬體,添加USB主機裝置選擇要連接配接的主控端上的USB裝置即可。
4、調整監視參數,預設隻監視CPU。
5、連接配接遠端的KVM主機,進行管理
建立連接配接,添加必要的參數。需要yum -y install openssh-askpass軟體包支援。
三、使用virsh來管理虛拟機
virsh是使用libvirt management API建構的管理工具
virsh的名稱的含義是virtualization shell它有兩種工作模式:
立即模式
互動模式
2、Virsh常用指令總結
attach-devic:使用XML檔案中的裝置定義在應似機中源加裝置
attach-disk:在虛拟機中附加磁盤裝置
attach-interface:在虛拟機中附加新網絡接口
create:從XML配置檔案生成虛拟機并啟動虛拟機
define:為虛拟機輸出XML配置檔案
destroy:強制停止虛拟機
detach-device:從虛拟機分離裝置,使同樣的XML描述作為指令attach-device
detach-disk:從虛拟機廢了磁盤裝置
detach-interface:從虛拟機分離網絡接口
demblkstat:顯示正在運作的虛拟機的塊裝置統計
domid:顯示虛拟機ID
domifstat:顯示正在運作的虛拟機的網絡接口統計
dominfo:顯示虛拟機資訊
domname:顯示虛拟機名稱
domstate:顯示虛拟機狀态
domuuid:顯示虛拟機的UUID
dumpxml:輸出虛拟機XML配置檔案
help:列印基本幫助資訊
list:列出所有虛拟機
migrate:将虛拟機遷移到另一台主機上
nodeinfo:有關管理程式的輸出資訊
quit:退出這個互動終端
reboot:重新開機虛拟機
restore:恢複以前儲存在檔案中的虛拟機
resume:恢複暫停的虛拟機
save:将虛拟機目前的狀态儲存到某個檔案中
setmaxmem:為管理程式設定記憶體上限
setmem:為虛拟機設定配置設定的記憶體
setvcpus:修改虛拟機配置設定的虛拟cpu個數
shutdown:關閉虛拟機
suspend:暫停虛拟機
undefine:删除與虛拟機關聯的所有檔案
vcpuinfo:顯示虛拟機的虛拟cpu資訊
vcpupin:控制虛拟機的虛拟cpu親和性
version:顯示virsh版本
3、KVM基本功能管理:
1) 檢視KVM的配置檔案存放目錄
2)檢視虛拟機狀态
3) 虛拟機關機與開機
4)強制虛拟機系統關閉電源
5)通過配置檔案啟動虛拟機系統執行個體
6) 挂起虛拟機
7) 恢複虛拟機
8) 配置虛拟機執行個體伴随主控端自動啟動和取消自動啟動
上述指令會在/etc/libvirt/qemu/autostart/目錄下,建立檔案。
相反取消之後/etc/libvirt/qemu/autostart/中檔案也會消失
9) 導出虛拟機配置
10) 虛拟機的删除與添加
通過備份的配置檔案重新定義虛拟機:
11) 修改虛拟機配置資訊
或者使用virsh修改:
12) 檢視虛拟機資訊
13)連接配接虛拟機
如果是CentOS7想要連接配接成功,需要在虛拟機裡運作以下指令
如果是CentOS6的系統,需要做以下修改:
1、添加ttyS0的許可,允許root登陸
2、編輯/etc/grub.conf檔案,在核心啟動參數後面加上console=ttyS0
3編輯/etc/inittab檔案,最後一行加入内容 S0: 12345: respawn:/sbin/agetty
最後重新開機,reboot。
如果想要推出連接配接,ctrl + ]
四、安裝yum install -y libguestfs libguestfs-tools軟體工具,就可以直接讀取qcow2格式的磁盤檔案。
以下的這些操作最好要在虛拟機關機狀态下做,否則會出錯。
1、virtcat指令類似于cat指令。
vrit-edit指令用于編輯檔案,用法與vim基本一緻,例如把主機名改成
再檢視發現主機名已經更改。
3、virt-df指令用于檢視虛拟機磁盤資訊
4、virt-copy-out:這個指令可以把虛拟機裡的檔案複制出來, 文法如下:
virt-copy-out -d domname file|dir [file|dir ...] localdir
virt-copy-out -a disk.img file|dir [file|dir ...] localdir
将test.txt檔案拷貝到centos7-1的/tmp目錄下。
檢視test.txt檔案内容。
guestfish指令文法如下:
guestfish [--ro|--rw] -i -a /path/to/disk.img
guestfish [--ro|--rw] -i -d name-of-libvirt-domain
KVM虛拟機克隆
1) 檢視虛拟機狀态
1) 從centos7-1克隆到centos7-3
KVM虛拟機快照
快照實際上做的是虛拟機的XML配置檔案,預設快照XML檔案在/var/lib/libvirt/qemu/snapshot/虛拟機名/下,快照隻支援qcow2磁盤格式的系統。
1) 對虛拟機centos7-1做快照
2) 檢視快照資訊
3)檢視目前快照資訊
4) 恢複虛拟機狀态到1533498196
5) 删除快照