作者:【吴业亮】
博客:http://blog.csdn.net/wylfengyujiancheng
物理机配置:
1、将机械盘一块盘分为两个区,一个作为lvm,另一个区作为nfs。同时挂载在本地的cinder上
2、创建一台虚拟机(起在另一块ssd上),分别创建两块云硬盘,同时挂载在该虚拟机上
3、在虚拟机上安装fio
# yum install fio-2.1.2-1.el6.rf.x86_64.rpm
4、分别对两块盘4k随机读,4k随机写,4M顺序读,4M顺序写进行测试
4k随机度
# fio -filename=/dev/vdb -direct=1 -iodepth=64 -thread=2 -rw=randread -ioengine=libaio -bs=4k -size=1G -numjobs=32 -runtime=60 -group_reporting -name=randread4k -output=nfsrandread4k.log
# fio -filename=/dev/vdc -direct=1 -iodepth=64 -thread=2 -rw=randread -ioengine=libaio -bs=4k -size=1G -numjobs=32 -runtime=60 -group_reporting -name=randread4k -output=lvmrandread4k.log
4M顺序读:
# fio -filename=/dev/vdb -direct=1 -iodepth=64 -thread=1 -rw=read -ioengine=libaio -bs=4m -size=1G -numjobs=10 -runtime=60 -group_reporting -name=read4m -output=nfsread4m.log
# fio -filename=/dev/vdc -direct=1 -iodepth=64 -thread=1 -rw=read -ioengine=libaio -bs=4m -size=1G -numjobs=10 -runtime=60 -group_reporting -name=read4m -output=lvmread4m.log
4M顺序写:
# fio -filename=/dev/vdb -direct=1 -iodepth=64 -thread=2 -rw=write -ioengine=libaio -bs=4m -size=1G -numjobs=10 -runtime=60 -group_reporting -name=write4m -output=nfswrite4m.log
# fio -filename=/dev/vdc -direct=1 -iodepth=64 -thread=2 -rw=write -ioengine=libaio -bs=4m -size=1G -numjobs=10 -runtime=60 -group_reporting -name=write4m -output=lvmwrite4m.log
4k随机写
# fio -filename=/dev/vdb -direct=1 -iodepth=64 -thread=2 -rw=randwrite -ioengine=libaio -bs=4k -size=1G -numjobs=10 -runtime=60 -group_reporting -name=randwrite4k -output=nfsrandwrite4k.log
# fio -filename=/dev/vdc -direct=1 -iodepth=64 -thread=2 -rw=randwrite -ioengine=libaio -bs=4k -size=1G -numjobs=10 -runtime=60 -group_reporting -name=randwrite4k -output=lvmrandwrite4k.log
4、测试结果如下
5、64k写测试:
命令如下:
# dd bs=64k count=4k if=/dev/zero of=test oflag=dsync
这个可以当成是模拟数据库插入操作,所以很慢
# dd bs=64k count=4k if=/dev/zero of=test conv=fsync
这个还算准确,数据已经写入磁盘
这个很不准确的,因为命令结束的时候数据还没有真正写到磁盘上去
dd if=/dev/zero of=test bs=64k count=16k
测试结果:
6、结论:
1)、小文件的读,后端采用nfs,性能远远高于lvm。
2)、大文件的读,后端存储采用lvm和nfs,性能相当,nfs略高于lvm。
3)、在读方面cinder后端采用nfs性能优于lvm。
4)、在写方面cinder后端采用lvm性能优于nfs
5)、64k写lvm性能明显高于nfs