La respuesta de Nerdwaller sobre el uso tee
para transferir y calcular simultáneamente una suma de verificación es un buen enfoque si está principalmente preocupado por la corrupción en la red. Sin embargo, no lo protegerá contra la corrupción en el camino al disco, etc., ya que toma la suma de comprobación antes de que llegue al disco.
Pero me gustaría agregar algo:
1 TiB / 40 minutos ≈ 437 MiB / seg 1 .
Eso es bastante rápido, en realidad. Recuerde que a menos que tenga mucha RAM, eso tiene que volver del almacenamiento. Entonces, lo primero que debe verificar es observar iostat -kx 10
mientras ejecuta sus sumas de verificación; en particular quieres prestar atención a la %util
columna. Si está vinculando los discos (cerca del 100%), la respuesta es comprar un almacenamiento más rápido.
De lo contrario, como se mencionó en otros carteles, puede probar diferentes algoritmos de suma de verificación. MD4, MD5 y SHA-1 están diseñados para ser hashes criptográficos (aunque ninguno de ellos debe usarse para ese fin; todos se consideran demasiado débiles). En cuanto a la velocidad, puede compararlos con openssl speed md4 md5 sha1 sha256
. He lanzado SHA256 para tener al menos un hash lo suficientemente fuerte.
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 lo anterior, puede ver que MD4 es el más rápido y SHA256 el más lento. Este resultado es típico en hardware similar a una PC, al menos.
Si desea aún más rendimiento (a costa de ser trivial para manipular, y también es menos probable que detecte la corrupción), desea ver un hash CRC o Adler. De los dos, Adler suele ser más rápido, pero más débil. Desafortunadamente, no conozco ninguna implementación de línea de comando realmente rápida; Los programas en mi sistema son todos más lentos que el md4 de OpenSSL.
Por lo tanto, su mejor apuesta en cuanto a velocidad es openssl md4 -r
( -r
lo que hace que se vea como salida md5sum)
Si está dispuesto a hacer una compilación y / o programación mínima, vea el código de Mark Adler en Stack Overflow y también xxhash . Si tiene SSE 4.2, no podrá superar la velocidad de la instrucción CRC de hardware.
1 1 TiB = 1024⁴ bytes; 1 MiB = 1024² bytes. Viene a ≈417MB / seg con potencias de 1000 unidades.