Làm cách nào để kiểm tra các khối xấu trên âm lượng vật lý LVM?


17

Khi bạn đang sử dụng ext4, bạn có thể kiểm tra các badblocks bằng lệnh e2fsck -c /dev/sda1 # or whatever. Điều này sẽ "danh sách đen" các khối bằng cách thêm chúng vào inode khối xấu.

Tương đương với điều này cho một khối lượng vật lý LVM2 là gì? Hệ thống tập tin trên nó là ext4, nhưng có lẽ, các khối xấu được phát hiện sẽ trở nên không hợp lệ khi thiết lập LVM cơ bản di chuyển dữ liệu xung quanh trên đĩa vật lý.

Nói cách khác, làm cách nào tôi có thể kiểm tra các khối xấu để không sử dụng trong LVM?

Câu trả lời:


14

Khi bạn đang sử dụng ext4, bạn có thể kiểm tra các badblocks bằng lệnh e2fsck -c /dev/sda1hoặc bất cứ điều gì. Điều này sẽ "danh sách đen" các khối bằng cách thêm chúng vào inode khối xấu.

e2fsck -cchạy badblockstrên đĩa cứng cơ bản. Bạn có thể sử dụng badblockslệnh trực tiếp trên ổ đĩa vật lý LVM (giả sử rằng PV thực tế là một đĩa cứng chứ không phải một loại thiết bị ảo nào khác như thiết bị RAID phần mềm MD), giống như bạn sẽ sử dụng lệnh đó trên đĩa cứng có chứa một hệ thống tập tin ext.

Điều đó sẽ không thêm bất kỳ loại thông tin chặn xấu nào vào hệ thống tệp, nhưng tôi thực sự không nghĩ rằng đó là một tính năng hữu ích của hệ thống tệp; đĩa cứng được cho là để xử lý các khối xấu.

Thậm chí tốt hơn badblockslà chạy một bộ lọc thông minh trên đĩa (thay thế /dev/sdXbằng tên thiết bị của đĩa cứng của bạn):

smartctl -t long /dev/sdX
smartctl -a /dev/sdX | less

Bản thân bài kiểm tra sẽ mất vài giờ (nó sẽ cho bạn biết chính xác thời gian bao lâu). Khi xong, bạn có thể truy vấn kết quả smartctl -a, tìm nhật ký tự kiểm tra. Nếu nó báo "Đã hoàn thành thành công", đĩa cứng của bạn vẫn ổn.

Nói cách khác, làm cách nào tôi có thể kiểm tra các khối xấu để không sử dụng trong LVM?

Như tôi đã nói, bản thân đĩa cứng sẽ đảm bảo rằng nó không sử dụng các khối bị hỏng và nó cũng sẽ di chuyển dữ liệu khỏi các khối đó; đó không phải là điều mà hệ thống tập tin hoặc LV phải làm. Mặt khác, khi đĩa cứng của bạn có nhiều hơn một vài khối xấu, bạn không muốn một cái gì đó thay thế chúng, nhưng bạn muốn thay thế toàn bộ đĩa cứng vì nó bị lỗi.


3
Bạn có thể muốn kiểm tra trang chủ e2fsck và xem những gì -ctrước khi gọi một cái gì đó hoàn toàn vô nghĩa.
derobert

1
@derobert oops ...
Martin von Wittich

1
@derobert TIL. Tôi đã viết lại phần sai. Cảm ơn vì bạn đã phản hồi!
Martin von Wittich

Thật vậy, thay vì gắn cờ các khối để hệ thống tập tin không sử dụng chúng trên các đĩa hiện đại, bạn chỉ cần ghi dữ liệu mới vào khối và đĩa sẽ tự động sắp xếp lại khu vực dự phòng nếu nó thực sự bị hỏng. Bạn có thể làm điều đó với dd. Thường xuyên hơn bạn nghĩ, phương tiện thực sự tốt và dữ liệu chỉ bị hỏng, do đó, viết lên nó hoạt động tốt mà không cần phải ánh xạ lại.
psusi

"Bạn có thể làm điều đó với dd" - nhưng có lẽ bạn vẫn không nên. Nếu bạn có một mdcuộc đột kích, nó có thể giải quyết vấn đề cho bạn . @derobert có lẽ sẽ biết phải làm gì khi đĩa không phải là một phần của mdcuộc đột kích :)
Martin von Wittich

4

Tôi khá chắc chắn LVM không xử lý các khối xấu; nó hy vọng lưu trữ cơ bản đến. Và hầu hết, nếu không phải tất cả, đĩa cứng hiện đại làm. Bạn có thể cần thực hiện ghi vào khu vực, nhưng đĩa nên ánh xạ lại nó. (Bạn có thể cần nó để thực hiện quét bề mặt ngoại tuyến trước, ví dụ smartctl /dev/sda -t offline:).

Điều đó nói rằng, LVM không thực sự di chuyển dữ liệu xung quanh trừ khi bạn hỏi nó, ví dụ , pvmove. Vì vậy, bạn có thể sử dụng tính năng ext4 badblocks; bạn sẽ phải kiểm tra lại các khối xấu nếu chạy pvmove. Không có hoạt động chung (như lvextend) di chuyển dữ liệu.

Mở rộng không di chuyển dữ liệu vì LVM giữ bản đồ với nội dung "phạm vi logic 0 mộc99 là phạm vi vật lý 200 Lời299", và sau đó khi bạn mở rộng dữ liệu, nó chỉ thêm "phạm vi logic 100 phép199 là phạm vi vật lý 100 phép199". Hoặc thậm chí "mức độ logic 100 Lời149 là mức độ vật lý 50 Dòng99; mức độ logic 150 phép199 là mức độ vật lý 140 Phản189". LVM không quan tâm rằng các phạm vi vật lý không theo thứ tự hoặc không liền kề.


2

pvckcó thể kiểm tra siêu dữ liệu LVM, sau đó tính nhất quán là công việc của hệ thống tập tin. LVM chỉ liên quan đến quản lý khối lượng, vì vậy không cần quan tâm nếu không gian cấu thành một mức độ cụ thể là xấu vì phần mềm cấp cao hơn nắm bắt được các vấn đề đó. Siêu dữ liệu LVM chỉ chiếm phần đầu tiên (tùy chọn cũng là phần cuối cùng) của dù sao khối lượng vật lý.

Nếu chỉ các lĩnh vực đầu tiên và cuối cùng của một PV lớn tương đối (chẳng hạn như bạn thấy trong sản xuất) xảy ra đồng thời thất bại, thì về cơ bản, bạn có may mắn nhất trên thế giới vì điều đó rất khó xảy ra. Mặt khác, nếu quản trị viên biết rằng nhiều khu vực của ổ đĩa đã bị lỗi, hầu hết mọi người đều ổn với việc chỉ cần gửi những thứ như vậy theo "ổ cứng bị hỏng vĩnh viễn và cần phải được thay thế."

Nếu pvcktrả về lỗi, bạn có thể kiểm tra xem liệu siêu dữ liệu LVM của bạn có được sao lưu ở /etc/lvmmột nơi nào đó không. Nếu đó là bạn có thể pvcreatechỉ định bản sao lưu để--restorefile

Cú pháp:

pvcreate --uuid "<UUID-of-target-PV>" --restorefile <Path-To-Metadata-Backup-File> <path-to-PV-block-device>

Thí dụ:

pvcreate --uuid "2VydVW-TNiN-fz9Y-ElRu-D6ie-tXLp-GrwvHz" --restorefile /etc/lvm/archive/vg_raid_00000-1085667159.vg /dev/sda2 

Nếu khôi phục không hoạt động (ví dụ: nếu khu vực đầu tiên xấu), bạn có thể thực hiện lại ở trên, nhưng đặt --metadatacopies 2(hoặc bạn có thể đi thẳng vào đó) sẽ cố gắng ghi siêu dữ liệu vào đầu tiên và ngành cuối cùng trên PV. Khi pvscannào nó khởi động, nó sẽ kiểm tra cả hai vị trí và nếu tìm thấy siêu dữ liệu, nó sẽ xác minh chúng dựa trên tổng kiểm tra. Nếu tổng kiểm tra thất bại ở khu vực đầu tiên nhưng thành công ở khu vực cuối cùng, bạn sẽ nhận được thông báo lỗi không nghiêm trọng.

Loại thủ công và một nỗi đau, nhưng một lần nữa, đây là một phần lý do tại sao mọi người rất hào hứng để có được một redux quản lý khối lượng với BTRFS. Hầu hết thời gian không phải là vấn đề lớn vì những lý do mà derobert đã đề cập và bởi vì những người hoàn toàn tích cực cần đảm bảo tính liên tục của dữ liệu thường sẽ làm RAID và có chiến lược sao lưu.

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.