web-dev-qa-db-ja.com

ZFSスナップショットzd0ブロックデバイス

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で機能しますが、それは私が必要とするものではありません。この辺りで助けを求めてください!ありがとう。

2
g00gle

ZFSセットアップに加えてXFSでスナップショットを管理する方法は次のとおりです。
(免責事項:(ppro)データをZFSに格納するためのより安全でインテリジェントな方法があります)

  • スナップショットを撮ります。
  • スナップショットを特定します。
  • スナップショットのクローンを作成します。
  • 複製されたブロックデバイスをマウントします。

ZFSスナップショットを実行すると、スナップショットがスナップショットリストに表示されます。

enter image description here

そこから、スナップショットを複製して、ブロックデバイスとして表示する必要があります。

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が必要です。

3
ewwhite

他のデータセットと同じ方法で、ZFSボリュームのスナップショットを作成できます。一貫性のある状態にするために、最初にファイルシステムをフリーズすることをお勧めします。幸い、XFSはこれを簡単にする数少ないファイルシステムの1つです。

# xfs_freeze -f /mount
# zfs snapshot vol0/pprovol@snap1
# xfs_freeze -u /mount

ほとんどのZFSシステムでは、Linuxで試したことはありませんが、...@snapshotの下に/devデバイスが表示されます。そのデバイスを読み取り専用でマウントしてファイルを回復できるはずです。

完全にロールバックしたい場合は、ライブファイルシステムをアンマウントし、zfs rollbackを実行してから、再度マウントします。

1
USD Matt