输入输出控制方法和装置技术领域
本发明涉及计算机领域,尤其涉及输入输出控制方法和装置。
背景技术
常见的存储系统,主机通过网络和控制器连接,控制器下挂存储设备。
控制器扫描下挂的存储设备,将存储设备以逻辑单元号(Logical Unit
Number,LUN)的形式向主机呈现。
在存储领域,LUN是指逻辑存储空间,其编号称为LUN ID。业界实践中,
还有另外一种命名方式,把逻辑存储空间称为LU(logic unit),而其编号
称为LUN(Logic Unit Number)。这两种命名方式并没有实质的不同,本发
明实施例使用前一种命名方式。
现有技术中,当主机(Host)想要对某个LUN进行读写操作时,首先向
控制器下发读写命令,然后由控制器根据LUN ID找到对应的存储设备,并对
存储设备进行数据读写操作。例如,Host0要把数据写入LUN0,首先Host0
向控制器0下发写命令,然后控制器0找到和LUN0对应的存储设备disk0,
将数据写入disk0。
由于存储系统中可能存在着多个控制器,每个控制器下连接多个存储设
备,每个控制器针对其下连接的多个存储设备从LUN0开始顺序分配LUN ID,
因此存在同一LUN ID对应多个存储设备的可能,例如,控制器0下连接了两
个存储设备,这两个存储设备的LUN ID分别为LUN0和LUN1,控制器1下也
连接了两个存储设备,这两个存储设备的LUN ID分别为LUN0和LUN1,当主
机通过LUN ID想要对某个LUN进行读写操作时,可能出现该LUN ID对应多
个存储设备,导致主机根据该LUN ID进行读写操作,无法找到该读写操作具
体针对的存储设备。
发明内容
本发明实施例提供输入输出控制方法和装置,可以找到输入输出操作具
体针对的存储设备。
第一方面,提供了一种输入输出控制方法,应用于输入输出
(Input/Output,I/O)控制装置中,所述I/O控制装置位于控制器和主机之
间,所述控制器的数量为至少2个,每个控制器和一个控制器编号(ID)对
应,所述I/O控制装置用于管理主机LUN,每个主机LUN拥有一个主机LUN ID,
所述主机LUN ID是对所有控制器的控制器LUN ID进行统一编号后生成的,
每个主机LUN ID对应一个控制器LUN ID,所述I/O控制装置预存有对应关系
表,所述对应关系表中,记录有主机LUN ID对应的控制器LUN ID、以及各控
制器LUN ID的归属控制器ID,所述方法包括:
接收主机发送的针对主机LUN ID的I/O操作命令,所述I/O操作命令中
携带有待访问主机LUN ID,所述I/O操作命令是写数据命令、数据备份命令
或读数据命令中的一种;
使用所述待访问主机LUN ID在所述对应关系表中进行查找,获得所述待
访问主机LUN ID对应的待访问控制器LUN ID,以及控制器LUN的归属控制器
的待访问控制器ID;
把所述I/O操作命令中的所述待访问主机LUN ID替换成所述待访问控制
器LUN ID后,把所述I/O操作命令发往所述待访问控制器ID所代表的控制
器进行操作访问。
结合第一方面,在第一方面的第一种可能的实施方式中,所述I/O操作
命令包括写数据命令,所述写数据命令中携带有第一待访问主机LUN ID和第
一初始逻辑区块地址(Logic Block Address,LBA);每个待访问控制器LUN
ID对应多个虚拟块标识;所述对应关系表中,还记录有控制器LUN ID、虚拟
块标识与存储设备标识、存储设备块标识的对应关系;每个存储设备标识对
应多个存储设备块标识;
所述使用所述待访问主机LUN ID在所述对应关系表中进行查找,获得所
述待访问主机LUN ID对应的待访问控制器LUN ID,以及控制器LUN的归属控
制器的待访问控制器ID,包括:
使用所述第一待访问主机LUN ID在所述对应关系表中进行查找,获得所
述第一待访问主机LUN ID对应的第一待访问控制器LUN ID,以及控制器LUN
的归属控制器的第一待访问控制器ID;
所述方法还包括:
对所述第一初始LBA进行解析,得到所述第一待访问控制器LUN ID的第
一初始虚拟块标识;使用所述第一待访问控制器LUN ID和所述第一初始虚拟
块标识在所述对应关系表中进行查找,获得所述第一待访问控制器LUN ID和
所述第一初始虚拟块标识对应的第一存储设备标识和第一初始存储设备块标
识;
所述把所述I/O操作命令中的所述待访问主机LUN ID替换成所述待访问
控制器LUN ID后,把所述I/O操作命令发往所述待访问控制器ID所代表的
控制器进行操作访问,包括:
把所述写数据命令中的所述第一待访问主机LUN ID替换成所述第一待访
问控制器LUN ID,以及,把所述写数据命令中的所述第一初始LBA替换成所
述第一初始存储设备块标识后,把所述写数据命令发往所述第一待访问控制
器ID所代表的控制器进行操作访问。
结合第一方面或第一方面的第一种可能的实施方式,在第一方面的第二
种可能的实施方式中,所述I/O操作命令包括数据备份命令,所述数据备份
命令中携带有第二待访问主机LUN ID和第二初始LBA;每个待访问控制器LUN
ID对应多个虚拟块标识;所述对应关系表中,还记录有控制器LUN ID、虚拟
块标识与存储设备标识、存储设备块标识的对应关系;每个存储设备标识对
应多个存储设备块标识;
所述使用所述待访问主机LUN ID在所述对应关系表中进行查找,获得所
述待访问主机LUN ID对应的待访问控制器LUN ID,以及控制器LUN的归属控
制器的待访问控制器ID,包括:
使用所述第二待访问主机LUN ID在所述对应关系表中进行查找,获得所
述第二待访问主机LUN ID对应的第二待访问控制器LUN ID,以及控制器LUN
的归属控制器的第二待访问控制器ID;
所述方法还包括:
对所述第二初始LBA进行解析,得到所述第二待访问控制器LUN ID的第
二初始虚拟块标识;使用所述第二待访问控制器LUN ID和所述第二初始虚拟
块标识在所述对应关系表中进行查找,获得所述第二待访问控制器LUN ID和
所述第二初始虚拟块标识对应的第二存储设备标识和第二初始存储设备块标
识;
所述把所述I/O操作命令中的所述待访问主机LUN ID替换成所述待访问
控制器LUN ID后,把所述I/O操作命令发往所述待访问控制器ID所代表的
控制器进行操作访问,包括:
把所述数据备份命令中的所述第二待访问主机LUN ID替换成所述第二待
访问控制器LUN ID,以及,把所述数据备份命令中的所述第二初始LBA替换
成所述第二初始存储设备块标识后,把所述数据备份命令发往所述第二待访
问控制器ID所代表的控制器进行操作访问。
结合第一方面或第一方面的第一种或第二种可能的实施方式,在第一方
面的第三种可能的实施方式中,所述I/O操作命令包括读数据命令,所述读
数据命令中携带有第三待访问主机LUN ID和第三初始LBA;每个待访问控制
器LUN ID对应多个虚拟块标识;所述对应关系表中,还记录有控制器LUN ID、
虚拟块标识与存储设备标识、存储设备块标识的对应关系;每个存储设备标
识对应多个存储设备块标识;
所述使用所述待访问主机LUN ID在所述对应关系表中进行查找,获得所
述待访问主机LUN ID对应的待访问控制器LUN ID,以及控制器LUN的归属控
制器的待访问控制器ID,包括:
使用所述第三待访问主机LUN ID在所述对应关系表中进行查找,获得所
述第三待访问主机LUN ID对应的第三待访问控制器LUN ID,以及控制器LUN
的归属控制器的第三待访问控制器ID;
所述方法还包括:
对所述第三初始LBA进行解析,得到所述第三待访问控制器LUN ID的第
三初始虚拟块标识;使用所述第三待访问控制器LUN ID和所述第三初始虚拟
块标识在所述对应关系表中进行查找,获得所述第三待访问控制器LUN ID和
所述第三初始虚拟块标识对应的第三存储设备标识和第三初始存储设备块标
识;
所述把所述I/O操作命令中的所述待访问主机LUN ID替换成所述待访问
控制器LUN ID后,把所述I/O操作命令发往所述待访问控制器ID所代表的
控制器进行操作访问,包括:
把所述读数据命令中的所述第三待访问主机LUN ID替换成所述第三待访
问控制器LUN ID,以及,把所述读数据命令中的所述第三初始LBA替换成所
述第三初始存储设备块标识后,把所述读数据命令发往所述第三待访问控制
器ID所代表的控制器进行操作访问。
结合第一方面或第一方面的第一种或第二种或第三种可能的实施方式,
在第一方面的第四种可能的实施方式中,所述方法还包括:
根据用户配置的存储设备块的大小,建立所述对应关系表。
第二方面,提供了一种I/O控制装置,所述I/O控制装置位于控制器和
主机之间,所述控制器的数量为至少2个,每个控制器和一个控制器ID对应,
所述I/O控制装置用于管理主机LUN,每个主机LUN拥有一个主机LUN ID,
所述主机LUN ID是对所有控制器的控制器LUN ID进行统一编号后生成的,
每个主机LUN ID对应一个控制器LUN ID,所述I/O控制装置预存有对应关系
表,所述对应关系表中,记录有主机LUN ID对应的控制器LUN ID、以及各控
制器LUN ID的归属控制器ID,所述装置包括:
接收单元,用于接收主机发送的针对主机LUN ID的I/O操作命令,所述
操作命令中携带有待访问主机LUN ID,所述I/O操作命令是写数据命令、数
据备份命令或读数据命令中的一种;
查找单元,用于使用所述接收单元接收的待访问主机LUN ID在所述对应
关系表中进行查找,获得所述待访问主机LUN ID对应的待访问控制器LUN ID,
以及控制器LUN的归属控制器的待访问控制器ID;
发送单元,用于把所述接收单元接收的I/O操作命令中的所述待访问主
机LUN ID替换成所述查找单元获得的待访问控制器LUN ID后,把所述I/O
操作命令发往所述待访问控制器ID所代表的控制器进行操作访问。
结合第二方面,在第二方面的第一种可能的实施方式中,所述接收单元
接收的I/O操作命令包括写数据命令,所述写数据命令中携带有第一待访问
主机LUN ID和第一初始LBA;每个待访问控制器LUN ID对应多个虚拟块标识;
所述对应关系表中,还记录有控制器LUN ID、虚拟块标识与存储设备标识、
存储设备块标识的对应关系;每个存储设备标识对应多个存储设备块标识;
所述查找单元,具体用于使用所述接收单元接收的第一待访问主机LUN
ID在所述对应关系表中进行查找,获得所述第一待访问主机LUN ID对应的第
一待访问控制器LUN ID,以及控制器LUN的归属控制器的第一待访问控制器
ID;
所述装置还包括:
解析单元,用于对所述接收单元接收的第一初始LBA进行解析,得到所
述第一待访问控制器LUN ID的第一初始虚拟块标识;
所述查找单元,还用于使用所述查找单元获得的第一待访问控制器LUN
ID和所述解析单元得到的第一初始虚拟块标识在所述对应关系表中进行查
找,获得所述第一待访问控制器LUN ID和所述第一初始虚拟块标识对应的第
一存储设备标识和第一初始存储设备块标识;
所述发送单元,具体用于把所述接收单元接收的写数据命令中的所述第
一待访问主机LUN ID替换成所述查找单元获得的第一待访问控制器LUN ID,
以及,把所述写数据命令中的所述第一初始LBA替换成所述查找单元获得的
第一初始存储设备块标识后,把所述写数据命令发往所述查找单元获得的第
一待访问控制器ID所代表的控制器进行操作访问。
结合第二方面或第二方面的第一种可能的实施方式,在第二方面的第二
种可能的实施方式中,所述接收单元接收的I/O操作命令包括数据备份命令,
所述数据备份命令中携带有第二待访问主机LUN ID和第二初始LBA;每个待
访问控制器LUN ID对应多个虚拟块标识;所述对应关系表中,还记录有控制
器LUN ID、虚拟块标识与存储设备标识、存储设备块标识的对应关系;每个
存储设备标识对应多个存储设备块标识;
所述查找单元,具体用于使用所述接收单元接收的第二待访问主机LUN
ID在所述对应关系表中进行查找,获得所述第二待访问主机LUN ID对应的第
二待访问控制器LUN ID,以及控制器LUN的归属控制器的第二待访问控制器
ID;
所述装置还包括:
解析单元,用于对所述接收单元接收的第二初始LBA进行解析,得到所
述第二待访问控制器LUN ID的第二初始虚拟块标识;
所述查找单元,还用于使用所述查找单元获得的第二待访问控制器LUN
ID和所述解析单元得到的第二初始虚拟块标识在所述对应关系表中进行查
找,获得所述第二待访问控制器LUN ID和所述第二初始虚拟块标识对应的第
二存储设备标识和第二初始存储设备块标识;
所述发送单元,具体用于把所述接收单元接收的数据备份命令中的所述
第二待访问主机LUN ID替换成所述查找单元获得的第二待访问控制器LUN ID,
以及,把所述数据备份命令中的所述第二初始LBA替换成所述查找单元获得
的第二初始存储设备块标识后,把所述数据备份命令发往所述查找单元获得
的第二待访问控制器ID所代表的控制器进行操作访问。
结合第二方面或第二方面的第一种或第二种可能的实施方式,在第二方
面的第三种可能的实施方式中,所述接收单元接收的I/O操作命令包括读数
据命令,所述读数据命令中携带有第三待访问主机LUN ID和第三初始LBA;
每个待访问控制器LUN ID对应多个虚拟块标识;所述对应关系表中,还记录
有控制器LUN ID、虚拟块标识与存储设备标识、存储设备块标识的对应关系;
每个存储设备标识对应多个存储设备块标识;
所述查找单元,具体用于使用所述接收单元接收的第三待访问主机LUN
ID在所述对应关系表中进行查找,获得所述第三待访问主机LUN ID对应的第
三待访问控制器LUN ID,以及控制器LUN的归属控制器的第三待访问控制器
ID;
所述装置还包括:
解析单元,用于对所述接收单元接收的第三初始LBA进行解析,得到所
述第三待访问控制器LUN ID的第三初始虚拟块标识;
所述查找单元,还用于使用所述查找单元获得的第三待访问控制器LUN
ID和所述解析单元得到的第三初始虚拟块标识在所述对应关系表中进行查
找,获得所述第三待访问控制器LUN ID和所述第三初始虚拟块标识对应的第
三存储设备标识和第三初始存储设备块标识;
所述发送单元,具体用于把所述接收单元接收的读数据命令中的所述第
三待访问主机LUN ID替换成所述查找单元获得的第三待访问控制器LUN ID,
以及,把所述读数据命令中的所述第三初始LBA替换成所述查找单元获得的
第三初始存储设备块标识后,把所述读数据命令发往所述查找单元获得的第
三待访问控制器ID所代表的控制器进行操作访问。
结合第二方面或第二方面的第一种或第二种或第三种可能的实施方式,
在第二方面的第四种可能的实施方式中,所述装置还包括:
对应关系建立单元,用于根据用户配置的存储设备块的大小,建立所述
对应关系表。
第三方面,提供了一种I/O控制装置,所述I/O控制装置位于控制器和
主机之间,所述控制器的数量为至少2个,每个控制器和一个控制器ID对应,
所述I/O控制装置用于管理主机LUN,每个主机LUN拥有一个主机LUN ID,
所述主机LUN ID是对所有控制器的控制器LUN ID进行统一编号后生成的,
每个主机LUN ID对应一个控制器LUN ID,所述I/O控制装置预存有对应关系
表,所述对应关系表中,记录有主机LUN ID对应的控制器LUN ID、以及各控
制器LUN ID的归属控制器ID,所述装置包括:存储器和处理器;
所述存储器,用于存储程序指令;
所述处理器,用于根据所述存储器中存储的程序指令执行以下操作:
接收主机发送的针对主机LUN ID的I/O操作命令,所述I/O操作命令中
携带有待访问主机LUN ID,所述I/O操作命令是写数据命令、数据备份命令
或读数据命令中的一种;
使用所述待访问主机LUN ID在所述对应关系表中进行查找,获得所述待
访问主机LUN ID对应的待访问控制器LUN ID,以及控制器LUN的归属控制器
的待访问控制器ID;
把所述I/O操作命令中的所述待访问主机LUN ID替换成所述待访问控制
器LUN ID后,把所述I/O操作命令发往所述待访问控制器ID所代表的控制
器进行操作访问。
结合第三方面,在第三方面的第一种可能的实施方式中,所述I/O操作
命令包括写数据命令,所述写数据命令中携带有第一待访问主机LUN ID和第
一初始LBA;每个待访问控制器LUN ID对应多个虚拟块标识;所述对应关系
表中,还记录有控制器LUN ID、虚拟块标识与存储设备标识、存储设备块标
识的对应关系;每个存储设备标识对应多个存储设备块标识;
所述处理器执行所述使用所述待访问主机LUN ID在所述对应关系表中进
行查找,获得所述待访问主机LUN ID对应的待访问控制器LUN ID,以及控制
器LUN的归属控制器的待访问控制器ID的操作,包括:
使用所述第一待访问主机LUN ID在所述对应关系表中进行查找,获得所
述第一待访问主机LUN ID对应的第一待访问控制器LUN ID,以及控制器LUN
的归属控制器的第一待访问控制器ID;
所述处理器还用于根据所述存储器中存储的程序指令执行以下操作:
对所述第一初始LBA进行解析,得到所述第一待访问控制器LUN ID的第
一初始虚拟块标识;使用所述第一待访问控制器LUN ID和所述第一初始虚拟
块标识在所述对应关系表中进行查找,获得所述第一待访问控制器LUN ID和
所述第一初始虚拟块标识对应的第一存储设备标识和第一初始存储设备块标
识;
所述处理器执行所述把所述I/O操作命令中的所述待访问主机LUN ID替
换成所述待访问控制器LUN ID后,把所述I/O操作命令发往所述待访问控制
器ID所代表的控制器进行操作访问的操作,包括:
把所述写数据命令中的所述第一待访问主机LUN ID替换成所述第一待访
问控制器LUN ID,以及,把所述写数据命令中的所述第一初始LBA替换成所
述第一初始存储设备块标识后,把所述写数据命令发往所述第一待访问控制
器ID所代表的控制器进行操作访问。
结合第三方面或第三方面的第一种可能的实施方式,在第三方面的第二
种可能的实施方式中,所述I/O操作命令包括数据备份命令,所述数据备份
命令中携带有第二待访问主机LUN ID和第二初始LBA;每个待访问控制器LUN
ID对应多个虚拟块标识;所述对应关系表中,还记录有控制器LUN ID、虚拟
块标识与存储设备标识、存储设备块标识的对应关系;每个存储设备标识对
应多个存储设备块标识;
所述处理器执行所述使用所述待访问主机LUN ID在所述对应关系表中进
行查找,获得所述待访问主机LUN ID对应的待访问控制器LUN ID,以及控制
器LUN的归属控制器的待访问控制器ID的操作,包括:
使用所述第二待访问主机LUN ID在所述对应关系表中进行查找,获得所
述第二待访问主机LUN ID对应的第二待访问控制器LUN ID,以及控制器LUN
的归属控制器的第二待访问控制器ID;
所述处理器还用于根据所述存储器中存储的程序指令执行以下操作:
对所述第二初始LBA进行解析,得到所述第二待访问控制器LUN ID的第
二初始虚拟块标识;使用所述第二待访问控制器LUN ID和所述第二初始虚拟
块标识在所述对应关系表中进行查找,获得所述第二待访问控制器LUN ID和
所述第二初始虚拟块标识对应的第二存储设备标识和第二初始存储设备块标
识;
所述处理器执行所述把所述I/O操作命令中的所述待访问主机LUN ID替
换成所述待访问控制器LUN ID后,把所述I/O操作命令发往所述待访问控制
器ID所代表的控制器进行操作访问的操作,包括:
把所述数据备份命令中的所述第二待访问主机LUN ID替换成所述第二待
访问控制器LUN ID,以及,把所述数据备份命令中的所述第二初始LBA替换
成所述第二初始存储设备块标识后,把所述数据备份命令发往所述第二待访
问控制器ID所代表的控制器进行操作访问。
结合第三方面或第三方面的第一种或第二种可能的实施方式,在第三方
面的第三种可能的实施方式中,所述I/O操作命令包括读数据命令,所述读
数据命令中携带有第三待访问主机LUN ID和第三初始LBA;每个待访问控制
器LUN ID对应多个虚拟块标识;所述对应关系表中,还记录有控制器LUN ID、
虚拟块标识与存储设备标识、存储设备块标识的对应关系;每个存储设备标
识对应多个存储设备块标识;
所述处理器执行所述使用所述待访问主机LUN ID在所述对应关系表中进
行查找,获得所述待访问主机LUN ID对应的待访问控制器LUN ID,以及控制
器LUN的归属控制器的待访问控制器ID的操作,包括:
使用所述第三待访问主机LUN ID在所述对应关系表中进行查找,获得所
述第三待访问主机LUN ID对应的第三待访问控制器LUN ID,以及控制器LUN
的归属控制器的第三待访问控制器ID;
所述处理器还用于根据所述存储器中存储的程序指令执行以下操作:
对所述第三初始LBA进行解析,得到所述第三待访问控制器LUN ID的第
三初始虚拟块标识;使用所述第三待访问控制器LUN ID和所述第三初始虚拟
块标识在所述对应关系表中进行查找,获得所述第三待访问控制器LUN ID和
所述第三初始虚拟块标识对应的第三存储设备标识和第三初始存储设备块标
识;
所述处理器执行所述把所述I/O操作命令中的所述待访问主机LUN ID替
换成所述待访问控制器LUN ID后,把所述I/O操作命令发往所述待访问控制
器ID所代表的控制器进行操作访问的操作,包括:
把所述读数据命令中的所述第三待访问主机LUN ID替换成所述第三待访
问控制器LUN ID,以及,把所述读数据命令中的所述第三初始LBA替换成所
述第三初始存储设备块标识后,把所述读数据命令发往所述第三待访问控制
器ID所代表的控制器进行操作访问。
结合第三方面或第三方面的第一种或第二种或第三种可能的实施方式,
在第三方面的第四种可能的实施方式中,所述处理器还用于根据所述存储器
中存储的程序指令执行以下操作:
根据用户配置的存储设备块的大小,建立所述对应关系表。
本发明实施例提供了一种输入输出控制方法,I/O控制装置接收主机发送
的针对主机LUN ID的I/O操作命令,该I/O操作命令中携带有待访问主机LUN
ID,使用待访问主机LUN ID在对应关系表中进行查找,获得待访问主机LUN ID
对应的待访问控制器LUN ID,以及控制器LUN的归属控制器的待访问控制器
ID;把该I/O操作命令中的待访问主机LUN ID替换成待访问控制器LUN ID
后,把该I/O操作命令发往待访问控制器ID所代表的控制器进行操作访问。
本发明实施例中,由于主机LUN ID是对所有控制器的控制器LUN ID进行统
一编号后生成的,因此,主机LUN ID具有唯一性,I/O控制装置根据主机LUN
ID能够路由到相应的控制器,由该控制器找到输入输出操作具体针对的存储
设备。
附图说明
图1为本发明实施例提供的输入输出控制方法所基于的硬件拓扑图;
图2为本发明实施例一提供的输入输出控制方法流程图;
图3为本发明实施例二提供的输入输出控制方法流程图;
图4为本发明实施例二提供的另一输入输出控制方法流程图;
图5为本发明实施例二提供的另一输入输出控制方法流程图;
图6为本发明实施例提供的I/O细粒度分发逻辑图;
图7为本发明实施例提供的读数据流程示意图;
图8为本发明实施例提供的写数据流程示意图;
图9为本发明实施例三提供的输入输出控制装置结构图;
图10为本发明实施例四提供的输入输出控制装置结构图。
具体实施方式
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发
明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,
显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于
本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获
得的所有其他实施例,都属于本发明保护的范围。
为便于对本发明实施例的理解,下面将结合附图以具体实施例做进一步
的解释说明,实施例并不构成对本发明实施例的限定。
当本发明实施例提及“第一”、“第二”等序数词时,除非根据上下文
其确实表达顺序之意,应当理解为仅仅起区分的作用。
图1为本发明实施例提供的输入输出控制方法所基于的硬件拓扑图,其
中,一个或多个主机(Host)101和输入输出(Input/Output,I/O)控制装
置102相连,I/O控制装置102通过网络与多个控制器103相连,控制器103
下挂多个存储设备(disk)104。I/O控制装置102接收来自主机101的I/O
操作命令,例如,读写命令,通过一系列算法,将读写命令路由到指定的控
制器103中,由控制器103根据读写命令从存储设备104读写数据。
其中,本发明实施例提供了输入输出控制方法和输入输出控制装置,该
输入输出控制方法也可称为输入/输出控制方法或I/O控制方法或IO控制方
法,该输入输出控制装置也可称为输入/输出控制装置或I/O控制装置或IO
控制装置,不论是哪种叫法含义均相同。
图2为本发明实施例一提供的输入输出控制方法流程图,该方法基于图1
所示的硬件拓扑,本发明实施例提供的输入输出控制方法具体由I/O控制装
置来执行,I/O控制装置位于控制器和主机之间,控制器的数量为至少2个,
每个控制器和一个控制器ID对应,I/O控制装置用于管理主机LUN,每个主
机LUN拥有一个主机LUN ID,主机LUN ID是对所有控制器的控制器LUN ID
进行统一编号后生成的,每个主机LUN ID对应一个控制器LUN ID,I/O控制
装置预存有对应关系表,对应关系表中,记录有主机LUN ID对应的控制器LUN
ID、以及各控制器LUN ID的归属控制器ID,该方法包括:
步骤201,接收主机发送的针对主机LUN ID的I/O操作命令,该I/O操
作命令中携带有待访问主机LUN ID,该I/O操作命令是写数据命令、数据备
份命令或读数据命令中的一种。
在写数据的同时经常还要进行数据备份,与通常地做法不同,本发明实
施例中不是由控制器之间进行数据同步,而是由I/O控制装置同时进行写数
据命令和数据备份命令的I/O分发,从而一方面减轻了控制器的压力,另一
方面数据同步的效果更好。
本发明实施例中,对于某个控制器下的所有存储设备而言,把每个存储
设备的存储空间划分成多个块(chunk),每个块的大小相同,从每个存储设
备中拿出相同数量的块,共同组成一个逻辑上的存储单位,这个逻辑上的存
储单位就是控制器LUN。把多个控制器的控制器LUN的ID,重新进行统一编
号,形成主机LUN ID。
举例来说,控制器A下面挂了3个磁盘,分别是磁盘A、磁盘B、磁盘C。
磁盘A包括:chunk1、chunk2、chunk3,磁盘B包括:chunk1、chunk2、chunk3,
磁盘C也包括:chunk1、chunk2、chunk3。此时,可以把磁盘A的chunk 1、
磁盘B的chunk1以及磁盘C的chunk 1划分到一起供控制器使用,称之为一
个控制器LUN,将该控制器LUN命名为LUNA,LUNA为该控制器LUN的控制器
LUN ID。
以此类推,假设控制器A拥有3个LUN,其ID分别为LUN A、LUN B、LUN
C。控制器B也拥有3个LUN,其ID分别为LUN A、LUN B、LUN C。由上可见,
控制器A和控制器B的控制器LUN ID存在重复。
本发明实施例中,为了避免LUN ID的重复,I/O控制装置把不同控制器
的控制器LUN ID重新进行统一编号,例如,对上述6个LUN的ID重新编号,
重新编号为LUN 1、LUN 2、LUN 3、LUN 4、LUN 5、LUN 6,这6个重新编号
的LUN ID所代表的LUN,就是主机LUN。对主机而言,它只能识别主机LUN ID,
而不能识别控制器LUN ID。对控制器而言,它只能识别控制器LUN,而不能
识别主机LUN。因此,需要通过I/O控制装置,完成主机LUN ID和控制器LUN
ID二者之间的映射。
本发明实施例中,可以由用户配置存储设备块的大小,I/O控制装置根据
用户配置的存储设备块的大小,建立上述对应关系表,对应关系表中,记录
有主机LUN ID对应的控制器LUN ID、以及各控制器LUN ID的归属控制器ID,
还记录有控制器LUN ID、虚拟块标识与存储设备标识、存储设备块标识的对
应关系;每个存储设备标识对应多个存储设备块标识;并由I/O控制装置将
主机LUN ID上报给主机。
步骤202,使用待访问主机LUN ID在对应关系表中进行查找,获得待访
问主机LUN ID对应的待访问控制器LUN ID,以及控制器LUN的归属控制器的
待访问控制器ID。
此外,也可以根据预设的算法,确定待访问主机LUN ID对应的待访问控
制器LUN ID和待访问控制器ID。
步骤203,把该I/O操作命令中的待访问主机LUN ID替换成待访问控制
器LUN ID后,把该I/O操作命令发往待访问控制器ID所代表的控制器进行
操作访问。
由于同一控制器下的控制器LUN ID均不相同,因此控制器可以根据控制
器LUN ID找到该I/O操作命令具体针对的存储设备。
本发明实施例提供了一种输入输出控制方法,I/O控制装置接收主机发送
的针对主机LUN ID的I/O操作命令,该I/O操作命令中携带有待访问主机LUN
ID,使用待访问主机LUN ID在对应关系表中进行查找,获得待访问主机LUN ID
对应的待访问控制器LUN ID,以及控制器LUN的归属控制器的待访问控制器
ID;把I/O操作命令中的待访问主机LUN ID替换成待访问控制器LUN ID后,
把该I/O操作命令发往待访问控制器ID所代表的控制器进行操作访问。本发
明实施例中,由于主机LUN ID是对所有控制器的控制器LUN ID进行统一编
号后生成的,因此,主机LUN ID具有唯一性,I/O控制装置根据主机LUN ID
能够路由到相应的控制器,由该控制器找到输入输出操作具体针对的存储设
备。
图3为本发明实施例二提供的输入输出控制方法流程图,其中,I/O操作
命令具体为写数据命令,该写数据命令中携带有第一待访问主机LUN ID和第
一初始(Logic Block Address,LBA);每个待访问控制器LUN ID对应多个
虚拟块标识;对应关系表中,还记录有控制器LUN ID、虚拟块标识与存储设
备标识、存储设备块标识的对应关系;每个存储设备标识对应多个存储设备
块标识,该方法包括:
步骤301,I/O控制装置接收主机发送的写数据命令,该写数据命令中携
带有第一待访问主机LUN ID和第一初始LBA。
其中,LBA可以意指某个数据区块的地址或是某个地址所指向的数据区
块,本发明实施例中,后续可以通过对第一初始LBA进行解析,得到第一待
访问控制器LUN ID的第一初始虚拟块标识。
步骤302,使用第一待访问主机LUN ID在对应关系表中进行查找,获得
第一待访问主机LUN ID对应的第一待访问控制器LUN ID,以及控制器LUN的
归属控制器的第一待访问控制器ID。
步骤303,对第一初始LBA进行解析,得到第一待访问控制器LUN ID的
第一初始虚拟块标识。
步骤304,使用第一待访问控制器LUN ID和第一初始虚拟块标识在对应
关系表中进行查找,获得第一待访问控制器LUN ID和第一初始虚拟块标识对
应的第一存储设备标识和第一初始存储设备块标识。
本发明实施例中,还可以包括建立对应关系表的过程,其中,可以根据
用户配置的存储设备块的大小,建立对应关系表,通过上述方式可以实现I/O
粒度大小灵活可配,根据不同的应用场景选择粒度大小,以达到最佳性能,
进一步支持负载均衡。
步骤305,把该写数据命令中的第一待访问主机LUN ID替换成第一待访
问控制器LUN ID,以及,把该写数据命令中的第一初始LBA替换成第一初始
存储设备块标识后,把该写数据命令发往第一待访问控制器ID所代表的控制
器进行操作访问。
本发明实施例提供了一种输入输出控制方法,主机LUN与存储设备不再
是一一对应的,存储设备被划分成了多个存储设备块,通过主机LUN与存储
设备标识和初始存储设备块标识建立对应关系,可以实现将针对同一主机LUN
的写操作分发到不同存储设备的存储设备块中,从而将一条通道上的I/O压
力分散到多条通道上,因此有效实现了负载均衡。
可选地,参照图4,该方法还可以包括数据备份的处理流程,I/O操作命
令具体为数据备份命令,该数据备份命令中携带有第二待访问主机LUN ID和
第二初始LBA;每个待访问控制器LUN ID对应多个虚拟块标识;对应关系表
中,还记录有控制器LUN ID、虚拟块标识与存储设备标识、存储设备块标识
的对应关系;每个存储设备标识对应多个存储设备块标识,上述数据备份的
处理流程具体包括:
步骤401,I/O控制装置接收主机发送的数据备份命令,该数据备份命令
中携带有第二待访问主机LUN ID和第二初始LBA。
步骤402,使用第二待访问主机LUN ID在对应关系表中进行查找,获得
第二待访问主机LUN ID对应的第二待访问控制器LUN ID,以及控制器LUN的
归属控制器的第二待访问控制器ID。
步骤403,对第二初始LBA进行解析,得到第二待访问控制器LUN ID的
第二初始虚拟块标识。
步骤404,使用第二待访问控制器LUN ID和第二初始虚拟块标识在对应
关系表中进行查找,获得第二待访问控制器LUN ID和第二初始虚拟块标识对
应的第二存储设备标识和第二初始存储设备块标识。
步骤405,把该数据备份命令中的第二待访问主机LUN ID替换成第二待
访问控制器LUN ID,以及,把该数据备份命令中的第二初始LBA替换成第二
初始存储设备块标识后,把该数据备份命令发往第二待访问控制器ID所代表
的控制器进行操作访问。
通常地,数据备份时,控制器之间会进行频繁的数据同步,增加了控制
器的压力。本发明实施例中,通过I/O控制装置统筹管理I/O的分发,能够
缓解数据同步时控制器上的压力。
可选地,参照图5,该方法还可以包括读数据的处理流程,该I/O操作命
令具体为读数据命令,该读数据命令中携带有第三待访问主机LUN ID和第三
初始LBA;每个待访问控制器LUN ID对应多个虚拟块标识;对应关系表中,
还记录有控制器LUN ID、虚拟块标识与存储设备标识、存储设备块标识的对
应关系;每个存储设备标识对应多个存储设备块标识,上述读数据的处理流
程具体包括:
步骤501,I/O控制装置接收主机发送的读数据命令,该读数据命令中携
带有第三待访问主机LUN ID和第三初始LBA。
步骤502,使用第三待访问主机LUN ID在对应关系表中进行查找,获得
第三待访问主机LUN ID对应的第三待访问控制器LUN ID,以及控制器LUN的
归属控制器的第三待访问控制器ID。
步骤503,对第三初始LBA进行解析,得到第三待访问控制器LUN ID的
第三初始虚拟块标识。
步骤504,使用第三待访问控制器LUN ID和第三初始虚拟块标识在对应
关系表中进行查找,获得第三待访问控制器LUN ID和第三初始虚拟块标识对
应的第三存储设备标识和第三初始存储设备块标识。
步骤505,把该读数据命令中的第三待访问主机LUN ID替换成第三待访
问控制器LUN ID,以及,把该读数据命令中的第三初始LBA替换成第三初始
存储设备块标识后,把该读数据命令发往第三待访问控制器ID所代表的控制
器进行操作访问。
参照图6所示的I/O细粒度分发逻辑图,在原有技术中,主机管理的主
机逻辑单元号(HostLUN)和控制器管理的存储设备(disk)是一一对应的,
而在I/O细粒度分发的系统中,HostLUN和disk的映射关系不再是一一对应。
每个disk均匀地分割成多个更小的单元,以块(chunk)来表示这个更小的
单元,disk上的chunk编号从0开始递增。取多个disk中的chunk,在I/O
控制装置中构建成一个个虚拟逻辑单元号(DevLUN),DevLUN能够被控制器
所识别,因此DevLUN也称为控制器LUN,DevLUN由I/O控制装置保存管理。
主机中的HostLUN不再和disk一一对应,而是和I/O控制装置中的DevLUN
一一对应,即一个HostLUN将以chunk为单位,映射到不同控制器中的不同
disk上。I/O控制装置管理HostLUN和DevLUN的映射关系表、DevLUN的chunk
和disk的chunk的映射关系表,并负责I/O消息的分发,其中,上述映射关
系表也可以称为对应关系表。chunk的粒度大小可配置,每个chunk的大小相
同。主机对指定LUN进行频繁的I/O操作的时候,I/O控制装置会以chunk为
单元,将I/O操作分发到不同控制器的不同disk中,从而达到负载均衡的效
果。合理地规划LUN上的chunk和disk的chunk的映射关系,以及合理地配
置chunk的大小,能够达到更好的负载均衡的效果。
本发明实施例中的输入输出控制方法具体可以包括两个处理阶段:路由
表构建和读写流程。
路由表构建可以由控制器和I/O控制装置共同来完成,先由控制器扫描
下挂的存储设备,将disk分割为一组chunk,多个disk就分割为多组chunk,
每组chunk的编号(ID)都从0开始递增,呈现给管理软件;管理软件将不
同disk的各个chunk划分给不同的DevLUN;控制器将disk chunk和DevLUN
chunk的映射关系以表的形式存储;并向I/O控制装置上报此映射表,该映射
表也可以称为对应关系表。
该映射表的一条映射关系中可以包括I/O控制装置标识(I/OCU ID)、
虚拟逻辑单元号标识(DevLUNID)、虚拟块标识(DevChunkID)、控制器标
识(Ctrl ID)、存储设备标识(Disk ID)、存储设备块标识(DiskChunkID)
这几个字段,具体可以如表一所示。
表一
I/OCU ID
DevLUNID
DevChunkID
Ctrl ID
Disk ID
DiskChunkID
I/O控制装置接收到控制器上报的映射表,根据I/OCU ID选择归属于自
己控制的信息,在本地构建路由表。参见表二,路由表中以DevLUN为单位,
记录了每个DevLUN有多少个chunk组成,以及每个DevLUN上的chunk对应
的Disk Chunk的信息,该信息包括DiskChunk所属的控制器标识、DiskID和
DiskChunkID。
表二
读写流程中,主要涉及路由方式,具体地,主机下发读写命令,命令中
包含HostLUN ID和起始LBA;I/O控制装置在本地路由表中寻找未使用过的
DevLUN,建立HostLUN和DevLUN的一一对应关系,并标记该DevLUN已使用;
I/O控制装置根据起始LBA,解析出对应的DevChunkID;I/O控制装置可以根
据DevLUNID和DevChunkID,在路由表中找到唯一确定的DiskChunkID、
DiskID、CtrlID,根据CtrlID将命令路由给指定的控制器;控制器根据
DiskChunkID和DiskID对该disk的指定区块进行读写操作。
参照图7所示的读数据流程,主机下发读命令,命令中带有HostLUN ID
和起始LBA;I/O控制装置接收到读命令后,采用前面介绍的路由方式,将命
令分发到指定的控制器;控制器接收到读命令后,将数据从指定disk区块读
出来;控制器直接将读数据搬运到主机。
参照图8所示的写数据流程,主机下发写命令,命令中带有HostLUN ID
和起始LBA;I/O控制装置接收到写命令后,采用前面介绍的路由方式,将命
令分发到指定的控制器;控制器接收到写命令后,向主机返回已准备好
(ready)消息,主机将数据搬运到控制器;控制器将数据写入指定disk的
区块。
如果需要进行数据备份,I/O控制装置通过备份算法,找到备份数据将要
写入的存储区块,再根据前面介绍的路由方式,将命令分发到指定的控制器;
控制器接收到写备份命令后,向主机返回ready消息,主机将数据再备份给
此控制器,控制器将备份数据写入指定disk的区块。
图9为本发明实施例三提供的输入输出控制装置结构图,该装置用于执
行本发明实施例提供的输入输出控制方法,该装置包括:
接收单元901,用于接收主机发送的针对主机LUN ID的I/O操作命令,
所述操作命令中携带有待访问主机LUN ID,所述I/O操作命令是写数据命令、
数据备份命令或读数据命令中的一种;
查找单元902,用于使用所述接收单元901接收的待访问主机LUN ID在
所述对应关系表中进行查找,获得所述待访问主机LUN ID对应的待访问控制
器LUN ID,以及控制器LUN的归属控制器的待访问控制器ID;
发送单元903,用于把所述接收单元901接收的I/O操作命令中的所述待
访问主机LUN ID替换成所述查找单元902获得的待访问控制器LUN ID后,
把所述I/O操作命令发往所述待访问控制器ID所代表的控制器进行操作访
问。
可选地,所述接收单元901接收的I/O操作命令包括写数据命令,所述
写数据命令中携带有第一待访问主机LUN ID和第一初始逻辑区块地址LBA;
每个待访问控制器LUN ID对应多个虚拟块标识;所述对应关系表中,还记录
有控制器LUN ID、虚拟块标识与存储设备标识、存储设备块标识的对应关系;
每个存储设备标识对应多个存储设备块标识;
所述查找单元902,具体用于使用所述接收单元901接收的第一待访问主
机LUN ID在所述对应关系表中进行查找,获得所述第一待访问主机LUN ID
对应的第一待访问控制器LUN ID,以及控制器LUN的归属控制器的第一待访
问控制器ID;
所述装置还包括:
解析单元904,用于对所述接收单元901接收的第一初始LBA进行解析,
得到所述第一待访问控制器LUN ID的第一初始虚拟块标识;
所述查找单元902,还用于使用所述查找单元902获得的第一待访问控制
器LUN ID和所述解析单元904得到的第一初始虚拟块标识在所述对应关系表
中进行查找,获得所述第一待访问控制器LUN ID和所述第一初始虚拟块标识
对应的第一存储设备标识和第一初始存储设备块标识;
所述发送单元903,具体用于把所述接收单元901接收的写数据命令中的
所述第一待访问主机LUN ID替换成所述查找单元902获得的第一待访问控制
器LUN ID,以及,把所述写数据命令中的所述第一初始LBA替换成所述查找
单元902获得的第一初始存储设备块标识后,把所述写数据命令发往所述查
找单元902获得的第一待访问控制器ID所代表的控制器进行操作访问。
可选地,所述接收单元901接收的I/O操作命令包括数据备份命令,所
述数据备份命令中携带有第二待访问主机LUN ID和第二初始逻辑区块地址
LBA;每个待访问控制器LUN ID对应多个虚拟块标识;所述对应关系表中,
还记录有控制器LUN ID、虚拟块标识与存储设备标识、存储设备块标识的对
应关系;每个存储设备标识对应多个存储设备块标识;
所述查找单元902,具体用于使用所述接收单元901接收的第二待访问主
机LUN ID在所述对应关系表中进行查找,获得所述第二待访问主机LUN ID
对应的第二待访问控制器LUN ID,以及控制器LUN的归属控制器的第二待访
问控制器ID;
所述装置还包括:
解析单元904,用于对所述接收单元901接收的第二初始LBA进行解析,
得到所述第二待访问控制器LUN ID的第二初始虚拟块标识;
所述查找单元902,还用于使用所述查找单元902获得的第二待访问控制
器LUN ID和所述解析单元904得到的第二初始虚拟块标识在所述对应关系表
中进行查找,获得所述第二待访问控制器LUN ID和所述第二初始虚拟块标识
对应的第二存储设备标识和第二初始存储设备块标识;
所述发送单元903,具体用于把所述接收单元901接收的数据备份命令中
的所述第二待访问主机LUN ID替换成所述查找单元902获得的第二待访问控
制器LUN ID,以及,把所述数据备份命令中的所述第二初始LBA替换成所述
查找单元902获得的第二初始存储设备块标识后,把所述数据备份命令发往
所述查找单元902获得的第二待访问控制器ID所代表的控制器进行操作访
问。
可选地,所述接收单元901接收的I/O操作命令包括读数据命令,所述
读数据命令中携带有第三待访问主机LUN ID和第三初始逻辑区块地址LBA;
每个待访问控制器LUN ID对应多个虚拟块标识;所述对应关系表中,还记录
有控制器LUN ID、虚拟块标识与存储设备标识、存储设备块标识的对应关系;
每个存储设备标识对应多个存储设备块标识;
所述查找单元902,具体用于使用所述接收单元901接收的第三待访问主
机LUN ID在所述对应关系表中进行查找,获得所述第三待访问主机LUN ID
对应的第三待访问控制器LUN ID,以及控制器LUN的归属控制器的第三待访
问控制器ID;
所述装置还包括:
解析单元904,用于对所述接收单元901接收的第三初始LBA进行解析,
得到所述第三待访问控制器LUN ID的第三初始虚拟块标识;
所述查找单元902,还用于使用所述查找单元902获得的第三待访问控制
器LUN ID和所述解析单元904得到的第三初始虚拟块标识在所述对应关系表
中进行查找,获得所述第三待访问控制器LUN ID和所述第三初始虚拟块标识
对应的第三存储设备标识和第三初始存储设备块标识;
所述发送单元903,具体用于把所述接收单元901接收的读数据命令中的
所述第三待访问主机LUN ID替换成所述查找单元902获得的第三待访问控制
器LUN ID,以及,把所述读数据命令中的所述第三初始LBA替换成所述查找
单元902获得的第三初始存储设备块标识后,把所述读数据命令发往所述查
找单元902获得的第三待访问控制器ID所代表的控制器进行操作访问。
可选地,所述装置还包括:
对应关系建立单元905,用于根据用户配置的存储设备块的大小,建立所
述对应关系表。
图10为本发明实施例四提供的输入输出控制装置结构图,该装置用于执
行本发明实施例提供的输入输出控制方法,该装置包括:
存储器1001;
处理器1002;
存储器1001,用于存储程序指令;
处理器1002,用于根据存储器1001中存储的程序指令,执行以下操作:
接收主机发送的针对主机LUN ID的I/O操作命令,所述I/O操作命令中
携带有待访问主机LUN ID,所述I/O操作命令是写数据命令、数据备份命令
或读数据命令中的一种;
使用所述待访问主机LUN ID在所述对应关系表中进行查找,获得所述待
访问主机LUN ID对应的待访问控制器LUN ID,以及控制器LUN的归属控制器
的待访问控制器ID;
把所述I/O操作命令中的所述待访问主机LUN ID替换成所述待访问控制
器LUN ID后,把所述I/O操作命令发往所述待访问控制器ID所代表的控制
器进行操作访问。
可选地,所述I/O操作命令包括写数据命令,所述写数据命令中携带有
第一待访问主机LUN ID和第一初始LBA;每个待访问控制器LUN ID对应多个
虚拟块标识;所述对应关系表中,还记录有控制器LUN ID、虚拟块标识与存
储设备标识、存储设备块标识的对应关系;每个存储设备标识对应多个存储
设备块标识;
所述处理器1002执行所述使用所述待访问主机LUN ID在所述对应关系
表中进行查找,获得所述待访问主机LUN ID对应的待访问控制器LUN ID,以
及控制器LUN的归属控制器的待访问控制器ID的操作,包括:
使用所述第一待访问主机LUN ID在所述对应关系表中进行查找,获得所
述第一待访问主机LUN ID对应的第一待访问控制器LUN ID,以及控制器LUN
的归属控制器的第一待访问控制器ID;
所述处理器1002还用于根据所述存储器1001中存储的程序指令执行以
下操作:
对所述第一初始LBA进行解析,得到所述第一待访问控制器LUN ID的第
一初始虚拟块标识;使用所述第一待访问控制器LUN ID和所述第一初始虚拟
块标识在所述对应关系表中进行查找,获得所述第一待访问控制器LUN ID和
所述第一初始虚拟块标识对应的第一存储设备标识和第一初始存储设备块标
识;
所述处理器1002执行所述把所述I/O操作命令中的所述待访问主机LUN
ID替换成所述待访问控制器LUN ID后,把所述I/O操作命令发往所述待访问
控制器ID所代表的控制器进行操作访问的操作,包括:
把所述写数据命令中的所述第一待访问主机LUN ID替换成所述第一待访
问控制器LUN ID,以及,把所述写数据命令中的所述第一初始LBA替换成所
述第一初始存储设备块标识后,把所述写数据命令发往所述第一待访问控制
器ID所代表的控制器进行操作访问。
可选地,所述I/O操作命令包括数据备份命令,所述数据备份命令中携
带有第二待访问主机LUN ID和第二初始LBA;每个待访问控制器LUN ID对应
多个虚拟块标识;所述对应关系表中,还记录有控制器LUN ID、虚拟块标识
与存储设备标识、存储设备块标识的对应关系;每个存储设备标识对应多个
存储设备块标识;
所述处理器1002执行所述使用所述待访问主机LUN ID在所述对应关系
表中进行查找,获得所述待访问主机LUN ID对应的待访问控制器LUN ID,以
及控制器LUN的归属控制器的待访问控制器ID的操作,包括:
使用所述第二待访问主机LUN ID在所述对应关系表中进行查找,获得所
述第二待访问主机LUN ID对应的第二待访问控制器LUN ID,以及控制器LUN
的归属控制器的第二待访问控制器ID;
所述处理器1002还用于根据所述存储器1001中存储的程序指令执行以
下操作:
对所述第二初始LBA进行解析,得到所述第二待访问控制器LUN ID的第
二初始虚拟块标识;使用所述第二待访问控制器LUN ID和所述第二初始虚拟
块标识在所述对应关系表中进行查找,获得所述第二待访问控制器LUN ID和
所述第二初始虚拟块标识对应的第二存储设备标识和第二初始存储设备块标
识;
所述处理器1002执行所述把所述I/O操作命令中的所述待访问主机LUN
ID替换成所述待访问控制器LUN ID后,把所述I/O操作命令发往所述待访问
控制器ID所代表的控制器进行操作访问的操作,包括:
把所述数据备份命令中的所述第二待访问主机LUN ID替换成所述第二待
访问控制器LUN ID,以及,把所述数据备份命令中的所述第二初始LBA替换
成所述第二初始存储设备块标识后,把所述数据备份命令发往所述第二待访
问控制器ID所代表的控制器进行操作访问。
可选地,所述I/O操作命令包括读数据命令,所述读数据命令中携带有
第三待访问主机LUN ID和第三初始LBA;每个待访问控制器LUN ID对应多个
虚拟块标识;所述对应关系表中,还记录有控制器LUN ID、虚拟块标识与存
储设备标识、存储设备块标识的对应关系;每个存储设备标识对应多个存储
设备块标识;
所述处理器1002执行所述使用所述待访问主机LUN ID在所述对应关系
表中进行查找,获得所述待访问主机LUN ID对应的待访问控制器LUN ID,以
及控制器LUN的归属控制器的待访问控制器ID的操作,包括:
使用所述第三待访问主机LUN ID在所述对应关系表中进行查找,获得所
述第三待访问主机LUN ID对应的第三待访问控制器LUN ID,以及控制器LUN
的归属控制器的第三待访问控制器ID;
所述处理器1002还用于根据所述存储器1001中存储的程序指令执行以
下操作:
对所述第三初始LBA进行解析,得到所述第三待访问控制器LUN ID的第
三初始虚拟块标识;使用所述第三待访问控制器LUN ID和所述第三初始虚拟
块标识在所述对应关系表中进行查找,获得所述第三待访问控制器LUN ID和
所述第三初始虚拟块标识对应的第三存储设备标识和第三初始存储设备块标
识;
所述处理器1002执行所述把所述I/O操作命令中的所述待访问主机LUN
ID替换成所述待访问控制器LUN ID后,把所述I/O操作命令发往所述待访问
控制器ID所代表的控制器进行操作访问的操作,包括:
把所述读数据命令中的所述第三待访问主机LUN ID替换成所述第三待访
问控制器LUN ID,以及,把所述读数据命令中的所述第三初始LBA替换成所
述第三初始存储设备块标识后,把所述读数据命令发往所述第三待访问控制
器ID所代表的控制器进行操作访问。
可选地,所述处理器1002还用于根据所述存储器1001中存储的程序指
令执行以下操作:
根据用户配置的存储设备块的大小,建立所述对应关系表。
专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的
各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来
实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能
一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来
执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每
个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为
超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理
器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器
(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、
寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式
的存储介质中。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行
了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而
已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做
的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。