J'ai récemment changé la checksum
propriété de l'un de mes systèmes de fichiers zfs non dupliqués sha256
de on
(fletcher4) pour mieux prendre en charge l'envoi de vapeurs de réplication dupliquées, comme dans cette commande zfs send -DR -I _starting-snaphot_ _ending-snapshot_
.
Cependant, la page de manuel zfs a ceci à dire sur send -D
:
Cet indicateur peut être utilisé quelle que soit la propriété dedup de l'ensemble de données, mais les performances seront bien meilleures si le système de fichiers utilise une somme de contrôle compatible avec la déduplication (par exemple, sha256).
La page de manuel zfs indique également ceci à propos de la checksum
propriété:
La modification de cette propriété affecte uniquement les données nouvellement écrites.
Je n'ai aucune envie de faire confiance à fletcher4. Le compromis est que, contrairement à SHA256, fletcher4 n'est pas une fonction de hachage pseudo-aléatoire et ne peut donc pas faire confiance pour ne pas entrer en collision. Il ne convient donc pour la déduplication que lorsqu'il est combiné avec l'option «vérifier», qui détecte et résout les collisions de hachage.
Comment puis-je mettre à jour les sommes de contrôle du système de fichiers, de préférence sans déconnecter le système?
zfs receive
jour les métadonnées d'un système de fichiers. Il me semble qu'il serait beaucoup plus rapide de simplement prendre les métadonnées telles quelles. Cependant, cela peut être impossible en raison du bloc de la somme de contrôle, plutôt que de la nature du niveau du fichier. Dans ce caszfs send | zfs receive
, constituerait une base acceptable pour une solution.