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…