本发明涉及计算机系统及存储,特别是涉及一种半虚拟块设备控制方法、一种半虚拟块设备控制装置、一种电子设备和一种存储介质。
背景技术:
1、virtio(半虚拟化设备抽象层)表示虚拟化io(输入输出),用于实现设备半虚拟化,即虚拟机中运行的操作系统需要加载特殊的驱动(内核态)且虚拟机知道自己是虚拟机。相较于完全模拟的全虚拟化,基于virtio的半虚拟化可以提升设备访问性能。运行在虚拟机中的部分称为前端驱动,负责对虚拟机提供统一的接口,运行在宿主机中的部分称为后端驱动,负责适配不同的物理硬件设备。virtio前端驱动运行在虚拟机中,针对不同类型的设备有不同的驱动程序,但是与后端驱动交互的接口都是统一的。
2、在virtio协议中具有virtio-blk(半虚拟化块设备)性能较优,但由于virtio-blk中一个控制器只能管理一个块设备,其拓展性受限,导致无法大范围应用;使得virtio设备的性能受限。
技术实现思路
1、鉴于上述问题,提出了本发明实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种半虚拟块设备控制方法、一种半虚拟块设备控制装置、一种电子设备和一种存储介质。
2、为了解决上述问题,在本发明的第一个方面,本发明实施例公开了一种半虚拟块设备控制方法,应用于半虚拟块设备控制器,所述半虚拟块设备控制器存储有块设备列表,所述块设备列表记录有可用块设备;所述方法包括:
3、响应获取设备信息请求,所述设备信息请求携带有初始偏移量;
4、依据所述块设备列表和所述初始偏移量确定块设备配置信息;
5、依据所述可用块设备的数量,递增所述初始偏移量,确定目标偏移量,并将所述目标偏移量确定为所述初始偏移量,重复执行所述依据所述块设备列表和所述初始偏移量确定块设备配置信息的步骤,直至所述可用块设备清空;
6、依据所述块设备配置信息创建块设备,并与所述块设备进行关联。
7、可选地,所述方法还包括:
8、在与所述块设备关联后,响应于数据传输请求,解析所述数据传输请求确定块设备标识和请求信息;
9、依据所述块设备标识,从所述块设备中确定目标块设备;
10、将所述请求信息发送至所述目标块设备。
11、可选地,所述解析所述数据传输请求确定块设备标识和请求信息的步骤包括:
12、解析所述数据传输请求的第二个字节和第三个字节,生成所述块设备标识;
13、解析所述数据传输请求的第一个字节;生成第一请求类型;
14、解析所述数据传输请求的第三个字节,生成第二请求类型;
15、结合所述第一请求类型和所述第二请求类型,生成所述请求信息。
16、可选地,所述依据所述块设备列表和所述初始偏移量确定块设备配置信息的步骤包括:
17、在所述块设备列表中,确定与所述初始偏移量匹配的偏移位置;
18、读取所述偏移位置的信息,生成所述块设备配置信息。
19、可选地,所述依据所述可用块设备的数量,递增所述初始偏移量,确定目标偏移量的步骤包括:
20、判断所述可用块设备的数量是否为零;
21、响应所述可用块设备的数量不为零,在所述初始偏移量上叠加预设偏移增量,生成所述目标偏移量。
22、可选地,所述依据所述可用块设备的数量,递增所述初始偏移量,确定目标偏移量的步骤还包括:
23、响应所述可用块设备的数量为零,确定所述可用块设备清空。
24、可选地,所述依据所述块设备配置信息创建块设备的步骤包括:
25、依据所述块设备配置信息中的单个块大小,创建单个块;
26、依据所述块设备配置信息中的块数量,将多个所述单个块进行组合创建所述块设备。
27、可选地,所述方法还包括:
28、响应于变更通知,依据所述变更通知更新所述块设备。
29、可选地,所述响应于变更通知,依据所述变更通知更新所述块设备的步骤包括:
30、响应于所述变更通知,解析所述变更通知,确定新增标识;
31、依据所述新增标识创建新增块设备。
32、可选地,所述响应于变更通知,依据所述变更通知更新所述块设备的步骤包括:
33、响应于所述变更通知,解析所述变更通知,确定待删除标识和设备状态;
34、依据所述待删除标识,从所述块设备中确定待删除块设备;
35、依据所述设备状态删除所述待删除块设备。
36、可选地,所述响应于变更通知,依据所述变更通知更新所述块设备的步骤包括:
37、响应于所述变更通知,解析所述变更通知,确定调容标识和设备容量信息;
38、依据所述调容标识,从所述块设备中确定待调容块设备;
39、依据所述设备容量信息调整所述待调容块设备的容量。
40、可选地,所述方法还包括:
41、响应于销毁指令,销毁所述块设备。
42、在本发明第二个方面,本发明实施例公开了一种半虚拟块设备控制装置,应用于半虚拟块设备控制器,所述半虚拟块设备控制器存储有块设备列表,所述块设备列表记录有可用块设备;所述装置包括:
43、第一响应模块,用于响应获取设备信息请求,所述设备信息请求携带有初始偏移量;
44、配置确定模块,用于依据所述块设备列表和所述初始偏移量确定块设备配置信息;
45、更新模块,用于依据所述可用块设备的数量,递增所述初始偏移量,确定目标偏移量,并将所述目标偏移量确定为所述初始偏移量,重复执行所述依据所述块设备列表和所述初始偏移量确定块设备配置信息的步骤,直至所述可用块设备清空;
46、创建关联模块,用于依据所述块设备配置信息创建块设备,并与所述块设备进行关联。
47、在本发明的第三个方面,本发明实施例公开了一种电子设备,包括处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上所述的半虚拟块设备控制方法的步骤。
48、在本发明的第四个方面,本发明实施例公开了一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如上所述的半虚拟块设备控制方法的步骤。
49、本发明实施例包括以下优点:
50、本发明实施例通过响应获取设备信息请求,所述设备信息请求携带有初始偏移量;依据所述块设备列表和所述初始偏移量确定块设备配置信息;依据所述可用块设备的数量,递增所述初始偏移量,确定目标偏移量,并将所述目标偏移量确定为所述初始偏移量,重复执行所述依据所述块设备列表和所述初始偏移量确定块设备配置信息的步骤,直至所述可用块设备清空;依据所述块设备配置信息创建块设备,并与所述块设备进行关联。通过在获取设备信息请求的响应中,基于初始偏移量和在设备列表中的偏移,确定块设备配置信息,并依据块设备配置信息创建块设备,并与块设备进行关联,实现了单个半虚拟块设备控制器支持多个块设备,扩展单个半虚拟块设备控制器可管理的块设备数量,提高了半虚拟块设备控制器支持的块设备数量;使得半虚拟块设备控制器可以大规模应用在半虚拟化块设备中,提高半虚拟块设备的性能。
1.一种半虚拟块设备控制方法,其特征在于,应用于半虚拟块设备控制器,所述半虚拟块设备控制器存储有块设备列表,所述块设备列表记录有可用块设备;所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
3.根据权利要求2所述的方法,其特征在于,所述解析所述数据传输请求确定块设备标识和请求信息的步骤包括:
4.根据权利要求1所述的方法,其特征在于,所述依据所述块设备列表和所述初始偏移量确定块设备配置信息的步骤包括:
5.根据权利要求1所述的方法,其特征在于,所述依据所述可用块设备的数量,递增所述初始偏移量,确定目标偏移量的步骤包括:
6.根据权利要求5所述的方法,其特征在于,所述依据所述可用块设备的数量,递增所述初始偏移量,确定目标偏移量的步骤还包括:
7.根据权利要求1所述的方法,其特征在于,所述依据所述块设备配置信息创建块设备的步骤包括:
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
9.根据权利要求8所述的方法,其特征在于,所述响应于变更通知,依据所述变更通知更新所述块设备的步骤包括:
10.根据权利要求8所述的方法,其特征在于,所述响应于变更通知,依据所述变更通知更新所述块设备的步骤包括:
11.根据权利要求8所述的方法,其特征在于,所述响应于变更通知,依据所述变更通知更新所述块设备的步骤包括:
12.根据权利要求1所述的方法,其特征在于,所述方法还包括:
13.一种半虚拟块设备控制装置,其特征在于,应用于半虚拟块设备控制器,所述半虚拟块设备控制器存储有块设备列表,所述块设备列表记录有可用块设备;所述装置包括:
14.一种电子设备,其特征在于,包括处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至12中任一项所述的半虚拟块设备控制方法的步骤。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如权利要求1至12中任一项所述的半虚拟块设备控制方法的步骤。