A reversão do teste do ZFS não funciona como esperado

3

Estou confuso sobre como as capturas instantâneas e a reversão do ZFS devem funcionar. Eu tenho um zpool contendo alguns zvols (cada um feito de partições de um mirrorvdev). Eu faço um instantâneo como este:

~$ sudo zfs snapshot nvme-tank@roll_test

Então inicializo uma VM localizada em um dos zvols no zpool e cria um arquivo de teste

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

Depois, desligo a VM e faço a reversão. Pelo que entendi o conceito, a reversão deve reverter tudo no nvme-tank para o estado em que estava quando tirei o snapshot, antes de fazer o rbtest.txt.

~$ sudo zfs rollback nvme-tank@roll_test

Eu, então, reinicio o VM, checo por rbtest.txt, e lá está ele, ainda está lá!

O instantâneo está lá:

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

Então, estou entendendo mal o que os instantâneos devem fazer, usando-os incorretamente, ou algo está quebrado com o meu zfs?

    
por Thoughtcraft 09.11.2018 / 00:30

1 resposta

3

Você só tirou um snapshot de nvme-tank , mas não tirou um instantâneo de nvme-tank/ext4-zvol ou nvme-tank/ntfs-zvol , um deles contém o arquivo criado. Então, nada aconteceu porque você estava capturando um conjunto de dados diferente daquele em que você criou o arquivo.

Se você deseja que os instantâneos sejam recursivos para conjuntos de dados / zvols descendentes, é necessário solicitar explicitamente instantâneos recursivos, com zfs snapshot -r . No entanto, você só pode reverter um conjunto de dados / zvol específico por vez com zfs rollback .

    
por 09.11.2018 / 01:09