Quand on réplique des datasets zfs entre deux serveurs, il arrive qu’une erreur se produise et que le clone temporaire ne soit pas automatiquement effacé, ce qui ensuite bloque les réplications…
On essai de détruire le snapshot
[root@zfs] ~# zfs list -H -o name -t snapshot | xargs -n1 zfs destroy
cannot destroy 'tank/vol/hsm@auto-20111122.0715-1w': dataset already exists
Comment s’en sortir
On liste les snapshots, notez qu’on ne vois pas le clone
[root@zfs] ~# zfs list -H -o name -t snapshot
tank/vol/hsm@auto-20111122.0715-1w
Trouver le nom du clone qui empêche la destruction du snapshot, c’est celui avec le % dans le nom
[root@zfs] ~# zfs -d tank
Dataset mos [META], ID 0, cr_txg 4, 178M, 183 objects
Dataset tank/shared [ZPL], ID 32, cr_txg 49, 31.4K, 4 objects
Dataset tank/vol/hsm/%auto-20111122.0730-1w [ZPL], ID 17221, cr_txg 2005726, 584G, 2009587 objects
Dataset tank/vol/hsm@auto-20111122.0715-1w [ZPL], ID 17215, cr_txg 2004014, 584G, 2009587 objects
Dataset tank/vol/hsm [ZPL], ID 77, cr_txg 436135, 584G, 2009587 objects
Dataset tank/doc [ZPL], ID 52, cr_txg 435968, 32.9K, 5 objects
Dataset tank/backup [ZPL], ID 44, cr_txg 185, 2.04T, 6375302 objects
Dataset tank/tof [ZPL], ID 38, cr_txg 52, 32.2K, 5 objects
Dataset tank [ZPL], ID 16, cr_txg 1, 37.4K, 8 objects
On détruite le coupable
[root@zfs] ~# zfs destroy tank/vol/hsm/%auto-20111122.0730-1w
cannot open 'tank/vol/hsm/%auto-20111122.0730-1w': dataset does not exist
Une erreur se produit, mais si regarde le clone a disparu
[root@zfs] ~# zfs -d tank
Dataset mos [META], ID 0, cr_txg 4, 178M, 177 objects
Dataset tank/shared [ZPL], ID 32, cr_txg 49, 31.4K, 4 objects
Dataset tank/vol/hsm@auto-20111122.0715-1w [ZPL], ID 17215, cr_txg 2004014, 584G, 2009587 objects
Dataset tank/vol/hsm [ZPL], ID 77, cr_txg 436135, 584G, 2009587 objects
Dataset tank/doc [ZPL], ID 52, cr_txg 435968, 32.9K, 5 objects
Dataset tank/backup [ZPL], ID 44, cr_txg 185, 2.04T, 6375302 objects
Dataset tank/tof [ZPL], ID 38, cr_txg 52, 32.2K, 5 objects
Dataset tank [ZPL], ID 16, cr_txg 1, 37.4K, 8 objects
on peut maintenant détruire le snapshot
[root@zfs] ~# zfs destroy tank/vol/hsm@auto-20111122.0715-1w
Pas d’erreur, on vérifie
root@zfs] ~# zfs -d tank
Dataset mos [META], ID 0, cr_txg 4, 178M, 173 objects
Dataset tank/shared [ZPL], ID 32, cr_txg 49, 31.4K, 4 objects
Dataset tank/vol/hsm [ZPL], ID 77, cr_txg 436135, 584G, 2009587 objects
Dataset tank/doc [ZPL], ID 52, cr_txg 435968, 32.9K, 5 objects
Dataset tank/backup [ZPL], ID 44, cr_txg 185, 2.04T, 6375302 objects
Dataset tank/tof [ZPL], ID 38, cr_txg 52, 32.2K, 5 objects
Dataset tank [ZPL], ID 16, cr_txg 1, 37.4K, 8 objects
Il a disparu, la réplication va pouvoir repartir…