Linux Software RAID 越來越常見,相對穩定度也比早期安全
許多,此篇文章主要是針對 mdadm 常用管理指令彙整與該如何
在短暫停機時間,將做完成的 RAID 搬至其他台 Server 的筆記。


Linux OS:CentOS 5.9

前置說明:
由於線上資料無法停機太久,若要將整個 RAID 進行搬移,須先
行在其他機器將 RAID 設定完成,接著再將設定好的 RAID 直接
跟舊有的 RAID 交換,重新設定即可。

01. 先在其他台機器上建立 Software RAID 1。

  * 將硬碟進行 fdisk 分割與 fd 格式設定。( /dev/sdh1 & /dev/sdi1 )
  * mdadm -C /dev/md2 -l1 -n2 /dev/sd[hi]1。
  * 等待 RAID 1 Rebuild 完成。
  * mdadm -D /dev/md2,檢查 raid 狀態。
  * mkfs.ext4 /dev/md2,等待 ext4 格式化完成。
  * mount /dev/md2 /mnt/raid,掛載磁碟進行資料備份。
  * rsync 資料備份完成後,umount /mnt/raid。
  * mdadm --manage --stop /dev/md2,將 RAID 停止。
  * 取下硬碟,即完成 RAID 資料建置與備份。

02. 在另台欲更換的主機,卸載磁碟、停止 RAID,接著關機更換硬碟。

  * umount /mnt/raid。
  * mdadm --manage --stop /dev/md0,將 RAID 停止。
  * cat /proc/mdstat,檢查 RAID 狀態是否已停止。
  * 修改 /etc/fstab 的內容,避免開機後又掛載舊有 RAID。
  * 關機,將之前設定完成的硬碟進行更換。

03. 開機後,會發現系統會自動抓到原有 /dev/md2 的資訊,
  磁碟裝置名稱會重新排列,以下資訊為 /dev/sda1 & /dev/sdb1。

  

04. 此時若想要將 /dev/md2 更換為 /dev/md0,先將 /dev/md2 關閉。
  輸入「 mdadm --manage --stop /dev/md2 」。

  

05. 輸入「 mdadm --assemble --run /dev/md0 /dev/sda1 /dev/sdb1 」,
  將 /dev/sda1 & /dev/sdb1 加入 /dev/md0 的 RAID。

  

06. 輸入「fdisk -l」&「 cat /proc/mdstat 」,檢查 RAID 是否正常。

  

07. mount /dev/md0 /mnt/raid,掛載分割區檢查資料、權限是否正確,
  若舊有資料權限為 Domain users,掛上的資料 UID 將會變成數字,
  記得手動修改目錄、資料權限即可。

08. 手動修改 /etc/fstab,重新開機確認自動掛載是否有誤,若沒問題即完成此次搬移、更換。


【常用 mdadm 指令】

# 停止 RAID。
mdadm --manage --stop /dev/md0

# 啟動 RAID。
mdadm --assemble --run /dev/md0

* --assemble:表示加入既有的 RAID 裝置。

# 移除裝置。
mdadm /dev/md0 --remove /dev/sdb1

# 將裝置加入 RAID。
mdadm /dev/md0 --add /dev/sdb1

# 將裝置設定成故障。
mdadm /dev/md0 --fail /dev/sdc1

# 將完整的 RAID 資料手動匯至 /etc/mdadm.conf 方便查看。
mdadm --detail -scan >> /etc/mdadm.conf

# 建立 RAID 1 (完整指令)
mdadm --create /dev/md1 --level=raid1 --raid-devices=2 /dev/sd{a,b}1


Q:若想偵測 software RAID 是否故障?

可以在 RAID 正常運作下,cat /proc/mdstat >> /etc/mdstat.ok,
接著再比對當前 cat /proc/mdstat 的資訊,是否有差異?
並將這個比對的 script,設定成每半小時偵測一次的 cron job,
若有差異,就表示目前 RAID 有問題,發信警告即可。


                          Paul
,

paul 發表在 痞客邦 PIXNET 留言(0) 人氣()