
磁盤io的瓶頸已經很多年了,随着ssd硬碟技術日益成熟、成本的逐漸下降,越來越多公司開始在伺服器上使用ssd硬碟。
自打去年給筆記本加了一塊msata接口的ssd之後,整個系統性能的提升無以言表!
單塊ssd的性能已經非常好了,若沒有raid則資料安全性無法保證。但使用普通的raid卡跑ssd硬碟,瓶頸會壓在raid卡上。既要性能好、又要資料安全,可以選擇高大上的:pcie接口的固态硬碟(ssd)或閃存卡(flashcard)。
結論如下:
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。寫入一些資料,然後重新開機、驗證。大功告成!
原文釋出時間:2014-06-16
本文來自雲栖合作夥伴“linux中國”