本发明涉及计算机领域,并且更具体地涉及一种实现spdk架构的分布式存储全拷贝的方法、装置、设备及可读介质。
背景技术:
1、传统的数据管理过程是先通过源服务器从存储读取,然后跨网络传输到目标服务器,最后通过目标服务器写回存储。由于受制于这样的数据操作机制,当超过一定数量的虚拟机同时进行迁移、克隆等操作时,会出现网络带宽消耗严重、cpu和内存资源大量占用的问题。vaai(vstorage apis for array integration,硬件加速接口)技术的目的是将传统虚拟文件搬移过程下沉到共享存储阵列,全拷贝技术作为vaai技术的功能之一,在存储技术领域已经实现了普遍应用。但目前现有的spdk架构不能支持全拷贝技术,因此未能在基于spdk(storage performance development kit,存储性能开发工具包)架构的存储系统中得到实际应用。
技术实现思路
1、有鉴于此,本发明实施例的目的在于提出一种实现spdk架构的分布式存储全拷贝的方法、装置、设备及可读介质,通过使用本发明的技术方案,能够使spdk架构实现全拷贝技术,spdk架构执行全拷贝操作能够节省cpu、内存和存储网络带宽资源。
2、基于上述目的,本发明的实施例的一个方面提供了一种实现spdk架构的分布式存储全拷贝的方法,包括以下步骤:
3、在spdk架构中的scsi协议(scsi协议主要是在主机和存储设备之间传送命令、状态和块数据)处理层添加支持处理第一预设指令和第二预设指令的处理接口;
4、在spdk架构中的bdev(块设备抽象)层抽象第一预设指令和第二预设指令的异步事件和回调处理接口;
5、响应于spdk架构的分布式存储接收到全拷贝的指令,经由第一预设指令处理接口处理第二预设指令的协议字段,并经由第二预设指令获取全拷贝的数据信息;
6、将第二预设指令和数据信息下发到spdk架构中存储抽象层,以调用硬件存储接口进行全拷贝操作。
7、根据本发明的一个实施例,在spdk架构中的scsi协议处理层添加支持处理第一预设指令和第二预设指令的处理接口包括:
8、在spdk架构中的scsi协议处理层添加支持处理0x84指令和0x83指令的处理接口。
9、根据本发明的一个实施例,经由第一预设指令处理接口处理第二预设指令的协议字段包括:
10、经由0x84指令处理接口处理0x83指令需要的target_descriptors和segment_descriptors协议字段。
11、根据本发明的一个实施例,经由第二预设指令获取全拷贝的数据信息包括:
12、经由0x83指令解析协议字段,并获取全拷贝所需的源卷、目标卷的offset和size的信息。
13、根据本发明的一个实施例,还包括:
14、将0x84指令处理接口处理0x83指令需要的协议字段的事件添加到bdev层的异步事件处理队列中等待处理;
15、响应于事件处理完成,通过回调处理函数返回处理结果。
16、根据本发明的一个实施例,将第二预设指令和数据信息下发到spdk架构中存储抽象层,以调用硬件存储接口进行全拷贝操作包括:
17、将0x83指令和获取到的信息添加到bdev层的异步事件处理队列中等待处理;
18、响应于处理0x83指令,调用spdk架构的硬件存储接口将源卷的数据拷贝到目标卷中以实现全拷贝操作。
19、根据本发明的一个实施例,还包括:
20、响应于处理0x83指令,将处理0x83指令的事件绑定回调处理函数;
21、响应于全拷贝完成,通过回调处理函数将处理结果反馈给上层应用。
22、本发明的实施例的另一个方面,还提供了一种实现spdk架构的分布式存储全拷贝的装置,装置包括:
23、添加模块,添加模块配置为在spdk架构中的scsi协议处理层添加支持处理第一预设指令和第二预设指令的处理接口;
24、设置模块,设置模块配置为在spdk架构中的bdev层抽象第一预设指令和第二预设指令的异步事件和回调处理接口;
25、处理模块,处理模块配置为响应于spdk架构的分布式存储接收到全拷贝的指令,经由第一预设指令处理接口处理第二预设指令的协议字段,并经由第二预设指令获取全拷贝的数据信息;
26、执行模块,执行模块配置为将第二预设指令和数据信息下发到spdk架构中存储抽象层,以调用硬件存储接口进行全拷贝操作。
27、本发明的实施例的另一个方面,还提供了一种计算机设备,该计算机设备包括:
28、至少一个处理器;以及
29、存储器,存储器存储有可在处理器上运行的计算机指令,指令由处理器执行时实现上述任意一项方法的步骤。
30、本发明的实施例的另一个方面,还提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现上述任意一项方法的步骤。
31、本发明具有以下有益技术效果:本发明实施例提供的实现spdk架构的分布式存储全拷贝的方法,通过在spdk架构中的scsi协议处理层添加支持处理第一预设指令和第二预设指令的处理接口;在spdk架构中的bdev层抽象第一预设指令和第二预设指令的异步事件和回调处理接口;响应于spdk架构的分布式存储接收到全拷贝的指令,经由第一预设指令处理接口处理第二预设指令的协议字段,并经由第二预设指令获取全拷贝的数据信息;将第二预设指令和数据信息下发到spdk架构中存储抽象层,以调用硬件存储接口进行全拷贝操作的技术方案,能够使spdk架构实现全拷贝技术,spdk架构执行全拷贝操作能够节省cpu、内存和存储网络带宽资源。
1.一种实现spdk架构的分布式存储全拷贝的方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的方法,其特征在于,在spdk架构中的scsi协议处理层添加支持处理第一预设指令和第二预设指令的处理接口包括:
3.根据权利要求2所述的方法,其特征在于,经由第一预设指令处理接口处理第二预设指令的协议字段包括:
4.根据权利要求3所述的方法,其特征在于,经由第二预设指令获取全拷贝的数据信息包括:
5.根据权利要求3所述的方法,其特征在于,还包括:
6.根据权利要求4所述的方法,其特征在于,将第二预设指令和数据信息下发到spdk架构中存储抽象层,以调用硬件存储接口进行全拷贝操作包括:
7.根据权利要求6所述的方法,其特征在于,还包括:
8.一种实现spdk架构的分布式存储全拷贝的装置,其特征在于,所述装置包括:
9.一种计算机设备,其特征在于,包括:
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-7任意一项所述方法的步骤。