存储设备的虚拟化处理方法、桥接设备、系统及介质与流程
未命名
09-22
阅读:83
评论:0
1.本公开涉及计算机技术领域,尤其涉及一种存储设备的虚拟化处理方法、桥接设备、系统及介质。
背景技术:
2.随着计算机技术的发展,在宿主机上部署虚拟机由于具有节约成本、节约时间、灵活性等优势,得到了广泛应用。其中,虚拟机(virtual machine,vm)指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统,宿主机是虚拟机的物理基础,虚拟机存在于宿主机中。
3.目前,为了满足虚拟机用户对存储空间的需求,通常为每个虚拟机配置一个物理盘,但是,虚拟机用户实际用到的存储空间可能小于物理盘的存储空间,导致造成资源浪费。
技术实现要素:
4.为了解决上述技术问题或者至少部分地解决上述技术问题,本公开提供了一种存储设备的虚拟化处理方法、桥接设备、系统及介质。
5.第一方面,本公开实施例提供了一种存储设备的虚拟化处理方法,所述方法包括:
6.接收虚拟机用户发送的对虚拟盘的初始访问请求,其中,初始访问请求包括:虚拟机对应的虚拟地址,以及虚拟盘中的虚拟访问地址,其中,虚拟盘是桥接设备对存储设备中的物理盘虚拟化分区后为虚拟机用户分配的虚拟存储区域;
7.根据预先配置的地址映射关系,将虚拟机对应的虚拟地址转换为宿主机上对应的第一物理地址;
8.根据预先配置的虚拟分区映射关系,将虚拟访问地址转换为与存储设备上对应的第二物理地址;
9.根据第一物理地址和第二物理地址生成目标访问请求发送给宿主机,以使宿主机根据目标访问请求与存储设备进行信息交互。
10.第二方面,本公开实施例提供了还一种存储设备的虚拟化处理方法,所述方法包括:
11.向桥接设备发送虚拟机用户对虚拟盘的初始访问请求,其中,初始访问请求包括:虚拟机对应的虚拟地址,以及虚拟盘中的虚拟访问地址,其中,虚拟盘是桥接设备对存储设备中的物理盘虚拟化分区后为虚拟机用户分配的虚拟存储区域;
12.接收桥接设备发送的目标访问请求,目标访问请求包括:第一物理地址和第二物理地址,其中,第一物理地址是桥接设备根据预先配置的地址映射关系,将虚拟机对应的虚拟地址转换为宿主机上对应的地址,第二物理地址是桥接设备根据预先配置的虚拟分区映射关系,将虚拟访问地址转换为与存储设备上对应的地址;
13.根据目标访问请求与存储设备进行信息交互。
14.第三方面,本公开实施例还提供了一种桥接设备,所述桥接设备包括:
15.处理器;
16.用于存储处理器可执行指令的存储器;
17.处理器,用于从存储器中读取可执行指令,并执行指令以实现第一方面所述的存储设备的虚拟化方法。
18.第四方面,本公开实施例还提供了一种存储设备的虚拟化处理系统,所述系统包括:
19.第三方面所述的桥接设备、宿主机、和存储设备,桥接设备与宿主机连接,宿主机上部署有至少一个虚拟机,虚拟机用户通过桥接设备与宿主机挂载的存储设备进行信息交互。
20.本公开实施例还提供了一种计算机可读存储介质,存储介质存储有计算机程序,计算机程序用于执行第一方面所述的存储设备的虚拟化方法、或者第二方面所述的存储设备的虚拟化方法。
21.本公开实施例提供的技术方案与现有技术相比具有如下优点:本公开实施例,能够接收虚拟机用户发送的对虚拟盘的初始访问请求,其中,初始访问请求包括:虚拟机对应的虚拟地址,以及虚拟盘中的虚拟访问地址,其中,虚拟盘是桥接设备对存储设备中的物理盘虚拟化分区后为虚拟机用户分配的虚拟存储区域;根据预先配置的地址映射关系,将虚拟机对应的虚拟地址转换为宿主机上对应的第一物理地址;根据预先配置的虚拟分区映射关系,将虚拟访问地址转换为与存储设备上对应的第二物理地址;根据第一物理地址和第二物理地址生成目标访问请求发送给宿主机,以使宿主机根据目标访问请求与存储设备进行信息交互。采用上述技术方案,在宿主机上部署至少一个虚拟机、且将存储设备中的物理盘虚拟化分区为虚拟盘的情况下,能够将虚拟机用户发送的对虚拟盘的初始访问请求转换为目标访问请求,以使宿主机根据目标访问请求与存储设备进行信息交互,相较于现有技术,可以实现多个虚拟机用户共享物理盘,改善了资源浪费的问题。
附图说明
22.结合附图并参考以下具体实施方式,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。贯穿附图中,相同或相似的附图标记表示相同或相似的元素。应当理解附图是示意性的,原件和元素不一定按照比例绘制。
23.图1是本公开实施例提供的一种存储设备的虚拟化处理方法的流程示意图;
24.图2是本公开实施例提供的一种存储设备的虚拟化处理系统的示意图;
25.图3是本公开实施例提供的另一种存储设备的虚拟化处理系统的示意图;
26.图4是本公开实施例提供的一种存储设备的虚拟化处理方法的流程示意图;
27.图5是本公开实施例提供的一种电子设备的结构示意图;
28.图6是本公开实施例提供的又一种存储设备的虚拟化处理系统的示意图。
具体实施方式
29.下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这
里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
30.应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。
31.本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。
32.需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
33.需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
34.本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
35.为了解决上述问题,本公开实施例提供了一种存储设备的虚拟化处理方法,下面结合具体的实施例对该方法进行介绍。
36.图1是本公开实施例提供的一种存储设备的虚拟化处理方法的流程示意图,该方法可以由桥接设备执行,其中,如图2所示,桥接设备200与宿主机100连接,例如桥接设备200与宿主机100通过串口连接,比如通过高速串行计算机扩展总线标准(peripheral component interconnect express,pcie)接口或其它本领域技术人员可知的接口连接,宿主机100上部署有至少一个虚拟机,虚拟机用户通过桥接设备200与宿主机100挂载的存储设备300进行信息交互,存储设备300中的物理盘可通过串口与宿主机连接,比如通过pcie接口或其它本领域技术人员可知的接口连接。如图1所示,该方法包括:
37.s110、接收虚拟机用户发送的对虚拟盘的初始访问请求,其中,初始访问请求包括:虚拟机对应的虚拟地址,以及虚拟盘中的虚拟访问地址,其中,虚拟盘是桥接设备对存储设备中的物理盘虚拟化分区后为虚拟机用户分配的虚拟存储区域。
38.具体地,初始访问请求可以包括读操作、或写操作等,但并不限于此。
39.具体地,虚拟访问地址,即虚拟机用户访问存储设备中的物理盘所使用的逻辑地址,也即虚拟机用户访问虚拟盘所使用的地址。例如,虚拟访问地址用于指示从虚拟盘中的何处读取交互信息、或将交互信息写入虚拟盘中的何处。
40.具体地,虚拟地址,即虚拟机用户访问宿主机的内存所使用的逻辑地址,也即虚拟机用户访问虚拟内存所使用的地址,其中,虚拟内存是桥接设备为虚拟机用户向宿主机申请的虚拟存储区域(即宿主机的内存虚拟化分区后的虚拟存储区域)。例如,虚拟地址用于指示将交互信息缓存在虚拟内存中的何处。
41.s120、根据预先配置的地址映射关系,将虚拟机对应的虚拟地址转换为宿主机上对应的第一物理地址。
42.具体地,地址映射关系,即虚拟内存中的地址和宿主机的内存中的物理地址之间的一一对应关系。
43.具体地,第一物理地址,即虚拟机用户访问宿主机的内存所使用的物理地址。例如,第一物理地址用于指示将交互信息缓存在宿主机的内存中的何处。
44.s130、根据预先配置的虚拟分区映射关系,将虚拟访问地址转换为与存储设备上对应的第二物理地址。
45.具体地,虚拟分区映射关系为虚拟盘中的地址和存储设备中的物理盘中的物理地址之间的一一对应关系。
46.具体地,第二物理地址,即虚拟机用户访问存储设备中的物理盘所使用的物理地址。例如,第二物理地址用于指示从存储设备中哪个物理盘中的何处读取交互信息、或将交互信息写入存储设备中的哪个物理盘中的何处。
47.s140、根据第一物理地址和第二物理地址生成目标访问请求发送给宿主机,以使宿主机根据目标访问请求与存储设备进行信息交互。
48.具体地,生成目标访问请求的具体实施方式有多种,此处不作限定。例如,将初始访问请求中的虚拟地址替换为第一物理地址、且将虚拟访问地址替换为第二物理地址,生成目标访问请求。
49.下面结合两个具体示例来对本公开实施例提供的存储设备的虚拟化处理方法进行详细说明。
50.在一个示例中,接收虚拟机用户发送的对虚拟盘的初始读操作,其中,初始读操作包括:虚拟机对应的虚拟地址,以及虚拟盘中的虚拟访问地址;根据预先配置的地址映射关系,将虚拟机对应的虚拟地址转换为宿主机上对应的第一物理地址;根据预先配置的虚拟分区映射关系,将虚拟访问地址转换为与存储设备上对应的第二物理地址;根据第一物理地址和第二物理地址生成目标读操作发送给宿主机,以使宿主机根据第二物理地址从存储设备上读取对应的第一目标数据(即交互信息),根据第一物理地址将第一目标数据存储到宿主机的内存,并将第一目标数据按照预设的地址路由表发送给虚拟机用户。
51.在另一个示例中,接收虚拟机用户发送的对虚拟盘的初始写操作,其中,初始写操作包括:虚拟机对应的虚拟地址,以及虚拟盘中的虚拟访问地址;根据预先配置的地址映射关系,将虚拟机对应的虚拟地址转换为宿主机上对应的第一物理地址;根据预先配置的虚拟分区映射关系,将虚拟访问地址转换为与存储设备上对应的第二物理地址;根据第一物理地址和第二物理地址生成目标写操作发送给宿主机,以使宿主机根据第一物理地址从宿主机的内存中读取对应的第二目标数据(即交互信息),并根据第二物理地址将第二目标数据写入到存储设备中。
52.可以理解的是,根据本公开实施例,可实现多个虚拟机用户共享物理盘,改善了资源浪费的问题,并且,由于初始访问请求到目标访问请求的转换由桥接设备执行,而非由宿主机执行,因此不占用宿主机资源,有利于提高宿主机资源的有效利用率,即有利于提高虚拟机对宿主机资源的占用率。
53.本公开实施例,在宿主机上部署至少一个虚拟机、且将存储设备中的物理盘虚拟化分区为虚拟盘的情况下,能够将虚拟机用户发送的对虚拟盘的初始访问请求转换为目标访问请求,以使宿主机根据目标访问请求与存储设备进行信息交互,相较于现有技术,可以实现多个虚拟机用户共享物理盘,改善了资源浪费的问题。
54.在本公开另一种实施方式中,参见图3,宿主机100包括前端模块110和后端模块
120,其中,前端模块110和虚拟机连接,后端模块120和存储设备300连接,桥接设备200分别与前端模块110和后端模块120连接。
55.在一些实施例中,地址映射关系的配置过程包括:接收虚拟机通过前端模块下发的配置信息;根据配置信息向后端模块申请宿主机的内存空间;根据配置信息和内存空间创建地址映射关系。
56.具体地,配置信息为指导桥接设备申请宿主机的内存空间的信息。例如,配置信息可以包括为虚拟机用户分配的虚拟内存的大小、或虚拟内存的虚拟起始地址和虚拟结束地址等,但并不限于此。
57.具体地,将虚拟内存中的虚拟地址和申请到的宿主机的内存空间中的物理地址进行一一对应,以创建地址映射关系。
58.可以理解的是,通过设置桥接设备根据配置信息向后端模块申请宿主机的内存空间,并根据配置信息和内存空间创建地址映射关系,使得虚拟机用户能够通过调整配置信息灵活调整所申请的宿主机的内存空间的大小,以满足对内存空间的需求,并且使得地址映射关系的创建简单、便捷,有利于降低地址映射关系的创建难度。并且,由于地址映射关系的创建由桥接设备执行,而非由宿主机执行,因此不占用宿主机资源,有利于提高宿主机资源的有效利用率。
59.在另一些实施例中,虚拟分区映射关系的配置过程包括:通过后端模块获取存储设备上的物理盘信息;接收虚拟机通过前端模块下发的虚拟盘配置信息;根据物理盘信息对存储设备进行虚拟化分区;根据虚拟盘配置信息为虚拟机用户配置对应的虚拟盘,并创建虚拟分区映射关系。
60.具体地,物理盘信息为存储设备中物理盘的相关信息,是对存储设备进行虚拟化分区的依据。例如,物理盘信息可以包括物理盘的总数、每个物理盘的大小、每个物理盘的剩余空间大小(即未分配给虚拟机用户的可用空间的大小)、每个物理盘的盘标识等,但并不限于此。
61.具体地,对存储设备进行虚拟化分区后得到的虚拟盘的总数、以及每个虚拟盘的大小本领域技术人员均可根据实际情况设置,此处不作限定。
62.具体地,虚拟盘配置信息为指导桥接设备为虚拟机用户匹配虚拟盘的信息。虚拟盘配置信息可以包括为所需要的虚拟盘的大小、或所需要的虚拟盘的虚拟起始地址和虚拟结束地址等,但并不限于此。
63.具体地,从虚拟化分区后得到的虚拟盘中,选取出与虚拟盘配置信息相匹配的虚拟盘,并将匹配到的虚拟盘中的地址和存储设备中的物理地址进行一一对应,以创建虚拟分区映射关系。
64.在一个示例中,从虚拟化分区后得到的虚拟盘中,选取出与虚拟盘配置信息相匹配的虚拟盘,可以包括:从虚拟化分区后得到的、未被占用的虚拟盘(即未配置给虚拟机用户的虚拟盘)中,选取出大小与所需要的虚拟盘的大小相差最小的虚拟盘;或者,从虚拟化分区后得到的、未被占用的虚拟盘中,选取出大小大于等于所需要的虚拟盘的大小的候选虚拟盘,并随机选取一候选虚拟盘作为与虚拟盘配置信息相匹配的虚拟盘。
65.可以理解的是,通过设置桥接设备根据虚拟盘配置信息为虚拟机用户配置对应的虚拟盘,并创建虚拟分区映射关系,使得虚拟机用户能够通过调整虚拟盘配置信息灵活调
整所需的虚拟盘的大小,并且使得虚拟分区映射关系的创建简单、便捷,有利于降低虚拟分区映射关系的创建难度。并且,多个虚拟机用户对应的虚拟盘之间相互隔离解耦,有利于实现为每个虚拟机用户动态挂盘卸盘。并且,由于存储设备的虚拟化分区、虚拟分区映射关系的创建均由桥接设备执行,而非由宿主机执行,因此不占用宿主机资源,有利于提高宿主机资源的有效利用率。
66.当然,虚拟分区映射关系的配置过程还可以包括:通过后端模块获取存储设备上的物理盘信息;接收虚拟机通过前端模块下发的虚拟盘配置信息;根据物理盘信息和虚拟盘配置信息对存储设备进行虚拟化分区,划分出虚拟机用户对应的虚拟盘,并创建虚拟分区映射关系。如此,可为虚拟机用户灵活配置正好等于所需大小的虚拟盘,以使为虚拟机用户配置虚拟盘大小与其所需的虚拟盘大小相同,避免造成资源浪费。
67.在本公开再一种实施方式中,接收虚拟机用户发送的对虚拟盘的初始访问请求,包括:接收前端模块下发的门铃消息;根据门铃消息,从前端模块的前端读写请求队列中获取虚拟机用户发送的对虚拟盘的初始访问请求。
68.具体地,前端读写请求队列为前端模块中、用于存储读操作和写操作的队列。
69.具体地,门铃消息用于通知桥接设备从前端读写请求队列中获取初始访问请求。门铃消息中可以包括初始访问请求的存储位置、或序号等,但并不限于此。
70.可以理解的是,通过设置桥接设备根据门铃消息,从前端模块的前端读写请求队列中获取虚拟机用户发送的对虚拟盘的初始访问请求,使得桥接设备能够及时获取初始访问请求,进而提高虚拟机与存储设备的信息交互效率,并且桥接设备无需额外分出计算资源以实时检测前端读写请求队列中是否存在初始访问请求,有利于降低对桥接设备的性能要求。
71.当然桥接设备也可以按照第一预设周期轮询检测前端模块的前端读写请求队列,以在前端模块的前端读写请求队列中获取与初始访问请求。
72.在本公开再一种实施方式中,目标访问请求发送给宿主机,包括:将目标访问请求发送给后端模块的后端读写请求队列中;向后端模块发送通知消息,以使后端模块根据通知消息从后端读写请求队列中获取目标访问请求。
73.具体地,后端读写请求队列为后端模块中、用于存储读操作和写操作的队列。
74.具体地,通知消息用于通知后端模块从后端读写请求队列中获取目标访问请求。通知消息中可以包括目标访问请求的存储位置、或序号等,但并不限于此。
75.可以理解的是,通过设置桥接设备向后端模块发送通知消息,以使后端模块根据通知消息从后端读写请求队列中获取目标访问请求,使得后端模块能够及时获取目标访问请求,进而提高虚拟机与存储设备的信息交互效率,并且后端模块无需额外分出计算资源以实时检测后端读写请求队列中是否存在目标访问请求,有利于降低对宿主机的性能要求。
76.在本公开再一种实施方式中,该方法还包括:按照预设周期轮询检测后端模块的后端读写完成队列;如果在后端读写完成队列中获取与目标访问请求对应的完成消息,则将完成消息发送到前端模块的前端读写完成队列中,其中,前端读写完成队列中的完成消息对应于初始访问请求,以使虚拟机用户根据完成消息进行相关操作。
77.具体地,后端读写完成队列为后端模块中、用于存储完成消息的队列。
78.具体地,前端读写完成队列为前端模块中、用于存储完成消息的队列。
79.具体地,完成消息用于表征宿主机已根据目标访问请求与存储设备完成信息交互。完成消息中可以包括其在前端读写完成队列中的存储位置、对应的初始访问请求的序号等,但并不限于此。
80.具体地,预设周期的具体值本领域技术人员可根据实际情况设置,此处不作限定。
81.具体地,当初始访问请求为读操作时,虚拟机用户根据完成消息从虚拟内存中读取从虚拟访问地址中读取出的信息(即从宿主机的内存中读取从第二物理地址中读取出的信息);当初始访问请求为写操作时,虚拟机用户根据完成消息确定信息已写入虚拟盘(即存储设备)中。
82.可以理解的是,通过设置桥接设备按照预设周期轮询检测后端模块的后端读写完成队列,可及时获取与目标访问请求对应的完成消息,进而可以提高虚拟机和存储设备的信息交互效率。
83.图4是本公开实施例提供的一种存储设备的虚拟化处理方法的流程示意图,该方法可以由宿主机执行,其中,如图2所示,宿主机与桥接设备与连接,宿主机上部署有至少一个虚拟机,虚拟机用户通过桥接设备与宿主机挂载的存储设备进行信息交互。如图4所示,该方法包括:
84.s210、向桥接设备发送虚拟机用户对虚拟盘的初始访问请求,其中,初始访问请求包括:虚拟机对应的虚拟地址,以及虚拟盘中的虚拟访问地址,其中,虚拟盘是桥接设备对存储设备中的物理盘虚拟化分区后为虚拟机用户分配的虚拟存储区域。
85.具体地,关于虚拟地址、虚拟访问地址的理解可参见前文,此处不再赘述。
86.可选地,继续参见图3,宿主机100包括前端模块110和后端模块120,其中,前端模块110和虚拟机连接,后端模块120和存储设备300连接,桥接设备200分别与前端模块110和后端模块120连接。向桥接设备发送虚拟机用户对虚拟盘的初始访问请求可以包括:虚拟机用户向前端模块的前端读写请求队列中发送对虚拟盘的初始访问请求;前端模块向桥接设备下发门铃消息,以使桥接设备根据门铃消息,从前端模块的前端读写请求队列中获取虚拟机用户发送的对虚拟盘的初始访问请求。
87.s220、接收桥接设备发送的目标访问请求,目标访问请求包括:第一物理地址和第二物理地址,其中,第一物理地址是桥接设备根据预先配置的地址映射关系,将虚拟机对应的虚拟地址转换为宿主机上对应的地址,第二物理地址是桥接设备根据预先配置的虚拟分区映射关系,将虚拟访问地址转换为与存储设备上对应的地址。
88.具体地,关于第一物理地址、地址映射关系、第二物理地址、虚拟分区映射关系的理解可参见前文,此处不再赘述。
89.可选地,接收桥接设备发送的目标访问请求可以包括:后端模块接收桥接设备发送的通知消息,并根据通知消息从后端读写请求队列中获取目标访问请求。
90.当然,后端模块也可以按照第二预设周期轮询检测后端模块的后端读写请求队列,以获取目标访问请求。
91.可选地,地址映射关系的配置过程包括:虚拟机向前端模块下发配置信息;前端模块将配置信息下发至桥接设备,以使桥接设备根据配置信息向后端模块申请宿主机的内存空间,并根据配置信息和内存空间创建地址映射关系。
92.可选地,虚拟分区映射关系的配置过程包括:后端模块向桥接设备发送物理盘信息,以使桥接设备根据物理盘信息对存储设备进行虚拟化分区;虚拟机向前端模块下发虚拟盘配置信息;前端模块将虚拟盘配置信息下发至桥接设备,以使桥接设备根据虚拟盘配置信息为虚拟机用户配置对应的虚拟盘,并创建虚拟分区映射关系。
93.s230、根据目标访问请求与存储设备进行信息交互。
94.在一些实施例中,当初始访问请求为读操作时,根据目标访问请求与存储设备进行信息交互,包括:s2311、根据第二物理地址从存储设备上读取对应的第一目标数据,并根据第一物理地址将第一目标数据存储到宿主机的内存;s2312、将第一目标数据按照预设的地址路由表发送给虚拟机用户。
95.具体地,s2311和s2312可以由宿主机中的后端模块执行,但并不限于此。
96.在另一些实施例中,当初始访问请求为写操作时,根据目标访问请求与存储设备进行信息交互,包括:s2321、根据第一物理地址从宿主机的内存中读取对应的第二目标数据;s2321、根据第二物理地址将第二目标数据写入到存储设备中。
97.具体地,s2321和s2322可以由宿主机中的后端模块执行,但并不限于此。
98.可选地,该方法还包括:前端模块按照预设周期轮询检测前端读写完成队列;前端模块如果在前端读写完成队列中获取与目标访问请求对应的完成消息,则将完成消息发送到对应的虚拟机用户,其中,前端读写完成队列中的完成消息对应于初始访问请求;虚拟机用户根据完成消息进行相关操作。
99.本公开实施例,在宿主机上部署至少一个虚拟机、且将存储设备中的物理盘虚拟化分区为虚拟盘的情况下,能够向桥接设备发送虚拟机用户对虚拟盘的初始访问请求,以使桥接设备将虚拟机用户发送的对虚拟盘的初始访问请求转换为目标访问请求,并且能够接收桥接设备发送的目标访问请求,根据目标访问请求与存储设备进行信息交互,相较于现有技术,可以实现多个虚拟机用户共享物理盘,改善了资源浪费的问题。
100.本公开实施例还提供了一种电子设备,该电子设备包括:存储器,存储器中存储有计算机程序;处理器,用于执行计算机程序,当计算机程序被处理器执行时可以实现上述任一实施例的存储设备的虚拟化处理方法。
101.在一些实施例中,该电子设备为桥接设备,此时,当计算机程序被处理器执行时可以实现以桥接设备为执行主体的存储设备的虚拟化处理方法。
102.可选地,针对桥接设备,处理器可以为系统级芯片(system on chip,soc)或现场可编程逻辑门阵列(field programmable gate array,fpga)等,但并不限于此。
103.可以理解的是,fpga的成本较低,当存储器为fpga时,可节省桥接设备的成本。
104.在另一些实施例中,该电子设备为宿主机,此时,当计算机程序被处理器执行时可以实现以宿主机为执行主体的存储设备的虚拟化处理方法。
105.示例性的,图5是本公开实施例中的一种电子设备的结构示意图。下面具体参考图5,其示出了适于用来实现本公开实施例中的电子设备500的结构示意图。本公开实施例中的电子设备500可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、pda(个人数字助理)、pad(平板电脑)、pmp(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字tv、台式计算机等等的固定终端。图5示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
106.如图5所示,电子设备500可以包括处理装置(例如中央处理器、图形处理器等)501,其可以根据存储在只读存储器(rom)502中的程序或者从存储装置508加载到随机访问存储器(ram)503中的程序而执行各种适当的动作和处理。在ram 503中,还存储有电子设备500操作所需的各种程序和数据。处理装置501、rom 502以及ram 503通过总线504彼此相连。输入/输出(i/o)接口505也连接至总线504。
107.通常,以下装置可以连接至i/o接口505:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置506;包括例如液晶显示器(lcd)、扬声器、振动器等的输出装置507;包括例如磁带、硬盘等的存储装置508;以及通信装置509。通信装置509可以允许电子设备500与其他设备进行无线或有线通信以交换数据。虽然图5示出了具有各种装置的电子设备500,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
108.特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在非暂态计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置509从网络上被下载和安装,或者从存储装置508被安装,或者从rom 502被安装。在该计算机程序被处理装置501执行时,执行本公开实施例的方法中限定的上述功能。
109.需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、rf(射频)等等,或者上述的任意合适的组合。
110.在一些实施方式中,客户端、服务器可以利用诸如http(hypertext transfer protocol,超文本传输协议)之类的任何当前已知或未来研发的网络协议进行通信,并且可以与任意形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“lan”),广域网(“wan”),网际网(例如,互联网)以及端对端网络(例如,ad hoc端对端网络),以及任何当前已知或未来研发的网络。
111.上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
112.上述计算机可读介质承载有一个或者多个程序。当上述一个或者多个程序被该电子设备执行、且该电子设备为桥接设备时,使得该桥接设备:接收虚拟机用户发送的对虚拟盘的初始访问请求,其中,初始访问请求包括:虚拟机对应的虚拟地址,以及虚拟盘中的虚拟访问地址,其中,虚拟盘是桥接设备对存储设备中的物理盘虚拟化分区后为虚拟机用户分配的虚拟存储区域;根据预先配置的地址映射关系,将虚拟机对应的虚拟地址转换为宿主机上对应的第一物理地址;根据预先配置的虚拟分区映射关系,将虚拟访问地址转换为与存储设备上对应的第二物理地址;根据第一物理地址和第二物理地址生成目标访问请求发送给宿主机,以使宿主机根据目标访问请求与存储设备进行信息交互。当上述一个或者多个程序被该电子设备执行、且该电子设备为宿主机时,使得该宿主机:向桥接设备发送虚拟机用户对虚拟盘的初始访问请求,其中,初始访问请求包括:虚拟机对应的虚拟地址,以及虚拟盘中的虚拟访问地址,其中,虚拟盘是桥接设备对存储设备中的物理盘虚拟化分区后为虚拟机用户分配的虚拟存储区域;接收桥接设备发送的目标访问请求,目标访问请求包括:第一物理地址和第二物理地址,其中,第一物理地址是桥接设备根据预先配置的地址映射关系,将虚拟机对应的虚拟地址转换为宿主机上对应的地址,第二物理地址是桥接设备根据预先配置的虚拟分区映射关系,将虚拟访问地址转换为与存储设备上对应的地址;根据目标访问请求与存储设备进行信息交互。
113.可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括但不限于面向对象的程序设计语言—诸如java、smalltalk、c++,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
114.附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
115.描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定。
116.本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、片上系统(soc)、复杂可编程逻辑设备(cpld)等等。
117.在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
118.本公开实施例还提供一种存储设备的虚拟化处理系统,包括:上述实施例所述的桥接设备、上述实施例所述的宿主机、和存储设备,桥接设备与宿主机连接,宿主机上部署有至少一个虚拟机,虚拟机用户通过桥接设备与宿主机挂载的存储设备进行信息交互。
119.为详细说明存储设备的虚拟化处理系统,下面基于一个具体示例进行说明。
120.示例性的,图6是本公开实施例提供的又一种存储设备的虚拟化处理系统的示意图。参见图6,存储设备的虚拟化处理系统包括宿主机100、桥接设备200和存储设备300。宿主机100上部署有至少一个虚拟机,宿主机100包括前端模块和后端模块,前端模块包括前端驱动、前端命令队列(即asq0)、前端命令完成队列(即acq0)、前端读写请求队列(即iosq0)和前端读写完成队列(即iocq0),后端模块包括后端命令队列(即asq1)、后端命令完成队列(即acq1)和后端读写请求队列(即iosq1)、后端读写完成队列(即iocq1)。桥接设备200包括命令模块和io模块,命令模块包括前端虚拟子模块、ioq命令子模块、后端虚拟子模块和映射子模块,io模块包括前端-后端iosq子模块、后端-前端iosq子模块、和转换子模块,转换子模块中包括地址映射关系和虚拟分区映射关系。存储设备300包括至少一个物理盘。前端模块和虚拟机连接,后端模块和存储设备连接,桥接设备分别与前端模块和后端模块连接。
121.继续参见图6,虚拟机用户通过桥接设备对与宿主机100挂载的存储设备进行配置的过程如下:
122.1.前端驱动向前端虚拟子模块下发配置信息。
123.例如,前端驱动初始化前端虚拟子模块,向前端虚拟子模块下发配置pci config space、pcie bar、pcie cap(sriov/nvme
……
)等。
124.2.后端虚拟子模块根据配置信息向后端模块申请宿主机的内存空间,并通过后端模块获取存储设备上的物理盘信息。
125.例如,初始化后端虚拟子模块,配置后端虚拟子模块的bar空间,申请宿主机的内存空间、获取存储设备上的物理盘信息等。
126.3.ioq命令子模块接管管理队列(即admin queue)。例如,管理队列可以包括创建队列/删除队列等管理请求。
127.4.映射子模块根据配置信息和内存空间创建地址映射关系,并根据物理盘信息对存储设备进行虚拟化分区,根据虚拟盘配置信息为虚拟机用户配置对应的虚拟盘,并创建虚拟分区映射关系。当然,桥接设备也可以向后端虚拟子模块传递命令请求(即admin sqe),后端虚拟子模块也可以将返回的命令完成通知(即admin cqe),转送给前端模块。
128.当前,桥接设备还可以管理队列状态、删除创建命名空间(namespace)等,保存前
端模块/后端模块的sq/cq base地址、qos pbs/cbs/pir/cir等。
129.继续参见图6,虚拟机用户通过桥接设备与宿主机100挂载的存储设备进行信息交互的过程可以如下:
130.5.虚拟机用户发送对虚拟盘的初始访问请求到前端模块的前端读写请求队列(iosq0)中。
131.其中,初始访问请求包括:虚拟机对应的虚拟地址,以及虚拟盘中的虚拟访问地址,其中,虚拟盘是桥接设备对存储设备中的物理盘虚拟化分区后为虚拟机用户分配的虚拟存储区域。
132.6.前端-后端iosq子模块接收前端模块下发的门铃消息,并根据门铃消息,从前端读写请求队列(iosq0)中获取虚拟机用户发送的对虚拟盘的初始访问请求(即io sqe)。
133.7.转换子模块根据预先配置的地址映射关系,将虚拟机对应的虚拟地址转换为宿主机上对应的第一物理地址,根据预先配置的虚拟分区映射关系,将虚拟访问地址转换为与存储设备上对应的第二物理地址,并根据第一物理地址和第二物理地址生成目标访问请求。
134.例如,虚拟地址包括第一数据指针(prp1)、第二数据指针(prp2)、和页面列表(page list)的地址(iova),通过地址映射关系将虚拟地址转换为第一物理地址。假如iova[63:0]={iova_page_id[51:0],offset[11:0],用iova_page_id[51:0]查地址映射关系得到hpa_page_id[51:0],得到的hpa[63:0]={hpa_page_id[51:0],offset[11:0]},得到为第一物理地址。
[0135]
虚拟访问地址包括逻辑地址(lba)和命名空间识符(nsid),通过虚拟分区映射关系将虚拟地址转换为第一物理地址。
[0136]
8.转换子模块通过前端-后端iosq子模块将目标访问请求写到后端模块的后端读写请求队列(iosq1)中,并向后端模块发送通知消息。
[0137]
9.后端模块根据通知消息从后端读写请求队列(iosq1)中获取目标访问请求。
[0138]
10.后端-前端iosq子模块按照预设周期轮询检测后端模块的后端读写完成队列(iocq1)。
[0139]
11.后端-前端iosq子模块如果在后端读写完成队列(iocq1)中获取与目标访问请求对应的初始完成消息,则将初始完成消息发送给转换子模块,以使转换子模块对初始完成消息进行转换,得到完成消息,其中,完成消息对应于初始访问请求。
[0140]
当然,后端模块也可以处理完目标访问请求后在后端读写完成队列(iocq1)中填写初始完成消息,并下发消息到后端-前端iosq子模块,以使后端-前端iosq子模块从后端读写完成队列(iocq1)中获取初始完成消息。
[0141]
12.前端-后端iosq子模块将完成消息发送到前端模块的前端读写完成队列(iocq0)中,同时,上报中断通知到前端模块。
[0142]
13.前端模块收到中断通知后更新前端读写完成队列(iocq0)中完成消息的状态。
[0143]
本公开实施例还提供一种计算机可读存储介质,所述存储介质中存储有计算机程序,当所述计算机程序被处理器执行时可以实现上述任一实施例的方法,其执行方式和有益效果类似,在这里不再赘述。
[0144]
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人
员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
[0145]
此外,虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序执行来执行。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。
[0146]
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。
技术特征:
1.一种存储设备的虚拟化处理方法,其特征在于,所述方法包括:接收虚拟机用户发送的对虚拟盘的初始访问请求,其中,所述初始访问请求包括:所述虚拟机对应的虚拟地址,以及所述虚拟盘中的虚拟访问地址,其中,所述虚拟盘是桥接设备对存储设备中的物理盘虚拟化分区后为所述虚拟机用户分配的虚拟存储区域;根据预先配置的地址映射关系,将所述虚拟机对应的虚拟地址转换为宿主机上对应的第一物理地址;根据预先配置的虚拟分区映射关系,将所述虚拟访问地址转换为与所述存储设备上对应的第二物理地址;根据所述第一物理地址和所述第二物理地址生成目标访问请求发送给所述宿主机,以使所述宿主机根据所述目标访问请求与所述存储设备进行信息交互。2.根据权利要求1所述的方法,其特征在于,所述宿主机包括前端模块和后端模块,其中,所述前端模块和所述虚拟机连接,所述后端模块和所述存储设备连接,所述桥接设备分别与所述前端模块和所述后端模块连接,所述地址映射关系的配置过程包括:接收所述虚拟机通过所述前端模块下发的配置信息;根据所述配置信息向所述后端模块申请所述宿主机的内存空间;根据所述配置信息和所述内存空间创建所述地址映射关系。3.根据权利要求2所述的方法,其特征在于,所述虚拟分区映射关系的配置过程包括:通过所述后端模块获取所述存储设备上的物理盘信息;接收所述虚拟机通过所述前端模块下发的虚拟盘配置信息;根据所述物理盘信息对所述存储设备进行虚拟化分区;根据所述虚拟盘配置信息为所述虚拟机用户配置对应的虚拟盘,并创建所述虚拟分区映射关系。4.根据权利要求2所述的方法,其特征在于,所述接收所述虚拟机用户发送的对虚拟盘的初始访问请求,包括:接收所述前端模块下发的门铃消息;根据所述门铃消息,从所述前端模块的前端读写请求队列中获取所述虚拟机用户发送的对虚拟盘的初始访问请求。5.根据权利要求2所述的方法,其特征在于,所述目标访问请求发送给所述宿主机,包括:将所述目标访问请求发送给所述后端模块的后端读写请求队列中;向所述后端模块发送通知消息,以使所述后端模块根据所述通知消息从所述后端读写请求队列中获取所述目标访问请求。6.根据权利要求2所述的方法,其特征在于,还包括:按照预设周期轮询检测所述后端模块的后端读写完成队列;如果在所述后端读写完成队列中获取与所述目标访问请求对应的完成消息,则将所述完成消息发送到所述前端模块的前端读写完成队列中,其中,所述前端读写完成队列中的完成消息对应于所述初始访问请求,以使所述虚拟机用户根据所述完成消息进行相关操作。7.一种存储设备的虚拟化处理方法,其特征在于,所述方法包括:
向桥接设备发送虚拟机用户对虚拟盘的初始访问请求,其中,所述初始访问请求包括:虚拟机对应的虚拟地址,以及所述虚拟盘中的虚拟访问地址,其中,所述虚拟盘是所述桥接设备对所述存储设备中的物理盘虚拟化分区后为所述虚拟机用户分配的虚拟存储区域;接收所述桥接设备发送的目标访问请求,所述目标访问请求包括:第一物理地址和第二物理地址,其中,所述第一物理地址是所述桥接设备根据预先配置的地址映射关系,将所述虚拟机对应的虚拟地址转换为宿主机上对应的地址,所述第二物理地址是所述桥接设备根据预先配置的虚拟分区映射关系,将所述虚拟访问地址转换为与所述存储设备上对应的地址;根据所述目标访问请求与所述存储设备进行信息交互。8.根据权利要求7所述的方法,其特征在于,当所述初始访问请求为读操作时,所述根据所述目标访问请求与所述存储设备进行信息交互,包括:根据所述第二物理地址从所述存储设备上读取对应的第一目标数据,并根据所述第一物理地址将所述第一目标数据存储到所述宿主机的内存;将所述第一目标数据按照预设的地址路由表发送给所述虚拟机用户。9.根据权利要求7所述的方法,其特征在于,当所述初始访问请求为写操作时,所述根据所述目标访问请求与所述存储设备进行信息交互,包括:根据所述第一物理地址从所述宿主机的内存中读取对应的第二目标数据;根据所述第二物理地址将所述第二目标数据写入到所述存储设备中。10.一种桥接设备,其特征在于,包括:处理器;用于存储所述处理器可执行指令的存储器;所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现上述权利要求1-6中任一所述的存储设备的虚拟化方法。11.根据权利要求10所述的桥接设备,其特征在于,所述处理器为系统级芯片(system on chip,soc)或现场可编程逻辑门阵列(field programmable gate array,fpga)。12.一种存储设备的虚拟化处理系统,其特征在于,包括:权利要求10或11所述的桥接设备、宿主机、和存储设备,所述桥接设备与所述宿主机连接,所述宿主机上部署有至少一个虚拟机,所述虚拟机用户通过桥接设备与所述宿主机挂载的存储设备进行信息交互。13.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序用于执行上述权利要求1-6中任一所述的存储设备的虚拟化方法、或者权利要求7-9中任一所述的存储设备的虚拟化方法。
技术总结
本公开实施例涉及一种存储设备的虚拟化处理方法、桥接设备、系统及介质,其中该方法包括:接收虚拟机用户发送的对虚拟盘的初始访问请求,其中,初始访问请求包括:虚拟机对应的虚拟地址,以及虚拟盘中的虚拟访问地址;根据预先配置的地址映射关系,将虚拟机对应的虚拟地址转换为宿主机上对应的第一物理地址;根据预先配置的虚拟分区映射关系,将虚拟访问地址转换为与存储设备上对应的第二物理地址;根据第一物理地址和第二物理地址生成目标访问请求发送给宿主机,以使宿主机根据目标访问请求与存储设备进行信息交互。根据本公开实施例可实现多个虚拟机用户共享物理盘,改善了资源浪费的问题。的问题。的问题。
技术研发人员:于海鑫 张昊中 薄守静 蒋佳立 魏学超
受保护的技术使用者:北京火山引擎科技有限公司
技术研发日:2023.06.19
技术公布日:2023/9/20
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
