发明内容
针对上述技术问题,本发明提供一种存储系统的访问方法、系统介质及设备。
本发明解决上述技术问题的技术方案如下:一种存储系统的访问方法,包括:
将接收到的数据请求中所请求数据的第一数据长度分别与预设的第二数据长度和/或第三数据长度进行比较,其中,所述第三数据长度大于所述第二数据长度;
根据比较结果对所述第一数据长度进行设置;
根据完成设置的数据请求,向存储系统请求数据。
为实现上述发明目的,本发明还提供一种存储系统的访问系统,包括:
比较模块,用于将接收到的数据请求中所请求数据的第一数据长度分别与预设的第二数据长度和/或第三数据长度进行比较,其中,所述第三数据长度大于所述第二数据长度;
设置模块,用于根据比较结果对所述第一数据长度进行设置;
请求模块,用于根据完成设置的数据请求,向存储系统请求数据。
本发明还提供一种计算机可读存储介质,包括指令,当所述指令在计算机上运行时,使所述计算机执行上述方法。
本发明还提供一种计算机设备,包括存储器、处理器及存储在所述存储器上的并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方法。
本发明的有益效果是:将传统由存储系统处理的数据请求的处理工作转交给主机来进行,也可以是在主机和存储系统之间,单独采用计算机设备实现处理,减少存储系统在IO路径上的性能消耗,存储系统将只接收可直接处理的完成设置的数据请求,不处理未经过设置的数据请求,从而存储系统可以提供更多的数据处理能力,使其能够更大的发挥数据处理效能。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
图1为本发明实施例提供的一种存储系统的访问方法的流程图,该方法的执行主体可以是主机,也可以是在主机和存储系统之间的计算机设备,这里的主机包括:虚拟主机、物理主机、容器主机以及采用其它虚拟化手段建立的主机。
如图1所示,该方法包括:
S110、将接收到的数据请求中所请求数据的第一数据长度分别与预设的第二数据长度和/或第三数据长度进行比较,其中,所述第三数据长度大于所述第二数据长度。
具体的,数据长度即指数据的大小,通常以bi t、byte、KB等为单位,由于硬件设备的限制,现有的存储系统一般不能接受任意数据长度的数据访问,否则会造成访问异常,这里的第二数据长度和第三数据长度均为存储系统可接受的访问数据的数据长度。
S120、根据比较结果对所述第一数据长度进行设置。
具体的,这里根据比较结果对第一数据长度进行设置,可以避免造成访问异常。
S130、根据完成设置的数据请求,向存储系统请求数据。
在该实施例中,将传统由存储系统处理的数据请求的处理工作转交给主机来进行,也可以是在主机和存储系统之间,单独采用计算机设备实现处理,减少存储系统在IO路径上的性能消耗,存储系统将只接收可直接处理的完成设置的数据请求,不处理未经过设置的数据请求,从而存储系统可以提供更多的数据处理能力,使其能够更大的发挥数据处理效能。
可选地,在该实施例中,S120包括:
步骤A:若所述第一数据长度不大于所述第二数据长度,则将所述第一数据长度设为所述第二数据长度;
具体的,例如,第二数据长度为1024字节、第一数据长度512字节,第一数据长度小于第二数据长度,因此将第一数据长度设置为第二数据长度1024字节。
或,步骤B:若所述第一数据长度大于所述第二数据长度,并且不大于所述第三数据长度,则将所述第一数据长度设为所述第三数据长度;
具体的,例如,第三数据长度为4096字节,第一数据长度为2048字节,第一数据长度在第二数据长度和第三数据长度之间,因此将第一数据长度设置为第三数据长度4096字节。
或,步骤C:若所述第一数据长度大于所述第三数据长度,则将所述数据请求拆解成多个子数据请求,并按照上述步骤A或步骤B将所述拆解得到的每个子数据请求,将每个子数据请求的数据长度,分别设置为所述第一数据长度。
具体的,例如,第一数据长度4608字节,大于第三数据长度,则将数据请求拆解,拆解的每个子请求作为步骤A或步骤B中的数据请求,数据请求方法按照步骤A及步骤B实施。
可选地,在该实施例中,所述多个子数据请求包括第一子数据请求和第二子数据请求,所述第一子数据请求的数据长度为所述第三数据长度,所述第二子数据请求的数据长度为所述第一数据长度与所述子数据请求中所有所述第一子数据请求的数据长度总和之差。
具体的,例如,第一数据长度4608字节,大于第三数据长度,则将数据请求拆解成两个子数据请求,第一子请求的数据长度为4096字节,剩下的512字节作为第二子数据请求的数据长度。
上述方法按照最大的第三数据长度来对数据请求进行拆解,可使拆解得到的子数据请求的数量最少,并且设置完成后的第一数据长度也最小,例如,拆解成4个1024字节和1个512字节,则子数据请求的数量为5个,拆解成2560字节和2048字节,则设置完成后的第一数据长度为8192字节,因此,采用上述方法,能够进一步减少存储系统的开销,提高存储系统的服务能力,有助于节约总体成本。
可选地,在该实施例中,S130具体包括:
若所述数据请求为读取请求,则根据所述完成设置的数据请求从存储系统中读取第一数据,从所述第一数据中,按照所述第一数据长度读取第二数据;
具体的,在进行读取请求时,首先需要按照完成设置的数据请求从存储系统中读取数据,但由于读取的数据与主机原来的读取请求所需要读取的数据的数据长度是不一致的,因此仍然需要按照主机原来的数据请求所请求数据的数据长度来从中读取数据。
例如,第一数据长度为512字节,则将第一数据长度设置为第二数据长度1024字节,在执行读取操作时,请求读取第一数据1024字节至缓存,并从第一数据中读取第二数据512字节。
或,若所述数据请求为写入请求,则根据所述完成设置的数据请求从存储系统中读取第一数据,在所述第一数据中,按照所述第一数据长度写入第三数据;在所述存储系统中,根据所述完成设置的数据请求写入第四数据,所述第四数据包括所述第三数据。
具体的,同样,在进行写入请求时,需要在读取的数据中写入原来的写入请求中。
例如,在执行写入操作时,请求读取第一数据1024字节至缓存,将第三数据512字节写入缓存中的第一数据,再将缓存的第四数据1024字节(包括第三数据)放入存储系统。
可选地,作为本发明的一个实施例中,如图2所示,将接收到的数据请求中所请求数据的第一数据长度分别与预设的第二数据长度和/或第三数据长度进行比较之前,该方法还包括:
S210、生成查询请求;
具体的,由主机在数据处理过程中,生成查询请求,并按照网络传输协议传输查询请求,该网络传输协议可采用TCP、RDMA、或UDP等现有的协议。
S220、根据所述查询请求生成配置信息,所述配置信息包含所述第二数据长度和所述第三数据长度;
具体的,按照上述协议,通过查询所生成的配置信息,即可通过配置信息得到第二数据长度和第三数据长度,以便进行下一步的比较。
图3为本发明实施例提供的一种存储系统的访问系统的结构框图,如图3所示,该系统包括:
比较模块,用于将接收到的数据请求中所请求数据的第一数据长度分别与预设的第二数据长度和/或第三数据长度进行比较;
设置模块,用于根据比较结果对所述第一数据长度进行设置,其中,所述第三数据长度大于所述第二数据长度;
请求模块,用于根据完成设置的数据请求,向存储系统请求数据。
可选地,在该实施例中,所述设置模块,具体包括:
第一设置单元,用于若所述第一数据长度不大于所述第二数据长度,则将所述第一数据长度设为所述第二数据长度;
第二设置单元,用于若所述第一数据长度大于所述第二数据长度,并且不大于所述第三数据长度,则将所述第一数据长度设为所述第三数据长度;
拆解单元,用于若所述第一数据长度大于所述第三数据长度,则将所述数据请求拆解成多个子数据请求;
所述第一设置单元和第二设置单元,还用于将所述拆解得到的每个子数据请求,将每个子数据请求的数据长度,分别设置为所述第一数据长度。
可选地,在该实施例中,所述多个子数据请求包括第一子数据请求和第二子数据请求,所述第一子数据请求的数据长度为所述第三数据长度,所述第二子数据请求的数据长度为所述第一数据长度与所述子数据请求中所有所述第一子数据请求的数据长度总和之差。
可选地,在该实施例中,所述请求模块,具体包括:
读取单元,用于若所述数据请求为读取请求,则根据所述完成设置的数据请求从存储系统中读取第一数据,从所述第一数据中,按照所述第一数据长度读取第二数据;
写入单元,用于若所述数据请求为写入请求,则根据所述完成设置的数据请求从存储系统中读取第一数据,在所述第一数据中,按照所述第一数据长度写入第三数据;在所述存储系统中,根据所述完成设置的数据请求写入第四数据,所述第四数据包括所述第三数据。
可选地,作为本发明的一个实施例,如图4所示,该系统还包括:
查询模块,用于生成查询请求;
配置模块,用于根据所述查询请求生成配置信息,所述配置信息包含所述第二数据长度和所述第三数据长度。
对于上述系统实施例而言,由于其基本相似于方法实施例,所以相关描述可参见前述方法实施例部分的说明即可。
本发明还提供一种计算机可读存储介质,包括指令,当所述指令在计算机上运行时,使所述计算机执行上述方法实施例中的方法步骤;或者存储上述系统实施例的各个软件模块对应的指令。
本发明还提供一种计算机设备,包括存储器、处理器及存储在所述存储器上的并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方法实施例中的方法步骤。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。