(KVM)スナップショットを取る

投稿者: | 2016年11月13日

みなさんこんにちは。ヒロウミです。

仮想マシンに対して大きな変更を加える時に問題が発生することが考えられます。そんなとき変更前の状態に戻せるようにKVMでスナップショットを取る方法をメモっておきます。

※スナップショット機能

スナップショット機能とは、特定の時点で仮想ディスクの状態(スナップショット)を保存しておき、変更が行われた後でもそのスナップショットの状態に戻すことのできる機能です。(KVM徹底入門 Linuxカーネル仮想化基盤構築ガイド より引用)

なおスナップショットを取る対象の仮想ディスクイメージの種類は「qcow2」形式とする。

仮想マシンのディスクイメージ形式を確認する
# qemu-img info rproxy-ubuntu.img 
image: rproxy-ubuntu.img
file format: qcow2           ←qcow2形式なのでスナップショット機能をサポートしている
virtual size: 20G (21474836480 bytes)
disk size: 2.5G
cluster_size: 65536

仮想マシンは停止させておく必要がある
# virsh shutdown rproxy-ubuntu

対象となるイメージファイルを確認する
# ll /var/lib/libvirt/images/
合計 14672624
-rw-r--r--. 1 qemu qemu  3015573504 11月 13 21:59 16-centos6-rails.img
-rw-r--r--. 1 root root      197120  9月 20 19:18 node-js-ubuntu.img
-rw-r--r--. 1 qemu qemu  1371348992 11月 13 21:59 node-js.img
-rw-------. 1 qemu qemu 21478375424 11月 13 21:59 nodered01-ubuntu.img
-rw-r--r--. 1 qemu qemu 21478375424 11月 13 21:15 nodered02-ubuntu.img
-rw-r--r--. 1 qemu qemu  1947992064 11月 13 21:59 open-vpn.img
-rw-------. 1 root root 21478441472 11月 13 21:51 rproxy-ubuntu.img  ← 今回はこれ
-rw-r--r--. 1 qemu qemu  1884422144 11月 13 21:59 samba-server.img

スナップショットを取る
# qemu-img snapshot -c ssl-mosquitto rproxy-ubuntu.img

スナップショットを確認する
# qemu-img snapshot -l rproxy-ubuntu.imgSnapshot list:
ID        TAG                 VM SIZE                DATE       VM CLOCK
1         ssl-mosquitto             0 2016-11-13 21:51:33   00:00:00.000

以上でスナップショットが取れました。もし仮想マシンの操作に失敗してしまったら上記のスナップショットともとの仮想ディスクイメージがあれば復元できます。スナップショットによる復元方法は以下の通りです。

※仮想マシンは停止してから行わないとエラーになるので注意
# qemu-img snapshot -a ssl-mosquitto rproxy-ubuntu.img

 

参考サイト:

kvm ( qemu-kvm ) の仮想ディスク・イメージ

KVM でのスナップショット

参考書籍:

KVM徹底入門 Linuxカーネル仮想化基盤構築ガイド