CN117971135B - 存储设备的访问方法、装置、存储介质和电子设备 - Google Patents
存储设备的访问方法、装置、存储介质和电子设备 Download PDFInfo
- Publication number
- CN117971135B CN117971135B CN202410376341.2A CN202410376341A CN117971135B CN 117971135 B CN117971135 B CN 117971135B CN 202410376341 A CN202410376341 A CN 202410376341A CN 117971135 B CN117971135 B CN 117971135B
- Authority
- CN
- China
- Prior art keywords
- storage
- virtual
- storage device
- data access
- channel
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 59
- 230000005540 biological transmission Effects 0.000 claims description 66
- 238000013507 mapping Methods 0.000 claims description 51
- 238000012545 processing Methods 0.000 claims description 37
- 238000004458 analytical method Methods 0.000 claims description 22
- 238000006243 chemical reaction Methods 0.000 claims description 19
- 238000004590 computer program Methods 0.000 claims description 19
- 230000008569 process Effects 0.000 claims description 12
- 239000000758 substrate Substances 0.000 claims 4
- 239000000523 sample Substances 0.000 claims 2
- 230000004044 response Effects 0.000 abstract description 8
- 238000005516 engineering process Methods 0.000 abstract description 7
- 230000000694 effects Effects 0.000 abstract description 5
- 238000007726 management method Methods 0.000 description 21
- 230000006870 function Effects 0.000 description 20
- 238000011144 upstream manufacturing Methods 0.000 description 19
- 238000010586 diagram Methods 0.000 description 17
- 238000013500 data storage Methods 0.000 description 12
- 230000007246 mechanism Effects 0.000 description 5
- 238000012546 transfer Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 238000012549 training Methods 0.000 description 3
- 230000002457 bidirectional effect Effects 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 2
- 238000005538 encapsulation Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000004806 packaging method and process Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供了一种存储设备的访问方法、装置、存储介质和电子设备,其中,该方法应用于存储扩展装置,存储扩展装置连接在第一存储设备与服务器之间,包括:接收参考虚拟机发送的数据访问请求;响应数据访问请求,通过参考存储通道将第一数据访问转换为第二数据访问;控制第一存储设备的参考存储空间执行第二数据访问。通过本申请,解决相关技术中对服务器连接的存储设备进行扩展时存储设备扩展效率较低的问题,达到提高对服务器连接的存储设备进行扩展时存储设备扩展效率的效果。
Description
技术领域
本申请实施例涉及计算机领域,具体而言,涉及一种存储设备的访问方法、装置、存储介质和电子设备。
背景技术
在数据中心云服务场景中,一些虚拟机或容器中实时性较强及IO访问密度高的应用,对存储设备的带宽延时等性能要求较高,远端部署的集中式存储***性能无法满足需求,需要服务器本地的存储设备提供支持。由于服务器CPU能够提供的PCIe端口数量有限制,所以支持的存储设备数量也收到限制,因此如何利用有限的本地存储设备资源来支持数量众多的虚拟机本地访问需求,是当前云场景下存储性能提升所面临的问题之一。为了解决上述问题,相关技术中采用PCIe Switch扩展方案,在该方案中采用专用Switch芯片,将一个CPU的PCIe端口扩展出多个下游端口来增加服务器所搭载存储设备的数量,每个下游端口连接一个存储设备。该方案的优点是在硬件上增加了服务器的本地存储能力,无需额外的软件配合,延时低,通用性强。但该方案扩展灵活性不足,需要在服务器主板设计之初就选定PCIe Switch型号,扩展能力随之固定。如果后续需要扩展更多通道,就只能更换端口数量更多的PCIe Switch芯片,需重新设计主板硬件;而如果需求变少,额外的PCIe通道也只能闲置,造成浪费。另外,扩展是通过在每个PCIe Switch的下游端口接一个存储设备实现,整体成本较高。
发明内容
本申请实施例提供了一种存储设备的访问方法、装置、存储介质和电子设备,以至少解决相关技术中对服务器连接的存储设备进行扩展时存储设备扩展效率较低的问题。
根据本申请的一个实施例,提供了一种存储设备的访问方法,应用于存储扩展装置,所述存储扩展装置连接在第一存储设备与服务器之间,所述服务器上部署了一个或者多个虚拟机,所述存储扩展装置中建立了一个或者多个允许被所述服务器识别为第二存储设备的存储通道,所述第二存储设备被分配给所述服务器上部署的虚拟机,所述存储通道在所述第一存储设备上被分配了对应的存储空间,所述方法包括:接收参考虚拟机发送的数据访问请求,其中,所述一个或者多个虚拟机包括所述参考虚拟机,所述数据访问请求用于请求对所述第二存储设备中被分配给所述参考虚拟机的参考存储设备进行第一数据访问;响应所述数据访问请求,通过参考存储通道将所述第一数据访问转换为第二数据访问,其中,所述参考存储通道是所述存储扩展装置中建立的存储通道中被识别为所述参考存储设备的存储通道,所述第二数据访问是对所述第一存储设备中与所述参考存储通道对应的参考存储空间的数据访问;控制所述第一存储设备的所述参考存储空间执行所述第二数据访问。
所述通过参考存储通道将第一数据访问转换为第二数据访问,包括:
从所述存储扩展装置中建立的存储通道中确定被识别为所述参考存储设备的参考存储通道;
将所述第一数据访问转发至所述参考存储通道;
通过所述参考存储通道将所述第一数据访问转换为所述第二数据访问。
可选的,所述存储扩展装置中还部署了第一虚拟桥接设备,所述第一虚拟桥接设备与所述存储扩展装置中建立的存储通道连接,所述第一虚拟桥接设备还用于连接所述服务器并被所述服务器识别为连接了所述第二存储设备,所述第一虚拟桥接设备上记录了具有对应关系的第二存储设备和存储通道,其中,
所述从所述存储扩展装置中建立的存储通道中确定被识别为所述参考存储设备的参考存储通道,包括:通过所述第一虚拟桥接设备从具有对应关系的第二存储设备和存储通道中查找所述参考存储设备所对应的所述参考存储通道;
所述将所述第一数据访问转发至所述参考存储通道,包括:通过所述第一虚拟桥接设备将所述第一数据访问转发至所述参考存储通道。
可选的,所述通过所述第一虚拟桥接设备从具有对应关系的第二存储设备和存储通道中查找所述参考存储设备所对应的所述参考存储通道,包括:
通过所述第一虚拟桥接设备从所述数据访问请求中提取所述参考存储设备的参***标识;
通过所述第一虚拟桥接设备从具有对应关系的存储设备标识和存储通道中查找所述参***标识所对应的所述参考存储通道,其中,所述存储设备标识是被分配给对应的存储通道的允许被识别为存储设备的设备标识。
可选的,所述方法还包括:
在所述存储扩展装置中创建初始的虚拟桥接设备;
在所述初始的虚拟桥接设备的协议配置空间对所述初始的虚拟桥接设备进行传输协议的第一属性配置,得到所述第一虚拟桥接设备,其中,所述服务器与所述存储扩展装置是通过符合所述传输协议的协议总线连接的,所述第一属性是允许被所述服务器识别为符合所述传输协议的桥接设备的协议属性;
建立所述第一虚拟桥接设备与所述存储扩展装置中建立的存储通道之间的连接,并记录具有对应关系的第二存储设备和存储通道。
可选的,所述存储通道包括第二虚拟桥接设备和虚拟存储设备,第一虚拟桥接设备与所述第二虚拟桥接设备连接,所述第二虚拟桥接设备与所述虚拟存储设备连接,所述虚拟存储设备用于连接所述第一存储设备,其中,
所述通过所述参考存储通道将所述第一数据访问转换为所述第二数据访问,包括:
通过所述参考存储通道中的所述第二虚拟桥接设备接收所述第一数据访问;
通过所述参考存储通道中的所述第二虚拟桥接设备将所述第一数据访问传输至所述参考存储通道中的所述虚拟存储设备;
通过所述参考存储通道中的所述虚拟存储设备将所述第一数据访问转换为所述第二数据访问。
可选的,所述通过所述参考存储通道中的所述虚拟存储设备将所述第一数据访问转换为所述第二数据访问,包括:
通过所述参考存储通道中的所述虚拟存储设备获取所述第一数据访问所指示访问的第一访问地址,其中,所述第一访问地址是所述参考虚拟机指示访问的所述参考存储设备的虚拟地址;
通过所述参考存储通道中的所述虚拟存储设备从具有对应关系的虚拟地址范围和存储地址范围中查询所述第一访问地址所对应的第一存储地址,其中,所述虚拟地址范围是所述参考存储设备被所述服务器所识别的地址范围,所述存储地址范围是所述参考存储通道中的所述虚拟存储设备在所述第一存储设备上被分配了的存储空间的地址范围;
将所述第一数据访问中的所述第一访问地址替换为所述第一存储地址,得到所述第二数据访问。
可选的,所述通过所述参考存储通道中的所述虚拟存储设备从具有对应关系的虚拟地址范围和存储地址范围中查询所述第一访问地址所对应的第一存储地址,包括:
通过所述参考存储通道中的所述虚拟存储设备从所述参考存储设备的传输协议的寻址空间与所述第一存储设备的存储协议的存储空间之间的地址映射中查询所述第一访问地址所映射的所述第一存储地址,其中,所述参考存储设备被所述服务器识别为符合所述传输协议的设备,所述虚拟地址范围包括所述传输协议的寻址空间,所述第一存储设备为所述存储协议的存储设备,所述存储地址范围包括所述存储协议的存储空间。
可选的,所述方法还包括:
在所述存储扩展装置中创建多组初始虚拟桥接设备和初始虚拟存储设备;
在所述初始虚拟桥接设备的协议配置空间对所述初始虚拟桥接设备进行传输协议的第二属性配置,得到所述第二虚拟桥接设备,其中,所述服务器与所述存储扩展装置是通过符合所述传输协议的协议总线连接的,所述第二属性是允许被所述服务器识别为符合所述传输协议的桥接设备的协议属性;
在所述初始虚拟存储设备的传输协议配置空间对所述初始虚拟存储设备进行传输协议的第三属性配置,并在所述初始虚拟存储设备的存储协议配置空间对所述初始虚拟存储设备进行存储协议的第四属性配置,得到所述虚拟存储设备,其中,所述第一存储设备是符合所述存储协议的存储设备,所述第三属性是允许被所述服务器识别为符合所述传输协议的终端设备的协议属性,所述第四属性是允许被所述服务器识别为符合所述存储协议的存储设备的协议属性。
可选的,所述虚拟存储设备中部署了协议解析单元,所述在所述初始虚拟存储设备的传输协议配置空间对所述初始虚拟存储设备进行传输协议的第三属性配置,包括:
在所述初始虚拟存储设备的传输协议配置空间对所述初始虚拟存储设备进行所述传输协议的数据链路层属性的配置和事务层属性的配置,其中,所述第三属性配置包括:所述数据链路层属性和所述事务层属性,所述协议解析单元用于使用所述数据链路层属性对接收到的数据访问进行数据链路层的协议解析,和/或,使用所述事务层属性对接收到的数据访问进行事务层的协议解析。
可选的,所述在所述初始虚拟存储设备的存储协议配置空间对所述初始虚拟存储设备进行存储协议的第四属性配置,包括:
在所述初始虚拟存储设备的存储协议配置空间对所述初始虚拟存储设备进行所述存储协议的存储容量属性的配置和队列数量属性的配置,其中,所述第四属性配置包括:所述存储容量属性和所述队列数量属性,所述存储容量属性和所述队列数量属性用于被所述服务器识别为符合所述存储协议的存储设备。
可选的,所述存储扩展装置中还部署了目标总线和总线接口,所述总线接口用于将连接在所述目标总线上的多个所述存储通道连接至所述第一存储设备,所述总线接口中具有所述目标总线的总线地址空间与所述第一存储设备的存储地址空间的映射关系,其中,
所述控制所述第一存储设备的所述参考存储空间执行所述第二数据访问,包括:
通过所述目标总线接收所述第二数据访问;
通过所述总线接口根据所述映射关系将所述第二数据访问转发至所述参考存储空间。
可选的,所述总线接口包括:总线仲裁单元和存储设备驱动单元,所述存储设备驱动单元中具有所述目标总线的总线地址空间与所述第一存储设备的存储地址空间的映射关系,其中,
所述通过所述总线接口根据所述映射关系将所述第二数据访问转发至所述参考存储空间,包括:
通过所述总线仲裁单元根据所述参考存储通道的优先级确定是否处理所述参考存储通道的总线访问;
在确定处理所述参考存储通道的总线访问的情况下,通过所述存储设备驱动单元根据所述映射关系将所述第二数据访问转发至所述参考存储空间。
根据本申请的另一个实施例,提供了一种存储扩展装置,包括:服务器端口,处理芯片和存储设备端口,其中,所述服务器端口与所述处理芯片连接,所述处理芯片与所述存储设备端口连接,所述处理芯片中建立了一个或者多个存储通道,所述服务器端口,用于连接服务器,其中,所述服务器上部署了一个或者多个虚拟机,所述一个或者多个存储通道允许被所述服务器识别为一个或者多个第二存储设备,所述一个或者多个第二存储设备在所述服务器上被分配给所述服务器上部署的虚拟机;所述存储设备端口,用于连接第一存储设备,其中,所述存储通道在所述第一存储设备上被分配了对应的存储空间;所述处理芯片用于实现前述存储设备的访问的步骤。
可选的,所述处理芯片中部署了第一虚拟桥接设备,所述第一虚拟桥接设备与所述一个或者多个存储通道连接,所述第一虚拟桥接设备还用于连接所述服务器端口,并被所述服务器识别为连接了所述第二存储设备,所述第一虚拟桥接设备上记录了具有对应关系的所述第二存储设备和存储通道,其中,
所述第一虚拟桥接设备,用于在接收到第一数据访问的情况下,从具有对应关系的所述第二存储设备和存储通道中查找参考存储设备对应的参考存储通道,其中,所述参考存储设备是所述一个或者多个所述第二存储设备中被分配给发起数据访问请求的参考虚拟机的存储设备,所述参考存储通道为所述一个或者多个存储通道中被识别为所述参考存储设备的存储通道;将所述第一数据访问转发至所述参考存储通道。
可选的,所述存储通道包括第二虚拟桥接设备和虚拟存储设备,所述第二虚拟桥接设备和所述第一虚拟桥接设备连接,所述第二虚拟桥接设备和所述虚拟存储设备连接,所述虚拟存储设备和所述第一存储设备连接,其中,
所述第二虚拟桥接设备,用于在接收到所述第一数据访问的情况下,将所述第一数据访问转发至所述第二虚拟桥接设备连接的所述虚拟存储设备;
所述虚拟存储设备,用于将所述第一数据访问转换为对第一存储设备中所述参考存储通道对应的存储空间进行访问的第二数据访问。
可选的,所述存储扩展装置中还部署了外接存储设备,所述外接存储设备与所述虚拟存储设备连接,其中,
所述外接存储设备,用于对所述虚拟存储设备在所述第一存储设备中所要访问的数据进行缓存。
可选的,所述处理芯片中还部署了目标处理器,所述目标处理器通过内部高速总线和所述一个或者多个存储通道连接,所述目标处理器还和所述存储设备端口连接,其中,
所述目标处理器,用于响应所述存储通道传输的数据访问请求,对所述第一存储设备进行存储控制和数据访问。
根据本申请的另一个实施例,提供了一种存储设备的访问装置,应用于存储扩展装置,所述存储扩展装置连接在第一存储设备与服务器之间,所述服务器上部署了一个或者多个虚拟机,所述存储扩展装置中建立了一个或者多个允许被所述服务器识别为第二存储设备的存储通道,所述第二存储设备被分配给所述服务器上部署的虚拟机,所述存储通道在所述第一存储设备上被分配了对应的存储空间,所述装置包括:接收模块,用于接收参考虚拟机发送的数据访问请求,其中,所述一个或者多个虚拟机包括所述参考虚拟机,所述数据访问请求用于请求对所述第二存储设备中被分配给所述参考虚拟机的参考存储设备进行第一数据访问;转换模块,用于响应所述数据访问请求,通过参考存储通道将所述第一数据访问转换为第二数据访问,其中,所述参考存储通道是所述存储扩展装置中建立的存储通道中被识别为所述参考存储设备的存储通道,所述第二数据访问是对所述第一存储设备中与所述参考存储通道对应的参考存储空间的数据访问;控制模块,用于控制所述第一存储设备的所述参考存储空间执行所述第二数据访问。
根据本申请的又一个实施例,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
根据本申请的又一个实施例,还提供了一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。
根据本申请的又一个实施例,还提供了一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现上述任一项方法实施例中的步骤。
通过本申请,在服务器和服务器部署的第一存储设备之间部署了存储扩展装置,该存储扩展装置建立的一个或者多个存储通道,该一个或者多个存储通道允许被服务器识别为一个或者多个第二存储设备,并分配给服务器上部署的虚拟机使用,从而实现在虚拟机侧能够认为每个虚拟机都连接有一个第二存储设备,进而,在存储扩展装置接收到服务器上参考虚拟机发送的数据访问请求后,通过一个或者多个存储通道中被识别为参考存储设备的为参考存储通道,将对参考存储设备的数据访问转换对第一存储设备中参考存储通道对应的存储空间的数据访问,从而实现只需要连接一个存储设备就可以为服务器上的多个虚拟机提供服务,实现了在不更改服务器对存储设备的使用逻辑和无需新增存储设备的前提下,实现对服务连接的存储设备的扩展,并且对于服务器来说仍然是每个虚拟机都提供一个独立的存储设备,使得对存储设备的扩展性能更高,通用性更强,同时更加灵活可靠。可以解决相关技术中对服务器连接的存储设备进行扩展时存储设备扩展效率较低的问题,达到提高对服务器连接的存储设备进行扩展时存储设备扩展效率的效果。
附图说明
图1是根据本申请实施例的存储设备的访问方法的示意图;
图2是根据本申请实施例的一种存储扩展装置示意图;
图3是根据本申请实施例的一种可选的存储设备空间分配示意图;
图4是根据本申请实施例的一种可选的总线接口示意图;
图5是根据本申请实施例的一种可选的存储设备连接***架构图;
图6是根据本申请实施例的一种可选的存储扩展装置运行流程图;
图7是根据本申请实施例的一种可选的存储设备访问流程图;
图8是根据本申请实施例的一种可选的存储扩展装置结构图;
图9是根据本申请实施例的一种可选的存储扩展装置结构框图;
图10是根据本申请实施例的存储设备的访问装置的结构框图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本申请的实施例。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
在本实施例中提供了一种存储设备的访问方法,图1是根据本申请实施例的存储设备的访问方法的示意图,如图1所示,应用于存储扩展装置,所述存储扩展装置连接在第一存储设备与服务器之间,所述服务器上部署了一个或者多个虚拟机,所述存储扩展装置中建立了一个或者多个允许被所述服务器识别为第二存储设备的存储通道,所述第二存储设备被分配给所述服务器上部署的虚拟机,所述存储通道在所述第一存储设备上被分配了对应的存储空间,该方法包括如下步骤:
步骤S102,接收参考虚拟机发送的数据访问请求,其中,所述一个或者多个虚拟机包括所述参考虚拟机,所述数据访问请求用于请求对所述第二存储设备中被分配给所述参考虚拟机的参考存储设备进行第一数据访问;
步骤S104,响应所述数据访问请求,通过参考存储通道将所述第一数据访问转换为第二数据访问,其中,所述参考存储通道是所述存储扩展装置中建立的存储通道中被识别为所述参考存储设备的存储通道,所述第二数据访问是对所述第一存储设备中与所述参考存储通道对应的参考存储空间的数据访问;
步骤S106,控制所述第一存储设备的所述参考存储空间执行所述第二数据访问。
通过上述步骤,在服务器和服务器部署的第一存储设备之间部署了存储扩展装置,该存储扩展装置建立的一个或者多个存储通道,该一个或者多个存储通道允许被服务器识别为一个或者多个第二存储设备,并分配给服务器上部署的虚拟机使用,从而实现在虚拟机侧能够认为每个虚拟机都连接有一个第二存储设备,进而,在存储扩展装置接收到服务器上参考虚拟机发送的数据访问请求后,通过一个或者多个存储通道中被识别为参考存储设备的为参考存储通道,将对参考存储设备的数据访问转换对第一存储设备中参考存储通道对应的存储空间的数据访问,从而实现只需要连接一个存储设备就可以为服务器上的多个虚拟机提供服务,实现了在不更改服务器对存储设备的使用逻辑和无需新增存储设备的前提下,实现对服务连接的存储设备的扩展,并且对于服务器来说仍然是每个虚拟机都提供一个独立的存储设备,使得对存储设备的扩展性能更高,通用性更强,同时更加灵活可靠。可以解决相关技术中对服务器连接的存储设备进行扩展时存储设备扩展效率较低的问题,达到提高对服务器连接的存储设备进行扩展时存储设备扩展效率的效果。
在上述步骤S102提供的技术方案中,存储设备用于为服务器上的虚拟机提供数据存储服务,在本申请实施例中,存储设备可以但不限于包括硬盘驱动器、固态硬盘、光盘、闪存驱动器、磁带等等,比如NVMe(Non-Volatile Memory express,非易失性内存主机控制器接口规范)存储设备(例如NVMe SSD(Solid State Drives,固态硬盘)),本方案对此不做限定。
可选地,在本申请实施例中,存储扩展装置中建立的存储通道可以是预先建立好的,或者还可以是根据服务器上部署的虚拟机对存储通道的需求建立的,本方案对此不做限定。
可选地,在本申请实施例中,在存储扩展装置中建立了一个或者多个用于对第一存储设备上被分配的对应的存储空间进行访问的存储通道,进而在服务器侧每个存储通道被识别为一个存储设备,本申请中可以但不限于根据服务器上虚拟机的部署数量以及每个虚拟机的存储空间需求对第一存储设备上的存储空间进行分配,为每个虚拟机分配对应的存储空间,建立存储空间和对应的连接关系,同时存储扩展装置将存储通道的索引信息(比如存储通道的地址信息、存储通道的通信协议、数据传输格式等等)发送给服务器,从而服务器能够使用该索引信息对存储通道对应的存储空间进行调用。
可选地,在本申请实施例中,一个参考虚拟机在存储扩展装置中可以被分配一个或者多个存储通道,比如,存储扩展装置中分配了N个存储通道,常规的分配方式可以是为每个参考虚拟机分配一个对应的存储通道,或者为了实现参考虚拟机对存储设备的访问效率,可以根据参考虚拟机对存储设备的访问需求,从N个存储通道中为该参考虚拟机选择M个存储通道(其中N大于或者等于M),进而参考虚拟机可以通过发送数据访问请求的方式同时对M个参考存储通道对应的参考存储设备执行数据访问操作,本方案对此不做限定。
可选地,在本申请实施例中,数据访问请求可以但不限于包括对参考存储设备执行数据读取操作的操作请求,或者还可以是将数据写入参考存储设备的数据写入请求,本方案对此不做限定。
在上述步骤S104提供的实施例中,参考存储通道用于实现参考存储设备和第一存储设备中与参考存储通道对应的存储空间的一对一映射,由于本实施例中存储扩展装置中的一个或者多个存储通道被服务器识别为连接了一个或者多个存储设备,进而服务器上的虚拟机会向参考存储设备下发用于对参考存储设备进行第一数据访问的数据访问请求,存储扩展装置作为连接在第一存储设备和服务器之间的中转设备,将第一数据访问转换为对第一存储设备上与参考存储通道对应的存储空间进行访问的第二数据访问操作。
可选地,在本申请实施例中,参考存储通道将第一数据访问转换为第二数据访问可以是对数据访问地址的转换,即虚拟机通过参考存储通道和第一存储设备连接,进而在虚拟机上参考存储通道被是被为一个参考存储设备,虚拟机访问该存储设备需要根据参考存储设备的虚拟地址进行数据访问,因此第一数据访问中需要携带执行数据访问操作的第一访问地址,而参考存储通道侧因为连接了第一存储设备,因此参考存储通道需要对第一存储设备上与参考存储通道对应的存储区执行数据访问操作,因此,参考存储通道需要对第一数据访问执行地址转换操作,将访问地址有第一访问地址转换为第一存储设备上与参考存储通道对应的存储区的第二访问地址。
可选地,在本申请实施例中,参考存储通道将第一数据访问转换为第二数据访问可以是对数据传输协议格式的访问,即虚拟机通过参考存储通道和第一存储设备连接,进而在虚拟机上参考存储通道被是被为一个参考存储设备,虚拟机访问该存储设备需要根据参考存储设备的虚拟地址进行数据访问,因此第一数据访问需要按照参考存储设备的数据传输协议格式进行访问,由于参考存储设备的数据传输协议格式和第一存储设备的数据传输协议格式存储区别,因此参考存储通道需要对第一数据访问执行数据传输协议格式的转换,从而将第一数据访问转换为第二数据访问。
可选地,在本申请实施中,参考存储空间可以是第一存储设备中与参考存储通道对应的连续的存储空间,或者还可以是多个非连续的存储空间,比如,对第一存储设备的存储空间进行划分,能划分出依次连续的5个存储空间,分别是存储空间A、存储空间B、存储空间C、和存储空间D,其中存储空间A的存储区域结束为止和存储空间B的存储空间起始位置相邻,存储空间B的存储空间结束位置和存储空间C的存储空间起始位置相邻,存储空间C的存储空间结束为止和存储空间D的存储空间起始位置相邻,进而可以将存储空间A或者将存储空间A和B同时作为一个存储通道对应的存储空间,当4个存储空间中有部分处于中间位置的存储空间被分配给某一存储通道时,如存储空间C被分给某一存储设备,进而为了保证存储空间的有效利用,可以当另一个存储通道需要两个存储空间时,可以将存储空间A和存储空间C一起分配给另一个存储通道。
在上述步骤S106提供的实施例中,在存储扩展装置中维护有参考存储通道和第一存储设备中为该参考存储通道分配的参考存储空间的映射关系,其目的是将参考存储设备与参考存储空间进行一对一映射,进而在需要执行第二数据访问操作后,通过该映射关系查找出第一存储设备上与参考通道具有映射关系的参考存储空间。
本申请实施例可以但不限于应用与对NVMe存储设备的扩展方法,其核心思想是通过在CPU与NVMe存储设备之间中增加一个NVMe扩展装置,实现PCIe的通道数量扩展,同时在每个通道下虚拟出一个NVMe存储设备,并完成与物理设备之间的多对一映射,从而在下游只连接一个NVMe存储设备的情况下,向CPU呈现出多个存储设备,达到设备扩展的目的。本发明用硬件装置实现NVMe存储设备扩展功能,无需软件过多参与,即具备PCIe Switch扩展方案的高性能与通用性,又具备软件虚拟化方案的灵活性与低成本。存储设备扩展***包括服务器、存储扩展装置、第一存储设备,存储扩展装置连接第一存储设备与服务器之间,服务器上部署了一个或者多个虚拟机,能够在服务器CPU侧呈现出一个PCIe根节点下挂载了多个虚拟NVMe设备(vDevice)的拓扑形式,并可根据用户需求动态调整所扩展出的虚拟设备的数量。在本申请中,所有的虚拟设备共享一个NVMe存储设备,因此多个虚拟设备所对应的物理NVMe存储空间地址不能有重合的部分,有专门的地址映射单元负责空间管理。
作为一种可选的实施例,所述通过参考存储通道将第一数据访问转换为第二数据访问,包括:
从所述存储扩展装置中建立的存储通道中确定被识别为所述参考存储设备的参考存储通道;
将所述第一数据访问转发至所述参考存储通道;
通过所述参考存储通道将所述第一数据访问转换为所述第二数据访问。
可选地,在本申请实施例中,存储扩展装置中可以但不限于维护有虚拟机和存储通道的映射关系,用于将服务器上部署的虚拟机和为虚拟机分配的存储通道进行映射,进而存储扩展装置在接收到参考虚拟机发送的数据访问请求后,能够根据该映射关系查找出为参考虚拟机分配的参考存储通道。
通过以上内容,由于存储扩展装置中建立了一个或者多个存储通道,存储通道用于将虚拟机和第一存储设备上为存储通道分配的存储空间进行连接,从而使得服务器能够将一个或者多个存储通道识别为一个或者多个第二存储设备,进而在接收到参考虚拟机发送的数据访问请求后,通过从一个或者多个存储通道中确定出被参考虚拟机识别为参考存储设备的参考存储通道,从而也就找到了第一存储设备上需要执行数据访问操作的存储空间,进而通过将第一数据访问转发给参考存储通道,从而参考存储通道能够将对参考存储设备执行数据访问操作的第一数据访问转换为对第一存储设备而上为参考存储设备分配的参考存储空间执行数据访问操作的第二数据访问,从而实现保证将第一数据访问转换为第二数据访问的准确性。
作为一种可选的实施例,所述存储扩展装置中还部署了第一虚拟桥接设备,所述第一虚拟桥接设备与所述存储扩展装置中建立的存储通道连接,所述第一虚拟桥接设备还用于连接所述服务器并被所述服务器识别为连接了所述一个或者多个第二存储设备,所述第一虚拟桥接设备上记录了具有对应关系的第二存储设备和存储通道,其中,
所述从所述存储扩展装置中建立的存储通道中确定被识别为所述参考存储设备的参考存储通道,包括:通过所述第一虚拟桥接设备从具有对应关系的第二存储设备和存储通道中查找所述参考存储设备所对应的所述参考存储通道;
所述将所述第一数据访问转发至所述参考存储通道,包括:通过所述第一虚拟桥接设备将所述第一数据访问转发至所述参考存储通道。
可选地,在本申请实施例中,第一虚拟桥接设备用于实现服务器和一个或者多个存储通道的连接,对虚拟机发送的数据或者需要返回给虚拟机的数据进行协议解析,在本实施例中,第一虚拟桥接设备还可以根据数据包中的第一对数据包进行路由转发,比如,参考虚拟机发送的数据访问请求中携带为该参考虚拟机分配的参考存储通道的地址信息,进而第一虚拟桥接设备根据地址信息从一个或者多个存储通道中查找出与该地址信息匹配的参考存储通道,将数据访问请求发送给参考存储通道,或者,在对第一存储设备中为参考存储通道分配的存储空间执行完数据访问操作,需要执行数据访问结果的反馈(比如数据访问请求是请求读取数据,则需要将读取的数据反馈参考虚拟机),此时参考存储通道将数据访问结果发送给第一虚拟桥接设备,第一虚拟桥接设备将参考存储通道发送的数据访问结果转发给与参考存储通道对应的参考虚拟机。
可选地,在本申请实施例中,第一虚拟桥接设备中还可以维护有虚拟机和为虚拟机分配的存储通道的映射关系,进而通过第一虚拟桥接设备实现对虚拟机和存储通道之间的数据转发,即虚拟机将数据访问请求发送给第一虚拟桥接设备,第一虚拟桥接设备根据存储的映射关系查找出一个或者多个存储通道中为该虚拟机分配的参考存储通道,进而将数据访问请求转发给参考存储通道,或者存储通道将从第一存储设备中读取到的数据包发送给第一虚拟机桥接设备,进而第一虚拟机桥接设备服务器上部署的虚拟机中找到与该存储通道对应的参考虚拟机,进而将存储通道发送的数据包转发给参考虚拟机。
通过以上内容,通过在存储扩展装置中部署用于对虚拟机和存储扩展装置中建立的一个或者多个存储通道进行链接的第一虚拟机桥接设备,由于第一虚拟机桥接设备用于连接服务器并被服务器识别为连接了一个或者多个第二存储设备,进而第一虚拟机桥接设备上记录具有对应关系的第二存储设备和存储通道,从而通过第一虚拟桥接设备上的第二存储设备和存储通道的对应关系查找与参考存储设备对应的参考存储通道,实现对存储通道的准确查找,避免第一数据访问的转发错误。
作为一种可选的实施例,所述通过所述第一虚拟桥接设备从具有对应关系的第二存储设备和存储通道中查找所述参考存储设备所对应的所述参考存储通道,包括:
通过所述第一虚拟桥接设备从所述数据访问请求中提取所述参考存储设备的参***标识;
通过所述第一虚拟桥接设备从具有对应关系的存储设备标识和存储通道中查找所述参***标识所对应的所述参考存储通道,其中,所述存储设备标识是被分配给对应的存储通道的允许被识别为存储设备的设备标识。
可选地,在本申请实施例中,第一虚拟桥接设备负责执行服务器和存储通道的中转连接,在服务器侧服务器认为自身连接了多个第二存储设备,进而会生成调用第二存储设备的数据访问请求,该数据访问请求中携带有待请求访问的第二存储设备的参***标识,第一虚拟桥接设别上维护了存储设备标识和存储通道的对应关系,进而通过该对应关系确定出参***标识对应的参考存储通道,进而将对应的数据访问请求发送给参考存储通道,从而对第一存储设备进行调用。
通过以上步骤,通过设置第一虚拟桥接设备,并将虚拟桥接设备作为服务器和多个存储通道的中转连接设备,由于多个存储通道被服务器识别为多个第二存储设备,进而通过在第一虚拟桥接设备上维护设备标识和存储通道的对应关系,从而将设备请求调用的设备的设备标识和存储通道之间进行映射,实现对存储通道的准确查找。
作为一种可选的实施例,所述方法还包括:
在所述存储扩展装置中创建初始的虚拟桥接设备;
在所述初始的虚拟桥接设备的协议配置空间对所述初始的虚拟桥接设备进行传输协议的第一属性配置,得到所述第一虚拟桥接设备,其中,所述服务器与所述存储扩展装置是通过符合所述传输协议的协议总线连接的,所述第一属性是允许被所述服务器识别为符合所述传输协议的桥接设备的协议属性;
建立所述第一虚拟桥接设备与所述一个或者多个存储通道之间的连接,并记录具有对应关系的第二存储设备和存储通道。
可选地,在本申请实施例中,对初始虚拟桥接设备进行的传输协议的第一属性配置可以但不限于包括PCIe配置空间、Memory base、Memory limit等寄存器定义,通过对传协议的配置,从而能够在服务器CPU枚举过程中被识别为正常的桥接设备。
可选地,在本申请实施例中,虚拟桥接设备可以但不限于是虚拟的PCIe桥接设备,用于实现服务器和第一存储设备的PCIe总线之间的桥接,或者用于实现服务器和多个被服务器识别为第二存储设备的存储通道之间的连接,从而对来自上下游环节的PCIe数据包进行协议解析,并根据器中的地址信息进行上下游数据包路由和转发,本方案对此不做限定。
通过以上内容,通过在初始的虚拟桥接设备的协议配置空间中对初始的虚拟桥接设备进行传输协议的第一属性配置,使得配置后的第一虚拟桥接设备能够允许被服务器识别为符合传输协议的桥接设备,从而实现第一虚拟桥接设备在cpu上的正常识别,进而为服务器和多个存储通道之间的连接提供了协议保障。
作为一种可选的实施例,所述存储通道包括第二虚拟桥接设备和虚拟存储设备,第一虚拟桥接设备与所述第二虚拟桥接设备连接,所述第二虚拟桥接设备与所述虚拟存储设备连接,所述虚拟存储设备用于连接所述第一存储设备,其中,
所述通过所述参考存储通道将所述第一数据访问转换为所述第二数据访问,包括:
通过所述参考存储通道中的所述第二虚拟桥接设备接收所述第一数据访问;
通过所述参考存储通道中的所述第二虚拟桥接设备将所述第一数据访问传输至所述参考存储通道中的所述虚拟存储设备;
通过所述参考存储通道中的所述虚拟存储设备将所述第一数据访问转换为所述第二数据访问。
可选地,在本申请实施例中,虚拟存储设备具备设备链路层与事务层的逻辑功能,能够按照协议进行DLP与TLP数据包的解包、封装、校验等功能,并完成存储器读写、配置读写等总线事务。在CPU枚举设备树之前,通道扩展逻辑可根据需要准备好虚拟设备的配置空间、地址范围、设备数量等必要信息以配合上游***调用。
可选地,在本申请实施例中,虚拟设备中的核心功能单元可以但不限于包括协议解析单元、数据缓存单元与地址映射单元三部分,此三部分在虚拟设备中通过高带宽的总线互连;协议解析单元:该单元完成PCIe数据链路层与事务层的协议解析、封包、校验与数据处理。在数据链路层,采用ACK/NAK应答机制在发送端与接收端之间进行错误重传与流量控制,根据数据链路层协议进行DLLP报文处理以实现通道中的数据可靠传输,并定义不同类型报文的发送顺序以保证重要的信息得到优先响应。在事务层,该单元利用TLP数据包中的总线号、设备号与功能号ID完成路由寻址,实现对配置空间内容的读写,并根据TLP包中的Address字段进行寻址,实现对存储器空间和IO空间的读写;数据缓存单元用于对在服务器和第一存储设备之间传输的数据进行临时传输,当虚拟存储设备高频率访问PCIe上下游端口时,由于上下游端口响应速率不匹配会出现数据包处理不及时的问题,本发明在虚拟存储设备内部设置了数据缓存单元,用来应对数据处理速度不一致的问题。每个虚拟存储设备的数据缓存单元大小可以调整,用来适配不同的应用场景;地址映射单元:在本申请中最终的数据存储介质是下游端口所连接的第一存储设备,而不是服务器CPU所“看到”的虚拟存储设备。每个虚拟存储设备在第一存储设备中都有一段对应的空间,对虚拟存储设备进行的数据读写最终都会作用到该空间上,因此需要在虚拟存储设备与第一存储设备之间进行双向数据转发,将CPU对虚拟存储设备的数据读写访问映射至第一存储设备。
可选地,在本申请实施例中,虚拟存储设备用于作为服务器和第一存储设备之间的数据中转设备,即将服务器发送的数据访问请求进行临时存储,并根据数据访问请求对第一存储设备上与该虚拟存储设备对应的存储区域进行数据访问操作,并将访问得到的数据进行临时存储并传递给服务器,因此,为了实现这一目的可以在存储扩展装置中为虚拟设备分配缓存控制,即将存储扩展装置的存储空间分配多个虚拟存储设备,其中存储扩展装置的存储空间可以是平均的分配给多个虚拟存储设备或者还可以是根据各个虚拟存储设备所要办理的业务对存储空间的需求进行分配,本方案对此不做限定。
通过以上内容,通过在存储通道中设置第二虚拟桥接设备和虚拟存储设备,从而通过第二虚拟桥接设备接收第一数据访问请求,并通过虚拟存储设备作为第一数据访问和第二数据访问的中转设备,从而实现通过存储通道对连接的第一存储设备的存储空间的高效并准确的访问。
在本申请实施例中,虚拟桥接设备可以但不限于是虚拟PCIe桥接设备,用于实现两条PCIe总线之间的桥接,图2是根据本申请实施例的一种存储扩展装置示意图,如图2所示:存储扩展装置包括通道扩展逻辑模块和内部总线接口模块,通道扩展逻辑模块用于和服务器端口(服务器或者服务器上部署的虚拟机)连接,通道扩展逻辑还与内部总线接口连接,内部总线接口模块和存储设备端口(第一存储设备)连接,内部总线接口用于实现存储扩展装置中创建的存储通道对第一存储设备的数据访问。vBridge在本发明中为虚拟PCIe桥接设备(包括第一虚拟桥接设备和第二虚拟桥接设备),用于实现两条PCIe总线之间的桥接。本发明中在vBridge结构中包括PCIe配置空间、Memory base、Memory limit等寄存器定义,能够在CPU枚举过程中被识别为正常的PCIe Bridge。在本发明中vBridge负责建立CPU与虚拟PCIe Device(vDevice(虚拟存储设备))之间的连接关系,对来自上下游环节的PCIe数据包进行协议解析,并根据其中的地址信息进行上下行数据包路由转发。
在本实施例中,vDevice设备(虚拟存储设备)首先是一个PCIe Endpoint设备更进一步的是在此基础上的NVMe存储设备。本发明中的vDevice设备具备PCIe Endpoint设备链路层与事务层的逻辑功能,能够按照协议进行DLP与TLP数据包的解包、封装、校验等功能,并完成存储器读写、配置读写等总线事务。在CPU枚举PCIe设备树之前,通道扩展逻辑可根据需要准备好vDevice的配置空间、地址范围、设备数量等必要信息以配合上游***调用。vDevice中的核心功能单元包括协议解析单元、数据缓存单元与地址映射单元三部分,此三部分在vDevice中通过高带宽的总线互连。详述如下:
协议解析单元:该单元完成PCIe数据链路层与事务层的协议解析、封包、校验与数据处理。在数据链路层,采用ACK/NAK应答机制在发送端与接收端之间进行错误重传与流量控制,根据数据链路层协议进行DLLP报文处理以实现通道中的数据可靠传输,并定义不同类型报文的发送顺序以保证重要的信息得到优先响应。在事务层,该单元利用TLP数据包中的总线号、设备号与功能号ID完成路由寻址,实现对配置空间内容的读写,并根据TLP包中的Address字段进行寻址,实现对存储器空间和IO空间的读写。
在PCIe的基础上,本单元还支持vDevice具备了NVMe设备的逻辑功能。通过实现标准NVMe控制寄存器组,使vDevice具备从Host获取CQ与SQ队列信息、响应Host的DoorBell命令以及发送MSI中断的能力。对于NVMe存储空间的数据写入与读取,该单元将通过vDevice的数据缓存单元与地址映射单元,在上游服务器CPU与下游NVMe设备之间进行数据与命令进行转发,从而完成实际的读写操作。
数据缓存单元:当vDevice高频率访问PCIe上下游端口时,由于上下游端口响应速率不匹配会出现数据包处理不及时的问题。本发明在vDevice内部设置了数据缓存单元,用来应对数据处理速度不一致的问题。每个vDevice的数据缓存单元大小可以调整,用来适配不同的应用场景。数据缓存单元的介质SRAM或DRAM,位置或处于所述NVMe扩展装置的内部,也可处于NVMe扩展装置外部。
地址映射单元:在本发明中最终的数据存储介质是下游端口所连接的NVMe存储设备,而不是服务器CPU所“看到”的vDevice。每个vDevice在NVMe存储设备中都有一段对应的空间,对vDevice进行的数据读写最终都会作用到该空间上,因此需要在vDevice与NVMe存储设备之间进行双向数据转发,将CPU对vDevice的数据读写访问映射至NVMe存储设备。图3是根据本申请实施例的一种可选的存储设备空间分配示意图,如图3所示,将第一存储设备的存储空间按照目标粒度(可以按照虚拟存储设备的数量,或这虚拟存储设备对存储空间的需求)进行分配,从而得到分配后的多个存储空间,进而可以根据各个虚拟机的数据存储需求将存储空间分配给对应的虚拟存储设备。
本申请中上述工作由vDevice中的地址映射单元完成。其核心思想是将每个vDevice的PCIe BAR空间与NVMe存储设备的BAR空间中分配给该vDevice的部分进行一对一映射。每当vDevice收到一个PCIe数据包,就根据此映射关系向NVMe存储设备的对应地址转发此数据包。反向传输亦如此,vDevice每接收一个来自NVMe存储设备的数据包,就向Host对应的PCIe BAR空间转发此数据包。所述的一对一映射通过专用的寄存器组实现,利用寄存器分别存储vDevice侧与NVMe存储设备侧的PCIe BAR空间首末地址,并用硬件逻辑实现地址匹配与偏址。
作为一种可选的实施例,所述通过所述参考存储通道中的所述虚拟存储设备将所述第一数据访问转换为所述第二数据访问,包括:
通过所述参考存储通道中的所述虚拟存储设备获取所述第一数据访问所指示访问的第一访问地址,其中,所述第一访问地址是所述参考虚拟机指示访问的所述参考存储设备的虚拟地址;
通过所述参考存储通道中的所述虚拟存储设备从具有对应关系的虚拟地址范围和存储地址范围中查询所述第一访问地址所对应的第一存储地址,其中,所述虚拟地址范围是所述参考存储设备被所述服务器所识别的地址范围,所述存储地址范围是所述参考存储通道中的所述虚拟存储设备在所述第一存储设备上被分配了的存储空间的地址范围;
将所述第一数据访问中的所述第一访问地址替换为所述第一存储地址,得到所述第二数据访问。
可选地,在本申请实施例中,虚拟地址范围可以但不限于是网络连接设备上为对应的存储通道分配的用于对数据进行缓存的存储空间的地址范围。
可选地,在本申请实施例中,为了提高对第一存储设备中存储空间的利用率,可以将第一存储设备的存储空间按照目标粒度进行划分,从而将存储空间划分为多份,进而根据数据存储量和存储空间中内存占用情况为虚拟存储设备分配对应的存储地址范围,其中存储地址范围中的存储地址可以是连续的存储地址或者还可以是不连续的存储地址,即为了提高对存储空间的利用率,可以利用存储空间中未被占用的多个非连续的存储地址范围对应的存储空间进行数据存储,本方案对此不做限定。
通过以上步骤,在存储扩展装置的存储空间中为参考存储设备对应的参考虚拟机分配虚拟地址范围,从而虚拟存储设备可以对在服务器和第一存储设备之间传输的数据进行临时存储,避免出现数据延迟不一致的问题,并在第一存储设备上为参考虚拟机分配对应的存储地址范围,进而在虚拟存储设别上配置具有对应关系的虚拟地址范围和存储地址范围,进而虚拟存储设备能够根据该映射关系在需要进行数据访问转换操作是,将第一数据访问的第一地址替换为第一存储地址,从而提高数据访问的准确率,本方案对此不做限定。
作为一种可选的实施例,所述通过所述参考存储通道中的所述虚拟存储设备从具有对应关系的虚拟地址范围和存储地址范围中查询所述第一访问地址所对应的第一存储地址,包括:
通过所述参考存储通道中的所述虚拟存储设备从所述参考存储设备的传输协议的寻址空间与所述第一存储设备的存储协议的存储空间之间的地址映射中查询所述第一访问地址所映射的所述第一存储地址,其中,所述参考存储设备被所述服务器识别为符合所述传输协议的设备,所述虚拟地址范围包括所述传输协议的寻址空间,所述第一存储设备为所述存储协议的存储设备,所述存储地址范围包括所述存储协议的存储空间。
作为一种可选的实施例,所述方法还包括:
在所述存储扩展装置中创建多组初始虚拟桥接设备和初始虚拟存储设备;
在所述初始虚拟桥接设备的协议配置空间对所述初始虚拟桥接设备进行传输协议的第二属性配置,得到所述第二虚拟桥接设备,其中,所述服务器与所述存储扩展装置是通过符合所述传输协议的协议总线连接的,所述第二属性是允许被所述服务器识别为符合所述传输协议的桥接设备的协议属性;
在所述初始虚拟存储设备的传输协议配置空间对所述初始虚拟存储设备进行传输协议的第三属性配置,并在所述初始虚拟存储设备的存储协议配置空间对所述初始虚拟存储设备进行存储协议的第四属性配置,得到所述虚拟存储设备,其中,所述第一存储设备是符合所述存储协议的存储设备,所述第三属性是允许被所述服务器识别为符合所述传输协议的终端设备的协议属性,所述第四属性是允许被所述服务器识别为符合所述存储协议的存储设备的协议属性。
可选地,在本申请实施例中,服务器与存储扩展装置之间可以但不限于通过PCIe协议进行数据传输,即服务器为PCIe服务器,虚拟桥接设备用于在PCIe服务器和虚拟存储设备之间转发数据包,并且每个第二虚拟桥接设备值连接一个虚拟存储设备,因此需要在PCIe配置空间进行标准PCIe属性设置,下游设备的总线号等信息会在CPU枚举PCIe设备树时自动确定,此工作由内部总线接口的***管理单元实施。
可选地,在本申请实施例中,第三属性配置可以但不限于包括DID/VID及BAR空间等PCIe属性配置。
可选地,在本申请实施例中,第四属性配置可以但不限于包括存储容量与队列数量等NVMe属性配置,以及缓存大小及优先级等私有属性配置。
作为一种可选的实施例,所述虚拟存储设备中部署了协议解析单元,所述在所述初始虚拟存储设备的传输协议配置空间对所述初始虚拟存储设备进行传输协议的第三属性配置,包括:
在所述初始虚拟存储设备的传输协议配置空间对所述初始虚拟存储设备进行所述传输协议的数据链路层属性的配置和事务层属性的配置,其中,所述第三属性配置包括:所述数据链路层属性和所述事务层属性,所述协议解析单元用于使用所述数据链路层属性对接收到的数据访问进行数据链路层的协议解析,和/或,使用所述事务层属性对接收到的数据访问进行事务层的协议解析。
可选地,在本申请实施例中,数据链路层属性可以但不限于包括数据传输的速率、编码方式、帧格式等,而事务层属性包括数据传输的顺序、确认机制、错误处理等。比如,在数据链路层,采用ACK/NAK应答机制在发送端与接收端之间进行错误重传与流量控制,根据数据链路层协议进行DLLP报文处理以实现通道中的数据可靠传输,并定义不同类型报文的发送顺序以保证重要的信息得到优先响应。
可选地,在本申请实施例中,在数据链路层,利用TLP数据包中的总线号、设备号与功能号ID完成路由寻址,实现对配置空间内容的读写,并根据TLP包中的Address字段进行寻址,实现对存储器空间和IO空间的读写。
通过以上内容,通过对数据链路层属性和事务层属性的配置,可以有效地管理和控制初始虚拟存储设备的传输协议,从而实现数据的可靠传输和处理。
作为一种可选的实施例,所述在所述初始虚拟存储设备的存储协议配置空间对所述初始虚拟存储设备进行存储协议的第四属性配置,包括:
在所述初始虚拟存储设备的存储协议配置空间对所述初始虚拟存储设备进行所述存储协议的存储容量属性的配置和队列数量属性的配置,其中,所述第四属性配置包括:所述存储容量属性和所述队列数量属性,所述存储容量属性和所述队列数量属性用于被所述服务器识别为符合所述存储协议的存储设备。
可选地,在本申请实施例中,存储容量属性的配置包括但不限于设置虚拟存储设备的总容量大小,以及分配给不同存储协议的容量比例等。
可选地,在申请实施例中,队列数量属性的配置包括但不限于设置存储协议的读写队列数量、队列深度等参数,以优化存储性能和提高并发访问能力。
通过以上内容,通过对存储协议的存储容量属性和队列数量属性进行配置,可以根据实际需求和应用场景,对虚拟存储设备进行定制化的存储协议配置,从而提高存储性能和灵活性,满足不同应用的存储需求。
作为一种可选的实施例,所述存储扩展装置中还部署了目标总线和总线接口,所述总线接口用于将连接在所述目标总线上的多个所述存储通道连接至所述第一存储设备,所述总线接口中具有所述目标总线的总线地址空间与所述第一存储设备的存储地址空间的映射关系,其中,
所述控制所述第一存储设备的所述参考存储空间执行所述第二数据访问,包括:
通过所述目标总线接收所述第二数据访问;
通过所述总线接口根据所述映射关系将所述第二数据访问转发至所述参考存储空间。
可选地,在本申请实施例中,总线接口为连接各个虚拟存储设备与存储设备端口的高带宽并行总线接口,带宽远大于PCIe的传输带宽,并能够以很低的延迟实现各虚拟存储设备与下游端口的数据传输。
作为一种可选的实施例,所述总线接口包括:总线仲裁单元和存储设备驱动单元,所述存储设备驱动单元中具有所述目标总线的总线地址空间与所述第一存储设备的存储地址空间的映射关系,其中,
所述通过所述总线接口根据所述映射关系将所述第二数据访问转发至所述参考存储空间,包括:
通过所述总线仲裁单元根据所述参考存储通道的优先级确定是否处理所述参考存储通道的总线访问;
在确定处理所述参考存储通道的总线访问的情况下,通过所述存储设备驱动单元根据所述映射关系将所述第二数据访问转发至所述参考存储空间。
可选地,在本申请实施例中,对于总线仲裁单元,当多个虚拟存储设备同时访问存储设备端口时会存在总线冲突的问题。本发明中的总线仲裁单元根据每个虚拟存储设备的不同优先级设置来进行仲裁,当总线访问冲突时决定谁来优先使用内部总线,以保证服务质量。在每个虚拟存储设备的配置空间中设置专门的优先级字段,如一个8bit的寄存器就可以对应256个优先级等级,数值越小优先级越高。
可选地,在本申请实施例中,内部总线接口具备NVMe设备驱动模块(存储设备驱动单元),用来与NVMe存储设备的控制器进行交互,完成NVMe存储设备的初始化工作,包括BAR空间内容读取及存储容量获取、中断与DMA配置、AER等硬件属性设置、配置CQ与SQ队列等。同时,在NVMe存储设备通过内部总线接口呈现给多个vDevice(虚拟存储设备)的过程中,NVMe驱动可实现NVMe存储设备的PCIe地址空间至内部总线地址空间的映射以供vDevice访问。
在本实施例中,总线接口为连接各个虚拟存储设备与存储设备端口的高带宽并行总线接口,带宽远大于PCIe的传输带宽,并能够以很低的延迟实现各虚拟存储设备与下游端口的数据传输。图4是根据本申请实施例的一种可选的总线接口示意图,如图4所示存储扩展装置中包括通过扩展逻辑模块和内部总线接口模块,通道扩展逻辑模块用于和服务器端口(服务器或者服务器上部署的虚拟机)连接,通道扩展逻辑还与内部总线接口连接,内部总线接口模块和存储设备端口(第一存储设备)连接,通道扩展逻辑模块用于在存储扩展装置上创建一个或者多个允许被服务器识别为第二存储设备的存储通道,内部总线接口包括总线仲裁单元、NVMe驱动单元(存储设备驱动单元)和***管理单元,其功能如下:
总线仲裁单元:当多个vDevice同时访问存储设备端口时会存在总线冲突的问题。本发明中的总线仲裁单元根据每个vDevice的不同优先级设置来进行仲裁,当总线访问冲突时决定谁来优先使用内部总线,以保证服务质量。在每个vDevice的配置空间中设置专门的优先级字段,如一个8bit的寄存器就可以对应256个优先级等级,数值越小优先级越高。
NVMe驱动单元:在本发明中,内部总线接口具备NVMe设备驱动模块,用来与NVMe存储设备的控制器进行交互,完成NVMe存储设备的初始化工作,包括BAR空间内容读取及存储容量获取、中断与DMA配置、AER等硬件属性设置、配置CQ与SQ队列等。同时,在NVMe存储设备通过内部总线接口呈现给多个vDevice的过程中,NVMe驱动可实现NVMe存储设备的PCIe地址空间至内部总线地址空间的映射以供vDevice访问。
***管理单元:***管理单元负责提供本发明的设备管理接口,实现vDevice添加与移除、vDevice存储容量配置、vDevice优先级管理、设备与运行信息上报等用户管理功能。由于vDevice全部由内部的逻辑单元实现,不涉及装置的外部接口,因此可根据应用场景灵活地修改。除了管理内部总线接口外,***管理单元还具备接收终端用户的设定,修改整个***包括vBridge与vDevice的参数设置、处理***异常事件等功能,以保证***的可靠运行。
作为一种可选的实施例,在所述控制所述第一存储设备的所述参考存储空间执行所述第二数据访问之后,所述方法还包括:
接收所述参考存储空间响应所述第二数据访问返回的访问结果信息;
将所述访问结果信息转发至所述参考存储通道;
通过所述参考存储通道将所述访问结果信息发送至所述服务器。
可选地,在本申请实施例中,参考存储空间响应第二数据访问返回的访问结果信息可以但不限与包括从参考存储空间中读取的数据,或者还可以是将待写入参考存储空间的数据协议参考存储空间后返回的写入结果,本方案对此不做限定。
可选地,在本申请实施例中,参考存储通道中可以但不限与保存了第二数据访问与服务器上发起数据访问的虚拟机的映射关系,进而参考存储通道根据该映射关系找到该访问结果信息对应的目标虚拟机,进而将访问结果反馈给服务器上的目标虚拟机。
可选地,在申请实施例中,存储扩展装置中可以但不限于为每个参考存储通道配置了对应的数据缓存空间,用于对参考存储通道中的数据进行缓存,进而,当参考存储通道在接收到访问结果信息时与服务器之间的数据传输链路处于占用状态的情况下,可以将访问结果信息在数据缓存空间中进行临时存储。
作为一种可选的实施例,所述将所述访问结果信息转发至所述参考存储通道,包括:
从所述访问结果信息中提取源地址,得到所述参考存储空间;
从所述存储扩展装置中建立的存储通道中确定所述参考存储空间所对应的所述参考存储通道;
向所述参考存储通道发送所述访问结果信息。
可选地,在本申请实施例中,参考存储通道可以但不限于是存储扩展装置根据存储的参考存储空间和存储通道的映射关系从一个或者多个存储通道中确定出来的,本方案对此不做限定。
作为一种可选的实施例,所述通过所述参考存储通道将所述访问结果信息发送至所述服务器,包括:
将所述访问结果信息中的源地址从所述参考存储空间替换为所述参考存储设备,得到参考访问结果信息;
向所述服务器发送所述参考访问结果信息。
作为一种可选的实施例,
所述方法还包括以下之一:
根据所述存储扩展装置上的资源信息,确定所述存储扩展装置中建立的存储通道的通道数量;
根据所述存储扩展装置上的资源信息和所述第一存储设备的设备信息,确定所述存储扩展装置中建立的存储通道的通道数量;
根据所述存储扩展装置上的资源信息,所述第一存储设备的设备信息,以及所述服务器上所部署的虚拟机的虚拟机信息,确定所述存储扩展装置中建立的存储通道的通道数量。
可选地,在本申请实施例中,存储扩展装置中的存储通道的数量可以根据需求灵活配置。
可选地,在本申请实施例中,存储扩展装置上的资源信息可以但不限于是存储资源的可利用空间容量,或者对存储资源按照目标粒度进行划分得到的多个候选存储空间的数量,每个候选存储空间对应一个存储通道。
可选地,在本申请实施例中,虚拟机信息可以但不限与包括当前服务器上部署的虚拟机总量、服务器上当前存储数据访问需求的虚拟机数量,本方案对此不做限定。
作为一种可选的实施例,所述根据所述存储扩展装置上的资源信息和所述第一存储设备的设备信息,确定所述存储扩展装置中建立的存储通道的通道数量,包括:
检测与所述第一存储设备的连接;
在检测到已连接至所述第一存储设备的情况下,加载存储设备驱动;
通过所述存储设备驱动从所述第一存储设备上获取所述设备信息;
根据所述存储扩展装置上的资源信息和所述第一存储设备的设备信息,确定所述一个或者多个存储通道的通道数量。
本申请存储扩展装置,由服务器端口、通道扩展逻辑、内部总线接口、存储设备端口共四部分组成,图5是根据本申请实施例的一种可选的存储设备连接***架构图,如图5所示,存储扩展装置包括服务器端口、通道扩展逻辑、内部总线接口、PCIe下游端口四部分,其功能如下:
1.服务器端口:
服务器端口是本发明所述的NVMe扩展装置与服务器CPU之间的硬件接口,负责与CPU的PCIe Root Complex之间建立物理连接。服务器端口包含PCIe物理层的电气属性与逻辑属性,可完成收发器、时钟、复位、等信号的传输与电源供给,实施串并转换、链路训练等功能,形态上可以为连接器、金手指,线缆等形式。
2.存储设备端口:
存储设备端口是本发明所述的NVMe扩展装置与NVMe存储设备之间的硬件接口,负责与NVMe存储设备之间建立连接。与服务器端口一样,存储设备端口包含PCIe协议中物理层中的电气与逻辑属性,能进行收发器、时钟、复位、等信号的传输与电源供给,并完成串并转换、链路训练等功能,形态上可以为连接器、金手指,线缆等形式。
3.通道扩展逻辑:
通道扩展逻辑是本发明的重要部分,负责在NVMe扩展装置内部动态创建多个虚拟PCIe设备(vEP),它们主要是由虚拟PCIe Bridge(vBridge)与虚拟PCIe设备(vDevice)所构成。通道扩展逻辑通过内部总线与所述的存储设备端口相连。对于服务器来说,这些vDevice与其它物理PCIe设备的属性相同,虚拟机管理软件(VMM)可以很容易的将它们分配给各虚拟机(VM)使用。对于下游NVMe存储设备来说,所述的NVMe扩展装置体现为一个NVMe主控设备,可以对NVMe存储设备进行读写与擦除等操作。通道扩展逻辑在内部分为上行与下行通道。下行通道的数据方向为CPU至NVMe设备方向,上行通道的数据方向为NVMe设备至CPU方向。
图6是根据本申请实施例的一种可选的存储扩展装置运行流程图,如图6所示,至少包括如下步骤:
S601,内部总线接口配置。通过下游PCIe端口枚举与管理NVMe存储设备(第一存储设别),加载驱动,获取设备信息。如PCIe位宽与速度等级、存储容量等,为后续vDevice的数量与容量参数配置提供信息。
S602,vDevice(虚拟存储设备)配置。内容包括DID/VID及BAR空间等PCIe属性配置,存储容量与队列数量等NVMe属性配置,以及缓存大小及优先级等私有属性配置。此工作由内部总线接口的***管理单元实施。
S603,vBridge(虚拟桥接设备,包括第一虚拟桥接设备和第二虚拟桥接设备)配置。本发明中vBridge用于在PCIe RC与vDevice之间转发数据包,且每个vBridge只连接一个vDevice下游设备,因此需在PCIe配置空间进行标准PCIe属性设置,下游设备的总线号等信息会在CPU枚举PCIe设备树时自动确定。此工作由内部总线接口的***管理单元实施。
S604,启动服务器OS,枚举PCIe总线设备,可成功枚举到N个Endpoint(vDevice)与N+1个Bridge(vBridge)设备。
S605,服务器加载NVMe标准驱动,进一步识别到N个NVMe设备。在虚拟机管理器(VMM)的作用下,将N个NVMe设备分配给多个虚拟机。
S606,每个虚拟机上的应用程序进行存储设备访问,经过 PCIe上游端口<->VBridge <->VDevice<->内部总线接口<->PCIe下游端口<->NVMe存储设备 数据通道最终访问到实体NVMe存储设备。
图7是根据本申请实施例的一种可选的存储设备访问流程图,如图7所示,至少包括如下步骤:
S701,通道扩展逻辑初始化vDevice(虚拟存储设备),vBridge (虚拟桥接设备,包括第一虚拟桥接设备和第二虚拟桥接设备)配置。CPU枚举PCIe设备树,识别到N个虚拟vDevice设备,并由VMM分配给各虚拟机。
S702,某虚拟机发起对其所属的vDevice的读写请求。CPU的PCIe RC根据所访问的地址范围,将请求发送至本发明中的上游端口。
S703,经过上游端口导入后,数据包经vBridge协议解析,根据PCIe ID号或地址空间范围转发至对应vDevice。
S704,在vDevice中依次进行PICe与NVMe协议的解析,再经过地址映射环节,将对vDevice的地址访问转换为对内部总线地址的访问。
S705,vDevice经总线仲裁获得总线使用权后,在NVMe驱动的协助下,将内部总线地址访问转换成对下游物理NVMe存储设备的读写访问,并发送至PCIe下游端口。
S706,经PCIe下游端口,访问请求被发送至NVMe 存储设备并处理。返回数据依次反向经过上述环节传递回CPU。
在本实施例中,通过引入本发明的NVMe存储设备扩展装置,使普通的NVMe SSD具备了硬件支持的类虚拟化功能,由FPGA中的通道扩展逻辑实现了协议解析、设备管理与地址映射等关键环节,解决了SR-IOV等传统虚拟化技术的复杂配置过程所带来的兼容性问题。
本申请实施例可以但不限于应用于对NVMe存储设备的扩展,通过在链路中增加一个NVMe通道扩展装置,实现单一NVMe存储设备可呈现给CPU多个虚拟NVMe设备。区别与现有的软件虚拟化方案与硬件PCIe Swich扩展方案,本发明同时具备硬件扩展方案的高效率与软件虚拟化方案的高灵活性。
NVMe通道扩展装置包含一个PCIe上游端口、一个PCIe下游端口、一个通道扩展逻辑与一个内部总线接口单元。
PCIe上游端口是本装置与服务器之间的硬件接口,负责与服务器CPU的PCIe RC之间建立物理连接;
PCIe下游端口是本装置与NVMe存储设备之间的硬件接口,负责与NVMe存储设备之间建立物理连接。
通道扩展逻辑通过创建多个PCIe桥设备(vBridge)与Endpoint设备(vDevice),完成各自的PCIe链路层与事务层的协议解析与转发,实现PCIe通道的扩展功能。
内部总线接口单元完成PCIe寻址空间与NVMe存储空间之间的地址映射, 实现多个扩展PCIe设备(vDevice)与NVMe存储设备间的多通道访问。
所述的PCIe上游端口与PCIe下游端口具备PCIe物理层的电气与逻辑功能,能进行收发器、时钟、复位、等信号的传输与电源供给,完成串并转换、链路训练等功能,形态上可以为连接器、金手指,线缆等形式。
所述的vBridge与vDevice能够实现PCIe数据链路层与事务层的协议解析与数据转发,不实现物理层、一致性测试、电源管理等非核心环节,节省硬件与逻辑资源,降低整体链路延迟。
所述的vBridge与vDevice,其数量可通过本发明中的***管理单元进行灵活调整。
所述的内部总线接口单元由总线总裁、NVMe驱动、***管理三个单元组成。
总线仲裁单元实现多个vDevice与一个NVMe存储设备通信时基于优先级的总线仲裁机制。
NVMe驱动单元实现了内部总线空间与NVMe存储空间的地址转换与访问控制。
***管理单元实现了通道扩展能力配置、运行信息上报、异常处理等管理功能。
在本实施例中还提供了一种存储扩展装置,图8是根据本申请实施例的一种可选的存储扩展装置结构图,如图8所示,包括:
服务器端口,处理芯片和存储设备端口,其中,所述服务器端口与所述处理芯片连接,所述处理芯片与所述存储设备端口连接,所述处理芯片中建立了一个或者多个存储通道,
所述服务器端口,用于连接服务器,其中,所述服务器上部署了一个或者多个虚拟机,所述一个或者多个存储通道允许被所述服务器识别为一个或者多个第二存储设备,所述一个或者多个第二存储设备在所述服务器上被分配给所述服务器上部署的虚拟机;
所述存储设备端口,用于连接第一存储设备,其中,所述存储通道在所述第一存储设备上被分配了对应的存储空间;
所述处理芯片用于实现前述存储设备的访问方法的步骤。
通过以上内容,在服务器和服务器部署的第一存储设备之间部署了存储扩展装置,该存储扩展装置建立的一个或者多个存储通道,该一个或者多个存储通道允许被服务器识别为一个或者多个第二存储设备,并分配给服务器上部署的虚拟机使用,从而实现在虚拟机侧能够认为每个虚拟机都连接有一个第二存储设备,进而,在存储扩展装置接收到服务器上参考虚拟机发送的数据访问请求后,通过一个或者多个存储通道中被识别为参考存储设备的为参考存储通道,将对参考存储设备的数据访问转换对第一存储设备中参考存储通道对应的存储空间的数据访问,从而实现只需要连接一个存储设备就可以为服务器上的多个虚拟机提供服务,实现了在不更改服务器对存储设备的使用逻辑和无需新增存储设备的前提下,实现对服务连接的存储设备的扩展,并且对于服务器来说仍然是每个虚拟机都提供一个独立的存储设备,使得对存储设备的扩展性能更高,通用性更强,同时更加灵活可靠。可以解决相关技术中对服务器连接的存储设备进行扩展时存储设备扩展效率较低的问题,达到提高对服务器连接的存储设备进行扩展时存储设备扩展效率的效果。
作为一种可选的实施例,所述处理芯片中部署了第一虚拟桥接设备,所述第一虚拟桥接设备与所述一个或者多个存储通道连接,所述第一虚拟桥接设备还用于连接所述服务器端口,并被所述服务器识别为连接了所述第二存储设备,所述第一虚拟桥接设备上记录了具有对应关系的所述第二存储设备和存储通道,其中,
所述第一虚拟桥接设备,用于在接收到第一数据访问的情况下,从具有对应关系的所述第二存储设备和存储通道中查找参考存储设备对应的参考存储通道,其中,所述参考存储设备是所述一个或者多个所述第二存储设备中被分配给发起数据访问请求的参考虚拟机的存储设备,所述参考存储通道为所述一个或者多个存储通道中被识别为所述参考存储设备的存储通道;将所述第一数据访问转发至所述参考存储通道。
作为一种可选的实施例,所述存储通道包括第二虚拟桥接设备和虚拟存储设备,所述第二虚拟桥接设备和所述第一虚拟桥接设备连接,所述第二虚拟桥接设备和所述虚拟存储设备连接,所述虚拟存储设备和所述第一存储设备连接,其中,
所述第二虚拟桥接设备,用于在接收到所述第一数据访问的情况下,将所述第一数据访问转发至所述第二虚拟桥接设备连接的所述虚拟存储设备;
所述虚拟存储设备,用于将所述第一数据访问转换为对第一存储设备中所述参考存储通道对应的存储空间进行访问的第二数据访问。
可选地,在本申请实施例中,处理芯片中部署了数据存储资源,用于对虚拟存储设备需要在第一存储设备中访问的数据进行临时存储,对于存储扩展装置中建立的一个或者多个存储通道而言,处理芯片需要根据存储通道的创建数量对数据存储资源进行分配,在分配时可以按照各个存储通道的资源需求进行分配,或者还可以对数据存储资源按照存储通道的创建数量进行均分,本方案对此不做限定。
作为一种可选的实施例,所述存储扩展装置中还部署了外接存储设备,所述外接存储设备与所述虚拟存储设备连接,其中,
所述外接存储设备,用于对所述虚拟存储设备在所述第一存储设备中所要访问的数据进行缓存。
可选地,在本申请实施例中,外接存储设备用于在处理芯片的数据存储资源不够用时,为存储通道提供数据存储服务,可以为每个存储通道配置一个外接存储设备,或者还可以将多个存储通道连接在一个共用的外接存储设备上,使用该外接存储设备对全部存储通道提供数据存储服务。
作为一种可选的实施例,所述处理芯片中还部署了目标处理器,所述目标处理器通过内部高速总线和所述一个或者多个存储通道连接,所述目标处理器还和所述存储设备端口连接,其中,
所述目标处理器,用于响应所述存储通道传输的数据访问请求,对所述第一存储设备进行存储控制和数据访问。
可选地,在本申请实施例中,存储扩展装置可以但不限于配置有与目标处理器连接的存储设备,如DDR存储器,DDR的支持下运行Linux操作***,在标准NVMe的驱动下实现对NVMe存储设备的管理与访问。
本申请处理芯片可以但不限于通过一张PCIe Add-in卡形态的FPGA加速器实现了NVMe存储设备的虚拟化。它包含两个PCIe端口,本实施例中将一个配置成PCIe EndPoint接口(服务器端口),以金手指连接服务器CPU;另一个PCIe端口配置成PCIe RC接口(存储设备端口),通过一个MCIO连接器连接下游的NVMe存储设备。在FPGA(处理芯片)的IP中实现了本发明中的PCIe通道扩展逻辑,并通过NVMe驱动IP实现了对NVMe存储设备的管理与访问。图9是根据本申请实施例的一种可选的存储扩展装置结构框图,如图9所示,PCIe上游端口(服务器端口)为PCIe金手指形态,用于***服务器的PCIe插槽,连接器CPU的PCIeRC接口。PCIe下游端口(存储设备端口)为一个MCIO形态的高速连接器,可通过线缆连接一个NVMe SSD。在通道扩展逻辑中根据FPGA的资源情况,一共设置了16个vBridge(第二虚拟桥接设备)以及对应的vDevice,它们共享了一块下游端口所连接的8TB的NVMe存储设备(第一存储设备),每个vDevice(虚拟存储设备)平均分配到512GB容量。在虚拟机管理器(VMM)的支持下,将16个vDevice(虚拟存储设备)分配给了16个不同的虚拟机,用于存储频繁变化且对安全性要求相对较低的用户数据。在FPGA内部除了包含逻辑单元(PL侧)之外,还包含以四核ARMA53处理器为核心的处理器单元(PS侧)。PS侧在外部DDR的支持下运行Linux操作***,在标准NVMe的驱动下实现对NVMe存储设备的管理与访问。PL侧也配置了8GB的外部DDR,当FPGA内部的SRAM资源不够时可用作vDevice的数据缓存。***管理功能是通过SMBUS总线实现的。通过SMBUS总线,存储虚拟化设备可以接收来自服务器的带外指令,实现虚拟机数量设置、vDevice优先级设置、数据缓存调整、虚拟容量分配等***性能设置,也可以实现整个装置的功耗、温度等设备信息读取,以及***复位与上下电等操作。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
在本实施例中还提供了一种存储设备的访问装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图10是根据本申请实施例的存储设备的访问装置的结构框图,如图10所示,
应用于存储扩展装置,所述存储扩展装置连接在第一存储设备与服务器之间,所述服务器上部署了一个或者多个虚拟机,所述存储扩展装置中建立了一个或者多个允许被所述服务器识别为第二存储设备的存储通道,所述第二存储设备被分配给所述服务器上部署的虚拟机,所述存储通道在所述第一存储设备上被分配了对应的存储空间,所述装置包括:
接收模块1002,用于接收参考虚拟机发送的数据访问请求,其中,所述一个或者多个虚拟机包括所述参考虚拟机,所述数据访问请求用于请求对所述第二存储设备中被分配给所述参考虚拟机的参考存储设备进行第一数据访问;
转换模块1004,用于响应所述数据访问请求,通过参考存储通道将所述第一数据访问转换为第二数据访问,其中,所述参考存储通道是所述存储扩展装置中建立的存储通道中被识别为所述参考存储设备的存储通道,所述第二数据访问是对所述第一存储设备中与所述参考存储通道对应的参考存储空间的数据访问;
控制模块1006,用于控制所述第一存储设备的所述参考存储空间执行所述第二数据访问。
通过以上内容,在服务器和服务器部署的第一存储设备之间部署了存储扩展装置,该存储扩展装置建立的一个或者多个存储通道,该一个或者多个存储通道允许被服务器识别为一个或者多个第二存储设备,并分配给服务器上部署的虚拟机使用,从而实现在虚拟机侧能够认为每个虚拟机都连接有一个第二存储设备,进而,在存储扩展装置接收到服务器上参考虚拟机发送的数据访问请求后,通过一个或者多个存储通道中被识别为参考存储设备的为参考存储通道,将对参考存储设备的数据访问转换对第一存储设备中参考存储通道对应的存储空间的数据访问,从而实现只需要连接一个存储设备就可以为服务器上的多个虚拟机提供服务,实现了在不更改服务器对存储设备的使用逻辑和无需新增存储设备的前提下,实现对服务连接的存储设备的扩展,并且对于服务器来说仍然是每个虚拟机都提供一个独立的存储设备,使得对存储设备的扩展性能更高,通用性更强,同时更加灵活可靠。可以解决相关技术中对服务器连接的存储设备进行扩展时存储设备扩展效率较低的问题,达到提高对服务器连接的存储设备进行扩展时存储设备扩展效率的效果。
可选的,所述转换模块,包括:
第一确定单元,用于从所述存储扩展装置中建立的存储通道中确定被识别为所述参考存储设备的参考存储通道;
转发单元,用于将所述第一数据访问转发至所述参考存储通道;
第一转换单元,用于通过所述参考存储通道将所述第一数据访问转换为所述第二数据访问。
可选的,所述存储扩展装置中还部署了第一虚拟桥接设备 ,所述第一虚拟桥接设备与所述存储扩展装置中建立的存储通道连接,所述第一虚拟桥接设备还用于连接所述服务器并被所述服务器识别为连接了所述存储扩展装置中建立的第二存储设备,所述第一虚拟桥接设备上记录了具有对应关系的第二存储设备和存储通道,其中,
所述第一确定单元,用于:通过所述第一虚拟桥接设备从具有对应关系的第二存储设备和存储通道中查找所述参考存储设备所对应的所述参考存储通道;
所述将所述第一数据访问转发至所述参考存储通道,包括:通过所述第一虚拟桥接设备将所述第一数据访问转发至所述参考存储通道。
可选的,所述第一确定单元,用于:
通过所述第一虚拟桥接设备从所述数据访问请求中提取所述参考存储设备的参***标识;
通过所述第一虚拟桥接设备从具有对应关系的存储设备标识和存储通道中查找所述参***标识所对应的所述参考存储通道,其中,所述存储设备标识是被分配给对应的存储通道的允许被识别为存储设备的设备标识。
可选的,所述装置还包括:
第一创建模块,用于在所述存储扩展装置中创建初始的虚拟桥接设备;
第一配置模块,用于在所述初始的虚拟桥接设备的协议配置空间对所述初始的虚拟桥接设备进行传输协议的第一属性配置,得到所述第一虚拟桥接设备,其中,所述服务器与所述存储扩展装置是通过符合所述传输协议的协议总线连接的,所述第一属性是允许被所述服务器识别为符合所述传输协议的桥接设备的协议属性;
处理模块,用于建立所述第一虚拟桥接设备与所述存储扩展装置中建立的存储通道之间的连接,并记录具有对应关系的第二存储设备和存储通道。
可选的,所述存储通道包括第二虚拟桥接设备 和虚拟存储设备 ,所述第一虚拟桥接设备与所述第二虚拟桥接设备连接,所述第二虚拟桥接设备与所述虚拟存储设备连接,所述虚拟存储设备用于连接所述第一存储设备,其中,
所述转换模块,包括:
第一接收单元,用于通过所述参考存储通道中的所述第二虚拟桥接设备接收所述第一数据访问;
传输单元,用于通过所述参考存储通道中的所述第二虚拟桥接设备将所述第一数据访问传输至所述参考存储通道中的所述虚拟存储设备;
第二转换单元,用于通过所述参考存储通道中的所述虚拟存储设备将所述第一数据访问转换为所述第二数据访问。
可选的,所述第二转换单元,用于:
通过所述参考存储通道中的所述虚拟存储设备获取所述第一数据访问所指示访问的第一访问地址,其中,所述第一访问地址是所述参考虚拟机指示访问的所述参考存储设备的虚拟地址;
通过所述参考存储通道中的所述虚拟存储设备从具有对应关系的虚拟地址范围和存储地址范围中查询所述第一访问地址所对应的第一存储地址,其中,所述虚拟地址范围是所述参考存储设备被所述服务器所识别的地址范围,所述存储地址范围是所述参考存储通道中的所述虚拟存储设备在所述第一存储设备上被分配了的存储空间的地址范围;
将所述第一数据访问中的所述第一访问地址替换为所述第一存储地址,得到所述第二数据访问。
可选的,所述第二转换单元,用于:
通过所述参考存储通道中的所述虚拟存储设备从所述参考存储设备的传输协议的寻址空间与所述第一存储设备的存储协议的存储空间之间的地址映射中查询所述第一访问地址所映射的所述第一存储地址,其中,所述参考存储设备被所述服务器识别为符合所述传输协议的设备,所述虚拟地址范围包括所述传输协议的寻址空间,所述第一存储设备为所述存储协议的存储设备,所述存储地址范围包括所述存储协议的存储空间。
可选的,所述装置还包括:
第二创建模块,用于在所述存储扩展装置中创建多组初始虚拟桥接设备和初始虚拟存储设备;
第二配置模块,用于在所述初始虚拟桥接设备的协议配置空间对所述初始虚拟桥接设备进行传输协议的第二属性配置,得到所述第二虚拟桥接设备,其中,所述服务器与所述存储扩展装置是通过符合所述传输协议的协议总线连接的,所述第二属性是允许被所述服务器识别为符合所述传输协议的桥接设备的协议属性;
第三配置模块,用于在所述初始虚拟存储设备的传输协议配置空间对所述初始虚拟存储设备进行传输协议的第三属性配置,并在所述初始虚拟存储设备的存储协议配置空间对所述初始虚拟存储设备进行存储协议的第四属性配置,得到所述虚拟存储设备,其中,所述第一存储设备是符合所述存储协议的存储设备,所述第三属性是允许被所述服务器识别为符合所述传输协议的终端设备的协议属性,所述第四属性是允许被所述服务器识别为符合所述存储协议的存储设备的协议属性。
可选的,所述虚拟存储设备中部署了协议解析单元,所述第三配置模块,包括:
配置单元,用于在所述初始虚拟存储设备的传输协议配置空间对所述初始虚拟存储设备进行所述传输协议的数据链路层属性的配置和事务层属性的配置,其中,所述第三属性配置包括:所述数据链路层属性和所述事务层属性,所述协议解析单元用于使用所述数据链路层属性对接收到的数据访问进行数据链路层的协议解析,和/或,使用所述事务层属性对接收到的数据访问进行事务层的协议解析。
可选的,所述配置单元,用于:
在所述初始虚拟存储设备的存储协议配置空间对所述初始虚拟存储设备进行所述存储协议的存储容量属性的配置和队列数量属性的配置,其中,所述第四属性配置包括:所述存储容量属性和所述队列数量属性,所述存储容量属性和所述队列数量属性用于被所述服务器识别为符合所述存储协议的存储设备。
可选的,所述存储扩展装置中还部署了目标总线和总线接口,所述总线接口用于将连接在所述目标总线上的多个所述存储通道连接至所述第一存储设备,所述总线接口中具有所述目标总线的总线地址空间与所述第一存储设备的存储地址空间的映射关系,其中,
所述执行模块,包括:
第二接收单元,用于通过所述目标总线接收所述第二数据访问;
转发单元,用于通过所述总线接口根据所述映射关系将所述第二数据访问转发至所述参考存储空间。
可选的,所述总线接口包括:总线仲裁单元和存储设备驱动单元,所述存储设备驱动单元中具有所述目标总线的总线地址空间与所述第一存储设备的存储地址空间的映射关系,其中,
所述转发单元,用于:
通过所述总线仲裁单元根据所述参考存储通道的优先级确定是否处理所述参考存储通道的总线访问;
在确定处理所述参考存储通道的总线访问的情况下,通过所述存储设备驱动单元根据所述映射关系将所述第二数据访问转发至所述参考存储空间。
可选的,所述装置还包括:
接收模块,用于在所述控制所述第一存储设备的所述参考存储空间执行所述第二数据访问之后,接收所述参考存储空间响应所述第二数据访问返回的访问结果信息;
转发模块,用于将所述访问结果信息转发至所述参考存储通道;
发送模块,用于通过所述参考存储通道将所述访问结果信息发送至所述服务器。
可选的,所述转发模块,包括:
提取单元,用于从所述访问结果信息中提取源地址,得到所述参考存储空间;
第二确定单元,用于从所述存储扩展装置中建立的存储通道中确定所述参考存储空间所对应的所述参考存储通道;
发送单元,用于向所述参考存储通道发送所述访问结果信息。
可选的,所述发送单元,用于:
将所述访问结果信息中的源地址从所述参考存储空间替换为所述参考存储设备,得到参考访问结果信息;
向所述服务器发送所述参考访问结果信息。
可选的,所述装置还包括以下之一:
第一确定模块,用于根据所述存储扩展装置上的资源信息,确定所述存储扩展装置中建立的存储通道的通道数量;
第二确定模块,用于根据所述存储扩展装置上的资源信息和所述第一存储设备的设备信息,确定所述存储扩展装置中建立的存储通道的通道数量;
第三确定模块,用于根据所述存储扩展装置上的资源信息,所述第一存储设备的设备信息,以及所述服务器上所部署的虚拟机的虚拟机信息,确定所述存储扩展装置中建立的存储通道的通道数量。
可选的,所述第一确定模块,包括:
检测单元,用于检测与所述第一存储设备的连接;
加载单元,用于在检测到已连接至所述第一存储设备的情况下,加载存储设备驱动;
获取单元,用于通过所述存储设备驱动从所述第一存储设备上获取所述设备信息;
确定单元,用于根据所述存储扩展装置上的资源信息和所述第一存储设备的设备信息,确定所述存储扩展装置中建立的存储通道的通道数量。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
本申请的实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
在一个示例性实施例中,上述计算机可读存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
本申请的实施例还提供了一种电子设备,上述电子设备包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
在一个示例性实施例中,上述电子设备还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
本实施例中的具体示例可以参考上述实施例及示例性实施方式中所描述的示例,本实施例在此不再赘述。
显然,本领域的技术人员应该明白,上述的本申请的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请不限制于任何特定的硬件和软件结合。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (20)
1.一种存储设备的访问方法,其特征在于,
应用于存储扩展装置,所述存储扩展装置连接在第一存储设备与服务器之间,所述服务器上部署了一个或者多个虚拟机,所述存储扩展装置中建立了一个或者多个允许被所述服务器识别为第二存储设备的存储通道,所述第二存储设备被分配给所述服务器上部署的虚拟机,所述存储通道在所述第一存储设备上被分配了对应的存储空间,所述方法包括:
接收参考虚拟机发送的数据访问请求,其中,所述一个或者多个虚拟机包括所述参考虚拟机,所述数据访问请求用于请求对所述第二存储设备中被分配给所述参考虚拟机的参考存储设备进行第一数据访问;
响应所述数据访问请求,通过参考存储通道将所述第一数据访问转换为第二数据访问,其中,所述参考存储通道是所述存储扩展装置中建立的存储通道中被识别为所述参考存储设备的存储通道,所述第二数据访问是对所述第一存储设备中与所述参考存储通道对应的参考存储空间的数据访问;
控制所述第一存储设备的所述参考存储空间执行所述第二数据访问;
所述通过参考存储通道将所述第一数据访问转换为第二数据访问,包括:从所述存储扩展装置中建立的存储通道中确定被识别为所述参考存储设备的参考存储通道;将所述第一数据访问转发至所述参考存储通道;通过所述参考存储通道将所述第一数据访问转换为所述第二数据访问;
所述存储扩展装置中还部署了第一虚拟桥接设备,所述第一虚拟桥接设备与所述存储扩展装置中建立的存储通道连接,所述第一虚拟桥接设备还用于连接所述服务器并被所述服务器识别为连接了所述第二存储设备,所述第一虚拟桥接设备上记录了具有对应关系的第二存储设备和存储通道,其中,所述从所述存储扩展装置中建立的存储通道中确定被识别为所述参考存储设备的参考存储通道,包括:通过所述第一虚拟桥接设备从具有对应关系的第二存储设备和存储通道中查找所述参考存储设备所对应的所述参考存储通道;所述将所述第一数据访问转发至所述参考存储通道,包括:通过所述第一虚拟桥接设备将所述第一数据访问转发至所述参考存储通道。
2.根据权利要求1所述的方法,其特征在于,
所述通过所述第一虚拟桥接设备从具有对应关系的第二存储设备和存储通道中查找所述参考存储设备所对应的所述参考存储通道,包括:
通过所述第一虚拟桥接设备从所述数据访问请求中提取所述参考存储设备的参***标识;
通过所述第一虚拟桥接设备从具有对应关系的存储设备标识和存储通道中查找所述参***标识所对应的所述参考存储通道,其中,所述存储设备标识是被分配给对应的存储通道的允许被识别为存储设备的设备标识。
3.根据权利要求2所述的方法,其特征在于,
所述方法还包括:
在所述存储扩展装置中创建初始的虚拟桥接设备;
在所述初始的虚拟桥接设备的协议配置空间对所述初始的虚拟桥接设备进行传输协议的第一属性配置,得到所述第一虚拟桥接设备,其中,所述服务器与所述存储扩展装置是通过符合所述传输协议的协议总线连接的,所述第一属性是允许被所述服务器识别为符合所述传输协议的桥接设备的协议属性;
建立所述第一虚拟桥接设备与所述存储扩展装置中建立的存储通道之间的连接,并记录具有对应关系的第二存储设备和存储通道。
4.根据权利要求1所述的方法,其特征在于,
所述存储通道包括第二虚拟桥接设备和虚拟存储设备,第一虚拟桥接设备与所述第二虚拟桥接设备连接,所述第二虚拟桥接设备与所述虚拟存储设备连接,所述虚拟存储设备用于连接所述第一存储设备,其中,
所述通过所述参考存储通道将所述第一数据访问转换为所述第二数据访问,包括:
通过所述参考存储通道中的所述第二虚拟桥接设备接收所述第一数据访问;
通过所述参考存储通道中的所述第二虚拟桥接设备将所述第一数据访问传输至所述参考存储通道中的所述虚拟存储设备;
通过所述参考存储通道中的所述虚拟存储设备将所述第一数据访问转换为所述第二数据访问。
5.根据权利要求4所述的方法,其特征在于,
所述通过所述参考存储通道中的所述虚拟存储设备将所述第一数据访问转换为所述第二数据访问,包括:
通过所述参考存储通道中的所述虚拟存储设备获取所述第一数据访问所指示访问的第一访问地址,其中,所述第一访问地址是所述参考虚拟机指示访问的所述参考存储设备的虚拟地址;
通过所述参考存储通道中的所述虚拟存储设备从具有对应关系的虚拟地址范围和存储地址范围中查询所述第一访问地址所对应的第一存储地址,其中,所述虚拟地址范围是所述参考存储设备被所述服务器所识别的地址范围,所述存储地址范围是所述参考存储通道中的所述虚拟存储设备在所述第一存储设备上被分配了的存储空间的地址范围;
将所述第一数据访问中的所述第一访问地址替换为所述第一存储地址,得到所述第二数据访问。
6.根据权利要求5所述的方法,其特征在于,
所述通过所述参考存储通道中的所述虚拟存储设备从具有对应关系的虚拟地址范围和存储地址范围中查询所述第一访问地址所对应的第一存储地址,包括:
通过所述参考存储通道中的所述虚拟存储设备从所述参考存储设备的传输协议的寻址空间与所述第一存储设备的存储协议的存储空间之间的地址映射中查询所述第一访问地址所映射的所述第一存储地址,其中,所述参考存储设备被所述服务器识别为符合所述传输协议的设备,所述虚拟地址范围包括所述传输协议的寻址空间,所述第一存储设备为所述存储协议的存储设备,所述存储地址范围包括所述存储协议的存储空间。
7.根据权利要求4所述的方法,其特征在于,
所述方法还包括:
在所述存储扩展装置中创建多组初始虚拟桥接设备和初始虚拟存储设备;
在所述初始虚拟桥接设备的协议配置空间对所述初始虚拟桥接设备进行传输协议的第二属性配置,得到所述第二虚拟桥接设备,其中,所述服务器与所述存储扩展装置是通过符合所述传输协议的协议总线连接的,所述第二属性是允许被所述服务器识别为符合所述传输协议的桥接设备的协议属性;
在所述初始虚拟存储设备的传输协议配置空间对所述初始虚拟存储设备进行传输协议的第三属性配置,并在所述初始虚拟存储设备的存储协议配置空间对所述初始虚拟存储设备进行存储协议的第四属性配置,得到所述虚拟存储设备,其中,所述第一存储设备是符合所述存储协议的存储设备,所述第三属性是允许被所述服务器识别为符合所述传输协议的终端设备的协议属性,所述第四属性是允许被所述服务器识别为符合所述存储协议的存储设备的协议属性。
8.根据权利要求7所述的方法,其特征在于,
所述虚拟存储设备中部署了协议解析单元,所述在所述初始虚拟存储设备的传输协议配置空间对所述初始虚拟存储设备进行传输协议的第三属性配置,包括:
在所述初始虚拟存储设备的传输协议配置空间对所述初始虚拟存储设备进行所述传输协议的数据链路层属性的配置和事务层属性的配置,其中,所述第三属性配置包括:所述数据链路层属性和所述事务层属性,所述协议解析单元用于使用所述数据链路层属性对接收到的数据访问进行数据链路层的协议解析,和/或,使用所述事务层属性对接收到的数据访问进行事务层的协议解析。
9.根据权利要求8所述的方法,其特征在于,
所述在所述初始虚拟存储设备的存储协议配置空间对所述初始虚拟存储设备进行存储协议的第四属性配置,包括:
在所述初始虚拟存储设备的存储协议配置空间对所述初始虚拟存储设备进行所述存储协议的存储容量属性的配置和队列数量属性的配置,其中,所述第四属性配置包括:所述存储容量属性和所述队列数量属性,所述存储容量属性和所述队列数量属性用于被所述服务器识别为符合所述存储协议的存储设备。
10.根据权利要求1所述的方法,其特征在于,
所述存储扩展装置中还部署了目标总线和总线接口,所述总线接口用于将连接在所述目标总线上的多个所述存储通道连接至所述第一存储设备,所述总线接口中具有所述目标总线的总线地址空间与所述第一存储设备的存储地址空间的映射关系,其中,
所述控制所述第一存储设备的所述参考存储空间执行所述第二数据访问,包括:
通过所述目标总线接收所述第二数据访问;
通过所述总线接口根据所述映射关系将所述第二数据访问转发至所述参考存储空间。
11.根据权利要求10所述的方法,其特征在于,
所述总线接口包括:总线仲裁单元和存储设备驱动单元,所述存储设备驱动单元中具有所述目标总线的总线地址空间与所述第一存储设备的存储地址空间的映射关系,其中,
所述通过所述总线接口根据所述映射关系将所述第二数据访问转发至所述参考存储空间,包括:
通过所述总线仲裁单元根据所述参考存储通道的优先级确定是否处理所述参考存储通道的总线访问;
在确定处理所述参考存储通道的总线访问的情况下,通过所述存储设备驱动单元根据所述映射关系将所述第二数据访问转发至所述参考存储空间。
12.一种存储扩展装置,其特征在于,
包括:
服务器端口,处理芯片和存储设备端口,其中,所述服务器端口与所述处理芯片连接,所述处理芯片与所述存储设备端口连接,所述处理芯片中建立了一个或者多个存储通道,
所述服务器端口,用于连接服务器,其中,所述服务器上部署了一个或者多个虚拟机,所述一个或者多个存储通道允许被所述服务器识别为一个或者多个第二存储设备,所述一个或者多个第二存储设备在所述服务器上被分配给所述服务器上部署的虚拟机;
所述存储设备端口,用于连接第一存储设备,其中,所述存储通道在所述第一存储设备上被分配了对应的存储空间;
所述处理芯片上部署了权利要求1至11任一项中所述的方法。
13.根据权利要求12所述的存储扩展装置,其特征在于,
所述处理芯片中部署了第一虚拟桥接设备,所述第一虚拟桥接设备与所述一个或者多个存储通道连接,所述第一虚拟桥接设备还用于连接所述服务器端口,并被所述服务器识别为连接了所述第二存储设备,所述第一虚拟桥接设备上记录了具有对应关系的所述第二存储设备和存储通道,其中,
所述第一虚拟桥接设备,用于在接收到第一数据访问的情况下,从具有对应关系的所述第二存储设备和存储通道中查找参考存储设备对应的参考存储通道,其中,所述参考存储设备是所述一个或者多个所述第二存储设备中被分配给发起数据访问请求的参考虚拟机的存储设备,所述参考存储通道为所述一个或者多个存储通道中被识别为所述参考存储设备的存储通道;将所述第一数据访问转发至所述参考存储通道。
14.根据权利要求13所述的存储扩展装置,其特征在于,
所述存储通道包括第二虚拟桥接设备和虚拟存储设备,所述第二虚拟桥接设备和所述第一虚拟桥接设备连接,所述第二虚拟桥接设备和所述虚拟存储设备连接,所述虚拟存储设备和所述第一存储设备连接,其中,
所述第二虚拟桥接设备,用于在接收到所述第一数据访问的情况下,将所述第一数据访问转发至所述第二虚拟桥接设备连接的所述虚拟存储设备;
所述虚拟存储设备,用于将所述第一数据访问转换为对第一存储设备中所述参考存储通道对应的存储空间进行访问的第二数据访问。
15.根据权利要求14所述的存储扩展装置,其特征在于,
所述存储扩展装置中还部署了外接存储设备,所述外接存储设备与所述虚拟存储设备连接,其中,
所述外接存储设备,用于对所述虚拟存储设备在所述第一存储设备中所要访问的数据进行缓存。
16.根据权利要求13所述的存储扩展装置,其特征在于,
所述处理芯片中还部署了目标处理器,所述目标处理器通过内部高速总线和所述一个或者多个存储通道连接,所述目标处理器还和所述存储设备端口连接,其中,
所述目标处理器,用于响应所述存储通道传输的数据访问请求,对所述第一存储设备进行存储控制和数据访问。
17.一种存储设备的访问装置,其特征在于,
应用于存储扩展装置,所述存储扩展装置连接在第一存储设备与服务器之间,所述服务器上部署了一个或者多个虚拟机,所述存储扩展装置中建立了一个或者多个允许被所述服务器识别为第二存储设备的存储通道,所述第二存储设备被分配给所述服务器上部署的虚拟机,所述存储通道在所述第一存储设备上被分配了对应的存储空间,所述装置包括:
接收模块,用于接收参考虚拟机发送的数据访问请求,其中,所述一个或者多个虚拟机包括所述参考虚拟机,所述数据访问请求用于请求对所述第二存储设备中被分配给所述参考虚拟机的参考存储设备进行第一数据访问;
转换模块,用于响应所述数据访问请求,通过参考存储通道将所述第一数据访问转换为第二数据访问,其中,所述参考存储通道是所述存储扩展装置中建立的存储通道中被识别为所述参考存储设备的存储通道,所述第二数据访问是对所述第一存储设备中与所述参考存储通道对应的参考存储空间的数据访问;
控制模块,用于控制所述第一存储设备的所述参考存储空间执行所述第二数据访问;
所述转换模块,包括:第一确定单元,用于从所述存储扩展装置中建立的存储通道中确定被识别为所述参考存储设备的参考存储通道;转发单元,用于将所述第一数据访问转发至所述参考存储通道;第一转换单元,用于通过所述参考存储通道将所述第一数据访问转换为所述第二数据访问;
所述存储扩展装置中还部署了第一虚拟桥接设备 ,所述第一虚拟桥接设备与所述存储扩展装置中建立的存储通道连接,所述第一虚拟桥接设备还用于连接所述服务器并被所述服务器识别为连接了所述存储扩展装置中建立的第二存储设备,所述第一虚拟桥接设备上记录了具有对应关系的第二存储设备和存储通道,其中,所述第一确定单元,用于:通过所述第一虚拟桥接设备从具有对应关系的第二存储设备和存储通道中查找所述参考存储设备所对应的所述参考存储通道;所述将所述第一数据访问转发至所述参考存储通道,包括:通过所述第一虚拟桥接设备将所述第一数据访问转发至所述参考存储通道。
18.一种计算机可读存储介质,其特征在于,
所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被处理器执行时实现权利要求1至11任一项中所述的方法的步骤。
19.一种电子设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,
所述处理器执行所述计算机程序时实现权利要求1至11任一项中所述的方法的步骤。
20.一种计算机程序产品,包括计算机程序,其特征在于,
所述计算机程序被处理器执行时实现权利要求1至11任一项中所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410376341.2A CN117971135B (zh) | 2024-03-29 | 2024-03-29 | 存储设备的访问方法、装置、存储介质和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410376341.2A CN117971135B (zh) | 2024-03-29 | 2024-03-29 | 存储设备的访问方法、装置、存储介质和电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117971135A CN117971135A (zh) | 2024-05-03 |
CN117971135B true CN117971135B (zh) | 2024-06-14 |
Family
ID=90846433
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410376341.2A Active CN117971135B (zh) | 2024-03-29 | 2024-03-29 | 存储设备的访问方法、装置、存储介质和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117971135B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116774933A (zh) * | 2023-06-19 | 2023-09-19 | 北京火山引擎科技有限公司 | 存储设备的虚拟化处理方法、桥接设备、***及介质 |
CN117608757A (zh) * | 2023-12-01 | 2024-02-27 | 北京火山引擎科技有限公司 | 存储设备控制方法、装置、电子设备及存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115794669A (zh) * | 2021-09-11 | 2023-03-14 | 华为技术有限公司 | 一种扩展内存的方法、装置及相关设备 |
CN115421854A (zh) * | 2022-08-24 | 2022-12-02 | 阿里巴巴(中国)有限公司 | 存储***、方法以及硬件卸载卡 |
-
2024
- 2024-03-29 CN CN202410376341.2A patent/CN117971135B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116774933A (zh) * | 2023-06-19 | 2023-09-19 | 北京火山引擎科技有限公司 | 存储设备的虚拟化处理方法、桥接设备、***及介质 |
CN117608757A (zh) * | 2023-12-01 | 2024-02-27 | 北京火山引擎科技有限公司 | 存储设备控制方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN117971135A (zh) | 2024-05-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200278880A1 (en) | Method, apparatus, and system for accessing storage device | |
US10534552B2 (en) | SR-IOV-supported storage resource access method and storage controller and storage device | |
CN112534418B (zh) | 通过固定pcie物理传输网络的逻辑传输 | |
US8645594B2 (en) | Driver-assisted base address register mapping | |
US11829309B2 (en) | Data forwarding chip and server | |
WO2019233322A1 (zh) | 资源池的管理方法、装置、资源池控制单元和通信设备 | |
US8566416B2 (en) | Method and system for accessing storage device | |
US11741039B2 (en) | Peripheral component interconnect express device and method of operating the same | |
EP3716084A1 (en) | Apparatus and method for sharing a flash device among multiple masters of a computing platform | |
US11314673B2 (en) | Configurable multi-function PCIe endpoint controller in an SoC | |
WO2023174146A1 (zh) | 卸载卡命名空间管理、输入输出请求处理***和方法 | |
US11966585B2 (en) | Storage device and storage system | |
WO2024113704A1 (zh) | 一种pcie数据传输方法及相关装置 | |
US8032675B2 (en) | Dynamic memory buffer allocation method and system | |
US10176133B2 (en) | Smart device with no AP | |
WO2023186143A1 (zh) | 一种数据处理方法、主机及相关设备 | |
CN117971135B (zh) | 存储设备的访问方法、装置、存储介质和电子设备 | |
US20060277326A1 (en) | Data transfer system and method | |
US20200327091A1 (en) | Device communication control module and device communication control method | |
JP4432388B2 (ja) | 入出力制御装置 | |
CN114238156A (zh) | 处理***以及操作处理***的方法 | |
US20230350824A1 (en) | Peripheral component interconnect express device and operating method thereof | |
JP4930554B2 (ja) | 入出力制御装置 | |
US20180181440A1 (en) | Resource allocation system, apparatus allocation controller and apparatus recognizing method | |
CN117725011A (zh) | 主机桥接设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |