Zfsスナップショットの機能を利用しようとしています。私の側でどのように構成されているかを少し説明します。
zpool create vol0 mirror /dev/sda /dev/sdb
zfs create -o volblocksize=128K -V 15T vol0/pprovol
ZFSボリュームを入手しました:
NAME USED AVAIL REFER MOUNTPOINT
vol0 15.0T 16.6T 100K /vol0
vol0/pprovol 15.0T 31.6T 1.99G -
そして、私はブロックデバイスを持っています:
Disk /dev/zd0: 15 TiB, 16492674416640 bytes, 32212254720 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 131072 bytes
I/O size (minimum/optimal): 131072 bytes / 131072 bytes
Mkfs.xfs/dev/zd0を使用してxfsとしてフォーマットし、マウントされたポイントにマウントしました
次に、このzd0デバイスのスナップショットを作成します。 xfsファイルシステムで行われた変更をロールバックできるようにします。
これは可能ですか?そして、どうすればこれを行うことができますか?
それは私の/ vol0で機能しますが、それは私が必要とするものではありません。この辺りで助けを求めてください!ありがとう。
ZFSセットアップに加えてXFSでスナップショットを管理する方法は次のとおりです。
(免責事項:(ppro)データをZFSに格納するためのより安全でインテリジェントな方法があります)
ZFSスナップショットを実行すると、スナップショットがスナップショットリストに表示されます。
そこから、スナップショットを複製して、ブロックデバイスとして表示する必要があります。
zfs clone vol1/pprovol2@snap_daily-2016-12-23-2359 vol1/recovery
これにより、vol1/recovery
という名前の新しいzfsファイルシステムが作成され、同時に新しい/dev/zdX
デバイスが作成されます。 dmesg | tail
は実際のデバイス名を表示します。おそらく/dev/zd16
になります。
これはあなたのクローンです。マウントしたい場合は、以下を実行するだけです。
mount -t xfs -o nouuid /dev/zd16 /mountpoint
複製されたデバイスの名前は元のXFSファイルシステムとしてUUIDであるため、nouuid
が必要です。
他のデータセットと同じ方法で、ZFSボリュームのスナップショットを作成できます。一貫性のある状態にするために、最初にファイルシステムをフリーズすることをお勧めします。幸い、XFSはこれを簡単にする数少ないファイルシステムの1つです。
# xfs_freeze -f /mount
# zfs snapshot vol0/pprovol@snap1
# xfs_freeze -u /mount
ほとんどのZFSシステムでは、Linuxで試したことはありませんが、...@snapshot
の下に/dev
デバイスが表示されます。そのデバイスを読み取り専用でマウントしてファイルを回復できるはずです。
完全にロールバックしたい場合は、ライブファイルシステムをアンマウントし、zfs rollback
を実行してから、再度マウントします。