web-dev-qa-db-ja.com

現在のデータに影響を与えずにZFSスナップショットの内容にアクセスするにはどうすればよいですか?

時間ごとのスナップショットを取得するZFSデータセットがあります。昨日、元に戻す必要があるファイルの一部に変更が加えられました。ただし、データセットには、元に戻してはならない進行中の変更があります。

データの現在のコピーを乱すことなくスナップショットにアクセスするための私のオプションは何ですか?読み取り専用モードでスナップショットを新しいマウントポイントにマウントできますか?

9
STW

私がzfsで遊んだのは久しぶりですが、zfs list -t snapshotを使用して、使用可能なスナップショットを見つけ、zfsマウントポイントの下の特別な.zfsディレクトリにあるファイルにアクセスできるはずです。

[~]# zfs list -t snapshot
NAME                       USED  AVAIL  REFER  MOUNTPOINT
mypool                    1.49G   527M   528M  /mnt/zfspool
mypool@snap1                28K      -   993M  -
mypool@snap2                28K      -   993M  -
mypool@snap3                28K      -   993M  -

[~]# cd /mnt/zfspool/.zfs/snapshot/snap1
[snap1]# ls

IIRC、スナップショットは既に読み取り専用であるため、スナップショットディレクトリのデータを変更しようとしても失敗します。実際のfsでデータが変更された場合、スナップショットは、変更前のデータをコピーしてスナップショットの整合性を維持するため、増大するはずです。

スナップショットを編集するには、スナップショットを新しい場所にzfs cloneする必要があります(この時点で、スナップショットではなくなります)。

でも言ったように、久しぶりなのでまずテストしてみてください...

ref: http://www.googlux.com/zfs-snapshot.html

14
jimbobmcgee