Como testar se dois instantâneos btrfs são idênticos ou não?

3

Tanto quanto eu sei, para determinar se um instantâneo é idêntico a outro, devemos verificar se Received UUID do destino é igual ao UUID do instantâneo de origem ou não.

Mas desta vez, este procedimento não pode ser aplicado:

root@aea3:/mnt/zencefil/snapshots/rootfs# btrfs send rootfs.20170705T1334/ | pv | btrfs receive /mnt/aea3/manual-snapshots/                                              
At subvol rootfs.20170705T1334/                                                                                                                                          
At subvol rootfs.20170705T1334                                                                                                                                          
37.8GiB 0:37:27 [17.2MiB/s] [                                                                            
root@aea3:/mnt/zencefil/snapshots/rootfs# btrfs sub show rootfs.20170705T1334/
/mnt/zencefil/snapshots/rootfs/rootfs.20170705T1334
        Name:                   rootfs.20170705T1334
        UUID:                   e66ace1b-3efc-5d40-b3ca-af000110e89d
        Parent UUID:            85bc19f1-9d61-da43-a4be-40c717aee652
        Received UUID:          c6f65496-f21d-c049-b2e2-44007b269dc6
        Creation time:          2017-07-10 12:47:16 +0300
        Subvolume ID:           2561
        Generation:             4331
        Gen at creation:        4327
        Parent ID:              257
        Top level ID:           257
        Flags:                  readonly
        Snapshot(s):
                                snapshots/rootfs/rootfs.20170710T1242
root@aea3:/mnt/zencefil/snapshots/rootfs# btrfs sub show /mnt/aea3/manual-snapshots/rootfs.20170705T1334/
/mnt/aea3/manual-snapshots/rootfs.20170705T1334
        Name:                   rootfs.20170705T1334
        UUID:                   53bc9463-2fe6-9a41-b17d-a0a8dc5e6086
        Parent UUID:            -
        Received UUID:          c6f65496-f21d-c049-b2e2-44007b269dc6
        Creation time:          2017-07-12 10:36:50 +0300
        Subvolume ID:           1832
        Generation:             64698
        Gen at creation:        64627
        Parent ID:              1831
        Top level ID:           1831
        Flags:                  readonly
        Snapshot(s):
root@aea3:/mnt/zencefil/snapshots/rootfs# btrfs --version
btrfs-progs v4.11

No entanto, quando eu criar e enviar um instantâneo de teste e enviá-lo nas mesmas unidades na mesma máquina, ele funciona como esperado:

root@aea3:/mnt/zencefil/test# btrfs send mytest1/ | pv | btrfs receive /mnt/aea3/test/
At subvol mytest1/
At subvol mytest1
 540 B 0:00:00 [73.1KiB/s] [                                                                                                                                        ]
root@aea3:/mnt/zencefil/test# btrfs sub show mytest1/
/mnt/zencefil/test/mytest1
        Name:                   mytest1
        UUID:                   3a932406-8a81-5047-9a23-9333564752c2
        Parent UUID:            -
        Received UUID:          -
        Creation time:          2017-07-12 11:41:22 +0300
        Subvolume ID:           2567
        Generation:             4369
        Gen at creation:        4367
        Parent ID:              5
        Top level ID:           5
        Flags:                  readonly
        Snapshot(s):
root@aea3:/mnt/zencefil/test# btrfs sub show /mnt/aea3/test/mytest1/
/mnt/aea3/test/mytest1
        Name:                   mytest1
        UUID:                   98d59473-5a47-7742-bcf7-47262b9cada2
        Parent UUID:            -
        Received UUID:          3a932406-8a81-5047-9a23-9333564752c2
        Creation time:          2017-07-12 11:44:16 +0300
        Subvolume ID:           1844
        Generation:             64738
        Gen at creation:        64737
        Parent ID:              5
        Top level ID:           5
        Flags:                  readonly
        Snapshot(s):

Qual é o ponto em falta aqui?

    
por ceremcem 12.07.2017 / 10:56

1 resposta

-1

No primeiro caso, o instantâneo /mnt/zencefil/snapshots/rootfs/rootfs.20170705T1334 foi recebido de outro local antes. O UUID original é armazenado como Received UUID . Ao transmitir esse instantâneo novamente, esse Received UUID também é usado para a cópia.

Portanto, para determinar se um instantâneo é idêntico a (que é cópia de) outro, verifique se UUID recebido de destino é igual a UUID recebido de origem, se presente, ou UUID de origem caso contrário.

    
por 20.10.2017 / 13:47