处理I/O请求的方法、装置、系统、设备及存储介质制造方法及图纸

技术编号:36733816 阅读:11 留言:0更新日期:2023-03-04 10:03
本申请实施例公开了一种处理I/O请求的方法、装置、系统、设备及存储介质,属于计算机技术领域。所述方法包括:接收目标I/O请求,所述目标I/O请求中携带有目的地址与目标逻辑块地址,所述目的地址为所述第一存储节点的节点地址;基于预设的逻辑块地址与存储节点的对应关系,确定所述目标逻辑块地址对应的第二存储节点;如果所述第二存储节点与所述第一存储节点不一致,则将所述目标I/O请求中的目的地址修改为所述第二存储节点的节点地址,得到修改目的地址后的目标I/O请求;发送所述修改目的地址后的目标I/O请求。采用本申请,可以提高处理目标I/O请求的效率。目标I/O请求的效率。目标I/O请求的效率。

【技术实现步骤摘要】
处理I/O请求的方法、装置、系统、设备及存储介质


[0001]本申请涉及计算机
,特别涉及一种处理I/O请求的方法、装置、系统、设备及存储介质。

技术介绍

[0002]随着互联网技术和大数据的发展,一些互联网、金融等企业,可以购买硬件厂商开发的存储系统,可用于存储企业在运营时产生的各种业务数据。
[0003]在硬件厂商开发的存储系统中可以包括多个存储节点,每个存储节点可由控制器和存储器组成,多个存储节点的存储器可构建成一个存储池,用于提供数据存储功能。其中,技术人员可以将存储池中的存储空间划分为多个逻辑块,为了避免各存储节点在处理I/O请求时产生冲突以及实现各存储节点之间的负载均衡,技术人员可以在每个存储节点的控制器中预先设置数据处理策略,使得每个存储节点只负责其对应逻辑块的数据读写处理。
[0004]互联网、金融等企业在购买硬件厂商开发的存储系统后,可以通过第三方多路径软件,向存储系统中的各存储节点发送I/O请求,进而实现在存储系统读写数据。但是第三方多路径软件与硬件厂商的技术人员设置的数据处理策略之间解耦,即第三方多路径软件无法确定一个I/O请求归属哪个存储节点处理。一般第三方多路径软件通过网络转发设备(如交换机、路由器等)随机地将I/O请求发送至存储系统的各个存储节点,以达到负载均衡的目的。当存储节点的控制器接收到网络转发设备转发的I/O请求后,可以根据预先设置的数据处理策略,确定处理该I/O请求的存储节点。如果确定该I/O请求是归属其他存储节点处理的,则可以将该I/O请求转发至相应的存储节点进行处理。但这样就会I/O请求需要在各存储节点之间进行转发,进而导致存储系统处理I/O请求的效率降低。

技术实现思路

[0005]本申请实施例提供了一种处理I/O请求的方法、装置、系统、设备及存储介质,可以解决存储系统处理I/O请求的效率降低的问题,所述技术方案如下:
[0006]第一方面,提供了一种处理I/O请求的方法,应用于网络转发设备,该方法包括:
[0007]接收目标I/O请求,目标I/O请求中携带有目的地址与目标逻辑块地址,目的地址为第一存储节点的节点地址;基于预设的逻辑块地址与存储节点的对应关系,确定目标逻辑块地址对应的第二存储节点;如果第二存储节点与第一存储节点不一致,则将目标I/O请求中的目的地址修改为第二存储节点的节点地址,得到修改目的地址后的目标I/O请求;发送修改目的地址后的目标I/O请求。
[0008]本申请实施例所示的方案,在网络转发设备接收到目标I/O请求后,可以根据目标I/O请求中携带的目标逻辑块地址和预设的逻辑块地址与存储节点的对应关系,确定实际处理目标I/O请求的第二存储节点。如果确定实际处理目标I/O请求的第二存储节点不是目标I/O请求中目的地址对应的第一存储节点,则可以将目标I/O请求中的目的地址修改为第
二存储节点的节点地址,再对修改目的地址后的目标I/O请求进行发送。这样通过网络转发设备就可以直接将目标I/O请求发送至实际处理目标I/O请求的存储节点,无需目标I/O请求在存储系统中的各存储节点转发,能够提高处理目标I/O请求的效率。
[0009]在一种可能的实现方式中,将目标I/O请求中的目的地址修改为第二存储节点对应的存储节点地址,并在目标I/O请求中添加第一存储节点的节点地址,得到修改目的地址后的目标I/O请求,其中,修改目的地址后的目标I/O请求用于,指示第二存储节点在接收到修改目的地址后的目标I/O请求后,基于修改目的地址后的目标I/O请求进行I/O请求处理;在完成I/O请求处理后,基于第一存储节点的节点地址,向第一存储节点发送第一I/O请求处理完成通知。
[0010]本申请实施例所示的方案,在更改目标I/O请求的目的地址时,还可以在目标I/O请求中添加第一存储节点的节点地址,也就是更改前的目的地址。这样第二存储节点在完成目标I/O请求的处理后,可以根据目标I/O请求中添加第一存储节点的节点地址,向第一存储节点发送第一I/O请求处理完成通知,再由第一存储节点向发送I/O请求的客户端设备发送第二I/O请求处理完成通知。如此对于客户端设备,感知到的就是将目标I/O请求发送至了第一存储节点,之后接收到了第一存储节点返回的I/O请求处理完成通知。可见申请实施例无需客户端设备进行改进,便可以提高存储系统处理I/O的效率,能够提高本申请实施例所示方案的适用范围。
[0011]在一种可能的实现方式中,将目标I/O请求添加已处理标识,得到添加处理后的目标I/O请求;将添加处理后的目标I/O请求发送至第一存储节点,已处理标识用于指示第一存储节点不对添加处理后的目标I/O请求进行I/O请求处理,并在接收到第二存储节点发送的第一I/O请求处理完成通知后,向网络转发设备发送第二I/O请求处理完成通知;接收第一存储节点发送的第二I/O请求处理完成通知;将第二I/O请求处理完成通知转发至下发目标I/O请求的客户端设备。
[0012]本申请实施例所示的方案,网络转发设备仍然可以将目标I/O请求发送至第一存储节点,不过在发送目标I/O请求之前,可以在目标I/O中添加已处理标识。这样,第一存储节点在接收到添加处理后的目标I/O请求后,可以根据其中携带的已处理标识,确定该目标I/O请求已有其他的存储节点(第二存储节点)处理,因此无需对该目标I/O请求进行I/O请求处理。这样即能够满足设备之间通信协议的要求,又避免了I/O请求在存储节点之间转发,能够提高存储系统处理目标I/O请求的效率。
[0013]在一种可能的实现方式中,确定目标I/O请求是否为立即数写请求;如果确定目标I/O请求为立即数写请求,则确定立即数写请求对应的写请求信息,其中,写请求信息中包括立即数写请求的源地址、目的地址、以及立即数写请求对应的至少一个写数据报文的序列号范围;当接收到非I/O请求的报文时,获取非I/O请求的报文的源地址、目的地址、以及序列号,并基于立即数写请求的写请求信息,确定接收到的报文是否属于立即数写请求对应的写数据报文;如果确定接收到的报文为立即数写请求对应的写数据报文,则将写数据报文中的目的地址修改为第二存储节点的节点地址,得到修改目的地址后的写数据报文;发送修改目的地址后的写数据报文。
[0014]本申请实施例所示的方案,目标I/O请求还可以包括立即数写请求,立即数写请求与读I/O请求或写I/O请求不同,立即数写请求中可以携带有部分待写入存储系统的数据,
剩余待写入存储系统的数据可分别携带在立即数写请求之后的多个连续的写数据报文。所以在本申请实施例所示的方案,当确定目标I/O请求为立即数写请求时,可以获取立即数写请求的写请求信息,即源地址、目的地址、以及立即数写请求对应的至少一个写数据报文的序列号范围。如此,可以根据立即数写请求的写请求信息确定之后接收到的报文是否为立即数写请求对应的写数据报文,进而完成对立即数写请求之后的写数据报文发送处理。可见本申请实施例所示的方案,可适用于不同的I/O请求的处理,包括写I/O请求、读I/O请本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种处理I/O请求的方法,其特征在于,应用于网络转发设备,所述方法包括:接收目标I/O请求,所述目标I/O请求中携带有目的地址与目标逻辑块地址,所述目的地址为所述第一存储节点的节点地址;基于预设的逻辑块地址与存储节点的对应关系,确定所述目标逻辑块地址对应的第二存储节点;如果所述第二存储节点与所述第一存储节点不一致,则将所述目标I/O请求中的目的地址修改为所述第二存储节点的节点地址,得到修改目的地址后的目标I/O请求;发送所述修改目的地址后的目标I/O请求。2.根据权利要求1所述的方法,其特征在于,所述将所述目标I/O请求中的目的地址修改为所述第二存储节点的节点地址,得到修改目的地址后的目标I/O请求,包括:将所述目标I/O请求中的目的地址修改为所述第二存储节点对应的存储节点地址,并在所述目标I/O请求中添加所述第一存储节点的节点地址,得到修改目的地址后的目标I/O请求,其中,所述修改目的地址后的目标I/O请求用于,指示所述第二存储节点在接收到所述修改目的地址后的目标I/O请求后,基于所述修改目的地址后的目标I/O请求进行I/O请求处理;在完成所述I/O请求处理后,基于所述第一存储节点的节点地址,向所述第一存储节点发送第一I/O请求处理完成通知。3.根据权利要求2所述的方法,其特征在于,所述方法还包括:将所述目标I/O请求添加已处理标识,得到添加处理后的目标I/O请求;将所述添加处理后的目标I/O请求发送至所述第一存储节点,所述已处理标识用于指示所述第一存储节点不对所述添加处理后的目标I/O请求进行I/O请求处理,并在接收到所述第二存储节点发送的第一I/O请求处理完成通知后,向所述网络转发设备发送第二I/O请求处理完成通知;所述方法还包括:接收所述第一存储节点发送的所述第二I/O请求处理完成通知;将所述第二I/O请求处理完成通知转发至下发所述目标I/O请求的客户端设备。4.根据权利要求1所述的方法,其特征在于,所述接收目标I/O请求之后,所述方法还包括:确定所述目标I/O请求是否为立即数写请求;如果确定所述目标I/O请求为立即数写请求,则确定所述立即数写请求对应的写请求信息,其中,所述写请求信息中包括所述立即数写请求的源地址、目的地址、以及所述立即数写请求对应的至少一个写数据报文的序列号范围;所述方法还包括:当接收到非I/O请求的报文时,获取所述非I/O请求的报文的源地址、目的地址、以及序列号,并基于所述立即数写请求的写请求信息,确定接收到的报文是否属于所述立即数写请求对应的写数据报文;如果确定所述接收到的报文为所述立即数写请求对应的写数据报文,则将所述写数据报文中的目的地址修改为所述第二存储节点的节点地址,得到修改目的地址后的写数据报文;发送所述修改目的地址后的写数据报文。
5.一种处理I/O请求的方法,其特征在于,应用于第二存储节点,所述方法包括:接收网络转发设备发送的修改目的地址后的目标I/O请求,所述修改目的地址后的目标I/O请求中携带有第一存储节点的节点地址;基于所述修改目的地址后的目标I/O请求,进行I/O请求处理;在完成所述I/O请求处理后,基于所述第一存储节点的节点地址,向所述第一存储节点发送第一I/O请求处理完成通知,所述第一I/O请求处理完成通知用于指示所述第一存储节点在接收到所述第一I/O请求处理完成通知后,向所述网络转发设备发送所述第二I/O请求处理完成通知,以使所述网络转发设备将所述第二I/O请求处理完成通知转发至下发所述目标I/O请求的客户端设备。6.一种处理I/O请求的方法,其特征在于,应用于第一存储节点,所述方法包括:接收网络转发设备发送的添加处理后的目标I/O请求,所述添加处理后的目标I/O请求中添加有已处理标识;接收第二存储节点发送的第一I/O请求处理完成通知;向所述网络转发设备发送所述第二I/O请求处理完成通知,以使所述网络转发设备将所述第二I/O请求处理完成通知转发至下发所述目标I/O请求的客户端设备。7.根据权利要求6所述的方法,其特征在于,所述接收网络转发设备发送的添加处理后的目标I/O请求之后,所述方法还包括:确定所述添加处理后的目标I/O请求是否为立即数写请求;如果确定所述添加处理后的目标I/O请求为立即数写请求,则确定所述立即数写请求对应的写请求信息,其中,所述写请求信息中包括所述立即数写请求的源地址、目的地址、以及所述立即数写请求对应的多个写数据报文对应的报文标识范围;所述方法还包括:当接收到非I/O请求的报文时,获取所述非I/O请求的报文的源地址、目的地址、以及序列号,并基于所述立即数写请求的写请求信息,确定接收到的报文是否属于所述立即数写请求对应的写数据报文;如果确定所述接收到的报文为所述立即数写请求对应的写数据报文,则不对所述写数据报文进行处理。8.一种处理I/O请求的装置,其特征在于,应用于网络转发设备,所述装置包括:接收模块,用于接收目标I/O请求,所述目标I/O请求中携带有目的地址与目标逻辑块地址,所述目的地址为所述第一存储节点的节点地址;确定模块,用于基于预设的逻辑块地址与存储节点的对应关系,确定所述目标逻辑块地址对应的第二存储节点;修改模块,用于如果所述第二存储节点与所述第一存储节点不一致,则将所述目标I/O请求中的目的地址修改为所述第二存储节点的节点地址,得到修改目的地址后的目标I/O请求;发送模块,用于发送所述修改目的地址后的目标I/O请求。9.根据权利要求8所述的装置,其特征在于,所述修改模块,用于:将所述目标I/O请求中的目的地址修改为所述第二存储节点对应的存储节点地址,并在所述目标I/O请求中添加所述第一存储节点的节点地址,得到修改目的地址后的目标I/O
请求,其中,所述修改目的地址后的目标I/O请求用于,指示所述第二存储节点在接收...

【专利技术属性】
技术研发人员:刘硕张君逸王巧灵张鹏
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1