Chuyển đổi đột kích phần mềm linux từ raid5 sang raid6


11

Tôi hiện có một máy chủ tệp có 3 đĩa 1,5TB trong một mảng RAID5. Vì nó khá đầy đủ, tôi có thêm ba đĩa (mỗi ổ 1,5TB).

Bây giờ tôi muốn chuyển sang RAID6 vì dung lượng 6TB là đủ và tôi muốn tăng độ an toàn của raid6. Mặc dù tôi có một bản sao lưu đầy đủ - tức là tôi có thể chỉ cần tạo một mảng mới và khôi phục bản sao lưu - tôi muốn chuyển đổi mà không phải khôi phục bản sao lưu. Điều này có thể và nếu có, làm thế nào?

Câu trả lời:


9

Thuật ngữ bạn đang tìm kiếm là "Di chuyển cấp RAID".

Theo đó , nó có thể. Tôi đã không làm điều đó, nhưng quy trình có vẻ như bạn nên thêm ổ đĩa mới dưới dạng điểm nóng vào mảng hiện có, sau đó sử dụng mdadm để cập nhật cấp độ đột kích và số lượng thiết bị đột kích ..

Bạn sẽ cần một mdadm gần đây để làm điều này: mdadm-2.6.9 (ví dụ: centos 5.x) dường như không hỗ trợ nó, nhưng mdadm-3.1.4 (ví dụ: Ubuntu 11.10) thì có:

   Grow   Grow (or shrink) an array, or otherwise reshape it in some way.  Currently supported growth options including changing the active size of component devices and
          changing the number of active devices in RAID levels 1/4/5/6, changing the RAID level between 1, 5, and 6, changing the chunk size and  layout  for  RAID5  and
          RAID5, as well as adding or removing a write-intent bitmap.

EG, trước tiên hãy thêm một thiết bị hotspare, / dev / sdg vào mảng RAID5:

$ sudo mdadm --manage /dev/md/md0 --add /dev/sdg

Sau đó chuyển đổi thành một mảng RAID6 và làm cho nó được xây dựng lại ở trạng thái sạch. - Sợ-thiết bị 4 cho bạn biết tổng số ổ đĩa bạn có trong mảng mới.

$ sudo mdadm --grow /dev/md/md0 --raid-devices 4 --level 6

Tôi không biết làm thế nào nhanh chóng sẽ được mặc dù. Theo kinh nghiệm của tôi khi thực hiện di chuyển cấp độ đột kích trên bộ điều khiển RAID phần cứng, việc tạo ra mảng mới từ đầu và khôi phục bản sao lưu của bạn vào nó nhanh hơn.


3
Di chuyển RAID 5 sang RAID 6 có hai thao tác chậm - phân tách lại dữ liệu trên các đĩa và tính giá trị chẵn lẻ thứ hai cho đĩa chẵn lẻ. Xóa / khôi phục có thể sẽ mất cùng thời gian với thay đổi kích thước.
Andrew

1
Nó cũng đòi hỏi một phiên bản kernel nhất định. Tìm thấy điều này một cách khó khăn.
Sirex

Vì tôi đang dùng gentoo, cả kernel và mdadm của tôi đều là những phiên bản gần đây - vì vậy đó không phải là vấn đề.
ThiefMaster

1
Các liên kết bạn đề cập đến đã được viết bởi tôi. Xin lưu ý: Tôi đã không thực sự đọc các tài liệu về cách thực sự làm điều đó. Tôi chỉ tạo ra một máy ảo với 30 ổ đĩa (tương tự như vậy) và bắt đầu nghịch ngợm. Vì vậy, lấy tất cả các bài đăng với một hạt muối, nó chỉ đơn thuần là một sự dũng cảm ...
Martin M.

1
@ServerHorror: Lưu ý. Internet rộng hơn, bao gồm trang man mdadm, tuyên bố rằng việc di chuyển cấp độ đột kích là có thể. :)
Daniel Lawson

7

Cảnh báo bắt buộc: Lập kế hoạch cho sự thất bại. Giữ một bản sao lưu sẵn sàng và tính đến thời gian chết có thể.

Ngoài ra, hãy kiểm tra nó trong VM hoặc một cái gì đó tương tự trước đây, đây là từ ghi chú của tôi và tôi đã không làm điều này trong một thời gian dài. Điều này có thể không đầy đủ.

  1. Bạn sẽ cần addcác đĩa vào mảng:

    mdadm --manage /dev/md0 --add /dev/sdf  
    

    Làm điều này cho mỗi trong ba đĩa và thay thế tên thiết bị cho phù hợp.

  2. Phát triển mảng:

    mdadm --grow /dev/md0 --level 6 --raid-devices 6 
    

3

Sử dụng --backup-filetùy chọn, vì vậy trong trường hợp mất điện, bạn có thể tiếp tục phát triển thiết bị sau khi khởi động lại và đảm bảo không mất dữ liệu.

mdadm --grow /dev/md0 --level=raid6 --raid-devices=6 --backup-file=/root/mdadm5-6_backup_md0

Tệp sao lưu phải được lưu trên hệ thống tệp không phải là một phần của mảng bạn sẽ phát triển.

--backup-file=là cần thiết khi --growđược sử dụng để tăng số lượng thiết bị đột kích trong RAID5 hoặc RAID6 nếu không có thiết bị dự phòng hoặc để thu nhỏ, thay đổi cấp độ hoặc bố cục RAID. Xem phần GROW MODE bên dưới về THAY ĐỔI THIẾT BỊ RAID. Tệp phải được lưu trữ trên một thiết bị riêng biệt, không phải trên mảng RAID được định hình lại.

--continuelà bổ sung cho các --freeze-reshapetùy chọn để lắp ráp. Nó là cần thiết khi --growhoạt động bị gián đoạn và nó không được tự động khởi động lại do --freeze-reshapesử dụng trong quá trình lắp ráp mảng. Tùy chọn này được sử dụng cùng với -G, ( --grow) lệnh và thiết bị để tiếp tục định hình lại. Tất cả các tham số cần thiết để tiếp tục định hình lại sẽ được đọc từ siêu dữ liệu mảng. Nếu --growlệnh ban đầu có --backup-file=tùy chọn bắt buộc được đặt, tùy chọn tiếp tục sẽ yêu cầu phải có chính xác cùng một tệp sao lưu được cung cấp.

Bất kỳ tham số nào khác được truyền cùng với --continuetùy chọn sẽ bị bỏ qua.

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.