磁盤IO的瓶頸已經很多年了,隨著SSD硬盤技術日益成熟、成本的逐步下降,越來越多公司開始在服務器上使用SSD硬盤。
自打去年給筆記本加了一塊mSata接口的SSD之後,整個系統性能的提升無以言表!
單塊SSD的性能已經非常好了,若沒有Raid則數據安全性無法保證。但使用普通的Raid卡跑SSD硬盤,瓶頸會壓在Raid卡上。既要性能好、又要數據安全,可以選擇高大上的:PCIE接口的固態硬盤(SSD)或閃存卡(FlashCard)。
Debian軟RAID安裝筆記 - 使用mdadm安裝RAID1 http://www.linuxidc.com/Linux/2013-06/86487.htm
常用RAID技術介紹以及示例演示(多圖) http://www.linuxidc.com/Linux/2013-03/81481.htm
Linux實現最常用的磁盤陣列-- RAID5 http://www.linuxidc.com/Linux/2013-01/77880.htm
RAID0+1和RAID5的性能測試結果 http://www.linuxidc.com/Linux/2012-07/65567.htm
有沒一種親民方案呢?答案就是軟Raid,比如Linux下的 mdadm v3.2.5。
下圖是在 CentOS 6.4 x86_64 結合 fio v2.1.4-8-g3e26,結出不同Raid結合下的iops測試結果:
結論如下:
1、軟Raid可以發揮多個SSD的性能,盤越多性能越好(目前只測試了最多5塊盤)
2、Raid0 的性能最佳,但安全性最差
3、Raid5 的寫性能較差,導致混合讀寫時性能被拖跨
4、Raid10 是性能、容量、數據安全 綜合最優的方案
測試腳本如下:
- #!/bin/bash -x
- yum -y install fio mdadm xfsprogs
- mkdir -pv /ssd
- umount /ssd
- mdadm -S /dev/md0
- yes | mdadm -C /dev/md0 -a yes -l 0-n 5--assume-clean /dev/sd{b,c,d,e,f}
- mkfs.xfs -f /dev/md0
- mount /dev/md0 /ssd
- rm -fv /tmp/fio-*.txt
- cat /proc/mdstat
- mdadm -D /dev/md0
- fio --bs=512--ioengine=libaio --userspace_reap --time_based --runtime=600--group_reporting --buffered=0--direct=1--randrepeat=0--norandommap --ramp_time=6--iodepth=16--numjobs=16--size=100G--directory=/ssd --name=randread --rw=randread --filename=fio-test.file --output=/tmp/fio-r.txt #隨機讀
- fio --bs=512--ioengine=libaio --userspace_reap --time_based --runtime=600--group_reporting --buffered=0--direct=1--randrepeat=0--norandommap --ramp_time=6--iodepth=16--numjobs=16--size=100G--directory=/ssd --name=randwrite --rw=randwrite --filename=fio-test.file --output=/tmp/fio-w.txt # 隨機寫
- fio --bs=512--ioengine=libaio --userspace_reap --time_based --runtime=600--group_reporting --buffered=0--direct=1--randrepeat=0--norandommap --ramp_time=6--iodepth=16--numjobs=16--size=100G--directory=/ssd --name=randmixed --rwmixwrite=20 --rw=randrw --filename=fio-test.file --output=/tmp/fio-m.txt # 8:2混合讀寫
- grep --color iops /tmp/fio-*.txt
需要注意的是,軟Raid默認不會開機自動加載,需要手動生成配置文件。
- mdadm --verbose --detail --scan >/etc/mdadm.conf
- # ARRAY /dev/md0 level=raid0 num-devices=5 metadata=1.2 name=ssd.higkoo.org:0 UUID=0dfa7417:13c1622d:1dca1dfe:12a0e0f4
- # devices=/dev/sdb,/dev/sdc,/dev/sdd,/dev/sde,/dev/sdf
"/etc/mdadm.conf"的詳細說明可以查看幫助或“rpm -ql mdadm | grep "mdadm.conf"”給的示例文件作參考。
然後將Raid分區寫入到 fstab 中,可以使用 /dev/md0 或者 `ls -l /dev/disk/by-uuid` 查看其 uuid。寫入一些數據,然後重啟、驗證。大功告成!
via : http://hi.baidu.com/higkoo/item/13371fe44761e62d5a7cfb55