Mở rộng RAID phần mềm trên Debian bằng cách di chuyển sang ổ cứng lớn mới

theanh

Administrator
Nhân viên
Thiết lập: hai ổ đĩa vật lý của RAID 1 (gương) sẽ được thay thế bằng hai ổ đĩa có dung lượng lớn hơn, chúng tôi sẽ thực hiện thay thế "nóng" trực tiếp từ hệ điều hành đang chạy, mà không cần khởi động từ phương tiện khởi động ngoài. Hướng dẫn này đã được thử nghiệm trên các bản phân phối Debian 6, 7, 8 cả 32 và 64 bit.

Chúng tôi giả định rằng hai ổ đĩa được phân vùng với phân vùng gốc và phân vùng hoán đổi và hai phân vùng này tạo nên hai thiết bị RAID md0 và md1:
  • Phân vùng sda1 và sdb1 tạo nên ổ đĩa md0 (gốc)
  • Phân vùng sda2 và sdb2 tạo nên ổ đĩa md1 (hoán đổi)
Trước tiên, hãy sao lưu tất cả dữ liệu của bạn, ngay cả khi hướng dẫn đã được thử nghiệm nhiều lần, vận rủi vẫn còn đó ... Chúng tôi cung cấp (theo tôi, giải pháp tốt nhất) để thay thế, chúng tôi ngắt kết nối một trong hai ổ đĩa cũ với máy đã tắt, sau đó kết nối một ổ đĩa tạm thời mới, sau đó đồng bộ lại, do đó chúng ta vẫn có RAID hoạt động và một ổ đĩa duy nhất (với RAID ở chế độ xuống cấp) và bạn vẫn có thể tạo lại RAID hoạt động nếu có điều gì đó không hoạt động. Để thực hiện việc này, chỉ cần nhập các lệnh sau sau khi thay thế ổ đĩa đầy bằng ổ đĩa trống:
Mã:
sfdisk -d /dev/hd source | sfdisk —force /dev/hd empty
mdadm —zero-superblock /dev/hd empty
mdadm —add /dev/md(raid) /dev/hd(empty)
Lặp lại hai dòng cuối cho mỗi phân vùng RAID trên hệ thống

(ví dụ:
Mã:
mdadm -add /dev/md0 /dev/sdb1
sau đó
Mã:
mdadm -add /dev/md1 /dev/sdb2
v.v..



Theo cách này, chúng tôi đã buộc bảng phân vùng từ ổ đĩa nguồn đến ổ đĩa đích trống, sau đó thêm bảng này vào RAID.

Rõ ràng là bạn phải đợi cho đến khi kết thúc quá trình tái tạo, được giám sát bởi:
Mã:
watch cat / pro / mdstat
(Và tất nhiên CTRL + C để thoát khỏi tiến trình)

Tắt máy tại thời điểm này, chúng ta thêm hai đĩa mới, lần lượt trở thành sdc và sdd, sau đó khởi động máy chủ và chạy lệnh:
Mã:
fdisk -l
Kết quả sẽ trông tương tự như sau:


Mã:
Đĩa /dev/sda: ……MB , ………….Bytes
… heads, …sectors/track , ….. cylinders
Kích thước I/O (tối thiểu/tối ưu): 512 byte / 512 byte
Đĩa: định danh : ………..
Mã:
Mã:
Thiết bị khởi động Bắt đầu Kết thúc Khối Id  Hệ thống
Mã:
/dev/sda2   970  1044 602437+ fd  Tự động phát hiện raid Linux
Mã:
/dev/sda2   1 969 7783461 fd  Tự động phát hiện raid Linux
Mã:
……
Mã:
/dev/sdb1 *  1 969 7783461 fd  Tự động phát hiện raid Linux
Mã:
/dev/sdb2   970  1044 602437+ fd  Tự động phát hiện raid Linux
Mã:
……
Mã:
Đĩa /dev/sdc: …Mb, …….Byte
Mã:
……
Mã:
Đĩa /dev/sdd: …Mb, …….Byte
Mã:
……
Mã:
Đĩa /dev/md0: …Mb, …….Byte
Mã:
…...
Mã:
Đĩa /dev/md1: …Mb, …….Byte


Bây giờ, hãy nhập:
Mã:
fdisk /dev/sdc
chúng ta tạo một phân vùng mới bằng lệnh n,

chúng ta chọn p phân vùng chính,

chúng ta chọn số phân vùng (1,2,3, v.v.),

chúng ta chọn xi lanh bắt đầu (1),

chúng ta chọn kích thước của phân vùng chính bằng cách nhập Biểu tượng + theo sau là kích thước tính bằng GB và GB từ các chữ cái (ví dụ: +480GB)

chúng ta làm cho nó có thể khởi động bằng lệnh a, chọn cùng số phân vùng.

chúng ta thay đổi ID phân vùng trong "fd" (Linux Raid Autodetect) bằng t và viết dưới dạng mã Hex, chỉ cần "fd"

Sau đó, chúng ta lặp lại TẤT CẢ các lệnh cho phân vùng thứ hai (phân vùng sẽ là swap).

Chúng ta sẽ lưu các thay đổi bằng w.



Rõ ràng là phải chú ý đến kích thước của các phân vùng. Giải pháp tốt nhất là trừ kích thước hoán đổi hiện tại của tổng dung lượng trống để tạo phân vùng làm việc có dung lượng rộng nhất có thể.

Bây giờ chúng ta sẽ thực hiện chính xác các thao tác tương tự trên ổ SDD, đảm bảo tạo cùng phân vùng có cùng kích thước như chúng ta đã sử dụng trước đó.

Tại thời điểm này, chúng ta thực hiện trao đổi giữa ổ đĩa đầu tiên "đầy" và ổ đĩa mới đầu tiên, thêm ổ đĩa sau làm ổ dự phòng cho RAID:
Mã:
mdadm -add /dev/md0 /dev/sdc1
Sau đó, chúng ta nên xác minh tình hình đĩa RAID, nó sẽ như thế này:
Mã:
md0: active raid 1 sdc1[S] sda1[2] sdb1[3]
Mã:
 ………blocks super 1.2 [2/2] [UU]


Sau đó, chúng ta đưa vào bản gốc ổ đĩa:
Mã:
mdadm -f /dev/md0 /dev/sda1
và xóa nó khỏi RAID:
Mã:
mdadm -r /dev/md0 /dev/sda1
Bây giờ chúng ta xác minh rằng quá trình tái tạo đã bắt đầu tự động và đợi cho đến khi nó hoàn tất bằng cách theo dõi lại với:
Mã:
watch cat /proc/mdstat
(Và tất nhiên là nhấn CTRL + C để thoát khỏi quá trình)

Cuối cùng, chúng ta cài đặt bộ nạp khởi động (grub) trên ổ đĩa mới (/ dev / sdc):
Mã:
grub-install /dev/sdc
Cần lặp lại quá trình tương tự cho từng phân vùng hệ thống:
Mã:
mdadm -add /dev/md0 /dev/sdd1
Mã:
mdadm -f /dev/md0 /dev/sdb1
Mã:
mdadm -r /dev/md0 /dev/sdb1
Và chúng ta lại đợi cho đến khi quá trình tái tạo hoàn tất:
Mã:
watch cat /proc/mdstat
(Và tất nhiên là nhấn CTRL + C để thoát khỏi quá trình)

Tiếp theo, thực hiện quy trình tương tự cho phân vùng hoán đổi đầu tiên của hai ổ đĩa mới:
Mã:
mdadm -add /dev/md1 /dev/sdc2
Mã:
mdadm -f /dev/md0 /dev/sda2
Mã:
mdadm -r /dev/md0 /dev/sda2
Lại đợi cho đến khi quá trình tái tạo hoàn tất:
Mã:
watch cat /proc/mdstat
(Và tất nhiên là nhấn CTRL + C để thoát khỏi tiến trình)

Và ổ đĩa cuối cùng:
Mã:
mdadm -add /dev/md1 /dev/sdd2
Mã:
mdadm -f /dev/md0 /dev/sdb2
Mã:
mdadm -r /dev/md0 /dev/sdb2
Chờ lại cho đến khi hoàn tất quá trình tái tạo:
Mã:
watch cat /proc/mdstat
(Và tất nhiên là nhấn CTRL + C để thoát khỏi tiến trình)



Tại thời điểm này, hãy cài đặt lại bộ nạp khởi động trên cả hai ổ đĩa:
Mã:
grub-install /dev/sdc
Mã:
grub-install /dev/sdd
Tại thời điểm này, chúng ta thấy ổ đĩa cũ đã được trục xuất khỏi RAID và các ổ đĩa mới đã được lắp và hoạt động. Nhưng với không gian sử dụng được dưới mức tối đa được phân vùng cho phép

Sau đó, chúng ta tiến hành mở rộng phân vùng và xác minh phân vùng đó, như thường lệ đối với cả hai ổ đĩa:


Mã:
mdadm —grow —raid-devices=2 /dev/md0
Mã:
mdadm -A —scan
Mã:
mdadm —grow /dev/md0 —size=max
Mã:
mdadm —examine —scan
Mã:
e2fsck -f /dev(md0
Mã:
resize2fs /dev/md0

Mã:
mdadm —grow —raid-devices=2 /dev/md1
Mã:
mdadm -A —scan
Mã:
mdadm —grow /dev/md1 —size=max
Mã:
mdadm —examine —scan
Mã:
e2fsck -f /dev/md1
Mã:
resize2fs /dev/md1


Khi hoàn tất, hãy tắt PC, hủy liên kết các ổ đĩa cũ và khởi động lại máy.

Ngay cả khi khởi động lại có hiệu quả, chúng tôi vẫn xây dựng lại grub vì lý do bảo mật vì khi khởi chạy ổ đĩa mới sẽ lấy tên của ổ đĩa cũ (sda và sdb):
Mã:
mv /boot/grub/device.map/boot/grub/device.map.old
Mã:
grub-mkdevicemap
Mã:
update-grub2 && grub-install /dev/sda && grub-install /dev/sdb


Nếu bạn muốn chắc chắn rằng thiết lập raid mới đang hoạt động, hãy tắt máy, ngắt kết nối một trong các ổ đĩa mới và khởi động lại. Nó sẽ khởi động mà không có vấn đề gì. Sau đó, tắt máy lần nữa, kết nối ổ đĩa và khởi động. Bạn có thể sử dụng lệnh này để kiểm tra trạng thái raid.
Mã:
xem cat /proc/mdstat
(Và tất nhiên là nhấn CTRL + C để thoát khỏi quy trình)

Chúng tôi đã hoàn thành công việc, chúng tôi ăn mừng.
 
Back
Bên trên