qemu-img磁盘管理
一. 磁盘镜像的基本管理
1.新建磁盘镜像文件
命令格式:qemu-img create -f 格式 磁盘镜像文件名 大小
[root@test kvmtest]# qemu-img create -f qcow2 test.qcow2 10G //qcow2格式
Formatting 'test.qcow2', fmt=qcow2 size=10737418240 encryption=off cluster_size=65536 lazy_refcounts=off
[root@test kvmtest]# qemu-img create -f raw test.raw 10G //raw格式
Formatting 'test.raw', fmt=raw size=10737418240
[root@test kvmtest]# ll
total 196
-rw-r--r--. 1 root root 197120 Mar 5 18:22 test.qcow2
-rw-r--r--. 1 root root 10737418240 Mar 5 18:22 test.raw
2.查看磁盘镜像文件
命令格式:qemu-img info 磁盘镜像文件名
[root@test kvmtest]# qemu-img info test.qcow2
image: test.qcow2
file format: qcow2
virtual size: 10G (10737418240 bytes)
disk size: 196K
cluster_size: 65536
Format specific information:
compat: 1.1
lazy refcounts: false
[root@test kvmtest]# qemu-img info test.raw
image: test.raw
file format: raw
virtual size: 10G (10737418240 bytes)
disk size: 0
3.转换磁盘镜像文件格式
[root@test kvmtest]# qemu-img convert -c -O qcow2 test.qcow2 test.raw
[root@test kvmtest]# ll
total 392
-rw-r--r--. 1 root root 197120 Mar 5 18:22 test.qcow2
-rw-r--r--. 1 root root 197120 Mar 5 18:29 test.raw
二. 快照管理
1.创建快照
[root@test kvm]# qemu-img snapshot -c snap1 test_clone.qcow2
[root@test kvm]# qemu-img snapshot -c snap2 test_clone.qcow2
2.查看创建的快照列表
[root@test kvm]# qemu-img snapshot -l test_clone.qcow2
Snapshot list:
ID TAG VM SIZE DATE VM CLOCK
1 snap1 0 2020-03-05 19:21:06 00:00:00.000
2 snap2 0 2020-03-05 19:21:12 00:00:00.000
3.恢复快照
[root@test kvm]# qemu-img snapshot -a snap1 test_clone.qcow2
4.删除快照
[root@test kvm]# qemu-img snapshot -d snap1 test_clone.qcow2
[root@test kvm]# qemu-img snapshot -l test_clone.qcow2
Snapshot list:
ID TAG VM SIZE DATE VM CLOCK
3 snap2 0 2020-03-05 19:21:12 00:00:00.000
三. virsh命令管理
1.修改KVM虚拟机配置
[root@test kvm]# virsh edit test_clone
<domain type='kvm'>
<name>test_clone</name>
<uuid>a681b617-bf8e-4436-9876-a244d1570346</uuid>
<memory unit='KiB'>1048576</memory>
<currentMemory unit='KiB'>1048576</currentMemory>
<vcpu placement='static'>4</vcpu> //将VCPU改为4
[root@test kvm]# virsh define /etc/libvirt/qemu/test_clone.xml
Domain test_clone defined from /etc/libvirt/qemu/test_clone.xml
[root@test kvm]# virsh dominfo test_clone
Id: -
Name: test_clone
UUID: a681b617-bf8e-4436-9876-a244d1570346
OS Type: hvm
State: shut off
CPU(s): 4
Max memory: 1048576 KiB
Used memory: 1048576 KiB
Persistent: yes
Autostart: disable
Managed save: no
Security model: selinux
Security DOI: 0
2.添加KVM虚拟机接口
[root@test kvm]# virsh domiflist test_clone
Interface Type Source Model MAC
-------------------------------------------------------
- bridge br0 virtio 52:54:00:95:48:99
[root@test kvm]# virsh attach-interface test_clone --type bridge --source br0
Interface attached successfully
[root@test kvm]# virsh domiflist test_clone
Interface Type Source Model MAC
-------------------------------------------------------
vnet1 bridge br0 virtio 52:54:00:95:48:99
vnet2 bridge br0 rtl8139 52:54:00:06:0d:c8
在KVM虚拟机中可见多一个接口
3.KVM虚拟机的迁移
①静态迁移(虚拟机关闭状态)
[root@test ~]# virsh domblklist test_clone //查看KVM虚拟机磁盘的存放路径
Target Source
------------------------------------------------
vda /home/kvm/test_clone.qcow2
hda -
[root@test ~]# cd /home/kvm/
[root@test kvm]# mkdir /data
[root@test kvm]# virsh dumpxml test_clone > /data/test.xml //导出虚拟机配置文件
[root@test ~]# scp /data/test.xml 192.168.88.41:/home/kvm/
[root@test ~]# scp /home/kvm/test_clone.qcow2 192.168.88.41:/home/kvm/
[root@test1 ~]# ll /home/kvm/ //已经将磁盘镜像文件和配置文件迁移到另外一台服务器上
total 1143492
-rw-------. 1 root root 1170931712 Mar 5 21:33 test_clone.qcow2
-rw-r--r--. 1 root root 3925 Mar 5 21:31 test.xml
[root@test1 kvm]# virsh define /home/kvm/test.xml //定义并注册虚拟机
Domain test_clone defined from /home/kvm/test.xml
[root@test1 kvm]# virsh start test_clone
[root@test1 kvm]# virsh list --all
Id Name State
----------------------------------------------------
2 test_clone running