Là bit rot trên ổ cứng là một vấn đề thực sự? Có thể làm gì về nó?


32

Một người bạn đang nói chuyện với tôi về vấn đề quay bit - bit trên các ổ bị lật ngẫu nhiên, làm hỏng dữ liệu. Cực kỳ hiếm, nhưng với đủ thời gian nó có thể là một vấn đề, và không thể phát hiện ra.

Ổ đĩa sẽ không coi đó là một khu vực xấu và các bản sao lưu sẽ chỉ nghĩ rằng tệp đã thay đổi. Không có kiểm tra liên quan để xác nhận tính toàn vẹn. Ngay cả trong thiết lập RAID, sự khác biệt sẽ được phát hiện nhưng sẽ không có cách nào để biết bản sao nhân bản nào là chính xác.

Đây có phải là một vấn đề thực sự? Và nếu vậy, những gì có thể được thực hiện về nó? Bạn tôi đang đề xuất zfs như một giải pháp, nhưng tôi không thể tưởng tượng việc làm phẳng các máy chủ tệp của chúng tôi tại nơi làm việc, đưa vào Solaris và zfs ..


1
Dưới đây là một bài viết về nó: web.archive.org/web/20090228135946/http://www.sun.com/bigadmin/...
scobi

Tôi vừa gặp lỗi SMART thông minh trên đĩa Seagate 200 GB cũ. Các bit, họ đã mục nát quá nhiều :-( Đó là sáu tháng ngắn hạn bảo hành 5 năm, vì vậy tôi có thể sẽ nhận được một sự thay thế mà không có nhiều phiền phức.
ThatGraemeGuy

Câu trả lời:


24

Trước hết: Hệ thống tệp của bạn có thể không có tổng kiểm tra, nhưng chính ổ cứng của bạn đã có chúng. Có SMART chẳng hạn. Tất nhiên, một khi có quá nhiều bit bị lật, lỗi không thể sửa được. Và nếu bạn thực sự không may mắn, các bit có thể thay đổi theo cách mà tổng kiểm tra sẽ không trở nên không hợp lệ; sau đó lỗi sẽ không được phát hiện. Vì vậy, những điều khó chịu có thể xảy ra; nhưng tuyên bố rằng việc lật bit ngẫu nhiên sẽ ngay lập tức làm hỏng dữ liệu của bạn là không có thật.

Tuy nhiên, vâng, khi bạn đặt hàng nghìn tỷ bit vào ổ cứng, chúng sẽ không tồn tại như thế mãi mãi; Đó là một vấn đề thực sự! ZFS có thể kiểm tra tính toàn vẹn mỗi khi dữ liệu được đọc; điều này tương tự như những gì ổ cứng của bạn đã tự làm, nhưng đó là một biện pháp bảo vệ khác mà bạn đang hy sinh một số dung lượng, vì vậy bạn sẽ tăng khả năng chống lại tham nhũng dữ liệu.

Khi hệ thống tệp của bạn đủ tốt, xác suất xảy ra lỗi mà không được phát hiện trở nên thấp đến mức bạn không phải quan tâm đến điều đó nữa và bạn có thể quyết định rằng có tổng kiểm tra được tích hợp trong định dạng lưu trữ dữ liệu bạn đang sử dụng là không cần thiết

Dù bằng cách nào: không, không thể phát hiện ra .

Nhưng một hệ thống tập tin, tự nó, không bao giờ có thể là một đảm bảo rằng mọi thất bại có thể được phục hồi từ; Đó không phải là viên đạn bạc. Bạn vẫn phải có bản sao lưu và kế hoạch / thuật toán để làm gì khi phát hiện ra lỗi.


Ok, theo wikipedia ( en.wikipedia.org/wiki/Error_detection_and_correction ) các ổ đĩa cứng hiện đại sử dụng CRC để phát hiện lỗi và cố gắng khôi phục bằng cách sử dụng phục hồi lỗi kiểu đĩa compact. Nó đủ tốt cho tôi.
scobi

1
Nhưng nếu CRC được lưu trữ ở cùng một vị trí (khu vực) với dữ liệu thì điều này sẽ không giúp ích cho tất cả các trường hợp lỗi. Ví dụ: nếu có dữ liệu lỗi định vị đầu có thể được ghi vào một khu vực sai - nhưng với tổng kiểm tra chính xác => bạn sẽ không thể phát hiện ra vấn đề. Đó là lý do tại sao tổng kiểm tra trong ZFS được lưu trữ riêng biệt với dữ liệu họ bảo vệ.
knweiss

ZFS có bảo trì như Windows bây giờ không? Điều đó về cơ bản viết lại dữ liệu thường xuyên để làm mới mã hóa từ tính.
TomTom

Các ổ cứng hiện đại không sử dụng CRC, chúng sử dụng mã Hamming rất khác nhau. Đó là điều tương tự mà bộ nhớ ECC sử dụng. Lỗi lật một bit có thể được sửa, lỗi lật hai bit có thể được phát hiện nhưng không được sửa, lật ba hoặc nhiều bit và dữ liệu thực sự bị hỏng. Trong mọi trường hợp, không có sự thay thế cho sao lưu dữ liệu. ZFS và các hệ thống tập tin khác không cung cấp bất kỳ sự bảo vệ nào tốt hơn mã Hamming trên các đĩa của ổ đĩa. Nếu dữ liệu bị hỏng thì ZFS sẽ không cứu bạn.
Jody Lee Bruchon

@JodyLeeBruchon Bạn có một nguồn trên mã Hamming đang được sử dụng chủ yếu bây giờ? Việc thu thập thông tin tôi đã làm gần đây đã chỉ ra rằng các nhà sản xuất ổ đĩa vẫn đang sử dụng CRC-RS. 1 2
Ian Schoonover

16

Vâng, đó là một vấn đề, chủ yếu là khi kích thước ổ đĩa tăng lên. Hầu hết các ổ đĩa SATA có tỷ lệ URE (lỗi đọc không chính xác) là 10 ^ 14. Hoặc cứ 12TB dữ liệu được đọc theo thống kê, nhà cung cấp ổ đĩa cho biết ổ đĩa sẽ trả về lỗi đọc (thông thường bạn có thể tra cứu chúng trên các tờ đặc tả ổ đĩa). Ổ đĩa sẽ tiếp tục hoạt động tốt cho tất cả các phần khác của ổ đĩa. Ổ đĩa Enterprise FC & SCSI thường có tốc độ URE là 10 ^ 15 (120TB) cùng với một số lượng nhỏ ổ đĩa SATA giúp giảm bớt nó.

Tôi chưa bao giờ thấy các đĩa ngừng quay cùng một lúc, nhưng tôi đã có một khối lượng raid5 gặp phải vấn đề này (5 năm trước với các ổ PATA tiêu dùng 5400RPM). Ổ đĩa không thành công, nó được đánh dấu là đã chết và việc xây dựng lại xảy ra với ổ đĩa dự phòng. Vấn đề là trong quá trình xây dựng lại, ổ đĩa thứ hai không thể đọc được một khối dữ liệu nhỏ đó. Tùy thuộc vào những người thực hiện cuộc đột kích, toàn bộ âm lượng có thể bị chết hoặc chỉ khối nhỏ đó có thể chết. Giả sử chỉ có một khối bị chết, nếu bạn cố đọc nó, bạn sẽ gặp lỗi nhưng nếu bạn viết cho nó, ổ đĩa sẽ chuyển nó sang vị trí khác.

Có nhiều phương pháp để bảo vệ chống lại: raid6 (hoặc tương đương) bảo vệ chống lại lỗi đĩa kép là tốt nhất, các phương pháp bổ sung là một hệ thống tệp nhận biết URE như ZFS, sử dụng các nhóm đột kích nhỏ hơn để bạn có cơ hội đánh vào ổ URE thấp hơn giới hạn (phản chiếu các ổ đĩa lớn hoặc raid5 ổ đĩa nhỏ hơn), chà đĩa & SMART cũng giúp nhưng thực sự không phải là một biện pháp bảo vệ mà chỉ được sử dụng cùng với một trong các phương pháp trên.

Tôi quản lý gần 3000 trục chính trong các mảng và các mảng liên tục cọ rửa các ổ đĩa tìm kiếm URE tiềm ẩn. Và tôi nhận được một dòng chúng khá liên tục (mỗi khi nó tìm thấy nó sẽ sửa nó trước lỗi ổ đĩa và thông báo cho tôi), nếu tôi đang sử dụng raid5 thay vì raid6 và một trong những ổ đĩa đã chết hoàn toàn ... Tôi gặp rắc rối nếu nó đánh vào một số vị trí nhất định.


2
Những đơn vị bạn đang nói chuyện? "10 ^ 14" không phải là "tỷ lệ".
Jay Sullivan

2
Đơn vị sẽ là "10 ^ 14 bit đọc mỗi lỗi", tương đương với 12 TB đọc cho mỗi lỗi.
Jo Liss

2
Và tất nhiên, hãy nhớ rằng tỷ lệ lỗi thường được trích dẫn theo các lỗi toàn phần trên mỗi bit được đọc. Vì vậy, khi nhà sản xuất tuyên bố tỷ lệ URE ở mức 10 ^ -14, điều họ thực sự muốn nói là xác suất của bất kỳ khu vực ngẫu nhiên nào đọc trúng URE là 10 ^ -14 và nếu có, thì toàn bộ khu vực đó sẽ quay trở lại là không thể đọc được. Đó và thực tế rằng đây là số liệu thống kê; trong thế giới thực, các URE có xu hướng xuất hiện theo đợt.
một CVn

9

Các ổ đĩa cứng thường không mã hóa các bit dữ liệu dưới dạng một miền từ tính - các nhà sản xuất ổ cứng luôn nhận thức được rằng các miền từ tính có thể lật và xây dựng trong việc phát hiện và sửa lỗi cho các ổ đĩa.

Nếu một chút lật, ổ đĩa chứa đủ dữ liệu dư thừa mà nó có thể và sẽ được sửa chữa trong lần tiếp theo mà khu vực đó được đọc. Bạn có thể thấy điều này nếu bạn kiểm tra số liệu thống kê SMART trên ổ đĩa, như 'Tỷ lệ lỗi chính xác'.

Tùy thuộc vào các chi tiết của ổ đĩa, nó thậm chí có thể phục hồi từ nhiều hơn một bit bị lật trong một sector. Sẽ có một giới hạn về số lượng bit bị lật có thể được sửa chữa một cách âm thầm và có thể là một giới hạn khác đối với số lượng bit bị lật có thể được phát hiện là một lỗi (ngay cả khi không còn đủ dữ liệu đáng tin cậy để sửa nó)

Tất cả điều này cho thấy thực tế là các ổ đĩa cứng có thể tự động sửa hầu hết các lỗi khi chúng xảy ra và có thể phát hiện đáng tin cậy hầu hết các phần còn lại. Bạn sẽ phải có một số lượng lớn lỗi bit trong một khu vực duy nhất, tất cả đã xảy ra trước khi khu vực đó được đọc lại và các lỗi sẽ phải như vậy để các mã phát hiện lỗi nội bộ xem lại đó là dữ liệu hợp lệ, trước bạn sẽ có một thất bại thầm lặng. Điều đó là không thể, và tôi chắc chắn rằng các công ty điều hành các trung tâm dữ liệu rất lớn sẽ thấy điều đó xảy ra (hay đúng hơn là nó xảy ra và họ không thấy điều đó xảy ra), nhưng chắc chắn đó không phải là vấn đề lớn như bạn nghĩ.


2
Trên thực tế, tôi thường xuyên có lỗi bit-rot (ở những phần tôi không đọc nhiều), mà hệ thống âm thầm phục hồi (không chính xác). Nếu ít nhất nó thông báo cho tôi rằng có bit-rot, tôi có thể đọc lại dữ liệu để khôi phục dữ liệu trước khi nó không thể phục hồi được; và nếu không thể khôi phục, tôi có thể so sánh nó với ổ cứng khác.
Alex

Alex, vui lòng kiểm tra dữ liệu ổ cứng SMART SMART của bạn và RAM hệ thống để xác minh không có vấn đề nào khác gây ra tham nhũng. Thối bit / tham nhũng ngẫu nhiên là cực kỳ hiếm, vì vậy có thể có một cái gì đó khác đang xảy ra với máy của bạn.
Brian D.

@BrianD. Một vấn đề là, tôi giữ các ổ cứng bên trong vật liệu đóng gói (cách điện) của chúng; điều này đã khiến các ổ đĩa cứng nóng hơn 60 ° C trong khi làm việc, trong nhiều ngày liên tục. Điều đó có vẻ như là một lý do chính đáng tại sao bit thối có thể xảy ra?
Alex

Điều này chắc chắn không được khuyến khích, vì hầu hết các ổ cứng đều có các lỗ khí nhỏ trong đó không nên được che đậy để hoạt động đúng. Cho dù vấn đề của bạn là bit-rot hay điều gì khác, tôi sẽ chạy chẩn đoán đầy đủ trên PC để xác minh mọi thứ đang hoạt động chính xác.
Brian D.

4

Các ổ đĩa cứng hiện đại (kể từ 199x) không chỉ có tổng kiểm tra mà còn có ECC, có thể phát hiện và sửa lỗi khá nhiều bit "ngẫu nhiên". Xem: http://en.wikipedia.org/wiki/SMART .

Mặt khác, một số lỗi trong trình điều khiển chương trình cơ sở và thiết bị cũng có thể làm hỏng dữ liệu trong một số trường hợp hiếm gặp (nếu không QA sẽ bắt lỗi) rất khó phát hiện nếu bạn không có tổng kiểm tra cấp cao hơn. Các trình điều khiển thiết bị ban đầu cho SATA và NIC đã làm hỏng dữ liệu trên cả Linux và Solaris.

Tổng kiểm tra ZFS chủ yếu nhắm vào các lỗi trong phần mềm cấp thấp hơn. Hệ thống lưu trữ / cơ sở dữ liệu mới hơn như Hypertable cũng có tổng kiểm tra cho mỗi bản cập nhật để bảo vệ chống lại các lỗi trong hệ thống tệp :)


3

Về mặt lý thuyết, đây là nguyên nhân gây lo ngại. Thực tế mà nói, đây là một phần lý do mà chúng tôi giữ các bản sao lưu con / cha mẹ / ông bà. Sao lưu hàng năm cần được lưu giữ ít nhất 5 năm, IMO và nếu bạn gặp trường hợp này sẽ quay trở lại xa hơn, thì rõ ràng tệp không quan trọng.

Trừ khi bạn đang xử lý các bit có khả năng hóa lỏng não của ai đó , tôi không chắc chắn rủi ro so với phần thưởng hoàn toàn phụ thuộc vào việc thay đổi hệ thống tệp.


1
Tôi không thấy sao lưu trẻ em / cha mẹ / ông bà giúp đỡ. Không có cách nào để biết với hệ thống đó nếu một bit bị lật vì người dùng có ý định thay đổi nó hoặc nếu ổ đĩa tự thực hiện. Không phải không có một tổng kiểm tra của một số loại.
scobi

Có nhiều bản sao lưu sẽ không giúp ích nếu bạn không biết rằng dữ liệu trong đó là tốt. Bạn có thể kiểm tra thủ công các tệp của mình, nhưng ZFS thực hiện tự động hơn rất nhiều và giúp quản lý hệ thống tệp dễ dàng.
Amok

1
Có các bản sao lưu trở lại xa hơn một tuần / tháng sẽ tăng khả năng bạn có một bản sao tốt của tệp. Tôi có lẽ đã có thể rõ ràng hơn về điều đó.
Kara Marfia

1
Vấn đề là: làm thế nào để bạn biết bạn có một bản sao xấu? Và làm thế nào để bạn biết bản sao nào được sao lưu là bản sao tốt? Một cách tự động.
scobi

Tôi đã thấy có thể một tập tin cứ sau vài năm rơi vào tình trạng tham nhũng có thể là kết quả của sự thối rữa bit, nhưng tôi có thể bị Hội chứng Cá nhỏ. Tôi có thể hiểu rằng các bản sao lưu là vô dụng, và tôi sẽ xóa nếu nó gây khó chịu. Đó là thời gian tốt để đọc các câu trả lời khác, bất kể. ;)
Kara Marfia

2

Vâng, đó là một vấn đề.

Đây là một trong những lý do tại sao RAID6 hiện đang thịnh hành (cũng như tăng kích thước HD tăng thời gian để xây dựng lại một mảng). Có hai khối chẵn lẻ cho phép sao lưu bổ sung.

Các hệ thống RAID hiện cũng thực hiện chức năng Chà lọc RAID định kỳ đọc các khối đĩa, kiểm tra đối với các phần tử và thay thế nó nếu phát hiện thấy một khối bị hỏng.


Hãy cẩn thận, tính toàn vẹn dữ liệu không phải là một tính năng của tất cả các hệ thống RAID.
duffbeer703

1
Với các ổ đĩa terabyte, có rất nhiều bit chia sẻ số phận và vùng lưu trữ vật lý của một bit quá nhỏ, vấn đề này trở nên quan trọng hơn. Đồng thời, xác suất thất bại tăng rất nhiều với các ổ terabyte mà RAID6 là không đủ trừ khi bạn đặt nhiều ổ trong nhóm, giả sử 8 hoặc nhiều hơn. Với số lượng ổ đĩa nhỏ hơn, tốt hơn là sử dụng dải gương hay còn gọi là RAID 10. Cả RAID 6 (raidz2) và RAID 10 (zpool tạo gương mypool c0t1d0 c0t2d0 gương c0t3d0 c0t4d0) đều có thể trên ZFS.
Michael Dillon

RAID không thể biết dữ liệu nào tốt và dữ liệu nào không thể sửa lỗi, nó chỉ có thể phát hiện ra chúng.
Amok

Amuck: Không phải là một phần của "Tiêu chuẩn RAID", nhưng mọi hệ thống RAID tiên tiến (phần cứng, v.v.) đều làm được điều đó
Matt Rogish

@ Michael Dillion - Độ tin cậy của RAID6 không tăng khi bạn tăng số lượng ổ đĩa. Đối với tất cả dữ liệu chỉ có dữ liệu gốc + 2 chẵn lẻ. Tăng số lượng ổ đĩa là tồi tệ hơn cho độ tin cậy vì nó làm tăng tỷ lệ thất bại ổ đĩa có thể mà không làm tăng sự dư thừa của bất kỳ dữ liệu. Lý do duy nhất để tăng số lượng ổ đĩa, là để tăng kích thước bộ nhớ khả dụng của bạn.
Brian D.

1

Liên quan đến tuyên bố của OP về RAID không hiểu dữ liệu nào là tốt so với xấu.

Bộ điều khiển RAID sử dụng ít nhất, các bit chẵn lẻ (lẻ / chẵn) trên mỗi dải dữ liệu. Điều này là cho tất cả mọi thứ; các sọc dữ liệu trên đĩa và các sọc dữ liệu chẵn lẻ (sao lưu).

Điều này có nghĩa là đối với bất kỳ loại RAID nào có dải dự phòng (RAID 5/6), bộ điều khiển có thể biết chính xác nếu dải dữ liệu gốc đã thay đổi, cũng như, nếu dải dữ liệu dự phòng đã thay đổi.

Nếu bạn giới thiệu một dải dự phòng thứ hai như RAID6, bạn phải có 3 sọc dữ liệu, trên ba ổ đĩa khác nhau bị hỏng, tất cả đều tương ứng với cùng một dữ liệu tệp thực tế. Hãy nhớ rằng hầu hết các hệ thống RAID sử dụng các sọc dữ liệu tương đối nhỏ (128kb trở xuống), do đó, khả năng "thối bit" xếp thành cùng một 128kb, của cùng một tệp, thực tế là không thể.


0

Đó là một vấn đề trong thế giới thực, vâng, nhưng câu hỏi là bạn có nên lo lắng về nó hay không.

Nếu bạn chỉ có một hdd đầy hình ảnh, nó có thể không đáng nỗ lực. Nó chứa đầy dữ liệu khoa học quan trọng của nó, nó có thể là một loại câu chuyện khác, bạn có ý tưởng.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.