Trước hết: với những người vẫn tin vào "RAID0 không có dự phòng nóng". Nó có thể có một phụ tùng thủ công, được thực hiện bởi con người, người hiểu các cấp độ RAID và mdadm. mdadm là RAID phần mềm, vì vậy nó có thể làm rất nhiều điều thú vị.
Tín dụng cho Zoredache cho ý tưởng!
Vì vậy, tình hình:
- bạn có mảng RAID0 của hai đĩa
- bạn muốn thay thế một trong số chúng mà không có thời gian chết mảng
Nếu thời gian chết là chấp nhận được, bạn luôn có thể tạo một bản sao khối của đĩa bằng dd và lắp lại mảng, mdadm sẽ làm được.
Giải pháp: sử dụng RAID4 làm giải pháp trung gian
RAID0 -> RAID4 -> RAID0
Vì vậy, nếu bạn không nhớ RAID4, thì thật đơn giản. Nó có một khối chẵn lẻ, nhưng không giống như RAID5, nó không được phân phối trên toàn mảng, mà nằm trên MỘT đĩa. Đó là điểm quan trọng, đây là điều quan trọng và đây là lý do RAID5 không hoạt động.
Những gì bạn sẽ cần: hai đĩa nữa có cùng kích thước, như đĩa bạn muốn thay thế.
Môi trường:
- Ubuntu 14.04 Thrusty Thar
- mdadm - v3.2.5 - 18 tháng 5 năm 2012
- / dev / sdb - bắt đầu với nó, sẽ thay thế nó
- / dev / sdc - bắt đầu với nó
- / dev / sdd - sẽ được sử dụng tạm thời
- / dev / sde - sẽ được sử dụng thay vì sdb
Hướng dẫn mdadm dự phòng RAID0 cuối cùng;)
sudo mdadm -C /dev/md0 -l 0 -n 2 /dev/sd[bc]
md0 : active raid0 sdc[1] sdb[0]
2096128 blocks super 1.2 512k chunks
Chúng tôi đã tạo ra raid0 mảng, nó trông ngọt ngào.
sudo md5sum /dev/md0
b422ba644a3c83cdf28adfa94cb658f3 /dev/md0
Đây là điểm kiểm tra của chúng tôi - nếu thậm chí một bit sẽ khác nhau /dev/md0
- chúng tôi đã thất bại.
sudo mdadm /dev/md0 --grow --level=4
md0 : active raid4 sdc[1] sdb[0]
2096128 blocks super 1.2 level 4, 512k chunk, algorithm 5 [3/2] [UU_]
Vì vậy, chúng tôi đã phát triển mảng của chúng tôi thành RAID4. Chúng tôi chưa thêm đĩa chẵn lẻ, vì vậy hãy làm điều đó. Sự phát triển sẽ ngay lập tức - không có gì để tính toán lại hoặc tính toán lại.
sudo mdadm /dev/md0 -a /dev/sdd
md0 : active raid4 sdd[3] sdc[1] sdb[0]
2096128 blocks super 1.2 level 4, 512k chunk, algorithm 5 [3/2] [UU_]
[===>.................] recovery = 19.7% (207784/1048064) finish=0.2min speed=51946K/sec
Chúng tôi đã thêm sdd
dưới dạng đĩa chẵn lẻ. Điều này rất quan trọng cần nhớ - thứ tự các đĩa ở hàng đầu tiên không được đồng bộ hóa với hình ảnh ở hàng thứ hai! [UU_]
sdd
được hiển thị đầu tiên, nhưng trên thực tế nó là cái cuối cùng và không giữ dữ liệu, mà là tính chẵn lẻ.
sudo mdadm /dev/md0 -f /dev/sdb
md0 : active raid4 sdd[3] sdc[1] sdb[0](F)
2096128 blocks super 1.2 level 4, 512k chunk, algorithm 5 [3/2] [_UU]
Chúng tôi đã làm cho sdb đĩa của chúng tôi bị lỗi, để loại bỏ nó trong các bước tiếp theo.
sudo mdadm --detail /dev/md0
State : clean, degraded
Number Major Minor RaidDevice State
0 0 0 0 removed
1 8 32 1 active sync /dev/sdc
3 8 48 2 active sync /dev/sdd
0 8 16 - faulty spare /dev/sdb
Chi tiết cho chúng ta thấy việc loại bỏ đĩa đầu tiên và ở đây chúng ta có thể thấy thứ tự thực sự của các đĩa trong mảng. Điều quan trọng là theo dõi đĩa với tính chẵn lẻ, chúng ta không nên để nó trong mảng khi quay lại RAID0.
sudo mdadm /dev/md0 -r /dev/sdb
md0 : active raid4 sdd[3] sdc[1]
2096128 blocks super 1.2 level 4, 512k chunk, algorithm 5 [3/2] [_UU]
sdb
được loại bỏ hoàn toàn, có thể được lấy đi.
sudo mdadm /dev/md0 -a /dev/sde
md0 : active raid4 sde[4] sdd[3] sdc[1]
2096128 blocks super 1.2 level 4, 512k chunk, algorithm 5 [3/2] [_UU]
[==>..................] recovery = 14.8% (156648/1048064) finish=0.2min speed=52216K/sec
Chúng tôi đã thêm thay thế cho đĩa sdb của chúng tôi. Và ở đây chúng tôi đi: bây giờ dữ liệu của sdb đang được phục hồi bằng cách sử dụng chẵn lẻ. Sweeeeet.
md0 : active raid4 sde[4] sdd[3] sdc[1]
2096128 blocks super 1.2 level 4, 512k chunk, algorithm 5 [3/3] [UUU]
Làm xong. Ngay bây giờ chúng tôi hoàn toàn an toàn - tất cả dữ liệu từ sdb được phục hồi và bây giờ chúng tôi phải xóa sdd (hãy nhớ rằng nó giữ ngang bằng).
sudo mdadm /dev/md0 -f /dev/sdd
md0 : active raid4 sde[4] sdd[3](F) sdc[1]
2096128 blocks super 1.2 level 4, 512k chunk, algorithm 5 [3/2] [UU_]
Làm sdd bị lỗi.
sudo mdadm /dev/md0 -r /dev/sdd
md0 : active raid4 sde[4] sdc[1]
2096128 blocks super 1.2 level 4, 512k chunk, algorithm 5 [3/2] [UU_]
Sdd bị xóa khỏi mảng của chúng tôi. Chúng tôi đã sẵn sàng để trở thành RAID0 một lần nữa.
sudo mdadm /dev/md0 --grow --level=0 --backup-file=backup
md0 : active raid4 sde[4] sdc[1]
2096128 blocks super 1.2 level 4, 512k chunk, algorithm 5 [3/2] [UU_]
[=>...................] reshape = 7.0% (73728/1048064) finish=1.5min speed=10532K/sec
Aaaaaaand bang!
md0 : active raid0 sde[4] sdc[1]
2096128 blocks super 1.2 512k chunks
Làm xong. Hãy nhìn vào tổng kiểm tra md5.
sudo md5sum /dev/md0
b422ba644a3c83cdf28adfa94cb658f3 /dev/md0
Còn câu hỏi nào nữa không? Vì vậy, RAID0 có thể có một phụ tùng nóng. Nó được gọi là "người dùng";)