2010年9月6日 星期一

如何在 CentOS 5.5下使用 dmraid rebuild ??

剛進新公司第一份任務就是搞 RAID, 這對從來沒弄過RAID的人來說真是一大挑戰!! 終於經過快三個禮拜後, 快要黑掉時, 終於被我搞定了 XD..... 超感動!!

首先簡單介紹RAID的種類:
RAID有三種:
1. 硬RAID(使用硬RAID卡)
2. 假RAID(通常為主機板上BIOS提供RAID的功能, 但是實際還是由軟體控制)
3. 軟RAID(直接由OS做RAID)

其實上面1.3網路上在Linux下很多資料可以查詢, 但是好死不死客戶要求使用BIOS上的RAID, 也就是 intel matrix storage ICH* 來做 RAID1, 先查詢 google 大神, 查到在 Linux下有一個套件叫 dmraid, 嗯...想想..不錯喲!! 有套件可以用應該可以很快就搞定, 那就先來試試~~

首先~

1. BIOS先設定RAID1

2. 將 OS CentOS 5.5 安裝 (請將 /boot 獨立成一塊 partition(重要))
當BIOS設定為RAID時, 安裝只會出現一顆硬碟, 如果是 Debian OS, 必須在安裝開始前按Tab, 在指令後面加上 dmraid=true, 在安裝時才會呈現一顆RAID的狀態

3. 安裝完後, 關機拔掉一顆硬碟, 重開機可以開啟沒問題

那就拿一顆新硬碟來rebuild, 查看看指令(ex. dmraid -R isw_XXXXXX /dev/sdX)

4. 先查詢RAID名稱:
# dmraid -r
/dev/sda: isw, "isw_bggfeejcea", GROUP, ok, 312581805 sectors, data@ 0


5. 執行 rebuild 動作:
# dmraid -R isw_bggfeejcea /dev/sdb

 


6. 後來發現其實step 5已經有在做rebuild的動作, 只是我們不曉得查詢到狀態
# dmsetup status 就可以知道狀態了
 
6. 查看 raid 後 partition 的狀態:
# fdisk -l

可以發現二顆硬碟的 partition 變成一模一樣, 那就重開機吧!!.......
開機中 ..........
出現錯誤..........
.............................無言中

怎麼會這樣呢? 將新的那顆硬碟拿到別台看一下, 喲!!怎麼只有/boot partition有資料, 其他 partition都沒有資料, 難道 dmraid 只做半套...我不要只有半套, 只好再有請 google 大神, 網路上幾乎沒有人PO如何rebuild, 完蛋了卡關了, 心想 ....才剛進這家公司就要黑掉了嗎? 家中還有老婆小孩要養, 不行我不能被打敗, 只好硬來了...XD

既然沒有sdb2 partition那我就自己建:
7.# fdisk /dev/sdb
Command (m for help): t
Partition number (1-6): 2
Hex code (type L to list codes): 83 (# fdisk -l 時, /dev/sda2 ID number)
w
q

既然沒有資料我就自己 copy
8. # dd if=/dev/sda2 of=/dev/sdb2 (160G大概8個小時)

經過一夜的煎熬......

早上來公司, 懷著期待的心情
9. #reboot


BIOS 訊息 : Raid Status: Normal
............開機中 ............
.......進入到登入畫面 .......
............登入.................
............成功.................
.........哦耶!!收工..........
老闆說: 剛上班你要去哪?
我 說 : 上洗手間(卒仔)