Post

Libvirt 创建整机快照

最近在尝试使用 ansible 部署 ceph 作为对象存储使用,因为没有部署 openstack,所以只能手动对虚拟机进行快照以及回滚操作了。但是发现 virsh 没有对挂载盘进行 snapshot 相关的操作。只能对虚拟机整机级别的快照回滚。回忆 cindervolume 的快照,取决于后端存储是否支持,例如 cephrbd 就提供了 snapshot 的操作。这篇文章基于 libvirt 本身进行快照操作。

快照步骤

1. 创建硬盘

1
# qemu-img create -f qcow2 /var/lib/libvirt/images/centos7-ceph-xfs.disk 100G -o preallocation=full

注:支持快照功能需要硬盘为 qcow2 格式。

2. 挂载硬盘

1
2
# virsh attach-disk --domain centos7-test /var/lib/libvirt/images/centos7-ceph-xfs.disk --target vdb --persistent --config
# virsh shutdown centos7-test

注:挂载之后还需要修改 xml 配置文件,默认生成的依然是 raw 格式。

3. 修改xml配置

1
2
3
4
5
6
7
8
# virsh edit centos7-test
<disk type='file' device='disk'>
      <driver name='qemu' type='qcow2'/>
      <source file='/var/lib/libvirt/images/centos7-ceph-xfs.disk'/>
      <target dev='vdb' bus='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/>
</disk>
# virsh start centos7-test

4. 创建快照

1
# virsh snapshot-create centos7-test
This post is licensed under CC BY 4.0 by the author.