Dữ liệu trên ổ cứng có thể xuống cấp mà không có cảnh báo về thiệt hại không?
Tất cả chúng ta đều lo lắng về việc giữ cho dữ liệu và tệp của mình an toàn và nguyên vẹn, nhưng liệu dữ liệu có thể bị hỏng và được người dùng truy cập mà không có thông báo hoặc cảnh báo về bất kỳ vấn đề nào không? Bài hỏi và trả lời của SuperUser hôm nay có câu trả lời cho câu hỏi của độc giả lo lắng.
Phiên hỏi và trả lời hôm nay đến với chúng tôi nhờ sự hỗ trợ của SuperUser - một phân ngành của Stack Exchange, một nhóm các trang web Hỏi & Đáp do cộng đồng điều khiển.
Hình ảnh lịch sự của khái quát hóa (Flickr).
Câu hỏi
Đầu đọc Superoer topo morto muốn biết liệu dữ liệu trên ổ cứng có thể xuống cấp và được truy cập mà không có cảnh báo về thiệt hại:
Có phải sự xuống cấp về mặt vật lý của ổ cứng có thể khiến các bit bị lật trong nội dung của tệp mà không cần hệ điều hành nhận thấy sự thay đổi và thông báo cho người dùng về nó khi đọc tệp không? Ví dụ: có thể thay đổi một tệp pv (nhị phân 01110000) trong tệp văn bản ASCII thành một tệp qQ (nhị phân 01110001), sau đó khi người dùng mở tệp, họ sẽ thấy tập tin q mà không biết rằng đã xảy ra lỗi?
Tôi quan tâm đến các câu trả lời liên quan đến FAT, NTFS hoặc ReFS (nếu nó tạo ra sự khác biệt). Tôi muốn biết liệu hệ điều hành có bảo vệ người dùng khỏi điều này không, hoặc liệu chúng ta có nên kiểm tra dữ liệu của mình về sự chênh lệch giữa các bản sao theo thời gian không.
Dữ liệu trên ổ cứng có thể xuống cấp và có thể được truy cập mà không có cảnh báo về thiệt hại?
Câu trả lời
Guntram Blohm, người đóng góp cho SuperUser có câu trả lời cho chúng tôi:
Vâng, có một thứ gọi là bit rot. Nhưng không, nó sẽ không ảnh hưởng đến người dùng không được chú ý.
Khi một ổ đĩa cứng ghi một sector cho các platters, nó không chỉ ghi các bit giống như cách chúng được lưu trữ trong RAM, nó sử dụng một mã hóa để đảm bảo không có chuỗi nào của cùng một bit quá dài. Nó cũng thêm các mã ECC cho phép nó sửa các lỗi ảnh hưởng đến một vài bit và phát hiện các lỗi ảnh hưởng đến nhiều hơn một vài bit.
Khi ổ cứng đọc sector, nó sẽ kiểm tra các mã ECC này và sửa chữa dữ liệu nếu cần (và nếu có thể). Điều gì xảy ra tiếp theo phụ thuộc vào hoàn cảnh và phần sụn của ổ cứng, bị ảnh hưởng bởi sự chỉ định của ổ đĩa.
- Nếu một khu vực có thể được đọc và không có vấn đề về mã ECC, thì nó sẽ được chuyển cho hệ điều hành.
- Nếu một khu vực có thể được sửa chữa dễ dàng, phiên bản đã sửa chữa có thể được ghi vào đĩa, đọc lại, sau đó xác minh để xác định xem lỗi có phải là ngẫu nhiên không (ví dụ: tia vũ trụ, v.v.) hoặc nếu có lỗi hệ thống với phương tiện truyền thông.
- Nếu ổ cứng xác định rằng có lỗi với phương tiện truyền thông, nó sẽ phân bổ lại khu vực.
- Nếu một khu vực có thể không đọc hoặc sửa được sau một vài lần đọc (trên ổ cứng được chỉ định là ổ cứng RAID), thì ổ cứng sẽ từ bỏ, phân bổ lại khu vực đó và báo cho bộ điều khiển biết rằng có vấn đề . Nó dựa vào bộ điều khiển RAID để tái cấu trúc khu vực từ các thành viên RAID khác và ghi lại vào ổ cứng bị lỗi, sau đó lưu trữ nó trong khu vực được phân bổ lại (hy vọng không có vấn đề gì).
- Nếu một khu vực không thể được đọc hoặc sửa trên ổ cứng của máy tính để bàn, thì ổ cứng đó sẽ tham gia vào nhiều nỗ lực hơn để đọc nó. Tùy thuộc vào chất lượng của ổ cứng, điều này có thể liên quan đến việc định vị lại đầu, kiểm tra xem liệu có bit nào bị lật khi đọc liên tục hay không, kiểm tra bit nào là yếu nhất và một vài thứ khác. Nếu bất kỳ nỗ lực nào trong số này thành công, ổ cứng sẽ phân bổ lại khu vực và ghi lại dữ liệu đã sửa chữa.
Đây là một trong những điểm khác biệt chính giữa các ổ đĩa cứng được bán dưới dạng máy tính để bàn, máy tính để bàn, máy tính để bàn, máy tính để bàn, máy tính để bàn. Ổ cứng RAID chỉ có thể từ bỏ nhanh chóng và khiến bộ điều khiển sửa chữa khu vực này để tránh độ trễ về phía người dùng. Một ổ cứng máy tính để bàn sẽ tiếp tục thử đi thử lại vì người dùng đợi vài giây có lẽ tốt hơn là nói với họ dữ liệu bị mất. Và một ổ cứng video có giá trị tốc độ dữ liệu không đổi hơn phục hồi lỗi vì khung bị hỏng thường sẽ không được chú ý.
Ở bất cứ giá nào, ổ cứng sẽ biết nếu đã bị thối bit, thông thường sẽ phục hồi từ nó, và nếu không thể, nó sẽ báo cho bộ điều khiển sẽ lần lượt nói với trình điều khiển sẽ báo cho hệ điều hành. Sau đó, tùy thuộc vào hệ điều hành để trình bày lỗi cho người dùng và hành động. Đây là lý do tại sao cybernard nói:
- Bản thân tôi chưa bao giờ chứng kiến một lỗi nào, nhưng tôi đã thấy rất nhiều ổ đĩa cứng trong đó toàn bộ các lĩnh vực đã thất bại.
Ổ cứng sẽ biết liệu có vấn đề gì với một sector không, nhưng nó sẽ không biết bit nào bị lỗi. Một bit bị lỗi sẽ luôn bị ECC bắt.
Xin lưu ý rằng chkdsk và các hệ thống tệp tự động sửa chữa không giải quyết việc sửa chữa dữ liệu trong các tệp. Chúng được nhắm mục tiêu tham nhũng trong cấu trúc của chính hệ thống tệp, giống như sự khác biệt về kích thước của tệp giữa mục nhập thư mục và số khối được phân bổ. Tính năng tự phục hồi của NTFS sẽ phát hiện hư hỏng cấu trúc và ngăn nó ảnh hưởng đến dữ liệu của bạn hơn nữa, nhưng nó sẽ không sửa chữa bất kỳ dữ liệu nào đã bị hỏng.
Tất nhiên, có những lý do khác khiến dữ liệu có thể bị hỏng. Ví dụ, RAM xấu trên bộ điều khiển có thể thay đổi dữ liệu trước khi được gửi đến ổ cứng. Trong trường hợp đó, không có cơ chế nào trên ổ cứng sẽ phát hiện hoặc sửa chữa dữ liệu và đây có thể là một lý do khiến cấu trúc của một hệ thống tệp bị hỏng. Các lý do khác bao gồm lỗi phần mềm, mất điện trong khi ghi vào ổ cứng (mặc dù điều này được giải quyết bằng cách ghi nhật ký hệ thống tệp) hoặc trình điều khiển hệ thống tệp xấu (trình điều khiển NTFS trên Linux mặc định chỉ đọc trong một thời gian dài vì NTFS được thiết kế ngược, không được ghi lại và các nhà phát triển không tin tưởng vào mã của họ).
- Tôi đã có kịch bản này một lần khi một ứng dụng sẽ lưu tất cả các tệp của nó vào hai máy chủ khác nhau ở hai trung tâm dữ liệu khác nhau để giữ một bản sao dữ liệu có sẵn trong mọi trường hợp. Sau một vài tháng, chúng tôi nhận thấy rằng khoảng 0,1 phần trăm của tất cả các tệp được sao chép không khớp với tổng kiểm tra MD5 mà ứng dụng được lưu trữ trong cơ sở dữ liệu của nó. Hóa ra là cáp quang bị lỗi giữa máy chủ và SAN.
Những lý do khác là lý do tại sao một số hệ thống tệp, như ZFS, giữ thông tin tổng kiểm tra bổ sung để phát hiện lỗi. Chúng được thiết kế để bảo vệ bạn khỏi nhiều thứ có thể sai hơn là chỉ bị thối một chút.
Có một cái gì đó để thêm vào lời giải thích? Tắt âm thanh trong các ý kiến. Bạn muốn đọc thêm câu trả lời từ những người dùng Stack Exchange am hiểu công nghệ khác? Kiểm tra chủ đề thảo luận đầy đủ ở đây.