蕃薯選用Linux內建的Software RAID功能,它比起Hardware RAID有以下優點:
1. 省錢,這是最主要的因素,以蕃薯這種克勤克儉的公司,Server都用PC來ㄍㄧㄥ,哪還花得起錢買貴參參的RAID卡呢。
2. 空間不會浪費,Software RAID以Partition為單位,只要硬碟切同樣大的Partition就可以建RAID。而Hardware RAID以硬碟為單位,例如: 1*1TB + 1*2TB,那顆2TB的硬碟就只能當1TB來用。
3. Software RAID可以看到硬碟的S.M.A.R.T資訊,發現壞軌可以及早更換。Hardware RAID 卡並不是所有都支援S.M.A.R.T。
4. Software RAID跟晶片無關,機器壞掉只要拿硬碟到別台Linux都捉得到。而Hardward RAID卡要是壞了,必須找到相同或相容的的型號,才能捉得到RAID。
至於缺點呢,大概就是會吃CPU資源,剛好公司的Server CPU使用率並不高,拿來應付Software RAID運算應該OK。
另外,如果是在BIOS設定的RAID或是便宜的RAID卡,其實是Fake RAID而不是真正的Hardware RAID,都還是用CPU來運算,跟Software RAID差不多。
要建立RAID可以用圖形化操作或文字命令方式,以下介紹操作步驟。
系統環境:
OS: CentOS 6.4sda: 10G,系統碟
sdb: 8G, RAID 1
sdc: 8G, RAID 1
必須以root帳號登入或sudo才能建立RAID
圖形化操作方式:
點選 Application -> System Tools -> Disk UtilityDisk Utility只會捉取尚未分配的空間,所以不能預先建立partition
點選 File -> Create -> RAID Array...
Scroll bar往下拉可以看到硬碟與容量,將它打勾,Array Name 可以不用更改,用預設的即可。
點選 RAID Level 可以選擇RAID-1, RAID-5, RAID-6,本範例使用RAID-1
RAID建立好了,會看到Multi-disk Devices多出一個New RAID Array,Device 為 /dev/md0,且在進行Resyncing
Stop RAID Array可以將RAID停止。
如果要對RAID做修改,可以選擇Edit Components(增加、刪除Partition等)
最後點選下方的 "Format Volume"格式化完成即可mount /dev/md0 到指定的路徑。
把 "Take ownership of filesystem"的勾勾拿掉,只有root才有權限存取。
如果要將 /dev/md0固定,必須自行建立一個檔案 /etc/mdadm.conf,增加一行設定。否則會從md127, md126...一直往下遞減。以下藍字全部在同一行:(必須依自己的RAID更改level, UUID, devices喔!)
ARRAY /dev/md0 level=raid1 num-devices=2 UUID=627f695b:400a706a:245bf981:3ca79a37 devices=/dev/sda1,/dev/sdb1
怎麼知道RAID的UUID呢? 這就要使用指令來看了,指令如下:
mdadm --detail /dev/md127
再重開機後就會變成指定的/dev/md0了
以指令操作方式
以指令方式建立RAID必須先建立Partition,任何Type的Partition都可以,建立Empty就好了。最簡單的方式是用Disk Utility,如果對fdisk指令熟悉的朋友也可以用它建立Partiton。Disk Utility點選Create Partition
將Type 改成 Empty
再點選 "Edit Partition" 將 Type 改為 "Linux RAID autodetect (0xfd)"
將所有Partion建立好,就可以開始建立RAID。
Linux的RAID管理工具是mdadm,CentOS已內建,若尚未安裝則需要使用apt-get或yum安裝。開啟 Terminal輸入指令:
mdadm --create /dev/md0 --leve=raid1 --raid-devices=2 /dev/sdb1 /dev/sdc1
Partition若是EXT2/3/4則給顯示警告訊息,但仍可以加入
參數說明
- --create /dev/md0 或 -C /dev/md0: 建立一個/dev/md0的RAID
- --level=raid1 或 -l raid1: 建立RAID-1,可以用下列參數
- --raid-devices=2或 -n 2: 有2個Partition
- /dev/sdb1 /dev/sdc1: 要加入的Partition
mdadm -C /dev/md0 -l 1 -n 2 /dev/sdb1 /dev/sdc1
如果有Partition稍後才要加入,建立RAID時可以使用missing參數代替
mdadm --create /dev/md0 --leve=raid1 --raid-devices=2 missing /dev/sdc1
再使用Disk Utility進行Format就可以mount了。
查詢RAID狀態
使用Disk Utility
指令: cat /proc/mdstat
建立好的RAID
移除掉一個Partition
指令: mdadm --detail /dev/md0 或 mdadm -D /dev/md0
移除掉一個Partition,可以看到Active只剩下一個Device
補充說明
- 如果要刪除RAID,必須先Stop RAID Array,再刪除所有的Partition。
- 由於本範例是在VMware示範,若為實際硬碟則Disk Utility可以顯示S.M.A.R.T資訊,可以檢查是否有壞軌(05,196,197)或其他警告訊息。
- 還有以下幾個常用的指令:
mdadm /dev/md0 --add /dev/sdd1
將Partition設置成損壞,才能使用 --remove移除
mdadm /dev/md0 --fail /dev/sdc1
移除Partition
mdadm /dev/md0 --remove /dev/sdc1
以上是Software RAID建立步驟與常用的指令,介紹得有點亂。其實mdadm還有很多參數,在此無法一一說明,有興趣想知道一些進階的用法可以參考linux的man page。
沒有留言:
張貼留言