Jawaban Nerdwaller tentang penggunaan tee
untuk secara bersamaan mentransfer dan menghitung checksum adalah pendekatan yang baik jika Anda terutama khawatir tentang korupsi melalui jaringan. Itu tidak akan melindungi Anda dari korupsi dalam perjalanan ke disk, dll., Karena mengambil checksum sebelum hits disk.
Tetapi saya ingin menambahkan sesuatu:
1 TiB / 40 menit ≈ 437 MiB / detik 1 .
Sebenarnya itu cukup cepat. Ingatlah bahwa kecuali Anda memiliki banyak RAM, itu harus kembali dari penyimpanan. Jadi hal pertama yang harus diperiksa adalah menonton iostat -kx 10
saat Anda menjalankan checksum Anda; khususnya Anda ingin memperhatikan %util
kolom. Jika Anda mengelompokkan disk (mendekati 100%), maka jawabannya adalah membeli penyimpanan yang lebih cepat.
Jika tidak, seperti poster lain yang disebutkan, Anda dapat mencoba berbagai algoritma checksum. MD4, MD5, dan SHA-1 semuanya dirancang untuk hash kriptografi (meskipun tidak ada yang harus digunakan untuk tujuan itu lagi; semua dianggap terlalu lemah). Dari segi kecepatan, Anda dapat membandingkannya openssl speed md4 md5 sha1 sha256
. Saya telah melempar SHA256 untuk memiliki setidaknya satu hash yang masih cukup kuat.
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
Dari hal di atas, Anda dapat melihat bahwa MD4 adalah yang tercepat, dan SHA256 yang paling lambat. Hasil ini khas pada perangkat keras seperti PC, setidaknya.
Jika Anda ingin lebih banyak kinerja (dengan biaya sepele untuk mengutak-atik, dan juga lebih kecil kemungkinannya untuk mendeteksi korupsi), Anda ingin melihat CRC atau hash Adler. Dari keduanya, Adler biasanya lebih cepat, tetapi lebih lemah. Sayangnya, saya tidak mengetahui adanya implementasi command line yang sangat cepat; program pada sistem saya semua lebih lambat dari md4 OpenSSL.
Jadi, kecepatan terbaik taruhan Anda adalah openssl md4 -r
( -r
membuatnya terlihat seperti output md5sum).
Jika Anda bersedia melakukan kompilasi dan / atau pemrograman minimal, lihat kode Mark Adler di Stack Overflow dan juga xxhash . Jika Anda memiliki SSE 4.2, Anda tidak akan bisa mengalahkan kecepatan instruksi CRC perangkat keras.
1 1 TiB = 1024⁴ byte; 1 MiB = 1024² byte. Datang ke ≈417MB / detik dengan kekuatan-of-1000 unit.