Câu trả lời của Nerdwaller về việc sử dụng tee
để chuyển đồng thời và tính toán tổng kiểm tra là một cách tiếp cận tốt nếu bạn chủ yếu lo lắng về tham nhũng qua mạng. Tuy nhiên, điều đó sẽ không bảo vệ bạn chống lại tham nhũng trên đường vào đĩa, v.v., vì nó sẽ kiểm tra trước khi nó chạm vào đĩa.
Nhưng tôi muốn thêm một cái gì đó:
1 TiB / 40 phút ≈ 437 MiB / giây 1 .
Điều đó khá nhanh, thực sự. Hãy nhớ rằng trừ khi bạn có nhiều RAM, điều đó phải quay trở lại từ bộ lưu trữ. Vì vậy, điều đầu tiên để kiểm tra là xem iostat -kx 10
khi bạn chạy tổng kiểm tra; đặc biệt bạn muốn chú ý đến %util
cột. Nếu bạn đang chốt các đĩa (gần 100%), thì câu trả lời là mua dung lượng nhanh hơn.
Mặt khác, như các áp phích khác đã đề cập, bạn có thể thử các thuật toán tổng kiểm tra khác nhau. MD4, MD5 và SHA-1 đều được thiết kế để băm mật mã (mặc dù không nên sử dụng chúng cho mục đích đó nữa; tất cả đều được coi là quá yếu). Tốc độ khôn ngoan, bạn có thể so sánh chúng với openssl speed md4 md5 sha1 sha256
. Tôi đã ném vào SHA256 để có ít nhất một hàm băm đủ mạnh.
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
Trong số trên, bạn có thể thấy MD4 là nhanh nhất và SHA256 chậm nhất. Kết quả này là điển hình trên phần cứng giống như PC, ít nhất.
Nếu bạn muốn hiệu suất cao hơn nữa (với chi phí tầm thường để giả mạo và cũng ít có khả năng phát hiện tham nhũng), bạn muốn xem xét hàm băm CRC hoặc Adler. Trong hai, Adler thường nhanh hơn, nhưng yếu hơn. Thật không may, tôi không biết về bất kỳ triển khai dòng lệnh nào thực sự nhanh; tất cả các chương trình trên hệ thống của tôi đều chậm hơn so với md4 của OpenSSL.
Vì vậy, tốc độ đặt cược tốt nhất của bạn là khôn ngoan openssl md4 -r
( -r
làm cho nó trông giống như đầu ra md5sum).
Nếu bạn sẵn sàng thực hiện một số chương trình biên dịch và / hoặc tối thiểu, hãy xem mã của Mark Adler trên Stack Overflow và cả xxhash . Nếu bạn có SSE 4.2, bạn sẽ không thể đánh bại tốc độ của lệnh CRC phần cứng.
1 1 TiB = 1024⁴ byte; 1 MiB = 1024² byte. Có tốc độ ≈417MB / giây với công suất 1000 đơn vị.