KVM命令集管理虛擬機
阿新 • • 發佈:2018-08-09
兩種 虛擬機克隆 browser delet mem 功能 rev type 明顯 使用KVM命令集管理虛擬機
查看虛擬機狀態
[root@localhost ~]# virsh list --all
Id 名稱 狀態
----------------------------------------------------
2 c01 running
虛擬機的關機與開機
[root@localhost ~]# virsh shutdown c01 域 c01 被關閉 [root@localhost ~]# virsh list --all Id 名稱 狀態 ---------------------------------------------------- - c01 關閉
[root@localhost ~]# virsh start c01
域 c01 已開始
[root@localhost ~]# virsh list --all
Id 名稱 狀態
----------------------------------------------------
3 c01 running
還有一種強行關機的方式,類似於直接斷電關機的。
[root@localhost ~]# virsh destroy c01 域 c01 被刪除 [root@localhost ~]# virsh list --all Id 名稱 狀態 ---------------------------------------------------- - c01 關閉
啟動還有一種通過配置文件啟動虛擬機
[root@localhost ~]# virsh create /etc/libvirt/qemu/c01.xml
域 c01 被創建(從 /etc/libvirt/qemu/c01.xml)
[root@localhost ~]# virsh list --all
Id 名稱 狀態
----------------------------------------------------
4 c01 running
掛起和恢復虛擬機
[root@localhost ~]# virsh suspend c01 域 c01 被掛起 [root@localhost ~]# virsh list --all Id 名稱 狀態 ---------------------------------------------------- 4 c01 暫停
掛起後,可以使用下面的命令恢復虛擬機。
[root@localhost ~]# virsh resume c01
域 c01 被重新恢復
[root@localhost ~]# virsh list --all
Id 名稱 狀態
----------------------------------------------------
4 c01 running
配置虛擬機實例伴隨宿主機自啟動
[root@localhost ~]# virsh autostart c01
域 c01標記為自動開始
導出虛擬機配置
這裏為了下一步刪除虛擬機,先導出一份xml配置文件
[root@localhost ~]# virsh dumpxml c01 > /etc/libvirt/qemu/c02.xml
刪除和添加虛擬機
[root@localhost ~]# virsh shutdown c01
域 c01 被關閉
[root@localhost ~]# virsh undefine c01
錯誤:取消定義域 c01 失敗
錯誤:所需操作無效:無法刪除使用 1 快照的不活躍域
這個錯誤的原因可以明顯看出來,因為之前我對c01做過快照,刪除虛擬機必須要把快照刪除後,在進行undefine
[root@localhost ~]# virsh shutdown c01
[root@localhost ~]# virsh snapshot-delete c01 1533630255
已刪除域快照 1533630255
[root@localhost ~]# virsh undefine c01
域 c01 已經被取消定義
這裏undefine後,c01.xml文件會消失,但是c01.img磁盤文件還在,所以要刪除虛擬機,需要再把c01.img刪除。
[root@localhost ~]# ls /etc/libvirt/qemu/
autostart c02.xml networks
[root@localhost ~]# ls /vdir/
c01.img c01.qcow2
[root@localhost ~]# virsh list --all
Id 名稱 狀態
----------------------------------------------------
通過備份的配置文件重新定義虛擬機
[root@localhost ~]# mv /etc/libvirt/qemu/c02.xml /etc/libvirt/qemu/c01.xml
[root@localhost qemu]# virsh define c01.xml
定義域 c01(從 c01.xml)
[root@localhost qemu]# virsh list --all
Id 名稱 狀態
----------------------------------------------------
- c01 關閉
KVM文件管理
通過文件管理可以直接查看、修改、復制虛擬機的內部文件。虛擬機磁盤文件有raw和qcow2兩種格式。KVM虛擬機默認使用raw格式,raw格式性能最好,速度最快,但是缺點就是不支持一些新功能,如鏡像、Zlib磁盤壓縮,AES加密。針對兩種格式的文件有不同工具,通過yum安裝libguestfs-tools後產生的命令行工具,可以直接讀取qcow2格式的磁盤文件,所以需要將raw磁盤文件轉換成qcow2的格式。
轉換raw格式磁盤文件至qcow2格式。
查看當前磁盤格式:
[root@localhost vdir]# qemu-img info /vdir/c01.img
image: /vdir/c01.img
file format: raw
virtual size: 20G (21474836480 bytes)
disk size: 1.1G
將虛擬機關閉後,轉換磁盤文件格式。
[root@localhost vdir]# virsh list --all
Id 名稱 狀態
----------------------------------------------------
- c01 關閉
[root@localhost vdir]# qemu-img convert -f raw -O qcow2 /vdir/c01.img /vdir/c01.qcow2
[root@localhost vdir]# ls /vdir/
c01.img c01.qcow2
修改c01.xml配置文件。
[root@localhost vdir]# vim /etc/libvirt/qemu/c01.xml
<disk type=‘file‘ device=‘disk‘>
<driver name=‘qemu‘ type=‘qcow2‘/>
#這裏的type從raw改成qcow2
<source file=‘/vdir/c01.qcow2‘/>
#將源文件類型也要修改
<target dev=‘vda‘ bus=‘virtio‘/>
<address type=‘pci‘ domain=‘0x0000‘ bus=‘0x00‘ slot=‘0x06‘ function=‘0x0‘/>
</disk>
通過yum安裝libguestfs-tools後,可以使用一些命令行工具查看qcow2文件。
[root@localhost vdir]# yum install libguestfd-tools -y
[root@localhost vdir]# virt-cat -a /vdir/c01.qcow2 /etc/sysconfig/network-scripts/ifcfg-eth0
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="dhcp"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="eth0"
DEVICE="eth0"
ONBOOT="yes"
MAC="52:54:00:AE:FC:8A"
虛擬機克隆
[root@localhost vdir]# virsh list --all
Id 名稱 狀態
----------------------------------------------------
- c01 關閉
#保證虛擬機已經關閉
[root@localhost vdir]# virt-clone -o c01 -n c02 -f /vdir/c02.qcow2
WARNING 設置圖形設備端口為自動端口,以避免相互沖突。
WARNING 當卷已經被全部分配後,需要的卷容量將超過可用池空間。(20480 M 需要的容量 > 12822 M 可用容量)
正在分配 ‘c02.qcow2‘ | 20 GB 00:00:32
成功克隆 ‘c02‘。
[root@localhost vdir]# virsh list --all
Id 名稱 狀態
----------------------------------------------------
- c01 關閉
- c02 關閉
虛擬機快照
KVM虛擬機要使用鏡像功能,磁盤格式必須為qcow2,下面對c01創建快照。
[root@localhost vdir]# virsh snapshot-create c01
已生成域快照 1533777836
查看虛擬機快照版本信息。
[root@localhost vdir]# virsh snapshot-current c01
<domainsnapshot>
<name>1533777836</name>
<state>shutoff</state>
<creationTime>1533777836</creationTime>
<memory snapshot=‘no‘/>
<disks>
.....省略
查看快照信息
[root@localhost vdir]# virsh snapshot-list c01
名稱 生成時間 狀態
------------------------------------------------------------
1533777836 2018-08-09 09:23:56 +0800 shutoff
恢復虛擬機至指定的快照狀態。
[root@localhost vdir]# virsh snapshot-revert c01 1533777836
KVM命令集管理虛擬機