mdadm - Xóa đĩa khỏi RAID0


11

Vì vậy, tôi muốn biết, có thể thực hiện các thao tác sau với mdadm:

  1. Tôi bắt đầu với cấu hình RAID0 trên 2 đĩa: sdasdb.
  2. Tôi muốn thêm một đĩa nữa vào mảng sdcvà di chuyển tất cả dữ liệu từ sdbđó.
  3. Ngắt kết nối sdb.

Ngay bây giờ tôi chỉ thấy một lựa chọn - Tôi dừng lại mảng, sao chép sdbđến sdcvới ddhoặc bất kỳ công cụ khối bản sao khác và bắt đầu trở lại mảng.

Tôi có bỏ lỡ điều gì không? Có thể làm điều này với mdadm?


Bạn có thể tạo sdb thành một máy nhân bản tạm thời, sau đó đồng bộ hóa sdc với nó trong nền - điều này giúp giảm thời gian chết cần thiết, mặc dù tôi đã không làm điều này như một người mới bắt đầu ở vị trí của bạn.
peterh - Phục hồi Monica

Tôi không phải là người mới bắt đầu chắc chắn :) Bạn có thể cho tôi biết thêm về gương tạm thời? Có phải là tính năng mdadm?
maniaque

Không, đó là một tính năng đột kích đơn giản. Tôi nghĩ rằng một mảng raid1 tạm thời, có thể có được vị trí của sdb trong mảng raid1 của bạn. Trong khi bạn đang đồng bộ hóa sdb với sdc, bạn cũng có thể sử dụng nó như một phần của mảng raid0.
peterh - Phục hồi Monica

Vì vậy, tôi hiểu bạn phải không? 1. Dừng mảng. 2. Tạo thêm một mảng RAID1 với sbd và sdc. 3. Và làm cách nào tôi có thể yêu cầu mdadm khởi động RAID0 của mình với md1 thay vì sdb?
maniaque

Không được nghiên cứu nhiều, nhưng có vẻ như bạn sẽ có thể phát triển từ RAID0 -> RAID5. Sau đó thu nhỏ lại xuống RAID0.
Zoredache

Câu trả lời:


17

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 sdddướ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";)


1

Theo như tôi biết một khi bạn thiết lập RAID0, bạn không thể thay đổi một trong các đĩa. Bạn có thể sao lưu và chuyển đổi các đĩa và khôi phục lại bản sao lưu. Tôi sẽ chỉ RAID5 3 đĩa bạn có. Bằng cách đó trong tương lai bạn có thể thả một đĩa và vẫn xây dựng lại nó.


Chà, tôi biết cách thực hiện điều tôi nói với RAID5 - Tôi có thể thêm đĩa mới vào mảng (như dự phòng), sau đó đánh dấu đĩa tôi muốn chuyển ra là bị lỗi và xóa nó khỏi mảng, xóa sạch siêu khối sau đó. Nhưng tôi quan tâm đến hoạt động tương tự với RAID0 :)
maniaque

@maniaque Nó được gọi là RAID 0 vì số 0 là số tiền bạn nhận được. Hoàn toàn không có gì quan trọng nên được đặt trên RAID 0.
Michael Hampton

@MichaelHampton Tôi nghĩ bạn có nghĩa là dự phòng không phải RAID nhưng tuyên bố của bạn là chính xác 100%.
joeg1ff

@MichaelHampton Vui lòng xem câu trả lời của tôi dưới đây :)
maniaque

0

RAID 0 không cung cấp dự phòng.

Vì vậy, nó không hỗ trợ thay thế ổ đĩa nóng.


1
Chỉ cần nhìn bên dưới, xin vui lòng. Không có gì là không thể, khi bạn hiểu các cấp độ RAID;)
maniaque
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.