发明内容
本发明提供一种I/O数据访问中断的处理方法和系统以及设备,用于解决现有技术中当带内虚拟化设备由于某种原因出现故障时,主机服务器上业务中断的问题。
本发明提供一种I/O数据访问中断的处理方法,包括:
若判断出虚拟化设备故障或者第一路径组的第一路径全部故障,则发送用于注册第二路径的第二SCSI注册指令给存储阵列,所述第一路径组包括至少一条所述第一路径,所述第一路径由所述主机服务器与所述存储阵列通过所述虚拟化设备连接形成,所述第二路径组包括至少一条第二路径,所述第二路径由所述主机服务器与所述存储阵列直连形成,所述存储阵列上设置有与第一路径对应的第一SCSI预留;
通过所述第二路径发送携带有第一路径标识的第一SCSI预留删除指令给所述存储阵列,以使所述存储阵列根据所述第一SCSI预留删除指令,删除与所述第一路径标识对应的第一SCSI预留;
在接收到所述存储阵列发送的第二SCSI注册指令的响应消息,以及所述第一SCSI删除指令的响应消息后,通过所述第二路径发送携带有第二路径标识的第二SCSI预留设置指令给所述存储阵列,以使所述存储阵列根据所述第二SCSI预留设置指令,设置与所述第二路径标识对应的第二SCSI预留;
根据与所述第二路径标识对应的第二SCSI预留,通过所述第二路径对所述存储阵列进行I/O数据访问处理。
本发明提供一种主机服务器,包括:
判断模块,用于判断虚拟化设备是否发生故障或者第一路径组的第一路径是否全部故障;所述第一路径组包括至少一条所述第一路径,所述第一路径由所述主机服务器与所述存储阵列通过所述虚拟化设备连接形成,所述存储阵列上设置有与第一路径对应的第一SCSI预留;
注册模块,用于若所述判断模块判断出虚拟化设备故障或者第一路径组的第一路径全部故障,则发送用于注册的第二路径的第二SCSI注册指令给存储阵列;所述第二路径组包括至少一条第二路径,所述第二路径由所述主机服务器与所述存储阵列直连形成;
路径处理模块,用于通过所述第二路径发送携带有第一路径标识的第一SCSI预留删除指令给所述存储阵列,以使得所述存储阵列根据所述第一SCSI预留删除指令,删除与所述第一路径标识对应的第一SCSI预留;并在接收到所述存储阵列发送的第二SCSI注册指令的响应消息,以及所述第一SCSI删除指令的响应消息后,通过所述第二路径发送携带有第二路径标识的第二SCSI预留设置指令给所述存储阵列,以使所述存储阵列根据所述第二SCSI预留设置指令,设置与所述第二路径标识对应的第二SCSI预留;
访问处理模块,用于根据与所述第二路径标识对应的第二SCSI预留,通过所述第二路径对所述存储阵列进行I/O数据访问处理。
本发明提供一种I/O数据访问中断的处理系统,包括虚拟化设备、存储阵列和上述所述的主机服务器,其中,所述主机服务器通过所述第二路径组与所述存储阵列相连,所述虚拟化设备通过第一路径组分别与所述主机服务器和所述存储阵列相连。
本发明提供的I/O数据访问中断的处理方法和系统以及设备,通过主机服务器若判断出虚拟化设备故障或者第一路径组的第一路径全部故障,则发送用于注册第二路径组的第二SCSI预留注册指令给存储阵列,并通过第二路径发送携带有第一路径标识的第一SCSI预留删除指令给该存储阵列,以使得该存储阵列删除第一路径标识对应的第一SCSI预留,当接收存储阵列发送的第二SCSI注册指令的响应消息,以及第一SCSI删除指令的响应消息,则发送携带有第二路径标识的第二SCSI预留设置指令给存储阵列,以供该存储阵列设置与该第二路径组标识对应的第二SCSI预留,从而可以通过第二路径对存储阵列进行I/O数据访问处理,进而有效地解决了现有技术中当带内虚拟化设备由于某种原因出现故障时,主机服务器上业务中断的问题,并有效地提高了用户使用的便捷性。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本实施例I/O数据访问终端处理方法所基于的带内虚拟化设备应用场景的结构示意图,如图1所示,该带内虚拟化设备应用场景包括:主机服务器11、虚拟化设备12和存储阵列13。具体的,主机服务器11经过虚拟化设备到存储阵列的路径为第一路径组14,主机服务器11直连到存储阵列13的路径为第二路径组15,虚拟化设备12后端可以接多个存储阵列13,并将这些存储阵列13映射过来的逻辑单元号(Logical Unit Number;简称:LUN)经过虚拟化处理后提供给主机服务器11。其中,该LUN用于存储I/O数据,该第一路径组14包括至少一条第一路径;该第二路径组15包括至少一条第二路径。
在虚拟化设备12未故障,且全部第一路径组14未故障时,主机服务器11一般通过第一路径组14和虚拟化设备12对存储阵列13上的I/O数据进行访问处理。另外,举例来说,当第一路径组14包括两条第一路径时,可以通过这两条第一路径对该存储阵列13上的I/O数据进行访问处理,或者通过其中一条第一路径对该存储阵列13上的I/O数据进行访问处理。当设置其中一条第一路径为访问路径来对该存储阵列13上的I/O数据进行访问处理时,如果该路径出现故障,则路径管理模块111可以将访问路径由该第一路径4切换到另一条第一路径上。
值得注意的是,该虚拟化设备12的数量可以是两个,其中一个虚拟化设备12的后端可以接多个存储阵列13,并与另一个虚拟化设备12相连接,用于将虚拟化LUN复制到这个虚拟化设备12上,进行容灾备份。
图2为本发明I/O数据访问中断的处理方法的一个实施例的流程图,如图2所示,本实施例的执行主体为主机服务器,则该方法包括:
步骤101、主机服务器若判断出虚拟化设备故障或者第一路径组的第一路径全部故障,则发送用于注册第二路径组的第二小型计算机系统接口(Small Computer System Interface;简称:SCSI)注册指令给存储阵列。
其中,该虚拟化设备部署在主机服务器与存储阵列之间,该第一路径组包括至少一条第一路径,该第一路径由该主机服务器与存储阵列通过虚拟化设备连接形成;该第二路径组包括至少一条第二路径,该第二路径由主机服务器与该存储阵列直连形成,该存储阵列上设置有第一路径对应的第一SCSI预留。
步骤102、主机服务器通过第二路径发送携带有第一路径标识的第一SCSI预留删除指令给存储阵列,以使得该存储阵列根据该第一SCSI预留删除指令,删除与该第一路径标识对应的第一SCSI预留。
步骤103、主机服务器在接收到该存储阵列发送的第二SCSI注册指令的响应消息,以及该第一SCSI删除指令的响应消息后,通过第二路径发送携带有第二路径标识的第二SCSI预留设置指令给该存储阵列,以使该存储阵列根据该第二SCSI预留设置指令,设置与该第二路径标识对应的第二SCSI预留。
在本实施例中,该第一SCSI预留包括第一路径信息,例如:虚拟化设备端口号和存储阵列端口号等;第二SCSI预留包括第二路径信息,例如:主机服务器端口号和存储阵列端口号等。
步骤104、主机服务器根据与该第二路径标识对应的第二SCSI预留,通过该第二路径对该存储阵列进行I/O数据访问处理。
在本实施例中,当主机服务器判断出虚拟化设备未故障,且第一路径组中的第一路径全部未发生故障时,可以设置第一路径组为访问路径,并通过该第一路径组和虚拟化设备发送第一SCSI注册指令给存储阵列,其中该第一SCSI注册指令包括第一路径标识。当存储阵列发送第一SCSI注册指令的响应消息时,则说明允许主机服务器通过第一路径组对存储阵列上的I/O数据进行访问处理,该主机服务器发送携带有第一路径标识对应的第一SCSI预留设置指令给存储阵列,以供存储阵列根据该该第一SCSI预留设置指令,设置与该第一路径标识对应的第一SCSI预留,从而使得该主机服务器可以通过第一路径组和虚拟化设备对该存储阵列上的I/O数据进行访问处理,例如:主机服务器可以对存储阵列上的I/O数据进行读写。
当主机服务器判断出该虚拟化设备故障或者第一路径组的第一路径全部故障时,可以将访问路径由第一路径组切换为第二路径组,具体的,发送用于注册第二路径组的第二SCSI注册指令给存储阵列,并通过第二路径发送携带有第一路径标识的第一SCSI预留删除指令给存储阵列,以供该存储阵列根据该第一SCSI预留删除指令,删除与该第一路径标识对应的第一SCSI预留;当主机服务器接收到存储阵列返回的第二SCSI注册指令的响应消息,以及第一SCSI删除指令的响应消息,发送携带有第二路径标识的第二SCSI预留设置指令给该存储阵列,以供该存储阵列根据该第二SCSI预留设置指令,设置与该第二路径标识对应的第二SCSI预留,从而使得该主机服务器可以通过第二路径对存储阵列上的I/O数据进行访问处理。
在本实施例中,通过主机服务器若判断出虚拟化设备故障或者第一路径组的第一路径全部故障,则发送用于注册第二路径组的第二SCSI预留注册指令给存储阵列,并通过第二路径发送携带有第一路径标识的第一SCSI预留删除指令给该存储阵列,以使得该存储阵列删除第一路径标识对应的第一SCSI预留,当接收存储阵列发送的第二SCSI注册指令的响应消息,以及第一SCSI删除指令的响应消息,则发送携带有第二路径标识的第二SCSI预留设置指令给存储阵列,以供该存储阵列设置与该第二路径组标识对应的第二SCSI预留,从而可以通过第二路径对存储阵列进行I/O数据访问处理,进而有效地解决了现有技术中当带内虚拟化设备由于某种原因出现故障时,主机服务器上业务中断的问题,并有效地提高了用户使用的便捷性。
进一步的,在本发明的另一个实施例中,在上述图1所示实施例的基础上,该方法还可以包括:
主机服务器接收该存储阵列通过该虚拟化设备和该第一路径映射给该主机服务器的虚拟化LUN,并接收该存储阵列通过该第二路径映射给该主机服务器的非虚拟化LUN;
主机服务器判断该虚拟化LUN中的全球唯一名字(World Wide Name;简称:WWN)与该非虚拟化LUN中的WWN是否相同,若相同,则设置该虚拟化LUN和非虚拟化LUN为同一LUN。
在本实施例中,存储阵列将存储阵列上的非虚拟化LUN映射给该虚拟化设备,由该虚拟化设备对该些非虚拟化LUN进行虚拟化处理,并将获取的虚拟化LUN通过第一路径提供给主机服务器,同时,存储阵列将存储阵列上的非虚拟化LUN通过第二路径映射给主机服务器,为了避免主机服务器上同一个LUN显示出一个非虚拟化LUN和一个虚拟化LUN,而导致数据可能被破坏的问题,主机服务器可以判断该虚拟化LUN中的WWN和该非虚化LUN中的WWN是否相同,若相同,则设置该虚拟化LUN和非虚拟化LUN为同一LUN,即使得主机服务器将具有相同的WWN的虚拟化LUN和非虚拟化LUN设置为相同的LUN。
图3为本发明I/O数据访问中断的处理方法的又一个实施例的流程图,如图3所示,在本实施例中,主机服务器设置从主机服务器经过虚拟化设备到存储阵列的路径为第一路径组;并设置从主机服务器直连到存储阵列的路径为第二路径组。其中,该第一路径组包括至少一条第一路径,第二路径组包括至少一条第二路径。则该方法包括:
步骤201、主机服务器通过第一路径发送测试信号。
其中,该测试信号可以用于检测第一路径和带内虚拟化设备是否正常工作。
步骤202、主机服务器判断通过该第一路径是否接收到测试信号的响应消息,或者通过该第一路径接收到测试信号的响应消息是否正确;若判断出没有通过第一路径接收到测试信号的响应消息,或者通过第一路径接收到测试信号的响应消息不正确,则执行步骤203;若判断出通过第一路径接收到测试信号的响应消息正确,则执行步骤212。
步骤203、主机服务器发送用于注册第二路径的第二SCSI注册指令给存储阵列。
步骤204、主机服务器发送携带有第一路径标识的第一SCSI预留删除指令给该存储阵列,以使该存储阵列根据该第一SCSI预留删除指令,删除与该第一路径标识对应的第一SCSI预留。
步骤205、主机服务器根据该存储阵列发送的第二SCSI注册指令的响应消息,以及该第一SCSI删除指令的响应消息,发送携带有第二路径标识的第二SCSI预留设置指令给该存储阵列,以使该存储阵列根据该第二SCSI预留设置指令,设置与该第二路径组标识对应的第二SCSI预留。
步骤206、主机服务器根据与该第二路径标识对应的第二SCSI预留,通过该第二路径对该存储阵列进行I/O数据访问处理。
步骤207、主机服务器每隔预定时间,通过该第一路径发送测试信号。
其中,该测试信号用于检测该第一路径和/或带内虚拟化设备是否恢复。
步骤208、主机服务器判断通过该第一路径是否接收到测试信号的响应消息,或者通过该第一路径接收到测试信号的响应消息是否正确;若判断出没有通过第一路径接收到测试信号的响应消息,或者通过第一路径接收到测试信号的响应消息不正确,则执行步骤206;若判断出通过第一路径接收到测试信号的响应消息正确,则执行步骤209。
步骤209、主机服务器发送携带有第二路径标识的第二SCSI预留删除指令给该存储阵列,以供该存储阵列根据该第二SCSI预留删除指令,删除与该第二路径标识对应的第二SCSI预留。
步骤210、主机服务器根据该存储阵列发送的第二SCSI预留删除指令的响应消息,发送携带有第一路径标识对应的第一SCSI预留设置指令给该存储阵列,以供该存储阵列根据该第一SCSI预留设置指令,设置与该第一路径标识对应的第一SCSI预留。
步骤211、主机服务器通过该第一路径对该存储阵列进行I/O数据访问处理。结束。
步骤212、主机服务器通过所述未发生故障的第一路径发送第一SCSI注册指令给该存储阵列,当接收到该存储阵列发送的第一SCSI注册指令的响应消息时,发送携带有未发生故障的第一路径标识的第一SCSI预留设置指令给该存储阵列,以供该存储阵列根据该第一SCSI预留设置指令,设置与该未发生故障的第一路径标识对应的第一SCSI预留。
步骤213、根据该与未发生故障的第一路径对应的第一SCSI预留,通过该未发生故障的第一路径对该存储阵列进行I/O数据访问处理。
在本实施例中,通过主机服务器若判断出虚拟化设备故障或者第一路径组的第一路径全部故障,则发送用于注册第二路径组的第二SCSI预留注册指令给存储阵列,并通过第二路径发送携带有第一路径标识的第一SCSI预留删除指令给该存储阵列,以使得该存储阵列删除第一路径标识对应的第一SCSI预留,当接收存储阵列发送的第二SCSI注册指令的响应消息,以及第一SCSI删除指令的响应消息,则发送携带有第二路径标识的第二SCSI预留设置指令给存储阵列,以供该存储阵列设置与该第二路径组标识对应的第二SCSI预留,从而可以通过第二路径对存储阵列进行I/O数据访问处理,进而有效地解决了现有技术中当带内虚拟化设备由于某种原因出现故障时,主机服务器上业务中断的问题,并有效地提高了用户使用的便捷性。
进一步的,在本发明的另一个实施例中,在上述图1或者图2所示实施例基础上,在主机服务器将该访问路径由该第一路径组切换到该第二路径组之后,该方法还包括:
主机服务器通过该第二路径发送测试信号;其中,该测试信号用于检测第二路径是否正常工作。
则主机服务器通过所述第二路径发送用于注册第二路径的第二SCSI注册指令给存储阵列可以具体为:
主机服务器若判断出通过第二路径接收到的测试信号的响应消息正确,则下发用于注册第二路径的第二SCSI注册指令给存储阵列。
图4为本发明主机服务器的一个实施例的结构示意图,如图4所示,本实施例的主机服务器包括:判断模块21、注册模块22、路径处理模块23和访问处理模块24,其中,判断模块21用于判断虚拟化设备是否发生故障或者第一路径组的第一路径是否全部故障,该虚拟化设备部署在主机服务器与存储阵列之间,该第一路径组包括至少一条路径,该第一路径由主机服务器与存储阵列通过虚拟化设备连接形成;该存储阵列上设置有与该第一路径对应的第一SCSI预留;注册模块22用于若该判断模块21判断出虚拟化设备故障或者第一路径组的第一路径全部故障,则发送用于注册的第二路径的第二SCSI注册指令给存储阵列;该第二路径组包括至少一条第二路径,该第二路径由该主机服务器与该存储阵列直连形成;路径处理模块23用于通过该第二路径发送携带有第一路径标识的第一SCSI预留删除指令给该存储阵列,以使得该存储阵列根据该第一SCSI预留删除指令,删除与该第一路径标识对应的第一SCSI预留;并在接收到该存储阵列发送的第二SCSI注册指令的响应消息,以及该第一SCSI删除指令的响应消息,通过第二路径发送携带有第二路径标识的第二SCSI预留设置指令给所述存储阵列,以使该存储阵列根据该第二SCSI预留设置指令,设置与该第二路径标识对应的第二SCSI预留;访问处理模块24用于根据与该第二路径标识对应的第二SCSI预留,通过该第二路径对该存储阵列进行I/O数据访问处理。
本实施例的主机服务器可以执行图2所示方法实施例的技术方案,其实现原理相类似,此处不再赘述。
在本实施例中,通过主机服务器若判断出虚拟化设备故障或者第一路径组的第一路径全部故障,则发送用于注册第二路径组的第二SCSI预留注册指令给存储阵列,并通过第二路径发送携带有第一路径标识的第一SCSI预留删除指令给该存储阵列,以使得该存储阵列删除第一路径标识对应的第一SCSI预留,当接收存储阵列发送的第二SCSI注册指令的响应消息,以及第一SCSI删除指令的响应消息,则发送携带有第二路径标识的第二SCSI预留设置指令给存储阵列,以供该存储阵列设置与该第二路径组标识对应的第二SCSI预留,从而可以通过第二路径对存储阵列进行I/O数据访问处理,进而有效地解决了现有技术中当带内虚拟化设备由于某种原因出现故障时,主机服务器上业务中断的问题,并有效地提高了用户使用的便捷性。
进一步的,在本发明的另一个实施例中,在上述图4所示实施例的基础上,判断模块21还用于每隔预定时间,通过该第一路径发送测试信号,该测试信号用于检测该第一路径和/或带内虚拟化设备是否恢复,并判断是否通过该第一路径接收到测试信号的响应消息,或者判断通过该第一路径接收到的该测试信号的响应消息是否正确;
路径处理模块23还用于若该判断模块21判断出通过该第一路径接收到的测试信号的响应消息正确,则发送携带有第二路径标识的第二SCSI预留删除指令给该存储阵列,以供该存储阵列根据该第二SCSI预留删除指令,删除与该第二路径标识对应的第二SCSI预留;并根据该存储阵列发送的第二SCSI预留删除指令的响应消息,发送携带有第一路径标识对应的第一SCSI预留设置指令给该存储阵列,以供该存储阵列根据该第一SCSI预留设置指令,设置与该第一路径标识对应的第一SCSI预留。
访问处理模块24还用于通过该第一路径和所述虚拟化设备对该存储阵列进行I/O数据访问处理。
进一步的,在初始化时,注册模块22还用于若判断模块21判断出该虚拟化设备无故障,且第一路径组所包含的第一路径未全部发生故障,则通过未发生故障的第一路径发送第一SCSI注册指令给该存储阵列;
路径处理模块23还用于当接收到该存储阵列发送的第一SCSI注册指令的响应消息后,发送携带有未发生故障的第一路径标识的第一SCSI预留设置指令给该存储阵列,以供该存储阵列根据该第一SCSI预留设置指令,设置与该未发生故障的第一路径标识对应的第一SCSI预留。
访问处理模块24还用于根据该与未发生故障的第一路径对应的第一SCSI预留,通过该未发生故障的第一路径和该虚拟化设备对该存储阵列进行I/O数据访问处理。
本实施例的主机服务器可以执行图3所示方法实施例的技术方案,其实现原理相类似,此处不再赘述。
在本实施例中,通过主机服务器若判断出虚拟化设备故障或者第一路径组的第一路径全部故障,则发送用于注册第二路径组的第二SCSI预留注册指令给存储阵列,并通过第二路径发送携带有第一路径标识的第一SCSI预留删除指令给该存储阵列,以使得该存储阵列删除第一路径标识对应的第一SCSI预留,当接收存储阵列发送的第二SCSI注册指令的响应消息,以及第一SCSI删除指令的响应消息,则发送携带有第二路径标识的第二SCSI预留设置指令给存储阵列,以供该存储阵列设置与该第二路径组标识对应的第二SCSI预留,从而可以通过第二路径对存储阵列进行I/O数据访问处理,进而有效地解决了现有技术中当带内虚拟化设备由于某种原因出现故障时,主机服务器上业务中断的问题,并有效地提高了用户使用的便捷性。
更进一步的,在本发明的又一个实施例中,在上述图4所示实施例的基础上,为了避免主机服务器上同一个LUN显示出一个非虚拟化LUN和一个虚拟化LUN,而导致数据可能被破坏的问题,该主机服务器还可以包括:接收模块和识别处理模块,其中,接收模块用于接收该存储阵列通过该虚拟化设备和该第一路径映射给该主机服务器的虚拟化LUN,并接收该存储阵列通过该第二路径映射给该主机服务器的非虚拟化LUN;识别处理模块用于识别该虚拟化LUN中的WWW与该非虚拟化LUN中的WWW是否相同,若相同,则设置该虚拟化LUN和非虚拟化LUN为同一LUN。
发明还提供了一种I/O数据访问中断的处理系统,该系统包括:虚拟化设备、存储阵列和主机服务器,其中,该主机服务器可以执行图2或者图3所示方法实施例的技术方案,其原理相类似,此处不再赘述。
具体的,主机服务器通过第二路径组与存储阵列相连,虚拟化设备通过第一路径组分别与主机服务器和存储阵列相连。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。