Linux 既 mdadm 係一個功能極強大既 RAID software (software RAID 通常指一張 RAID 卡要依賴 driver software 黎做運算, 所以依度用 RAID software 以示識別), 唔好理佢效率方面比起 hardware RAID 差幾多, 但係佢既應用彈性真係一流。Microsoft Windows 都有類似既 diskpart 黎做 mirror disk, 不過只係限於 server 版本既Windows 先 support mirror disk。
如果你用 hardware RAID, 你要改個 RAID configuration 往往要 reboot 入返去張 RAID card 既 BIOS, 但 software RAID 你就可以隨時隨地開新 RAID 用或剷除, 而且唔限制你用邊個 harddisk 同 partition 既組合, 即係話, 你就算得一隻 harddisk 行 RAID 1 都得 (RAID 0 都得…不過相信冇人會咁做), 成為做 live backup 既最佳選擇。
另一個情況就係你有兩隻唔同 size 既 harddisk, 例如 320GB 同 160GB, 你可以割 320GB harddisk 當中既 160GB 黎同隻 160GB harddisk 行 RAID 1, 然後剩落黎既割開黎點用都得。
除左 RAID 1 同 RAID 0 外, mdadm 仲 support RAID4, RAID5 同 RAID6, 仲有 multipath, 詳細請參閱 man mdadm。
上一次 server 部 harddisk 就死, 就係靠 mdadm 個 RAID 1 個 mirror, 係舊個隻死 harddisk remove 左之後即刻可以用黎 boot 機, 同你行 RAID 卡一樣, 當然前提係你要 set 得岩同test 過晒。
以下 command 經過長期試練, 係屋企既小朋友唔好亂試
今次示範既既係將一個有料既 partition 快速轉做 RAID 1
- 首先預備一個用開既 partition(hda1), 然後間個新 partition(hdb1) 係同一樣 size
- 之後hda1 如有mount就 umount 左 hda1 佢, 如果唔係一陣間你 create 時就會見到:
mdadm: Cannot open /dev/hda1: Device or resource busy - 戲玉黎了
mdadm –create –force /dev/md0 –level=1 –raid-devices=1 /dev/hda1
先用 /dev/hda1 黎做左個 1 個 device 既 RAID 1, 由於只得 1 個 device, 理論上係唔算 RAID 1, 所以要用 –force 夾硬黎。結果佢就寫左堆 RAID 既資料落 /dev/hda1 既 superblock 度, 同時 create 左個 md0 既 device, 而個 device 係由 /dev/hda1 組成mdadm: /dev/hda1 appears to contain an ext2fs file system size=4088508K mtime=Mon Nov 13 08:36:30 2006Continue creating array?
由於個 device 本身有個 partition, partition 入面又有個 ext2fs 既 file system, 所以佢 confirm 你繼續與否。由於只係寫 superblock, 照計唔會寫花d data, 至少我既測試係安全, 但唔包其他人做安唔安全, 所有後果閣下自負。
成功話:mdadm: array /dev/md0 started.
- Ok 既話, 就可以將個冇料既 partition 加入去, 加之前將 raid disk 既數目加大
mdadm –grow /dev/md0 –raid-disks=2然後就係加 /dev/hdb1
mdadm –manage /dev/md0 –add /dev/hdb1 - 完成
要睇個 raid d 資料 sync 成點, 只要:
cat /proc/mdstat
要睇下 mdadm 係 superblock 度寫左d 乜, 最簡單既方法係
mdadm –examine /dev/hda1
/dev/hda1: Magic : a92b4efc Version : 00.90.01 UUID : 8c542ae6:1bc5a4c0:8e0cb167:cbbcf3d1 Creation Time : Mon Jan 7 18:06:15 2008 Raid Level : raid1 Raid Devices : 1 Total Devices : 1Preferred Minor : 3
Update Time : Mon Jan 7 18:06:15 2008 State : clean Active Devices : 1Working Devices : 1 Failed Devices : 0 Spare Devices : 0 Checksum : 3a511a4d - correct Events : 0.1
Number Major Minor RaidDevice Statethis 0 3 69 0 active sync /dev/hda1
0 0 3 69 0 active sync /dev/hda1
咁就可以 mount 返個 partition 係原本位置, 同埋睇下入面d 料係唔係度
見到有兩個 U同埋 2/2係 []入面即係有兩個device up, 即係 sync 完
md0 : active raid1 hdb1[1] hda1[0]
4088448 blocks [2/2] [UU]