Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1094396
  • 博文数量: 286
  • 博客积分: 3124
  • 博客等级: 中校
  • 技术积分: 5186
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-24 23:42
个人简介

Bomi

文章存档

2015年(1)

2013年(1)

2012年(281)

2008年(3)

分类: 服务器与存储

2012-08-09 04:58:56

 
某客户新买了台存储,用来做小规模Hyper-V 集群的共享存储,希望在交换机上开巨帧来提高性能.写了点东西,把客户的想法给否决掉了.大家帮忙看看,我分析的对不对!
 
坑爹的存储啊,谁卖的?
 

客户的存储设备:

此设备支持最多4SATAII 硬盘,使用3TB硬盘可提供最大12TB(无RAID)存储容量。提供21GbE 网络端口。

在最经济的情况下,建议选配4 ST3000DM001 3TB 64MB Cache 7200rpm.

 

 

Iomega® StorCenter™ px4-300r

客户的应用需求

客户是想用此存储设备作为Hyper-V Server 的共享存储,对于Server 2008 R2 Hyper-V 角色,或者使用免费的Hyper-V Server 2008 R22台乃至多台Hypder-V Server 上要做虚拟机的故障转移集群,必须有共享存储,就客户目前所使用的存储设备而言,唯一的实现方法就是通过iSCSI。客户希望在将现有的百兆交换机升级到千兆交换机设备后,使用巨帧来提高单位网络IO的数据传输效率.

 

建议: 百兆升千兆是非常有必要的,但是不建议开启巨帧

分析:

设备的网络带宽限制压抑磁盘的数据存取性能:

客户为充分利用对设备硬件的投资,未来必然在不更换设备的情况下,通过更换更大容量、更快速的硬盘来进行存储扩容,同时提高存储性能。

在配备 ST3000DM001 3TB 64MB Cache 7200rpm 的情况下(RMB 1K 1),每个磁盘平均数据传输率,读取/写入(MB/秒)为125~156MB/s , 最大持续数据传输率,顺序 读取速率为210MB/s.

无论4个磁盘的冗余模式是RAID 10还是RAID 5,理想情况下读取的性能=4个盘的读取能力总和,即500~624MB/s ,写入磁盘的性能也有2个盘的写入能力即大约250MB/s(RAID 10)。但网卡只有2*1Gb/8 =250MB/s 的理论最大数据传输能力,所以客户此台存储设备不论是现在还是将来,其最主要的性能瓶颈的性能瓶颈之一在设备本身的网络接口上。

设备磁盘接口限制直接导致整套系统的IOPS 能力低下,开启巨帧会加速磁盘IO能力达到峰值,严重影响套系统的用户操作响应速度。

由于此设备仅支持SATA II 接口模式(3Gb/s =375MB/s,接口的数据传输能力对于磁盘最高210MB/s 的数据传输能力来说目前还有富余,但是普通7200rpm SATA磁盘本身的IOPS 有限,直接导致整套系统的IOPS 能力低下.但是换WD 10K SATA 虽然可以在一定程度上提升磁盘系统的IOPS 能力,但是每GB的存储成本要高很多.

1台存储设备网络的IO能力再强,最终的瓶颈还是会落到磁盘上.

 

一般对于7200rpm SATA硬盘不建议单个磁盘的IOPS 超过100, 当多个应用同时对存储进行频繁的访问时,整套设备的IOPS 数会很快达到饱和,此时即使系统有再多的缓存,缓存的命中率再高也无济于事.因为性能瓶颈会卡在磁头寻道,读写磁盘数据本身的物理IO操作能力上.

 

为尽可能避免整套存储系统的磁盘IPOS能力饱和,建议用户将4个磁盘配置为RAID 10模式,特别是对小数据量频繁写入的系统采用RAID10的方式比较好,采用RAID 5的话,RAID5 对写缓存的依赖非常高,在发生坏盘的情况下,磁盘性能极具下降。正常使用IO一高,磁盘的IOPS就容易到极限了。

 

一般出于数据安全性的考虑,对缓存的数据每5秒进行一次存盘或者当缓存的占用量达到一定比例如30%开始进行对磁盘的物理写,当然有些设备会设置更长的存盘间隔时间或更高的缓存占用比例,但是这些都是以牺牲数据的安全性为代价的。一旦发生断电,未被写入磁盘的数据将丢失。

 

对于客户的虚拟机应用来说,对虚拟磁盘的一部分数据修改丢失了,并不是简单的数据不一致的问题,而很可能造成整个虚拟磁盘文件发生损坏。

 

客户的这台存储设备有2GB的内存,去掉系统占用的部分,我们假设最理想的情况下有1.5GB 可用于实际的数据缓存.并且为读、写共享缓存的模式。

 

开启巨帧的优势在于,在每一次网络IO操作时竟可能传输更多的数据,根据用户这台存储设备的网络带宽,只要5秒钟缓存就满了,缓存满了,就必须将缓存的数据写入磁盘已消化缓存中的数据,否则后面来自网络的数据因为没有空间容纳就进不来了。

 

未开启巨帧的情况下,同样5秒的IO,缓存中被存入的数据只有大约1/6 (标准MTU/巨帧MTU 9000) <= 250MB/s

 

在理想的单用户/顺序写入模式下,此时如果配的是ST3000DM001 3TB 64MB Cache 7200rpm 的硬盘,每个磁盘有64MB 的缓存,那么raid10 模式下,每个磁盘需要写入的数据是125MB/s ,在写操作的头一秒,64MB缓存的一半(读、写缓存区各一半)会被填满,从第二秒开始发生物理写,硬盘以最大IOPS能力比如200 1秒内即可完成数据的写入,整个操作耗时2~2,5秒即可完成,那么在下一此存盘操作前,他有2.5~3秒的空闲时间可以休息,那么在这5秒的时间内,磁盘的平均IOPS 200/5=40 ,和我们建议的正常操作IOPS 水平100 还有60的富裕,这种富裕允许整个存储在5秒内,保证写完缓存数据的情况下,还能对其他用户的磁盘读取请求提供快速响应和及时服务。

 

我们认为,这种状态下,整个存储系统的工作状况是健康的。

 

当开启巨帧后,同样5秒的时间,可以填满系统1.5GB的内存缓存,每1秒也有300MB的数据,只要2秒的数据,磁盘的IOPS就爆掉了!

 

总之分析结论,客户如果使用Iomega® StorCenter™ px4-300r设备做Hyper-V server 的后端iSCSI 存储,由于设备本身的磁盘IOPS能力限制,不建议使用巨帧。为充分利用开启巨帧提升网络IO数据传输效率的优势,同时避免造成过高的磁盘IO压力,建议客户更换支持SAS 硬盘,8~12 3.5”盘位的存储设备以利用开启巨帧的IO性能优势。

阅读(4127) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~