eygle.com   eygle.com
eygle.com eygle
eygle.com  
 

« 彭蕾:马云推到支付宝前台的"守护者" | 文摘首页 | 中国历史上评价最高的36首诗词精选排行 »

EMC/HDS/IBM三款高端存储之结构对比
modb.pro

转载Piner的文章: http://www.ixdba.com/html/y2007/m05/98-storage-contrast.html

我在前面介绍了现在比较流行的三款高端存储的基本体系结构,包括IBM的ds8000系列,hds的usp系列以及EMC的dmx3系列。我在这里将三款高端存储再做一个简单的对比。

1、体系结构

hds与emc都采用了多点冗余的复合式体系结 构,有多个专用的存储控制器,如专用的前端控制器,专用的后端控制器,并且以以专用的 cache 控制器为核心,CPU集成在前/后端控制器中,操作系统以微码方式集成在硬件中,并可以方便的升级维护。在这种结构中,前端,cache,后端均可实现系 统均衡,并多点冗余。所以,失败一个点的时候,影响量比较小。不过,还有一点差别的是,hds前后端连接到核心cache,是采用交换方式,而EMC是采 用直连方式,所以也叫直连矩阵。

至于IBM,采用的是传统的对称体系结构,采用其 强大的570 pserver作为存储的控制器,所以,存储的管理OS运行在控制器内,CPU与内存也都在控制器内。这一种体系结构是应当是说与现有的中端存储的结构很 相似,IBM的这种方式的体系结构在可靠性方面是比上面的体系结构要欠缺一些的。

2、后端连接与RAID

IBM采用交换方式连接磁盘与后段卡,而HDS与EMC采用环路结构,在交换结构中,每个磁盘都有自己的线路连接到后端卡(口),所以,不容易产生后端瓶颈。

至于环路设计,则是现在的流行设计,但是,一个环路上的盘不能太多,否则,容易产生性能瓶颈。如,一个2Gb的光纤环路,一般接到50-60颗盘,已经都达到负载极限了。而一个4Gb的环路,如果考虑翻倍的话,也就最多可以接100-120颗磁盘。

不过,上面评估磁盘个数的时候,是根据流量,也就 是带宽来考虑的,如果在OLTP环境中,我们还需要考虑IO个数,因为光纤通信的规则,在同一个时间,一个环路中只能有一个通信量,也就是一个IO。不过 幸好的是,光纤传送的速度是非常快的,在比较慢的磁盘面前,一般都不会有性能问题存在。我们可以想象为光纤环路是一个运行非常快的传送带(但是这个传送带 很奇怪,每个时间最多只能送1个任务),而磁盘则是这些传送带旁边的工人,负责从传送带上面拿到自己的工作,把工作完成以后,再把结果放到传送带上,工人 在工作期间(类似磁盘寻道时间),传送带是不需要等待的,可以传送别的工人的任务。

因为考虑到环路的可靠性与性能问题,HDS与 EMC的高端存储都是双环路设计,每个磁盘都有2个环路可以达到,而且,这两个环路可以负载均衡的工作。另外,为了避免一个环路,或者一个磁盘太 忙,RAID组的设计也有特殊的要求,一个RAID组中的磁盘,必须跨越在不同的环路上面。

为了扩大容量,又不影响性能,存储厂商只好不断的增加环路的个数,一般情况下,典型的OLTP环境中,一个2Gb的环路中,磁盘个数最好也不要超过32颗,如果想增加更多的磁盘,最好也增加环路个数。

不过,怎么来说,交换结构是要优于环路设计的,所以,这里IBM更好一些。

3、cache设计

HDS与EMC都是以cache为核心,并且 cache size一般比较固定,如64K,256K等等,如果这样的cache size在运行很离散的OLTP数据库应用的时候,因为数据库的block size一般都比较小,如8k、16K,所以,容易引起cache size的浪费。因为存储的一个cache size单元中,一定要保存相临的磁盘连续空间。

而IBM因为采用OS的内存来做存储的cache,所以,cache size就是页面大小,默认为4K,这样的cache size对小的IO是很适合的,但是对大型的IO操作,或者是太大的cache size,可能会有额外的管理负担。

比较大的cache size,如64K的cache size,一般是因为考虑到高效的算法设计以及满足大部分应用需求而设计的,如根据概率统计的数据,满足99%的应用等等,个人觉得,在一些特定的非常小的,离散的应用上,则不一定适合。

至于cache算法,HDS与EMC基本都是 LRU算法,而IBM则采用改进的ARC算法。在cache保护中,IBM与HDS都是写cache镜相+电池cache保护,而EMC则是读写全局 cache的全镜相+电池cache保护。在写cache镜相的规则中,读写cache是分离的,写cache镜相,读cache不镜相,一份数据可能同 时存在与读/写cache中;而全局cache,没有读写之分,cache公用,只有不同的链表来决定那些数据是写cache,这点很类似Oracle的 data buffer。

相关讨论,也可以参考:

DS8000,DMX3,HDS USP究竟哪个性能会表现的好些呢?





历史上的今天...

By eygle on 2011-05-28 10:39 | Comments (0) | Oracle摘 | 2827 |


CopyRight © 2004~2020 云和恩墨,成就未来!, All rights reserved.
数据恢复·紧急救援·性能优化 云和恩墨 24x7 热线电话:400-600-8755 业务咨询:010-59007017-7040 or 7037 业务合作: marketing@enmotech.com