Linux 的 Software RAID 1 硬碟掛掉, 換新硬碟後, 要靠 RAID 1 自動還原, 如何操作?
Debian Linux Software RAID 1 還原實作
收到系統通知信, 確認 RAID 1 的其中一棵硬碟 確定損毀, 內容如下: (註: 平常可以用 cat /proc/mdstat 檢查)
DegradedArray event on /dev/md/0:web This is an automatically generated mail message from mdadm running on web A DegradedArray event had been detected on md device /dev/md/0. Faithfully yours, etc. P.S. The /proc/mdstat file currently contains the following: Personalities : [raid1] md0 : active raid1 sda1[0](F) sdb1[1] 1913930560 blocks super 1.2 [2/1] [_U] unused devices: <none>
要將壞掉的硬碟換掉, 換上新的硬碟後, 重新同步, 有下述步驟要做:
- 從 md0 移除損壞的硬碟 (下述範例以 /dev/sda 為例)
- 關機、換新硬碟
- 磁碟分割複製
- 檢查磁碟分割
- 將磁區加入 RAID 1 (md0)
- 檢查是否有自動 Sync
- 若此硬碟有 swap 區, 另外建立 swap 區
步驟實作
- 從 md0 移除毀損硬碟
- sudo mdadm --remove /dev/md0 /dev/sda1
- cat /proc/mdstat
Personalities : [raid1] md0 : active raid1 sdb1[1] 1913930560 blocks super 1.2 [2/1] [_U]
- 關機、換新硬碟
- 複製磁區 (將 /dev/sdb 複製到 /dev/sda)
- sudo sfdisk -d /dev/sdb | sudo sfdisk /dev/sda
- 檢查磁區是否相同
- sudo fdisk -l /dev/sda
- sudo fdisk -l /dev/sdb # 兩個應該都一樣了
- RAID 1 加入 /dev/sda1
- sudo mdadm --add /dev/md0 /dev/sda1 # 若有加過有問題可以 --remove 再 --add, 或者 --re-add
- 檢查自動 Sync 中
- cat /proc/mdstat
Personalities : [raid1] md0 : active raid1 sda1[2] sdb1[1] 1913930560 blocks super 1.2 [2/1] [_U] [>....................] recovery = 0.0% (77568/1913930560) finish=822.2min speed=38784K/sec
- cat /proc/mdstat
- swap 磁區建立、啟用
- sudo mkswap /dev/sda2 # 建立 swap 磁區
Setting up swapspace version 1, size = 39451644 KiB no label, UUID=97e5c775-cb92-4f24-bb9c-95f4d6d3a416
- sudo swapon /dev/sda2 # 啟用 swap
- ls -lh /dev/disk/by-uuid # 找到 swap 磁區的 UUID
97e5c775-cb92-4f24-bb9c-95f4d6d3a416 -> ../../sda2
- vim /etc/fstab # 修改原本損毀的磁區, 改成新的
UUID=97e5c775-cb92-4f24-bb9c-95f4d6d3a416 none swap sw 0 0
- sudo mkswap /dev/sda2 # 建立 swap 磁區
- 看 RAID 1 詳細資料
- sudo mdadm --detail /dev/md0
UUID : 7f54f33c:bffe008b:6e819f4f:ac92e42a
- sudo mdadm --detail /dev/md0