13,009
回編集
256行目: | 256行目: | ||
== 仮想マシンのスナップショット == | == 仮想マシンのスナップショット == | ||
===== スナップショットの概要 ===== | ===== スナップショットの概要 ===== | ||
KVMにおけるスナップショットとは、仮想マシンのある時点の状態を保持する機能である。 | KVMにおけるスナップショットとは、仮想マシンのある時点の状態を保持する機能である。<br> | ||
スナップショットは、一般的なバックアップのように全てのデータを保持せずに、仮想マシン上の変更が発生した時に差分のみを保持する。 | スナップショットは、一般的なバックアップのように全てのデータを保持せずに、仮想マシン上の変更が発生した時に差分のみを保持する。<br> | ||
<br> | |||
スナップショットは、仮想マシン本体またはスナップショットファイルのいずれかが破損すると、元の状態に戻すことはできなくなるので、 | スナップショットは、仮想マシン本体またはスナップショットファイルのいずれかが破損すると、元の状態に戻すことはできなくなるので、<br> | ||
バックアップの代わりとして利用する場合は注意すること。 | バックアップの代わりとして利用する場合は注意すること。<br> | ||
<br> | |||
スナップショットの作成手順として、親スナップショット(external)を作成して、それから派生する子スナップショット(internal)を作成する。 | スナップショットの作成手順として、親スナップショット(external)を作成して、それから派生する子スナップショット(internal)を作成する。<br> | ||
<br> | <br> | ||
===== 親スナップショット(external)の取得 ===== | ===== 親スナップショット(external)の取得 ===== | ||
<code>virsh snapshot-create-as</code>コマンドを使用することで、仮想マシンの親スナップショット(external)を取得することができる。 | <code>virsh snapshot-create-as</code>コマンドを使用することで、仮想マシンの親スナップショット(external)を取得することができる。<br> | ||
スナップショットの取得は、仮想マシンが起動中でも可能である。 | スナップショットの取得は、仮想マシンが起動中でも可能である。<br> | ||
sudo virsh snapshot-create-as <仮想マシン名> <スナップショット名> "<コメント>" --disk-only --atomic | sudo virsh snapshot-create-as <仮想マシン名> <スナップショット名> "<コメント>" --disk-only --atomic | ||
<br> | <br> | ||
===== 親スナップショット(external)の復元 ===== | ===== 親スナップショット(external)の復元 ===== | ||
親スナップショットの復元は、<code>virsh snapshot-revert</code>コマンドを使用する。 | 親スナップショットの復元は、<code>virsh snapshot-revert</code>コマンドを使用する。<br> | ||
親スナップショットの復元については、子スナップショット(internal)を取得してから行うこと。 | 親スナップショットの復元については、子スナップショット(internal)を取得してから行うこと。<br> | ||
sudo virsh snapshot-revert <仮想マシン名> <スナップショット名> | sudo virsh snapshot-revert <仮想マシン名> <スナップショット名> | ||
<br> | <br> | ||
===== 親スナップショット(external)の削除 ===== | ===== 親スナップショット(external)の削除 ===== | ||
親スナップショット(external)を削除する場合は、<code>--metadata</code>オプションを付けることで削除できる。 | 親スナップショット(external)を削除する場合は、<code>--metadata</code>オプションを付けることで削除できる。<br> | ||
sudo virsh snapshot-delete <仮想マシン名> <親スナップショット名> --metadata | sudo virsh snapshot-delete <仮想マシン名> <親スナップショット名> --metadata | ||
<br> | <br> | ||
===== 子スナップショット(internal)の取得 ===== | ===== 子スナップショット(internal)の取得 ===== | ||
親スナップショット(external)を取得した状態で、以下のコマンドを実行すると、スナップショットを取得することができる。 | 親スナップショット(external)を取得した状態で、以下のコマンドを実行すると、スナップショットを取得することができる。<br> | ||
なお、スナップショット名は親スナップショット(external)や他の子スナップショット(internal)と被らないようにすること。 | なお、スナップショット名は親スナップショット(external)や他の子スナップショット(internal)と被らないようにすること。<br> | ||
sudo virsh snapshot-create-as <仮想マシン名> <子スナップショット名> "<コメント>" | sudo virsh snapshot-create-as <仮想マシン名> <子スナップショット名> "<コメント>" | ||
<br> | <br> | ||
===== 子スナップショット(internal)の復元 ===== | ===== 子スナップショット(internal)の復元 ===== | ||
特定のスナップショットに復元するには、<code>virsh snapshot-revert</code>コマンドを使用する。 | 特定のスナップショットに復元するには、<code>virsh snapshot-revert</code>コマンドを使用する。<br> | ||
指定するスナップショットは、子スナップショット(internal)を指定するようにする。 | 指定するスナップショットは、子スナップショット(internal)を指定するようにする。<br> | ||
sudo virsh snapshot-revert <仮想マシン名> <子スナップショット名> | sudo virsh snapshot-revert <仮想マシン名> <子スナップショット名> | ||
<br> | <br> | ||
===== 子スナップショット(internal)の削除 ===== | ===== 子スナップショット(internal)の削除 ===== | ||
<code>virsh snapshot-delete</code>コマンドを実行することで、スナップショットを削除することができる。 | <code>virsh snapshot-delete</code>コマンドを実行することで、スナップショットを削除することができる。<br> | ||
sudo virsh snapshot-delete <仮想マシン名> <子スナップショット名> | sudo virsh snapshot-delete <仮想マシン名> <子スナップショット名> | ||
<br> | <br> | ||
301行目: | 301行目: | ||
<br> | <br> | ||
===== スナップショットのツリー表示 ===== | ===== スナップショットのツリー表示 ===== | ||
スナップショットの派生関係を確認する場合、<code>--tree</code>オプションを付けることで確認できる。 | スナップショットの派生関係を確認する場合、<code>--tree</code>オプションを付けることで確認できる。<br> | ||
sudo virsh snapshot-list <仮想マシン名> --tree | sudo virsh snapshot-list <仮想マシン名> --tree | ||
<br> | <br> | ||
313行目: | 313行目: | ||
<br> | <br> | ||
===== 現在の状態が、どのスナップショットからの派生か確認する ===== | ===== 現在の状態が、どのスナップショットからの派生か確認する ===== | ||
<code>virsh snapshot-list</code>コマンドに<code>--tree --current</code>オプションを使用することで確認することができる。 | <code>virsh snapshot-list</code>コマンドに<code>--tree --current</code>オプションを使用することで確認することができる。<br> | ||
sudo virsh snapshot-list <仮想マシン名> --tree --current | sudo virsh snapshot-list <仮想マシン名> --tree --current | ||
<br> | <br> |