ZFSスナップショットとロールバックがどのように機能するかについて、混乱しています。いくつかのzvolを含むzpoolがあります(それぞれがmirrorvdevのパーティションから作成されています)。私はこのようなスナップショットを作成します:
~$ Sudo zfs snapshot nvme-tank@roll_test
次に、zpoolのzvolの1つにあるVMを起動して、テストファイルを作成します。
~$ echo "This is a test of the rollback system" > rbtest.txt
次に、VM=をシャットダウンしてロールバックを実行します。概念を理解しているので、ロールバックは、rbtestを実行する前に、nvme-tank内のすべてをスナップショットを取得したときの状態に戻す必要があります。 txt。
~$ Sudo zfs rollback nvme-tank@roll_test
スナップショットはそこにあります:
~$ zfs list -t all -r nvme-tank
NAME USED AVAIL REFER MOUNTPOINT
nvme-tank 887G 12.1G 24K /media/nvme-tank
nvme-tank@nov82018 0B - 24K -
nvme-tank@roll_test 0B - 24K -
nvme-tank/ext4-zvol 474G 449G 37.8G -
nvme-tank/ntfs-zvol 413G 23.9G 401G -
それで、私はスナップショットが何をすることになっているのかを誤解している、それらを誤って使用している、または私のzfsで何かが壊れていますか?
nvme-tank
のみのスナップショットを作成しましたが、nvme-tank/ext4-zvol
またはnvme-tank/ntfs-zvol
のいずれもスナップショットを作成していません。これらの1つには、作成したファイルが含まれています。そのため、ファイルを作成したデータセットとは異なるデータセットのスナップショットを作成していたため、何も起こりませんでした。
スナップショットを子孫のデータセット/ zvolsに再帰的にする場合は、zfs snapshot -r
を使用して、再帰的なスナップショットを明示的に要求する必要があります。ただし、zfs rollback
を使用してロールバックできるのは、一度に1つの特定のデータセット/ zvolのみです。