• ベストアンサー

LVMのスナップショット時に戻す方法

LVMでスナップショットを取り始めてから、後でスナップショット時に戻す方法は、一旦スナップショットのバックアップを取得してから元のパーティションに戻すしか方法がないでしょうか? 元のパーティションをアンマウント後に、スナップショットを復元(マージ?)出来ないできないかなと思っています。そうすればスナップショット取得時からの変更部分だけで済むので、復旧しやすいかと。 何か上手い方法があれば教えてください。 よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
noname#208124
noname#208124
回答No.3

標準ツリーではありませんがパッチがあります

参考URL:
http://kerneltrap.org/Linux/LVM_Snapshot_Merging,http://people.redhat.com/mpatocka/patches/lvm/
kuma_xx
質問者

お礼

dummさん ありがとうございます。 英語なので詳しくはわかりませんが、lvconvertのパッチみたいですね。 試しに、RPMSにパッチを当ててみましたが、ビルド中にエラーが出てしまいました(^^; とりあえず、標準の機能として無いものなので、今のところは諦めます。

その他の回答 (2)

  • k_izumo
  • ベストアンサー率50% (68/134)
回答No.2

以前スナップショットされていますよね? もしスナップショットされてない場合は元の状態に戻せないです。 スナップショットを以下のファイルとします。 /dev/backup/sda.snapshot20081129 ちなみにリストアする前にスナップショットを確認できます。 [root@hosts root]# mount -o ro /dev/backup/sda.snapshot20081129 /mnt [root@hosts root]# ls /mnt 確認が終わったら必ずアンマウントして下さい。 [root@hosts root]# umount /mnt ここからリストアです。 [root@hosts root]# dump 0f /tmp/restore.dmp /dev/backup/sda.snapshot20081129 [root@hosts root]# lvm lvremove /dev/backup/sda.snapshot20081129 [root@hosts root]# restore rf /tmp/restore.dmp この3つのコマンドでリストアは完了します。 lvm lvremoveコマンドはスナップショットを削除しています。 このスナップショットが残ったままだといつまでも古いデータをスナップしたままになる為です。 もし、ここのバックアップのみ必要な場合はリストア後に再度スナップショットを取得して下さい。 どのようなアプリを動かし、どこのデバイスをスナップショットするのか解らないのですが りストア時はシングルユーザモードにする事をお勧めします。

kuma_xx
質問者

お礼

k_izumoさん、ありがとうございます。 やはりスナップショットの状態に戻すには、スナップショットを一度dumpなどで移す必要があるんですね。 参考になりました。

  • k_izumo
  • ベストアンサー率50% (68/134)
回答No.1

すみません。 前半で何をどうしたいのかよく解りませんでした・・・ LVMはその名の通りスナップショットですので 以前の状態に復元できるだけです。 質問での内容をやりたいならまず (1)現在のリストアターゲットのトップディレクトリで # tar zcf /backup.tar.gz * を実行する。(仮に現在の状態をバックアップする。) (2)backup.tar.gzに影響ないようファイルを別の媒体に移動させる。 (3)LVMのスナップショットを復元する。 (4)先ほど(2)で取っておいたbackup.tar.gzを展開する。 ぐらいでしょうか。 変更のあったファイルを特定するとかであれば以前にTripwireを導入していれば検出できると思いますが 質問の答えになっているかどうか・・・

kuma_xx
質問者

補足

回答ありがとうございます。 こんなに早く回答がくるとは思っていませんでしたのでびっくりしました。 行いたいことは、Windowsの「システムの復元」みたいなことです。 インストーラなどプログラムを動作させて、問題があれば実行する前に戻したいのです。 自分の認識では、論理ボリュームのスナップショットを作成した時から、論理ボリュームの変更があった場合、変更前の情報がスナップショットに保管されていると思っています。(間違っていたらごめんなさい。) なので、一時的にスナップショットを作成しておいて、論理ボリュームに変更を加えた後で、また元に戻すことが出来ないかと思いました。 テストだけであれば、スナップショットを利用してテストを行えばよいのですが、実際に導入する時の保険として、スナップショットを利用出来ないかなと考えました。 確かに、スナップショット自体はありますので、スナップショットから別の論理ボリュームへ移せば済みますが、元の論理ボリュームの容量分を用意しなければならないので、それよりは元の論理ボリュームに、スナップショットに記録されている部分だけ戻すことが出来ないかなと。 と、ここまで書いて気づいたのですが、元の論理ボリュームにスナップショットの情報を書き込めたとしても、万が一その最中に失敗すれば如何することも出来なくなりますね。 まあ、その時は諦めるとして、スナップショット時の情報を元の論理ボリュームに移すことが出来る方法があれば教えてください。 よろしくお願いします。

関連するQ&A