设计结构
- RAID1:AFR
- RAID0:unify(scheduler rr)
实验目标
- Server和Client的安装部署
- Client节点本地硬盘I/O能力表现
- RAID1结构的I/O性能与单一节点的对比
- RAID0结构的I/O性能与单一节点的对比
- RAID1+0结构的I/O性能与单一节点的对比
- RAID0+1结构的I/O性能与单一节点的对比
实验环境配置
- 说明:测试用的服务器都是虚拟机,我尽量把他们分布到不同的宿主上,以减少I/O的互相干扰。但毕竟还是会有些资源使用上的交叉,所以测试数据仅供参考和比较。
- Server端:XEN虚拟机(2*VCPU/256MB/10GB SATA)
- Client端:XEN虚拟机(2*VCPU/256MB/10GB SATA)
Client挂载参数:
glusterfs on /mnt/glusterfs type fuse (rw,nosuid,nodev,allow_other,default_permissions,max_read=1048576)
测试软件及方法
- 我们使用标准的Unix命令:dd来进行基本的I/O性能测试,并使用iostat和sar来实时检查各节点的系统负载情况
- 用dd命令在挂载好的glusterfs分区里并行创建5个250MB大小的文件,测试其100%写入性能。
# cd /iscsi
# dd if=/dev/zero of=file1 bs=64K count=4096 &
# dd if=/dev/zero of=file2 bs=64K count=4096 &
# dd if=/dev/zero of=file3 bs=64K count=4096 &
# dd if=/dev/zero of=file4 bs=64K count=4096 &
# dd if=/dev/zero of=file5 bs=64K count=4096 &
# iostat 5
- 随后,在执行如下命令,测试其100%读出性能
# dd if=file1 of=/dev/null bs=64K count=4096 &
- 此种测试方法不使用任何其他测试软件,虽然不十分细致,但iostat的输出表明了各节点网卡和磁盘的处理速度,并且我们使用并行的5个并行的方式,也可以填补处理交互上的空白,使I/O通道能够最大化的利用
- 需要说明的是,这种测试方法不能代表所有类型的I/O,它只能代表有序的100%读和100%写操作,但是也代表了绝大多数Unix类操作。
实验结果
Client节点本地硬盘I/O能力表现:
写入性能测试:
- iostat输出:
-
- sar输出:
-
读取性能测试:
- iostat输出:
-
- sar输出:
-
两个Server节点RAID1结构I/O能力表现:
写入性能测试:
- iostat输出:
-
- sar输出:
-
- iostat输出:
-
- sar输出:
-
- iostat输出:
-
- sar输出:
-
读取性能测试:
- iostat输出:
-
- sar输出:
-
- iostat输出:
-
- sar输出:
-
- iostat输出:
-
- sar输出:
-
三个Server节点RAID1结构I/O能力表现:
写入性能测试:
- iostat输出:
-
- sar输出:
-
- iostat输出:
-
- sar输出:
-
- iostat输出:
-
- sar输出:
-
- iostat输出:
-
- sar输出:
-
读取性能测试:
- iostat输出:
-
- sar输出:
-
- iostat输出:
-
- sar输出:
-
- iostat输出:
-
- sar输出:
-
- iostat输出:
-
- sar输出:
-
两个Server节点RAID0结构I/O能力表现:
写入性能测试:
- iostat输出:
-
- sar输出:
-
- iostat输出:
-
- sar输出:
-
- iostat输出:
-
- sar输出:
-
读取性能测试:
- 整体执行时间:46秒,与之前结构的测试效果没有本质差异
三个Server节点RAID0结构I/O能力表现:
写入性能测试:
- iostat输出:
-
- sar输出:
-
- iostat输出:
-
- sar输出:
-
- iostat输出:
-
- sar输出:
-
- iostat输出:
-
- sar输出:
-
读取性能测试:
- 整体执行时间:45秒,与之前结构的测试效果没有本质差异
两个Server节点先做RAID1,再加一个Server节点构成1+0结构I/O能力表现:
写入性能测试:
- iostat输出:
-
- sar输出:
-
- iostat输出:
-
- sar输出:
-
- iostat输出:
-
- sar输出:
-
- iostat输出:
-
- sar输出:
-
读取性能测试:
- 整体执行时间:52秒,与之前结构的测试效果没有本质差异
两个Server节点先做RAID0,再加一个Server节点构成0+1结构I/O能力表现:
写入性能测试:
- iostat输出:
-
- sar输出:
-
- iostat输出:
-
- sar输出:
-
- iostat输出:
-
- sar输出:
-
- iostat输出:
-
- sar输出:
-
读取性能测试:
- 整体执行时间:54秒,与之前结构的测试效果没有本质差异
实验结果对比图
-
实验感想
- 部署比较简单,但管理过于简单,没有web页面,也没有性能和管理监控界面。
- 还不能实现节点动态增加和减少,前端需要重新挂载才生效。并且,自动均衡脚本可能有bug。
- unify有时不能正确处理文件存放,幸好有afr配合保证冗余数据。
- unify和afr的对比,能明显的反映出分布式存储的效果,可以超过本地的IO处理性能,峰值取决于前端服务器的网络IO。
- unify和afr方式都以整体文件进行处理,不切片。如果遇到各节点io性能不一致,整体写操作队列的执行时间将取决于最慢的机器,整体读操作的执行时间将取决于该数据存放的节点。
- RAID1+0结构要比RAID0+1的I/O性能好,因为前一种需要处理的文件拷贝数量相对少,文件数量越多越明显。
- 下一步,有必要进行条带化的统一命名结构的部署测试,理论上要优于本次测试的架构。
阅读(4037) | 评论(0) | 转发(0) |