Số phụ tùng của Mdadm có nghĩa là gì?


8

Tôi đã tạo RAID 5 dựa trên mdadm từ sáu ổ cứng bằng lệnh sau:

# mdadm --create /dev/md0 --level=5 --raid-devices=5 \
/dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1 /dev/sdf1 \
--spare-devices=1 /dev/sdg1

Tôi dự kiến ​​mảng sẽ có một phụ tùng nóng, cụ thể là / dev / sdg1. Tuy nhiên, kiểm tra mdadm --detailcho thấy 2 phụ tùng:

# mdadm --detail --scan 
ARRAY /dev/md0 metadata=1.2 spares=2 name=...

Ngoài ra, kích thước mảng như được hiển thị bởi df2 TB, tương ứng với chỉ bốn ổ đĩa 500 GB của tôi đang được sử dụng.

Vậy chính xác ngữ nghĩa là --spare-devicesgì? Trang hướng dẫn nói rằng "Specif [ies] số lượng thiết bị dự phòng (eXtra) trong mảng ban đầu.", Nhưng dường như điều đó không xảy ra ở đây.


1
RAID 5 sử dụng một giá trị tương đương của một thiết bị. Tôi không biết, đó là lý do tại sao tôi đưa ra nhận xét này, nhưng điều đó có thể có liên quan gì không? ( mdadm --detailbao gồm cả ổ đĩa chẵn lẻ trong số "phụ tùng".) Bạn có thể kiểm tra điều này bằng cách tạo một mảng RAID 6 không có dự phòng nóng; nếu lý thuyết của tôi giữ, nó cũng sẽ hiển thị phụ tùng = 2.
một CVn

2
Trong thuật ngữ RAID tiêu chuẩn, một phụ tùng chỉ là một đĩa trống hầu như không hoạt động, có thể tự động hoạt động để giúp xây dựng lại mảng sau khi một đĩa khác bị lỗi. Một đĩa chẵn lẻ không phải là một đĩa dự phòng. Ngoài ra, số lượng đĩa dự phòng không phải là số lượng đĩa có thể bị lỗi trước khi dữ liệu của bạn có nguy cơ. (Con số này được không được xác định rõ Một bốn đĩa RAID 10 có thể xử lý lên đến 2 thất bại đĩa, nhưng nó cũng có thể là chết với 2 thất bại đĩa..)
200_success

4
Tôi đoán bạn đang nhìn thấy hai phụ tùng, bởi vì nó vẫn đang thực hiện mảng ban đầu, đó là "xây dựng lại" cho một trong hai phụ tùng. Khi đã xong (kiểm tra tiến độ bằng cách cat /proc/mdstat), tôi nghĩ bạn sẽ thấy 1.
derobert

@derobert, bạn đã đúng: Sau khi quá trình xây dựng lại ban đầu kết thúc, tôi đã nhận được siêu dữ liệu ARRAY / dev / md0 = 1.2 spares = 1 name = [...] từ mdadm --detail --scan và thông tin tương đương từ / Proc / mdstat.
jstarek

Câu trả lời:


4

Đầu ra đó là chính xác. Bạn đã tạo một RAID 5 với 5 đĩa (chỉ 4 trong số này sẽ được "sử dụng" cho không gian). Và bạn đã thêm một ổ đĩa dự phòng.

Vì vậy, bạn thực sự có RAID 5 cho phép một lỗi đĩa + ổ đĩa dự phòng bổ sung.

Nếu thứ bạn muốn thực sự là RAID 5 với 6 đĩa và có dung lượng 5 đĩa thì bạn cần thay đổi lệnh của mình thành:

mdadm --create /dev/md0 --level=5 --raid-devices=6 \
/dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1 /dev/sdf1 /dev/sdg1

Nhưng trong trường hợp này, bạn chỉ có thể chịu đựng một lỗi đĩa theo thông số kỹ thuật của RAID 5.

EDIT: Thêm liên kết từ trang đột kích chính thức: Bạn có thể thấy một cuộc đột kích 5 với 6 đĩa và nó ghi phụ tùng = 1: Tạo mảng ban đầu

CẬP NHẬT: Tôi quyết định tạo một cuộc đột kích 5 trong hệ thống của mình và giá trị dự phòng sẽ biến mất sau khi mảng ở trạng thái sạch:

   Raid Devices : 4
  Total Devices : 4
              State : clean, degraded, recovering
     Active Devices : 3
    Working Devices : 4
     Failed Devices : 0
      Spare Devices : 1

Trạng thái sạch:

   Raid Devices : 4
  Total Devices : 4
          State : clean
 Active Devices : 4
Working Devices : 4
 Failed Devices : 0
  Spare Devices : 0

Vì vậy, nó giống như nhận xét của OP, trong quá trình tạo đột kích ban đầu 5, nó có ổ đĩa dự phòng cho đến khi quá trình xây dựng / đồng bộ hóa cuộc đột kích được hoàn thành.


1
Tôi nghĩ thông tin chính từ trang wiki mà bạn liên kết đến là: "Đối với raid5 có một sự tối ưu hóa: mdadm lấy một trong các đĩa và đánh dấu nó là 'tùng'; sau đó nó tạo ra mảng ở chế độ xuống cấp." - điều này sẽ phù hợp độc đáo với quan sát của derobert trong các ý kiến ​​trên. Ngoài ra, tôi sợ bạn hiểu nhầm câu hỏi của tôi: Tôi không muốn có 5 ổ đĩa. Đề cập đến 2 TB chỉ là một quan sát.
jstarek

3

Để rõ ràng, tôi sẽ tổng hợp thông tin được cung cấp bởi derobert và Alexandre Alves và một số thử nghiệm tiếp theo của tôi ở đây:

mdadm's --spare-devicestham số làm việc như các bang trang con người, tức là nó xác định số lượng ổ đĩa 'nóng tùng' trong một mảng. Một "phụ tùng nóng", như trong thuật ngữ RAID thông thường, không liên quan gì đến các ổ đĩa bổ sung có trong mảng RAID 5 hoặc RAID 6 - đó là một ổ đĩa bổ sung có nghĩa là chiếm lấy ngay khi một ổ đĩa trong mảng đã thất bại.

Số lượng ổ đĩa dự phòng được đưa ra tại thời điểm tạo mảng. Sau đó, nó có thể được kiểm tra bằng cách sử dụng #mdadm --detail --scan.

Tuy nhiên, trong khoảng thời gian ngắn khởi tạo RAID 5 dựa trên mdadm, có một tối ưu hóa, được mô tả trong https://ston.wiki.kernel.org/index.php/Initial_Array_Creation , làm cho một ổ đĩa dự phòng bổ sung xuất hiện trong đầu ra của lệnh đó:

"Đối với raid5 có một tối ưu hóa: mdadm lấy một trong các đĩa và đánh dấu nó là 'tùng', sau đó nó tạo ra mảng ở chế độ xuống cấp. Hạt nhân đánh dấu đĩa dự phòng là 'xây dựng lại' và bắt đầu đọc từ 'tốt' đĩa, tính toán chẵn lẻ và xác định những gì nên có trên đĩa dự phòng và sau đó chỉ ghi vào nó. "

Sau khi quá trình khởi tạo mảng kết thúc, số lượng phụ tùng được báo cáo sẽ quay trở lại số lượng được chọn tại thời điểm tạo.

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.