Chinaunix首页 | 论坛 | 博客
  • 博客访问: 821654
  • 博文数量: 94
  • 博客积分: 1767
  • 博客等级: 上尉
  • 技术积分: 1168
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-13 23:16
个人简介

ha

文章分类

全部博文(94)

文章存档

2014年(2)

2013年(17)

2012年(6)

2011年(15)

2010年(23)

2009年(23)

2008年(8)

我的朋友

分类: 服务器与存储

2008-12-15 10:07:10

设计结构

  • 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能力表现:

写入性能测试:

  • 整体执行时间:2分30秒
iostat输出:
sar输出:

读取性能测试:

  • 整体执行时间:30秒
iostat输出:
sar输出:

两个Server节点RAID1结构I/O能力表现:

写入性能测试:

  • 整体执行时间:4分21秒
  • Client节点
iostat输出:
sar输出:
  • Server节点1
iostat输出:
sar输出:
  • Server节点2
iostat输出:
sar输出:

读取性能测试:

  • 整体执行时间:54秒
  • Client节点
iostat输出:
sar输出:
  • Server节点1
iostat输出:
sar输出:
  • Server节点2
iostat输出:
sar输出:

三个Server节点RAID1结构I/O能力表现:

写入性能测试:

  • 整体执行时间:4分40秒
  • Client节点
iostat输出:
sar输出:
  • Server节点1
iostat输出:
sar输出:
  • Server节点2
iostat输出:
sar输出:
  • Server节点3
iostat输出:
sar输出:

读取性能测试:

  • 整体执行时间:48秒
  • Client节点
iostat输出:
sar输出:
  • Server节点1
iostat输出:
sar输出:
  • Server节点2
iostat输出:
sar输出:
  • Server节点3
iostat输出:
sar输出:

两个Server节点RAID0结构I/O能力表现:

写入性能测试:

  • 整体执行时间:2分6秒
  • Client节点
iostat输出:
sar输出:
  • Server节点1
iostat输出:
sar输出:
  • Server节点2
iostat输出:
sar输出:

读取性能测试:

  • 整体执行时间:46秒,与之前结构的测试效果没有本质差异

三个Server节点RAID0结构I/O能力表现:

写入性能测试:

  • 整体执行时间:1分45秒
  • Client节点
iostat输出:
sar输出:
  • Server节点1
iostat输出:
sar输出:
  • Server节点2
iostat输出:
sar输出:
  • Server节点3
iostat输出:
sar输出:

读取性能测试:

  • 整体执行时间:45秒,与之前结构的测试效果没有本质差异

两个Server节点先做RAID1,再加一个Server节点构成1+0结构I/O能力表现:

写入性能测试:

  • 整体执行时间:2分42秒
  • Client节点
iostat输出:
sar输出:
  • Server节点1 (raid1 menber)
iostat输出:
sar输出:
  • Server节点2 (raid1 menber)
iostat输出:
sar输出:
  • Server节点3
iostat输出:
sar输出:

读取性能测试:

  • 整体执行时间:52秒,与之前结构的测试效果没有本质差异

两个Server节点先做RAID0,再加一个Server节点构成0+1结构I/O能力表现:

写入性能测试:

  • 整体执行时间:3分25秒
  • Client节点
iostat输出:
sar输出:
  • Server节点1 (raid0 menber)
iostat输出:
sar输出:
  • Server节点2 (raid0 menber)
iostat输出:
sar输出:
  • Server节点3
iostat输出:
sar输出:

读取性能测试:

  • 整体执行时间:54秒,与之前结构的测试效果没有本质差异


实验结果对比图

实验感想

  • 部署比较简单,但管理过于简单,没有web页面,也没有性能和管理监控界面。
  • 还不能实现节点动态增加和减少,前端需要重新挂载才生效。并且,自动均衡脚本可能有bug。
  • unify有时不能正确处理文件存放,幸好有afr配合保证冗余数据。
  • unify和afr的对比,能明显的反映出分布式存储的效果,可以超过本地的IO处理性能,峰值取决于前端服务器的网络IO。
  • unify和afr方式都以整体文件进行处理,不切片。如果遇到各节点io性能不一致,整体写操作队列的执行时间将取决于最慢的机器,整体读操作的执行时间将取决于该数据存放的节点。
  • RAID1+0结构要比RAID0+1的I/O性能好,因为前一种需要处理的文件拷贝数量相对少,文件数量越多越明显。
  • 下一步,有必要进行条带化的统一命名结构的部署测试,理论上要优于本次测试的架构。
阅读(4062) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~