La réponse de Nerdwaller à propos de l'utilisation tee
pour transférer et calculer simultanément une somme de contrôle est une bonne approche si vous êtes principalement préoccupé par la corruption sur le réseau. Il ne vous protégera pas contre la corruption sur le chemin du disque, etc., car il prend la somme de contrôle avant qu'il ne frappe le disque.
Mais je voudrais ajouter quelque chose:
1 TiB / 40 minutes ≈ 437 MiB / sec 1 .
C'est assez rapide, en fait. N'oubliez pas que si vous n'avez pas beaucoup de RAM, cela doit revenir du stockage. Donc, la première chose à vérifier est de regarder iostat -kx 10
pendant que vous exécutez vos sommes de contrôle; en particulier, vous voulez faire attention à la %util
colonne. Si vous fixez les disques (près de 100%), la réponse est d'acheter un stockage plus rapide.
Sinon, comme d'autres affiches l'ont mentionné, vous pouvez essayer différents algorithmes de somme de contrôle. MD4, MD5 et SHA-1 sont tous conçus pour être des hachages cryptographiques (bien qu'aucun de ceux-ci ne devrait plus être utilisé à cette fin; tous sont considérés comme trop faibles). En termes de vitesse, vous pouvez les comparer avec openssl speed md4 md5 sha1 sha256
. J'ai jeté dans SHA256 pour avoir au moins un hachage encore assez fort.
The 'numbers' are in 1000s of bytes per second processed.
type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes
md4 61716.74k 195224.79k 455472.73k 695089.49k 820035.58k
md5 46317.99k 140508.39k 320853.42k 473215.66k 539563.35k
sha1 43397.21k 126598.91k 283775.15k 392279.04k 473153.54k
sha256 33677.99k 75638.81k 128904.87k 155874.91k 167774.89k
De ce qui précède, vous pouvez voir que MD4 est le plus rapide et SHA256 le plus lent. Ce résultat est typique sur du matériel de type PC, au moins.
Si vous voulez encore plus de performances (au prix d'être triviales à falsifier et également moins susceptibles de détecter la corruption), vous voulez regarder un hachage CRC ou Adler. Des deux, Adler est généralement plus rapide, mais plus faible. Malheureusement, je ne connais aucune implémentation de ligne de commande vraiment rapide; les programmes sur mon système sont tous plus lents que le md4 d'OpenSSL.
Donc, votre meilleur pari en termes de vitesse est openssl md4 -r
(le -r
fait ressembler à une sortie md5sum).
Si vous êtes prêt à faire de la compilation et / ou une programmation minimale, consultez le code de Mark Adler sur Stack Overflow et également xxhash . Si vous avez SSE 4.2, vous ne pourrez pas battre la vitesse de l'instruction matérielle CRC.
1 1 TiB = 1024⁴ octets; 1 Mio = 1024² octets. Vient à 17417MB / sec avec des puissances de 1000 unités.