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
文章標籤