Sử dụng các badblocks của Cameron trên các đĩa hiện đại


21

Tôi muốn sử dụng badblocks để kiểm tra ổ cứng của mình và sẽ đánh giá cao việc làm rõ hoạt động của nó.

Ai đó có thể vui lòng giải thích các tùy chọn tốt nhất để sử dụng với -b-c? Tôi đã bao gồm các định nghĩa của chúng từ trang man, nhưng không chắc kích thước lớn hơn có lợi cho các đĩa hiện đại với RAM 64 MB và 4k sector không.

-b block-size       Specify the size of blocks in bytes. The default is 1024. 
-c number of blocks the number of blocks which are tested at a time. The default is 64

Thứ hai, tôi muốn biết liệu kiểm tra chế độ ghi có kỹ lưỡng hơn chế độ đọc-ghi không phá hủy không?

Cuối cùng, có bao nhiêu phân bổ lại khu vực SMART được chấp nhận / nên thay thế các ổ đĩa có số lượng phân bổ lại khác không?


3
cho phần 2: ngay khi bạn bắt đầu thấy badblocks, điều đó có nghĩa là đã xảy ra sự cố. Đây có lẽ là một dấu hiệu tốt bạn nên thay thế đĩa trước khi bạn không thể đọc nó. Nhưng trong mọi trường hợp, trước cả khi thất bại, bạn phải luôn có 2 bản sao lưu dữ liệu quan trọng (1 cục bộ, 1 từ xa) ngoài bản sao làm việc. xem chi tiết về câu trả lời của tôi ở đó: superuser.com/a/528181/174998
Olivier Dulac

4
đối với kích thước khối: nó sẽ phản ánh kích thước khối thực tế mà HĐH của bạn đang sử dụng để lưu trữ dữ liệu trên ổ cứng đó (theo hệ thống tệp được sử dụng). Không phải để tăng tốc mọi thứ, vì vậy nó đánh dấu một khối "xấu", khối đó thực sự là 1 khối chứ không phải 1/2 hoặc 1/4 hoặc thậm chí 2 (hoặc nhiều hơn) khối.
Olivier Dulac

Câu trả lời:


21

Câu hỏi 1:

Liên quan đến -btùy chọn: điều này phụ thuộc vào đĩa của bạn. Các đĩa lớn, hiện đại có các khối 4KB, trong trường hợp đó bạn nên đặt -b 4096. Bạn có thể lấy kích thước khối từ hệ điều hành và thường có thể lấy được bằng cách đọc thông tin của đĩa ra khỏi nhãn hoặc bằng cách lấy số mô hình của đĩa. Nếu -bđược đặt thành một cái gì đó lớn hơn kích thước khối của bạn, tính toàn vẹn của badblockskết quả có thể bị tổn hại (nghĩa là bạn có thể bị phủ định sai: không tìm thấy khối xấu nào khi chúng vẫn còn tồn tại). Nếu -bđược đặt thành một cái gì đó nhỏ hơn kích thước khối của ổ đĩa của bạn, tốc độ badblockschạy có thể bị tổn hại. Tôi không chắc chắn, nhưng có thể có vấn đề khác với cài đặt-bđến một cái gì đó nhỏ hơn kích thước khối của bạn, vì nó không xác minh tính toàn vẹn của toàn bộ một khối, nên vẫn có thể có âm tính giả nếu nó được đặt quá nhỏ.

Các -ctùy chọn tương ứng với bao nhiêu khối cần được kiểm tra ngay lập tức. Hàng loạt đọc / viết, về cơ bản. Tùy chọn này không ảnh hưởng đến tính toàn vẹn của kết quả của bạn, nhưng nó ảnh hưởng đến tốc độ badblockschạy. badblockssẽ (tùy chọn) viết, sau đó đọc, đệm, kiểm tra, lặp lại cho mỗi khối N như được chỉ định bởi -c. Nếu -cđược đặt quá thấp, điều này sẽ khiến việc badblockschạy của bạn mất nhiều thời gian hơn bình thường, vì việc xếp hàng và xử lý một yêu cầu IO riêng phát sinh chi phí và đĩa cũng có thể áp đặt thêm chi phí cho mỗi yêu cầu. Nếu -cđược đặt quá cao, badblockscó thể hết bộ nhớ. Nếu điều này xảy ra, badblockssẽ thất bại khá nhanh sau khi nó bắt đầu. Các cân nhắc bổ sung ở đây bao gồm các badblockshoạt động song song : nếu bạn đang chạybadblockschống lại nhiều phân vùng trên cùng một đĩa (ý tưởng tồi) hoặc chống lại nhiều ổ đĩa trên cùng một kênh IO, có thể bạn sẽ muốn điều chỉnh -cđến mức cao hợp lý với bộ nhớ có sẵn để badblockschạy song song không chiến đấu với băng thông IO và có thể song song một cách lành mạnh.

Câu hỏi 2:

Trái với những gì câu trả lời khác cho thấy, các -wbài kiểm tra ghi-mode không phải là nhiều hay ít đáng tin cậy hơn so với kiểm tra đọc-ghi không phá hủy, nhưng nó là nhanh gấp hai lần, với chi phí của việc phá hoại cho tất cả các dữ liệu của bạn. Tôi sẽ giải thích tại sao:

Trong chế độ không phá hủy, badblocksthực hiện như sau:

  1. Đọc dữ liệu hiện có, kiểm tra lại (đọc lại nếu cần) và lưu nó vào bộ nhớ.
  2. Viết một mẫu được xác định trước (ghi đè bằng -ptùy chọn, mặc dù thường không cần thiết) cho khối.
  3. Đọc lại khối, xác minh rằng dữ liệu đọc giống với mẫu.
  4. Ghi dữ liệu gốc trở lại đĩa.
    • Tôi không chắc chắn về điều này, nhưng nó cũng có thể đọc lại và xác minh rằng dữ liệu gốc đã được viết thành công và vẫn còn kiểm tra cho cùng một điều.

Trong -wchế độ hủy ( ), badblockschỉ thực hiện bước 2 và 3 ở trên. Điều này có nghĩa là số lượng thao tác đọc / ghi cần thiết để xác minh tính toàn vẹn dữ liệu bị cắt giảm một nửa. Nếu một khối xấu, dữ liệu sẽ bị lỗi ở một trong hai chế độ. Tất nhiên, nếu bạn quan tâm đến dữ liệu được lưu trữ trên ổ đĩa của mình, bạn nên sử dụng chế độ không phá hủy, vì -wnó sẽ xóa sạch tất cả dữ liệu và badblocksthay vào đó là các mẫu được ghi vào đĩa.

Hãy cẩn thận: nếu một khối bị hỏng, nhưng chưa hoàn toàn biến mất, một số cặp xác minh đọc / ghi có thể hoạt động và một số thì không. Trong trường hợp này, chế độ không phá hủy có thể cho bạn một dấu hiệu đáng tin cậy hơn về "độ nhão" của một khối, vì nó có hai bộ xác minh đọc / ghi (có thể - xem dấu đầu dòng ở bước 4). Ngay cả khi chế độ không phá hủy đáng tin cậy hơn theo cách đó, nó chỉ đáng tin cậy hơn bởi sự trùng hợp . Cách chính xác để kiểm tra các khối không hoàn toàn xấu nhưng không thể duy trì nhiều thao tác đọc / ghi là chạy badblocksnhiều lần trên cùng một dữ liệu, sử dụng -ptùy chọn.

Câu 3:

Nếu SMART là phân bổ lại các lĩnh vực, có lẽ bạn nên xem xét việc thay thế ổ đĩa càng sớm càng tốt. Các ổ đĩa bị mất một vài lĩnh vực không phải lúc nào cũng mất chúng, nhưng nguyên nhân thường là do ổ đĩa được sử dụng nhiều bị nhiễm từ tính, hoặc đầu / động cơ bị hỏng dẫn đến đọc / ghi không chính xác hoặc thất bại. Tất nhiên, quyết định cuối cùng tùy thuộc vào bạn: dựa trên giá trị của dữ liệu trên ổ đĩa và độ tin cậy bạn cần từ các hệ thống bạn chạy trên nó, bạn có thể quyết định theo kịp. Tôi có một số ổ đĩa với các khối xấu đã biết đã quay với cảnh báo SMART trong nhiều năm trong máy chủ tệp của mình, nhưng chúng được sao lưu theo lịch để tôi có thể xử lý hoàn toàn thất bại mà không phải chịu nhiều đau đớn.


4
Bất cứ ý tưởng tại sao -bmặc định 1024? Điều đó có vẻ kỳ lạ với tôi. Tại sao không 512?
Ryan J

6
@RyanJ 1024 là kích thước khối tối thiểu cho ext2. badblocks là một phần của e2fspross và ban đầu được dự định để điền vào danh sách các khối xấu của hệ thống tệp ext2. Bạn phải chạy nó với cùng kích thước khối như FS để có được các số theo đúng định dạng cho mkfs.ext2. TL; DR: lý do lịch sử mà bạn không nên quan tâm.
sourcejedi

BUUUTT, @Zac B cho biết "Nếu -b được đặt thành thứ gì đó lớn hơn kích thước khối của bạn, tính toàn vẹn của kết quả badblocks có thể bị tổn hại" 1024> 512. Tôi có thể hiểu 513 có thể khiến một số bytest không được kiểm tra. Nhưng có lẽ nên nói lại "Nếu -b được đặt thành một cái gì đó lớn hơn kích thước khối của bạn VÀ KHÔNG PHẢI LÀ NHIỀU NHIỀU THỨ NÀY, tính toàn vẹn của các kết quả badblocks có thể bị tổn hại". Bạn nói gì về poster gốc, những người khác thông minh hơn tôi?
Billy C.

4

1) Nếu đĩa hiện đại của bạn sử dụng kích thước cung khác 512b - thì bạn cần đặt kích thước đó với -btùy chọn (nghĩa là -b 4096). Nếu không có tùy chọn đó, séc của bạn sẽ chạy chậm hơn nhiều vì mỗi khu vực thực sẽ được thử nhiều lần (8 lần trong trường hợp của khu vực 4k). Cũng như đề cập Olivier Dulac trong bình luận cho câu hỏi -block is indeed 1 block, and not 1/2 or 1/4th or even 2 (or more) blocks.

Tùy chọn -cngụ ý về bao nhiêu lĩnh vực tryid cùng một lúc. Nó có thể có một số hàm ý về hiệu suất và giá trị của hiệu suất đó có thể phụ thuộc vào mô hình đĩa cụ thể.

2) write-mode test- Theo hiểu biết của tôi, nó sẽ chỉ kiểm tra xem bạn có lỗi cứng hay lỗi mềm hay không (hay còn gọi là Suy giảm dữ liệu im lặng, mục nát bit, phân rã phương tiện lưu trữ, các lĩnh vực UNC)

3) Tôi không tin tưởng vào báo cáo SMART tại thời điểm. Điều quan trọng hơn là cách các giá trị thay đổi theo thời gian. Ngoài ra, đây là nghiên cứu của Google Xu hướng thất bại trong dân số ổ đĩa lớn và đây là một số thảo luận về nó. Dưới đây là trích dẫn từ nghiên cứu:

Mặc dù có mối tương quan cao này, chúng tôi kết luận rằng các mô hình chỉ dựa trên các tham số SMART dường như không hữu ích để dự đoán các lỗi ổ đĩa riêng lẻ.

Liên quan đến đề cập khác về việc thay thế đĩa - bạn có thể không gặp vấn đề về đĩa cứng nhưng Sự suy giảm dữ liệu Im lặng (mục nát bit, phân rã phương tiện lưu trữ, các lĩnh vực UNC). Trong trường hợp đó, nó không có ý nghĩa để thay thế đĩa, nhưng thay vào đó, nó rất hữu ích để thực hiện đọc / ghi cùng một dữ liệu vào đĩa. Bạn có thể nhìn vào đây làm thế nào nó có thể được giải quyết.

Nếu bạn gặp lỗi nặng, bạn có thể thử phân vùng lại ổ đĩa theo cách khu vực xấu nằm ngoài bất kỳ phân vùng nào. Đối với tôi phương pháp đó rất hữu ích và ổ đĩa xấu như vậy đã được sử dụng trong thời gian dài mà không gặp vấn đề gì.


Câu đầu tiên sai, -bmặc định là 1024. Nếu đĩa của bạn sử dụng kích thước cung khác với 1024, khá phổ biến bên ngoài các hệ thống tập tin ext2, thì bạn nên chỉ định điều đó.
Hashim

1

Tôi sẽ để -b và -c là mặc định trừ khi bạn có lý do cụ thể để thay đổi chúng. Bạn có thể có thể đặt -b thành 4096 nếu đĩa của bạn có kích thước khối 4k.

Tôi sẽ đề nghị bạn đầu tiên chạy badblocks với thử nghiệm rw không phá hủy. Nếu nó tìm thấy bất kỳ thành phần xấu, đĩa bị hỏng và nên được thay thế. Nếu nó KHÔNG tìm thấy bất kỳ khối xấu nào khi không phá hủy, nhưng bạn vẫn nghi ngờ nó có các lỗi xấu, thì hãy chạy thử nghiệm rw phá hủy.

Cuối cùng, có bao nhiêu phân bổ lại khu vực SMART được chấp nhận / nên thay thế các ổ đĩa có số lượng phân bổ lại khác không?

Tôi sẽ thay thế ổ đĩa ngay khi các ngành đang được thay thế.


2
Tôi sẽ thay thế ổ đĩa ngay khi các ngành đang được thay thế. Làm thế nào để bạn biết rằng các khối đang xấu đi trong hoạt động bình thường? Bạn có nhận được tín hiệu theo một cách nào đó?
Alexis Wilke

5
Bạn phải theo dõi nhật ký SMART.
Ярослав Рахматуллин

1
trừ khi bạn có một lý do cụ thể để thay đổi chúng . Giống như có kích thước khối khác với 1024 mặc định, điều này rất phổ biến?
Carcamano

1

Kiểu này đi đến sự khác biệt giữa chế độ đọc badblocks (không phá hủy) và chế độ ghi (phá hủy):

Một ổ đĩa sẽ chỉ phân bổ lại một khu vực xấu khi viết thất bại. Đọc lỗi cho các tệp chỉ nhận được "sửa chữa" khi thực hiện một nỗ lực để ghi lại tệp. Nếu không thì. khối xấu vẫn là một phần của tệp với giả định rằng bạn có thể khôi phục được thứ gì đó. Lỗi đọc cho các bảng phân vùng chỉ có thể được "sửa" bằng cách chạy các khối xấu trong chế độ ghi và tạo lại phân vùng

Vì vậy, chế độ đọc sẽ cho bạn biết các khối xấu ở đâu nhưng không thể làm gì với chúng. Chế độ ghi kiểm tra sức khỏe của từng khu vực và sẽ khiến đĩa phân bổ lại một khối xấu nhưng phải trả giá bằng việc phá hủy dữ liệu. Bạn chọn đi.


0

Để trả lời câu hỏi thứ hai của bạn về các lĩnh vực ánh xạ lại, nó phụ thuộc. Tôi đang nói từ ngữ cảnh của một người dùng gia đình (thỉnh thoảng) giám sát loại công cụ này.

  • Làm thế nào quan trọng là dữ liệu được lưu trữ trên ổ đĩa?
  • Mất gì nếu ổ đĩa đột ngột lên bụng?
  • Là dữ liệu được sao lưu ở nơi khác?
  • Ổ đĩa có phải là thành viên của RAID không khi mất ổ đĩa có ảnh hưởng tối thiểu?
  • Là số lượng các lĩnh vực ánh xạ ngày càng tăng?

Đây là hai tình huống tôi phải đối mặt. Tôi đã có RAID5 gồm 6 ổ 200 GB. Sau khi mất điện dẫn đến đèn nhấp nháy, một ổ đĩa đã hiển thị 14 cung bị ánh xạ và ghi lại một số lỗi. Tôi đã xem ổ đĩa và không còn lỗi nào được ghi lại và số lượng khu vực được ánh xạ vẫn ổn định. Tôi kết luận rằng các ổ đĩa phải chịu do một nguồn điện thoáng qua và không phải là thất bại. Tôi tiếp tục sử dụng nó trong nhiều năm. RAID5 ban đầu đã ngừng hoạt động nhưng tôi có hai trong số các ổ đĩa đó đang hoạt động với khoảng 10 năm hoạt động trong nhiều giờ. Họ có một số ít các lĩnh vực ánh xạ lại. Tôi sử dụng hai trong số chúng được nhân đôi để lưu trữ các bản sao lưu dự phòng gia tăng từ bản sao lưu chính của mình. Bằng cách đó, bản sao lưu chính đang nhìn thấy (hầu hết) các hoạt động đọc và ghi sẽ chuyển đến các thiết bị khác nhau. Nếu một trong những ổ đĩa cổ này thất bại, cái còn lại nên tiếp tục. Nếu cả hai đều thất bại, Tôi thay thế chúng bằng một cái gì đó khác và chạy lại tập lệnh sao lưu. Tác động nếu một trong những ổ đĩa này bị hỏng gần bằng 0 nên tôi không lo lắng về các khu vực được ánh xạ lại.

Tôi có một ổ cứng 2TB là một trong những ổ đĩa được nhân đôi và bắt đầu phát triển các khu vực được ánh xạ lại. Lúc đầu là hàng chục, rồi hàng trăm, rồi hàng ngàn. Điều này đã qua một khoảng thời gian của năm. Các ổ đĩa khác trong cặp vẫn khỏe mạnh và trên thực tế, dẫn xuất thất bại chậm không bị loại khỏi mảng. Cuối cùng, tôi đã thay thế cả hai ổ đĩa bằng ổ đĩa 6TB và số lượng khu vực được ánh xạ ngày càng tăng trở thành một vấn đề. Tôi vẫn có ổ đĩa và nó vẫn "hoạt động", ngay cả với khoảng 4500 khu vực được ánh xạ lại. Tôi đã đặt các ổ đĩa như thế này trong một hệ thống thử nghiệm (với tư cách là thành viên RAID) để xem điều gì sẽ xảy ra khi một người thực sự chết. Tôi đã có một vài cơ hội để làm việc với điều này và trong mọi trường hợp, sự thay thế diễn ra mà không có kịch.

Tôi đã có một ổ đĩa bị lỗi trên máy chủ tập tin sao lưu chính của tôi. Nó không tạo ra cảnh báo nâng cao, nó chỉ dừng đáp ứng với các lệnh SATA. Đó là một thành viên của ZFS RAIDZ2 và tôi đã thay thế nó mà không có bất kỳ bộ phim truyền hình nào. Trong thực tế, trên máy chủ thử nghiệm của tôi, tôi đã thay thế các ổ đĩa bị lỗi mà không bật nguồn hoặc khởi động lại máy chủ.

Thêm một điểm cần lưu ý, tôi có các bản sao lưu trên trang web và tắt tất cả các dữ liệu quan trọng. Nếu bất kỳ một hệ thống nào bị mất, có hai bản sao của dữ liệu ở nơi khác.

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.