今天和惠普的测试工程师jief聊了一下EVA6400的性能问题,聊了将近一个小时,接电话接得我耳朵都麻了。
事情的起因是这样的,我们这边有一台13块磁盘配置的EVA6400,在做连续写操作的时候获得的性能不如同等硬盘个数及RAID组情况下的MSA2312入门级存储。
下面来分析一下为啥会出现这样的情况:
1. EVA6400和MSA2312FC都是采用的双控制器。但是有一点区别,EVA6400的双控制器是独立的,采用同轴线缆将两个控制器连接起来。MSA2312FC的双控制器是两个板卡,插在同一个背板上面。所以的话EVA6400的双控制器之间的连接速度不如MSA2312FC双控制器之间的连接速度。
2. EVA6400对外使用8个4GB的光纤口(每个控制器4个),MSA2312FC对外是4个4GB光纤口(每个控制器2个)。在带宽上EVA6400是有优势的。
3. EVA6400划分出来的LUN隶属于某个控制器。也就是说,服务器虽然可以通过两个控制器中的任意一个访问到LUN,但是如果连接的是非隶属的控制器,那么IO请求实际上是通过两个控制器之间的同轴线缆到达隶属控制器再到达LUN的。所以会有这样的情况,请求响应速度变慢。不过还好,我们的8条路径服务器都能看到,并且服务器使用了DM,会自动选择隶属的4条路径。所以不存在这个问题。
4. EVA6400的有写缓存和读缓存。读缓存的话两个控制器各管各的。为了做到任意一个控制器坏掉之后不至于丢失数据,写缓存两个控制器必须保持一致(通过两个控制器的同轴电缆),是MIRROR的关系。问题就出在这里,大的连续写会造成MIRROR不停的同步,导致连续写的性能不如MSA2312FC。因为2312FC两个控制器是直接连在一个背板上的。速度快过同轴电缆。
5. 关于EVA系列虚拟存储产品,底层是由多个RAIDGROUP组成的。每6个磁盘组成一个GROUP。所以EVA6400最低配置是13块盘。两个GROUP,一个可能是校验信息盘(具体不清楚,下次再问问jief)。
6. EVA6400的底层存储单元,每4M一个存储单元。4M被均分到所有的磁盘上。所以13个盘应该是4M/12的最小单元。
7. 关于EVA6400连接SSD盘,最低配置是6块,最大配置是8块。原因是8块的时候,EVA6400的控制器将会成为瓶颈(CPU或者控制器之间的带宽)。
8. EVA6400热盘的处理,当某个盘的IO请求达到满负荷的时候,会自动调整这个盘上的存储信息均分到负荷比较低的盘上。
9. 关于SSD,SSD的擦除和更新操作类似PostgreSQL的更新和删除。实际上是往新的存储空间写记录。删除的区域SSD存储控制芯片负责在后台进行。所以一般SSD盘刚使用的时候写性能会不错,但是用到一定程度之后(比如开始有删除操作了)写性能就会急剧下降,与机械盘性能相当。一般72GB的SSD盘实际的容量可能有好几百G,原因在此。
10. EVA6400的顶配是184块盘,但是到168块盘的时候,性能就不会再往上了,因为到这个时候控制器部分将会成为瓶颈。所以168块盘之后再加盘的话性能就平掉了。(据jief说EMC再加盘后性能是下降的)
最好总结一下:
1. EVA6400适合读偏多的OLTP系统。不适合写非常多的应用如(持续的备份,持续的拷贝数据)。
2. EVA6400搭配SSD不太合算。