开始新对话

此帖子已超过 5 年

Solved!

Go to Solution

2663

2013年6月25日 07:00

关于VMAX的IO流程

不知道有没有专门介绍VMAX Virtual Matrix架构的白皮书,只看到有DMX的,有几个关于VMAX架构的问题请教下。。

VMAX基于虚拟矩阵架构,各个引擎之间是通过松耦合的形式来实现Scale-out的扩展。每个引擎都有前后端接口,可以接主机和硬盘框。


1、如果引擎1连接的主机下发I/O要访问一个LUN,而该LUN对应的是引擎0后面挂接的硬盘,那么引擎1会将I/O转发给引擎0来进行(读取或写入),然后由引擎0返回给引擎1,进而反馈给主机,是这样的流程么?

2、如果是上述流程,那么当多控的VMAX的一个引擎(双控)整个故障时(低概率事件),该引擎对应的后端硬盘上的数据就无法访问了?

3、如果上面的情况存在,那么通过引擎松耦合形式Scale-out成多控的架构是否都存在类似的问题,比如HP 3PAR?HDS VSP的交换式架构则不存在这样的问题?

2.1K 消息

2013年6月25日 18:00

1. 是的,基本上的流程就像你说的那样。

2. 如果是一个引擎整个故障,其他引擎就不能通过virtual matrix访问到它后端连接的磁盘和缓存内的数据。不过,假设这种情况真的发生,前端主机连接冗余的话,也不一定会影响到数据访问。因为VMAX在建立盘的时候,Enginuity算法会把Hyper分散到不同的引擎上面,一个Raid1的两个Member理论上会由两个不同的Engine接管,且分散在不同的DAE里面(前提是VMAX安装了两个引擎),同理对应Raid5,Raid6。不能访问的物理切块,还不是整个LUN。

3. HP和HDS的具体架构个人不是很清楚。不过理论上,一个架构在设计的时候肯定会考虑到诸多情况的发生,例如你说的整个引擎故障的情况。引擎内的双控制器(Director)结构和Hyper Volume机制,以及主机的多路径,应该会把引擎故障而导致的数据不能访问的概率降得非常非常低。

605 消息

2013年6月25日 21:00

1.

主机I/O如果是写操作,写入的数据放在缓存。主机I/O操作和VMAX缓存写入磁盘是异步的。

主机I/O如果是读操作,缓存未命中且数据存储在另外一个Engine后端,需要先读取数据到缓存。(这里具体方式不清楚。个人猜想先把主机I/O暂停,新创建一个后端I/O把数据读到缓存这种概率大点。)

2和3

赞同Fenglin Li观点。

28 消息

2013年6月26日 08:00

因为VMAX在建立盘的时候,Enginuity算法会把Hyper分散到不同的引擎上面,一个Raid1的两个Member理论上会由两个不同的Engine接管,且分散在不同的DAE里面(前提是VMAX安装了两个引擎),同理对应Raid5,Raid6。不能访问的物理切块,还不是整个LUN。

针对这部分,有白皮书或相关的学习材料么?

605 消息

2013年6月26日 19:00

哈哈。

我曾经也一直在找这方面资料,后来想想这个东西既然是VMAX Enginuity算法,估计不太可能公开。VMAX创建设备都是无法指定物理磁盘,Enginuity自动根据算法结合保护类型去选择磁盘。

楼主可以在自己机器上面创建设备,然后看看所有设备是否都在不同DAE上面。

631 消息

2013年6月28日 21:00

进来学习。

个人理解,即便一个引擎全部瘫痪,这中间缓存会起到很好的缓冲作用。

缓存有镜像,而缓存又连接所有的前后端卡,所以对IO理论上是不会有影响的。

找不到事件!

Top