本申请涉及信息,尤其涉及一种小io随机读写处理方法、设备及计算机可读介质。
背景技术:
1、qemu(quick emulator)虚拟化软件作为云计算最重要的底层基础之一,在现代数据中心中应用广泛。qemu提供了多种块设备驱动,用于模拟物理硬盘、光驱等存储设备,并将它们映射到虚拟机中使用。qemu块设备的应用场景非常广泛,包括虚拟机中的数据存储、数据迁移、数据备份和恢复、虚拟机快照等,从而满足不同应用场景的需求,帮助用户方便地管理和共享数据,提高了虚拟化环境的效率和可靠性。
2、qemu虚拟化软件自带多种块设备驱动,为用户提供了不同的存储配置。业界衡量存储性能的主要标准是大io(input/output,输入输出)顺序读写和小io随机读写时的性能,对于大io顺序读写场景,qemu自带的块设备驱动性能卓越,虚拟化开销极小,接近存储介质本身的大io顺序读写性能。而对于小io随机读写场景,一直一来都是存储优化的难点,qemu在这块的表现也不尽如人意,尤其是网络块设备,除了虚拟化开销之外,还加上了额外的网络传输开销,受限于小数据包跨网络传输自身的性能瓶颈,使得qemu网络块设备的小io随机读写性能问题更加突出。
技术实现思路
1、本申请的一个目的是提供一种qemu网络块设备的小io随机读写处理方法、设备及计算机可读介质。
2、为实现上述目的,本申请提供了一种小io随机读写处理方法,所述方法应用于网络块设备的客户端,包括:
3、当需要发送多个小io随机读写请求时,构建关于所述多个小io随机读写请求的请求元数据,所述请求元数据包括本次需要发送的小io随机读写请求的请求数目以及每个小io随机读写请求的参数信息;
4、将所述多个小io随机读写请求对应的数据块和所述元数据组合成为聚合数据;
5、将所述聚合数据打包并添加聚合io标志,将数据包通过网络发送给所述网络块设备的服务器端,以使所述服务器端检查所述数据包中是否携带聚合io标志,并在确定携带聚合io标志时,获取所述数据包中的聚合数据,根据所述聚合数据重构所述数据包中包含的各个小io随机读写请求,依次将所述小io随机读写请求发送给后端存储设备进行处理。
6、进一步地,所述参数信息包括每个小io随机读写请求的数据偏移值和数据长度值。
7、进一步地,所述小io随机读写请求为读写的数据量小于预设值的随机读写请求。
8、基于本申请的另一方面,还提供了另一种小io随机读写处理方法,所述方法应用于网络块设备的服务器端,包括:
9、通过网络从所述网络块设备的客户端接收数据包;
10、检查所述数据包中是否携带聚合io标志,若携带聚合io标志,获取所述数据包中的聚合数据,所述聚合数据包括多个小io随机读写请求对应的数据块以及请求元数据,所述请求元数据由所述客户端在需要发送多个小io随机读写请求时构建,包括本次需要发送的小io随机读写请求的请求数目以及每个小io随机读写请求的参数信息;
11、根据所述聚合数据,重构所述数据包中包含的各个小io随机读写请求;
12、依次将所述小io随机读写请求发送给后端存储设备进行处理。
13、进一步地,所述方法还包括:
14、若未携带聚合io标志,获取所述数据包中所包含的io读写请求,并将所述io读写请求发送给后端存储设备进行处理。
15、进一步地,根据所述聚合数据,重构所述数据包中包含的各个小io随机读写请求,包括:
16、解析所述聚合数据中的请求元数据,获取所述数据包中包含的各个小io随机读写请求的请求数目和参数信息;
17、根据所述请求数目、参数信息和所述聚合数据中各个小io随机读写请求对应的数据块,重构各个小io随机读写请求。
18、进一步地,所述参数信息包括每个小io随机读写请求的数据偏移值和数据长度值。
19、进一步地,所述小io随机读写请求为读写的数据量小于预设值的随机读写请求。
20、基于本申请的另一方面,还提供了一种小io随机读写处理设备,该设备包括用于存储计算机程序指令的存储器和用于执行计算机程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发所述设备执行所述小io随机读写处理方法。
21、本申请实施例还提供了一种计算机可读介质,其上存储有计算机程序指令,所述计算机程序指令可被处理器执行以实现所述小io随机读写处理方法。
22、与现有技术相比,本申请提供了一种小io随机读写处理方案,该方案在网络块设备的客户端和服务器端之间实现了对小io随机读写请求更加高效的处理,当需要发送多个小io随机读写请求时,客户端构建关于所述多个小io随机读写请求的请求元数据,将所述多个小io随机读写请求对应的数据块和所述元数据组合成为聚合数据,然后将所述聚合数据打包并添加聚合io标志,将数据包通过网络发送给所述网络块设备的服务器端,以使所述服务器端在检查到数据包中携带有聚合io标志时,可以获取所述数据包中的聚合数据,根据所述聚合数据重构所述数据包中包含的各个小io随机读写请求,并依次将所述小io随机读写请求发送给后端存储设备进行处理。由此,网络块设备的客户端和服务器端之间不再是将多个小io随机读写请求打包成一个个单独的数据包分开传输,而是将离散的各个小io随机读写请求聚合成一个数据量更大的数据包,一次性传输至服务器端,然后由服务器端拆分重构后,交由后端存储设备执行读写操作,由此极大的提高了数据传输效率,解决了qemu网络块设备在小io随机读写场景下的性能瓶颈问题。
1.一种小io随机读写处理方法,其特征在于,所述方法应用于网络块设备的客户端,包括:
2.根据权利要求1所述的方法,其特征在于,所述参数信息包括每个小io随机读写请求的数据偏移值和数据长度值。
3.根据权利要求1所述的方法,其特征在于,所述小io随机读写请求为读写的数据量小于预设值的随机读写请求。
4.一种小io随机读写处理方法,其特征在于,所述方法应用于网络块设备的服务器端,包括:
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
6.根据权利要求4所述的方法,其特征在于,根据所述聚合数据,重构所述数据包中包含的各个小io随机读写请求,包括:
7.根据权利要求4所述的方法,其特征在于,所述参数信息包括每个小io随机读写请求的数据偏移值和数据长度值。
8.根据权利要求4所述的方法,其特征在于,所述小io随机读写请求为读写的数据量小于预设值的随机读写请求。
9.一种小io随机读写处理设备,该设备包括用于存储计算机程序指令的存储器和用于执行计算机程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发所述设备执行权利要求1至8中任一项所述的方法。
10.一种计算机可读介质,其上存储有计算机程序指令,所述计算机程序指令可被处理器执行以实现如权利要求1至8中任一项所述的方法。