一种数据处理方法、装置、服务器及控制器的制造方法
【技术领域】
[0001]本发明涉及数据传输技术领域,尤其涉及一种数据处理方法、装置、服务器及控制器。
【背景技术】
[0002]随着光纤通道的存储设备、光纤通道交换机等设备的出现将存储领域推向了网络化的新阶段,诞生了存储区域网络(Storage Area Network,SAN),实现了存储设备的共享,服务器可以通过存储网络直接对存储系统中的多个存储设备进行数据访问。
[0003]现有技术中,服务器通常会将多个I/O请求合并发送,以提高数据访问效率,并且能够进行合并的I/O请求必须是访问同一个存储设备的。如果服务器需要完成由一个数据处理请求产生的多个存储设备的I/O请求访问时,现有技术会将不同存储设备的I/O请求分散到不同的聚合指令中,再将不同聚合指令分别发送至对应的存储设备以完成读写操作。为了保证数据的一致性,现有技术中增加了事务机制以对同一个数据处理请求的I/O请求进行监控和管理。由于不同存储设备的聚合请求处理时间不同,事务机制管理一个数据处理请求的时间被延长,增加了事务机制的负荷。可见,目前SAN对同一数据处理请求的不同存储设备的I/O请求需要复杂的事务机制进行管理。
【发明内容】
[0004]本发明实施例提供一种数据处理方法、装置、服务器及控制器,能够解决目前SAN对同一数据处理请求的不同存储设备的I/O请求需要复杂的事务机制进行管理的问题。
[0005]本发明实施例第一方面提供了一种数据处理方法,应用于数据处理系统,所述数据处理系统包括服务器和存储系统,所述存储系统包括控制器和多个存储设备,所述方法由所述服务器执行,包括:
[0006]接收数据处理请求,所述数据处理请求包括请求序号,所述请求序号用于标记所述数据处理请求;
[0007]根据所述数据处理请求生成至少一个I/O请求;
[0008]对所述至少一个I/O请求中的每一个I/O请求添加所述请求序号;
[0009]当具有所述请求序号的I/O请求数量大于预设阈值时,将具有所述请求序号的1/0请求进行合并,生成聚合指令;
[0010]向所述存储系统的控制器发送所述聚合指令。
[0011]在第一方面的第一种可能实现方式中,所述聚合指令包括合并的每个I/O请求的操作字段和合并的I/o请求数量。
[0012]结合第一方面或第一方面的第一种可能实现方式,在第一方面的第二种可能实现方式中,还包括:
[0013]接收所述存储系统的控制器发送的表示所述聚合指令解析错误的提示消息;
[0014]向所述存储系统的控制器再次发送所述聚合指令。
[0015]本发明实施例第二方面提供了另一种数据处理方法,应用于数据处理系统,所述数据处理系统包括服务器和存储系统,所述存储系统包括控制器和多个存储设备,所述方法由所述控制器执行,包括:
[0016]接收所述服务器发送的聚合指令;
[0017]解析所述聚合指令,获得具有请求序号的至少一个I/O请求的操作字段和I/O请求的数量;
[0018]统计具有所述请求序号的所述至少一个I/O请求的操作字段的数量;
[0019]判断具有所述请求序号的所述至少一个I/O请求的操作字段的数量与所述I/O请求数量是否相同;
[0020]若是,则按照所述至少一个I/O请求的操作字段进行处理;
[0021]若否,则向所述服务器发送表示所述聚合指令解析错误的提示消息。
[0022]本发明实施例第三方面提供了一种数据处理装置,应用于数据处理系统的服务器中,所述数据处理系统还包括存储系统,所述存储系统包括控制器和多个存储设备,所述数据处理装置包括:
[0023]接收单元,用于接收数据处理请求,所述数据处理请求包括请求序号,所述请求序号用于标记所述数据处理请求;
[0024]生成单元,用于根据所述数据处理请求生成至少一个I/O请求;
[0025]添加单元,用于对所述至少一个I/O请求中的每一个I/O请求添加所述请求序号;
[0026]合并单元,用于当具有所述请求序号的I/O请求数量大于预设阈值时,将具有所述请求序号的I/O请求进行合并,生成聚合指令;
[0027]发送单元,用于向所述存储系统的控制器发送所述聚合指令。
[0028]在第三方面的第一种可能实现方式中,所述聚合指令包括合并的每个I/O请求对应的操作字段和合并的I/O请求数量。
[0029]结合第三方面或第三方面的第一种可能实现方式,在第三方面的第二种可能实现方式中,所述接收单元,还用于接收所述存储系统的控制器发送的表示所述聚合指令解析错误的提示消息;
[0030]所述发送单元,还用于向所述存储系统的控制器再次发送所述聚合指令。
[0031]本发明实施例第四方面提供了另一种数据处理装置,所述数据处理装置应用于数据处理系统的存储系统的控制器中,所述数据处理系统还包括服务器和存储系统,所述存储系统还包括多个存储设备,所述数据处理装置包括:
[0032]接收单元,用于接收所述服务器发送的聚合指令;
[0033]解析单元,用于解析所述聚合指令,获得具有请求序号的至少一个I/O请求的操作字段和I/O请求的数量;
[0034]统计单元,用于统计具有所述请求序号的所述至少一个I/O请求的操作字段的数量;
[0035]判断单元,用于判断具有所述请求序号的所述至少一个I/O请求的操作字段的数量与所述I/o请求数量是否相同;
[0036]处理单元,用于若具有所述请求序号的所述至少一个I/O请求的操作字段的数量与所述I/O请求数量相同时,则按照所述至少一个I/O请求的操作字段进行处理;
[0037]发送单元,用于若具有所述请求序号的所述至少一个I/O请求的操作字段的数量与所述I/O请求数量不相同时,则向所述服务器发送表示所述聚合指令解析错误的提示消息。
[0038]本发明实施例第五方面提供了一种服务器,应用于数据处理系统,所述数据处理系统还包括存储系统,所述存储系统包括控制器和多个存储设备,所述服务器包括通信接口、存储器和处理器,所述存储器用于存储程序代码,所述处理器用于调用所述存储器存储的程序代码执行如下步骤:
[0039]通过通信接口接收数据处理请求,所述数据处理请求包括请求序号,所述请求序号用于标记所述数据处理请求;
[0040]根据所述数据处理请求生成至少一个I/O请求;
[0041]对所述至少一个I/O请求中的每一个I/O请求添加所述请求序号;
[0042]当具有所述请求序号的I/O请求数量大于预设阈值时,将具有所述请求序号的1/0请求进行合并,生成聚合指令;
[0043]通过通信接口向所述存储系统的控制器发送所述聚合指令。
[0044]在第五方面的第一种可能实现方式中,所述聚合指令包括合并的每个I/O请求对应的操作字段和合并的I/O请求数量。
[0045]结合第五方面或第五方面的第一种可能实现方式,在第五方面的第二种可能实现方式中,通过通信接口接收所述存储系统的控制器发送的表示所述聚合指令解析错误的提示消息;
[0046]通过通信接口向所述存储系统的控制器再次发送所述聚合指令。
[0047]本发明实施例第六方面提供了一种控制器,应用于数据处理系统中的存储系统中,所述数据处理系统还包括故武器,所述存储系统还包括多个存储设备,所述控制器包括通信接口、存储器和处理器,所述存储器用于存储程序代码,其特征在于,所述处理器用于调用所述存储器存储的程序代码执行如下步骤:
[0048]通过通信接口接收所述服务器发送的聚合指令;
[0049]解析所述聚合指令,获得具有请求序号的至少一个I/O请求的操作字段和I/O请求的数量;
[0050]统计具有所述请求序号的所述至少一个I/O请求的操作字段的数量;
[0051]判断具有所述请求序号的所述至少一个I/O请求的操作字段的数量与所述I/O请求数量是否相同;
[0052]若是,则按照所述至少一个