Откат теста ZFS не работает должным образом

Я не совсем понимаю, как должны работать моментальные снимки ZFS и откат. У меня есть zpool, содержащий пару zvols (каждый из которых сделан из разделов mirrorvdev). Я делаю снимок, как это:

~$ sudo zfs snapshot nvme-tank@roll_test

Затем я загружаю виртуальную машину, расположенную на одном из zvols в zpool, и создаю тестовый файл.

~$ echo "This is a test of the rollback system" > rbtest.txt

Затем я выключаю ВМ и выполняю откат. Как я понимаю концепцию, откат должен вернуть все в nvme-tank к состоянию, в котором он был, когда я делал снимок, до создания rbtest.txt.

~$ sudo zfs rollback nvme-tank@roll_test

Затем я перезагружаю виртуальную машину, проверяю файл rbtest.txt, и он все еще там!

Снимок есть:

~$ 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?

1 ответ

Решение

Вы только снимок nvme-tank, но вы не сделали ни одного снимка nvme-tank/ext4-zvol или же nvme-tank/ntfs-zvolодин из которых содержит файл, который вы создали. Так что ничего не произошло, потому что вы делали снимок другого набора данных, чем тот, в котором вы создали файл.

Если вы хотите, чтобы моментальные снимки были рекурсивными для дочерних наборов данных /zvols, вы должны явно запросить рекурсивные моментальные снимки с zfs snapshot -r, Однако вы можете откатить только один конкретный набор данных / zvol одновременно с zfs rollback,

Другие вопросы по тегам