CN100542163C - 镜像通信处理方法 - Google Patents
镜像通信处理方法 Download PDFInfo
- Publication number
- CN100542163C CN100542163C CNB2006101032397A CN200610103239A CN100542163C CN 100542163 C CN100542163 C CN 100542163C CN B2006101032397 A CNB2006101032397 A CN B2006101032397A CN 200610103239 A CN200610103239 A CN 200610103239A CN 100542163 C CN100542163 C CN 100542163C
- Authority
- CN
- China
- Prior art keywords
- mirror image
- request
- starting device
- response
- mirror
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Abstract
本发明提供了一种镜像通信处理方法,该方法主要包括:将镜像信息封装在FC-2中,在镜像控制器之间传递所述封装后的镜像信息。利用本发明所述方法,可以提高FC帧的利用率,提高了镜像通信的性能。
Description
技术领域
本发明涉及通讯领域,尤其涉及一种镜像通信处理方法。
背景技术
目前,典型的存储阵列控制器连接示意图如图1所示。第一控制器和第二控制器通过镜像链路连接起来,当其中一个控制器失效后,另外一个控制器将接管其业务。
在图1中,第一控制器和第二控制器之间的写数据必须始终保持一致,也就是说,当主机向第一控制器写一个数据A时,第一控制器在将数据A进行保存时,还通过第一控制器到第二控制器的镜像链路将主机写过来的数据A发送给第二控制器。只有当第一控制器收到第二控制器返回的数据A的响应后,第一控制器才继续本端对数据A的处理,并最终给出对主机写数据A处理结果的响应。于是,第一控制器和第二控制器中都存在一个数据A。当无论什么时候第一控制器突然宕机时,数据A也不至于丢失。
同时,主机写给控制器的数据都是先在控制器中进行缓存,当控制器中缓存的“脏数据(即尚未同步到磁盘的数据)”超过了一定比例后,控制器再逐步同步缓存中的脏数据到磁盘,以提升主机写性能。同时当第一控制器将数据A同步到磁盘后,将通过第一控制器到第二控制器的镜像链路发送镜像删除命令通知第二控制器删除相应的数据A,以保证第一控制器和第二控制器中缓存的写数据的一致性。此外,如果第一控制器通过第一控制器上的磁盘侧启动器向磁盘读写数据时,该磁盘侧启动器和磁盘框控制器之间的链路发生故障,第一控制器将通过第一控制器到第二控制器的镜像链路经第二控制器,绕行第二控制器上的磁盘侧启动器向磁盘读写数据。
从上述描述可知,镜像链路上承载的数据量必然大于主机与控制器之间以及磁盘侧启动器与磁盘间的数据量。因此,如何进行镜像链路设计是整个系统的关键,同时,一旦镜像链路发生故障,将可能导致两个控制器间数据的不一致,造成严重的后果。
SAN(存储域网)存储系统的结构如图2所示,包括启动器、目标器两层结构。SCSI(小型计算机系统接口)驱动层完成SCSI命令的封装和解析,FC(光纤通道)驱动层则负责将SCSI命令封装到FC数据包中,完成数据的传输。
在图2中所示的SAN存储系统中,启动器侧请求下发以及请求响应的处理流程示意图如图3所示。从图3可以看出,一个命令的处理,中间经过数次封装与解封装的过程。目标器侧的请求下发以及请求响应的处理流程与图3类似,只是先经过FC驱动层,再到SCSI驱动层。
FC的一个分层结构示意图如图4所示,其中:
FC-0:为物理层,定制了不同介质、传输距离和信号机制的标准,也定义了光纤和铜线接口以及电缆指标;
FC-1:定义编码和解码的标准;
FC-2:定义了帧、流控制、和服务质量等;
FC-3:定义了常用服务,如数据加密和压缩,链路服务等;
FC-4:协议映射层,定义了光纤通道和上层应用之间的接口。SCSI命令就是通过FCP(光纤通道协议)映射到FC中的。
FC中引入SCSI的目的主要是因为SCSI协议的历史比FC长,经过多年的发展SCSI已经形成了一套完善的命令集以及错误处理机制,既可以实现诸如集群、多路径等丰富的上层应用,也可以用于其它复杂的应用和拓扑环境。
SCSI驱动命令处理流程示意图如图5所示。其处理过程主要为:镜像启动器在构造完SCSI命令,启动命令定时器,下发SCSI命令给FC驱动后。一旦发现有命令超时,即下发的命令在规定的时间内没有收到响应,系统将进入正在恢复状态,此时新SCSI命令将被挂起,系统将进行错误处理过程。
镜像启动器将重发所有超时或者失败的命令,同时执行Abort(异常中断)超时命令,该Abort超时命令的作用是为了防止超时命令又返回,比如某个命令3秒时超时了,但4秒时该命令的响应又返回了,于是扔掉这个返回的响应,仍然按照超时来处理该命令。
等到所有SCSI命令的响应都按时返回后,系统将进入稳态。
在上述SAN存储系统的磁盘侧启动器中面对的是一堆参数各异的机械装置(磁盘),它必须处理诸如磁盘拔插、引导磁盘上电、磁盘介质故障、磁盘环路复位等等事件,且随着磁盘数量的增多,其故障种类也随之增多,因此,在磁盘侧启动器,也包括主机侧的启动器中引入SCSI完善的错误处理机制是必不可少的,这样,整个系统的可靠性将可以得到很好的保障。
上述FC中引入的SCSI处理机制的缺点为:不适用于上述镜像链路这种“点对点”拓扑的应用场合。因为镜像链路的故障主要只有镜像链路中断和镜像控制器发生故障两种,且这两种故障都仅限于FC层,与SCSI无直接联系,像SCSI标准错误处理里的复位目标设备(比如磁盘)和复位FC卡对这两种故障是完全没有必要的。同时镜像链路对性能要求很高,对可靠性要求相对较低,而上述SCSI处理机制主要强调可靠性。
发明内容
本发明的目的是提供一种镜像通信处理方法,从而提高了FC帧利用率,提高了镜像通信的性能。
本发明的目的是通过以下技术方案实现的:
一种镜像通信处理方法,包括:
A、当有镜像请求信息需要发送时,镜像启动器判断镜像链路是否处于正常状态,如果是,则执行步骤B;否则,所述镜像启动器切换到处于正常状态的镜像链路上后,执行步骤B;
B、所述镜像启动器检查系统是否正在恢复,如果是,则等待系统恢复完毕后,将所述镜像请求信息封装到光纤通道的帧结构的2层结构FC-2的有效载荷区域中;否则,将所述镜像请求信息封装到FC-2的帧结构中的有效载荷区域中;
C、所述镜像启动器在判断没有请求响应逾期后,启动镜像请求定时器,将所述封装后的镜像请求信息发送给镜像目标器。
步骤A中所述的镜像启动器切换到处于正常状态的镜像链路,具体包括:
当处于正常状态的镜像链路的数量大于1时,则镜像启动器切换到处于正常状态的镜像链路中的负载最轻的一条镜像链路上;
当处于正常状态的镜像链路的数量等于1时,则该最后一条镜像链路切换为双向传输的镜像链路,接替所述失效的镜像链路,镜像启动器和镜像目标器都通过该最后一条镜像链路来发送请求和接收响应。
所述的方法还包括:
所述的镜像启动器在判断有请求响应逾期后,则在下一个发送的镜像请求中修改请求标签类型为“规则”。
所述方法还包括步骤:
D、镜像启动器在接收到所述发送的镜像请求的响应后,判断该响应是否超时,如果是,则执行步骤E;否则,执行步骤F;
E、镜像启动器判断镜像链路是否处于正常状态,如果是,则镜像启动器设置系统正在恢复,待收到所有按时返回的响应后,重发所有响应超时的或者没有收到响应的请求;否则,镜像启动器切换到处于正常状态的镜像链路上后,重发所有响应超时的或者没有收到响应的请求;
F、镜像启动器处理所述响应,如果在设定的时间范围内,镜像启动器处理完毕该响应,则镜像启动器释放相应的请求资源;否则,镜像启动器设置出现请求响应逾期,在处理完毕该响应后释放相应的请求资源。
步骤E中所述的镜像启动器切换到处于正常状态的镜像链路具体包括:
当处于正常状态的镜像链路的数量大于1时,则镜像启动器切换到处于正常状态的镜像链路中的负载最轻的一条镜像链路上;
当处于正常状态的镜像链路的数量等于1时,则该最后一条镜像链路切换为双向传输的镜像链路,接替所述失效的镜像链路,镜像启动器和镜像目标器都通过该最后一条镜像链路来发送请求和接收响应。
所述的步骤E具体包括:
当重发所有响应超时的或者没有收到响应的请求的重发次数超过了设定的上限值,则认为该请求的发送失败。
所述方法还包括:
在所述镜像启动器接收到的响应中,利用FC-2帧结构的有效载荷区域中的保留字段来携带响应数据。
所述的方法适用于存储域网SAN存储系统。
由上述本发明提供的技术方案可以看出,本发明通过将镜像信息封装在FC-2(光纤通道的帧结构的2层结构)中,和现有技术相比,具有如下优点:
1、提高了FC帧利用率,提高了镜像通信的性能;
2、利用FC-2的没有方向的特性,使镜像端口具有双重身份,既可以做启动器,也可以做目标器,提高了镜像链路发生故障时系统的可靠性;
3、简化了镜像通信的错误处理流程,提高了镜像通信的错误处理效率。
附图说明
图1为现有技术典型的存储阵列控制器连接示意图;
图2为现有技术SAN存储系统的结构示意图;
图3为现有技术中启动器侧请求下发以及请求响应的处理流程示意图;
图4为现有技术FC的一个分层结构示意图;
图5为现有技术中SCSI驱动命令处理流程示意图;
图6为本发明所述镜像启动器的请求下发处理流程的实施例的处理流程示意图;
图7为标准FC-2帧的格式示意图;
图8为本发明所述镜像启动器的响应处理流程的实施例的处理流程示意图。
具体实施方式
本发明提供了一种镜像通信处理方法,本发明的核心为:将镜像信息封装在FC-2(光纤通道的帧结构的2层结构)中,在镜像控制器之间传递所述封装后的镜像信息。
本方法所述方法包括镜像启动器的请求下发处理流程和镜像启动器的响应处理流程两部分。
下面结合附图来详细描述上述两个处理流程,本方法所述镜像启动器的请求下发处理流程的实施例的处理流程如图6所示,包括如下步骤:
步骤6-1、镜像启动器首先检查镜像链路是否发生故障,如果否,则执行步骤6-2;否则,则当处于正常状态的镜像链路的数量大于1时,则镜像启动器首先切换到处于正常状态的镜像链路中的负载最轻的一条镜像链路上发送所述请求,并在剩余的镜像链路间继续互为负载均衡。所谓负载最轻是指该镜像链路上的正在执行的请求数量最少。执行步骤6-2。
当处于正常状态的镜像链路的数量等于1时,则该最后一条镜像链路切换为双重身份,即切换为可以双向传输的镜像链路,并且接替上述失效的镜像链路,镜像启动器和镜像目标器都通过该最后一条镜像链路来发送请求和接收响应,以进一步提高镜像通信的可靠性。执行步骤6-2。
步骤6-2、镜像启动器检查系统是否正在恢复,如果是,则等待系统恢复完毕后再发送镜像请求;否则,将镜像控制器之间需要传送的镜像请求信息封装到FC-2的帧结构中,所述请求信息包括上述各种镜像命令。具体封装过程的描述如下:
镜像请求的格式如表1所示,表1所示的镜像请求可以兼容标准的SCSI命令,并且镜像命令和主机启动器、目标器的驱动代码能够重用。
在表1所示的镜像请求中,镜像读、镜像写命令用于从镜像控制器指定的目标模块(比如磁盘、超速缓存Cache)中读写数据。镜像控制命令用于两个镜像控制器之间传递控制消息,每个镜像控制命令里可以包括不同的子命令,比如,前面所述的镜像删除命令。镜像请求时间戳即该请求发送时刻的时间。
表1:镜像请求的格式
标准FC-2帧的格式如图7所示。本发明将上述镜像请求封装到标准FC-2帧的格式中的Payload(有效载荷)区域。
在镜像请求的实际封装过程中可以参考FCP的封装方法,并进行一些简化和扩展,即去掉一些对镜像处理没有意义的字段,扩展一些对镜像处理有意义的字段,以提高传输效率。比如,按照SCSI协议,镜像写命令的响应只表征了本次镜像写命令是否成功以及失败的原因,并不带回其它的响应数据。如果需要带回其它的响应数据,就必须下发其它命令读取这些额外的响应数据,但这势必降低通信的效率。
本发明中,在镜像读、镜像写或镜像控制命令的响应中,可以利用FC-2帧结构的Payload区域里的一些保留字段来携带一些额外的响应数据,以提高镜像通信的效率。执行步骤6-3。
步骤6-3、在将镜像控制器之间需要传送的请求封装到FC-2的帧结构中后,镜像启动器便判断是否发生请求响应逾期,所谓“请求响应逾期”是指返回的镜像请求的响应时间大于给定的阈值,但并不超时。
当发生请求响应逾期后,镜像启动器便认为系统工作忙,需要进入流控状态,于是,在下一个发送的镜像请求中修改请求标签类型为ORDERED(规则),SIMPLE(简单)、ORDERED都是SCSI协议中定义的命令执行方式的属性,默认的属性为SIMPLE。强制让镜像目标器进入流控状态,即优先处理以前接收到的旧请求,再处理新收到的请求,以防止以前接收到的旧请求超时,同时将发送新请求的速度放慢,即将发送定时器的定时长度缩短。然后,镜像启动器将上述封装到FC-2的帧结构中的标签类型为ORDERED的请求发送给镜像目标器。
当没有请求响应逾期发生后,则镜像启动器直接将上述封装到FC-2的帧结构中的请求发送给镜像目标器。
本方法所述镜像启动器的响应处理流程的实施例的处理流程如图8所示,包括如下步骤:
步骤8-1、镜像启动器判断是否发生了响应超时,即接收到的响应超过了设定的返回时间,比如2秒,或者,一直没有收到响应,如果没有发生响应超时,则执行步骤8-2;否则,进行如下处理。
镜像启动器首先检查镜像链路是否发生故障,如果否,则设置系统正在恢复,待收到所有按时返回的响应后,重发所有响应超时的请求或者没有收到响应的请求;否则,当处于正常状态的镜像链路的数量大于1时,则镜像启动器首先切换到处于正常状态的镜像链路中的负载最轻的一条镜像链路上,重发所有响应超时的请求或者没有收到响应的请求,并在剩余的镜像链路间继续互为负载均衡。
当处于正常状态的镜像链路的数量等于1时,则该最后一条镜像链路切换为双重身份,即切换为可以双向传输的镜像链路,并且接替上述失效的镜像链路,镜像启动器和镜像目标器都通过该最后一条镜像链路来发送请求和接收响应。镜像启动器在该最后一条镜像链路上重发所有响应超时的请求或者没有收到响应的请求。
如果请求超时,为防止该超时请求的响应在以后某个时刻又突然返回,设置该超时请求应该被抛弃。这样即便该超时请求的响应还能正常返回,也不会响应请求的发起者,从而干扰先前已经下发的重试请求。
上述重发所有响应超时的请求或者没有收到响应的请求的重发次数也有一个上限值,比如,5次,如果超过该上限值,则认为该请求的发送失败。
步骤8-2、镜像启动器接收响应数据包,根据实际情况判断是否需要抛弃该响应数据包对应的请求,如果需要抛弃该响应数据包对应的请求,则镜像启动器释放响应的请求资源,通过上述镜像启动器的请求下发处理流程来发送下一个请求。
如果不需要抛弃该响应数据包对应的请求,则镜像启动器处理该响应数据包,对该响应数据包进行解封装,获取封装在FC-2中的镜像信息,从该镜像信息中取出数据,并发送给所述请求的发起者。当在系统设定的时间范围内,镜像启动器按时处理完毕该响应数据包,则镜像启动器释放响应的请求资源,通过上述镜像启动器的请求下发处理流程来发送下一个请求。
当镜像启动器在系统设定的时间范围之外处理完毕上述响应数据包,则镜像启动器设置出现请求响应逾期,然后,再释放响应的请求资源,通过上述镜像启动器的请求下发处理流程来发送下一个请求。
在上述镜像启动器接收到的响应中,可以利用FC-2帧结构的Payload区域里的一些保留字段来携带一些额外的响应数据,以提高镜像通信的效率。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
Claims (8)
1、一种镜像通信处理方法,其特征在于,包括:
A、当有镜像请求信息需要发送时,镜像启动器判断镜像链路是否处于正常状态,如果是,则执行步骤B;否则,所述镜像启动器切换到处于正常状态的镜像链路上后,执行步骤B;
B、所述镜像启动器检查系统是否正在恢复,如果是,则等待系统恢复完毕后,将所述镜像请求信息封装到光纤通道的帧结构的2层结构FC-2的有效载荷区域中;否则,将所述镜像请求信息封装到FC-2的帧结构中的有效载荷区域中;
C、所述镜像启动器在判断没有请求响应逾期后,启动镜像请求定时器,将所述封装后的镜像请求信息发送给镜像目标器。
2、根据权利要求1所述的方法,其特征在于,步骤A中所述的镜像启动器切换到处于正常状态的镜像链路,具体包括:
当处于正常状态的镜像链路的数量大于1时,则镜像启动器切换到处于正常状态的镜像链路中的负载最轻的一条镜像链路上;
当处于正常状态的镜像链路的数量等于1时,则该最后一条镜像链路切换为双向传输的镜像链路,接替所述失效的镜像链路,镜像启动器和镜像目标器都通过该最后一条镜像链路来发送请求和接收响应。
3、根据权利要求1或2所述的方法,其特征在于,所述的方法还包括:
所述的镜像启动器在判断有请求响应逾期后,则在下一个发送的镜像请求中修改请求标签类型为“规则”。
4、根据权利要求3所述的方法,其特征在于,所述方法还包括步骤:
D、镜像启动器在接收到所述发送的镜像请求的响应后,判断该响应是否超时,如果是,则执行步骤E;否则,执行步骤F;
E、镜像启动器判断镜像链路是否处于正常状态,如果是,则镜像启动器设置系统正在恢复,待收到所有按时返回的响应后,重发所有响应超时的或者没有收到响应的请求;否则,镜像启动器切换到处于正常状态的镜像链路上后,重发所有响应超时的或者没有收到响应的请求;
F、镜像启动器处理所述响应,如果在设定的时间范围内,镜像启动器处理完毕该响应,则镜像启动器释放相应的请求资源;否则,镜像启动器设置出现请求响应逾期,在处理完毕该响应后释放相应的请求资源。
5、根据权利要求4所述的方法,其特征在于,步骤E中所述的镜像启动器切换到处于正常状态的镜像链路具体包括:
当处于正常状态的镜像链路的数量大于1时,则镜像启动器切换到处于正常状态的镜像链路中的负载最轻的一条镜像链路上;
当处于正常状态的镜像链路的数量等于1时,则该最后一条镜像链路切换为双向传输的镜像链路,接替所述失效的镜像链路,镜像启动器和镜像目标器都通过该最后一条镜像链路来发送请求和接收响应。
6、根据权利要求4所述的方法,其特征在于,所述的步骤E具体包括:
当重发所有响应超时的或者没有收到响应的请求的重发次数超过了设定的上限值,则认为该请求的发送失败。
7、根据权利要求4所述的方法,其特征在于,所述方法还包括:
在所述镜像启动器接收到的响应中,利用FC-2帧结构的有效载荷区域中的保留字段来携带响应数据。
8、根据权利要求1所述的方法,其特征在于,所述的方法适用于存储域网SAN存储系统。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006101032397A CN100542163C (zh) | 2006-07-14 | 2006-07-14 | 镜像通信处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006101032397A CN100542163C (zh) | 2006-07-14 | 2006-07-14 | 镜像通信处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1901533A CN1901533A (zh) | 2007-01-24 |
CN100542163C true CN100542163C (zh) | 2009-09-16 |
Family
ID=37657273
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2006101032397A Expired - Fee Related CN100542163C (zh) | 2006-07-14 | 2006-07-14 | 镜像通信处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100542163C (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103970486A (zh) * | 2014-05-22 | 2014-08-06 | 浪潮(北京)电子信息产业有限公司 | 一种数据存储方法和系统 |
-
2006
- 2006-07-14 CN CNB2006101032397A patent/CN100542163C/zh not_active Expired - Fee Related
Non-Patent Citations (2)
Title |
---|
FC和iSCSI协议的分析比较. 姚玉坤,黄伟,杜宁.计算机与信息技术,第2006卷第Z1期. 2006 |
FC和iSCSI协议的分析比较. 姚玉坤,黄伟,杜宁.计算机与信息技术,第2006卷第Z1期. 2006 * |
Also Published As
Publication number | Publication date |
---|---|
CN1901533A (zh) | 2007-01-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101651559A (zh) | 一种存储服务在双控制器存储系统中故障切换的方法 | |
CN103257941B (zh) | 多协议存储控制器和系统 | |
EP2566287B1 (en) | Wireless Internet Access Module | |
CN105045533A (zh) | 适用于双控高可用存储系统的磁盘心跳收发方法 | |
CN101022400A (zh) | 一种实现网络存储系统的资源分配方法及装置 | |
CN100438362C (zh) | 一种实现软件上主备双机热备份的方法 | |
CN100432975C (zh) | 小型计算机系统接口目标器和数据传输方法 | |
CN101141282B (zh) | 一种网管系统及其管理方法 | |
JPH11340986A (ja) | 無線通信システムで用いられる装置とプログラム記録媒体 | |
CN102111436B (zh) | 一种通过iSCSI访问存储设备的方法和一种存储设备 | |
CN102843435A (zh) | 一种在集群系统中存储介质的访问、响应方法和系统 | |
EP0409604A2 (en) | Processing method by which continuous operation of communication control program is obtained | |
CN101923442B (zh) | iSCSI存储设备访问过程中的缓存数据同步系统及方法 | |
CN100542163C (zh) | 镜像通信处理方法 | |
JP3439320B2 (ja) | データ通信方法、データ通信装置、およびデータ通信プログラム記録媒体 | |
CN105005515B (zh) | 一种LAN‑free备份系统 | |
US20100293252A1 (en) | Server system and event message transmission method therefor, client terminal and connection method and program therefor, and recording medium | |
WO2002044917A2 (en) | Method and system for communicating control information | |
EP1793626B1 (en) | System and method for implementing service switching | |
US7359833B2 (en) | Information processing system and method | |
CN104333469A (zh) | 一种存储系统光纤通道fc会话管理方法和系统 | |
EP1320978B1 (en) | Device for protocol conversion using a canonical intermediate | |
JP2003058435A (ja) | サービス制御アプリケーション実行方法及びシステム | |
US7340636B2 (en) | Error recovery level optimization in network system | |
CN103024087B (zh) | 同时支持大容量存储和以太网通信的系统及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20090916 Termination date: 20180714 |