Ответ Nerdwaller об использовании tee
для одновременной передачи и вычисления контрольной суммы является хорошим подходом, если вы в первую очередь беспокоитесь о коррупции в сети. Однако он не защитит вас от повреждения на пути к диску и т.д., Поскольку он принимает контрольную сумму перед тем, как попасть на диск.
Но я бы хотел кое-что добавить:
1 ТиБ / 40 минут ≈ 437 МБ / с 1.
Это довольно быстро, на самом деле. Помните, что если у вас нет много оперативной памяти, это должно вернуться из хранилища. Поэтому первое, что нужно проверить, это посмотреть iostat -kx 10
во время выполнения контрольных сумм; в частности, вы хотите обратить внимание на столбец %util
. Если вы привязываете диски (около 100%), то ответ заключается в том, чтобы купить более быстрое хранилище.
В противном случае, как упоминалось в других постерах, вы можете попробовать разные алгоритмы контрольной суммы. MD4, MD5 и SHA-1 спроектированы как криптографические хеши (хотя ни один из них больше не должен использоваться для этой цели; все они считаются слишком слабыми). По скорости вы можете сравнить их со openssl speed md4 md5 sha1 sha256
. Я добавил в SHA256 хотя бы один достаточно сильный хеш.
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
Из вышесказанного видно, что MD4 самый быстрый, а SHA256 самый медленный. По крайней мере, этот результат типичен для ПК-подобного оборудования.
Если вы хотите еще большей производительности (за счет тривиального изменения , а также с меньшей вероятностью обнаружения коррупции), вам нужно взглянуть на хэш CRC или Adler. Адлер, как правило, быстрее, но слабее. К сожалению, я не знаю каких-либо действительно быстрых реализаций командной строки; все программы в моей системе работают медленнее, чем md4 в OpenSSL.
Таким образом, ваша лучшая ставка по скорости - openssl md4 -r
(-r
делает вывод похожим на вывод md5sum).
Если вы хотите выполнить некоторую компиляцию и / или минимальное программирование, посмотрите код Марка Адлера в Stack Overflow, а также xxhash. Если у вас SSE 4.2, вы не сможете побить скорость аппаратной инструкции CRC.
11 TiB = 1024 байта; 1 МиБ = 1024² байт. Достигается до ≈417 МБ / с при энергопотреблении 1000 единиц.