Откат теста 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
,