從FreeBSD5.3開始引進了對geom的支持,FreeBSD 5.3下面用geom來創建raid是很方便的。除了可以用geom這個程序來創建,還提供了個單獨的程序,例如:
gconcat, gmirror, graid3, gstripe. 另外還有個尚未完成的gvinum(即將代替vinum)
CONCAT版RAID
concat其實並不算是raid,因為沒有性能上的提升,也沒有數據保護作用。只是簡單的將各磁盤串起來利用磁盤空間。
下面例子將對ipsd1,ipsd2這兩個磁盤系統進行concat。
首先重置這兩個磁盤
bsdlabel -r -w ipsd1 auto
bsdlabel -r -w ipsd2 auto
使用gconcat連接兩個磁盤,並且命名為data
gconcat label -v data /dev/ipsd1 /dev/ipsd2
使用gconcat以後,將會在/dev/concat下面多出一個設備名叫data,對應早先命令的data名字
ls /dev/concat
格式化,如果你需要關閉Soft-Update,只需要去掉-U
newfs -U /dev/concat/data
創建mount point
mkdir /data
掛上新建的concat
mount /dev/concat/data /data
修改fstab讓系統重啟後自動mount
vi /etc/fstab
內容: /dev/concat/data /data ufs rw 2 2
增加開機自動裝載geom_concat.ko這個模塊
內容: geom_concat_load="YES"
很簡單的concat已經做好了
stripe raid (RAID0)
創建一個stripe raid (RAID0)。RAID0具有最高性能,也是最差安全性的。
使用gmirror連接兩個磁盤,並且命名為data
gstripe label -v -s 4096 data /dev/da1 /dev/da2
-s 4096: 是分開在每個磁盤的塊大小為4k
創建mount point
mkdir /data
掛上新建的Raid
mount /dev/concat/data /data
增加開機自動裝載geom_mirror.ko這個模塊
geom_stripe_load="YES"
kern.geom.stripe.fast
設置是否使用fast模式.gstripe有兩個模式,一個是fast,一個是economic.
fast模式消耗更多的內存,但是速度更快.當內存不足的時候會自動切換到economic模式.
kern.geom.stripe.maxmem
kern.geom.stripe.fast_failed
記錄了fast模式失敗次數,如果次數很大,你就要調大kern.geom.stripe.maxmem的數值
MIRROR raid (raid1)
創建一個mirror raid (也就是俗稱的RAID1)
RAID1具有最高的安全性,具有快速的讀操作,不提高磁盤的寫性能
下面例子將對da0 da1這兩個磁盤系統進行mirror
首先重置這兩個磁盤
bsdlabel -r -w da0 auto
bsdlabel -r -w da1 auto
使用gmirror連接兩個磁盤,並且命名為data
gmirror label -v -b split -s 2048 data da0 da1
稍微解釋一下上面的命令,詳細的查詢man gmirror
-b split: 告訴gmiiror創建的mirror,在讀取的時候將讀操作分開到各磁盤上面,這樣能夠提高讀取性能
-s 2048: 告訴mirror只分開讀取大於2k 的文件
除開spilit,還有其他平衡形式.split比較適合大眾
round-robin : 在各磁盤輪流讀取數據
prefer: 更高優先權的讀取數據
load: 更低負荷的讀取數據
使用gmirror以後,將會在/dev/concat下面多出一個設備名叫data,對應早先命令的data名字
ls /dev/concat
格式化,如果你需要關閉Soft-Update,只需要去掉-U
newfs -U /dev/concat/data
創建mount point
mkdir /data
掛上新建的Raid
mount /dev/concat/data /data
修改fstab讓系統重啟後自動mount
vi /etc/fstab
內容:/dev/concat/data /data ufs rw 2 2
增加開機自動裝載geom_mirror.ko這個模塊
內容:geom_mirror_load="YES"
mirror raid已經做好了
創建一個當前磁盤的mirror:
gmirror label -v -b round-robin data da0
gmirror insert data da1
除開上面,geom還提供了raid3的制作
graid3 label -v -r data da0 da1 da2
上面貼子說的gconcat,gmirror,gstripe都可以用geom一個來搞定
例如
geom stripe label -v -s 4096 data /dev/da0 /dev/da1 /dev/da2
等於
gstripe label -v -s 4096 data /dev/da0 /dev/da1 /dev/da2