CN117591037B - 一种虚拟化数据访问系统、方法、装置及服务器 - Google Patents
一种虚拟化数据访问系统、方法、装置及服务器 Download PDFInfo
- Publication number
- CN117591037B CN117591037B CN202410071029.2A CN202410071029A CN117591037B CN 117591037 B CN117591037 B CN 117591037B CN 202410071029 A CN202410071029 A CN 202410071029A CN 117591037 B CN117591037 B CN 117591037B
- Authority
- CN
- China
- Prior art keywords
- address
- target
- virtual
- raid
- data access
- 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 27
- 230000004044 response Effects 0.000 claims abstract description 89
- 238000006243 chemical reaction Methods 0.000 claims description 36
- 238000013507 mapping Methods 0.000 claims description 31
- 238000004458 analytical method Methods 0.000 claims description 3
- 230000006870 function Effects 0.000 description 46
- 238000010586 diagram Methods 0.000 description 18
- 238000013519 translation Methods 0.000 description 10
- 230000001133 acceleration Effects 0.000 description 8
- 238000007726 management method Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 5
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000003321 amplification Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000003199 nucleic acid amplification method Methods 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000034184 interaction with host Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
- G06F3/0664—Virtualisation aspects at device level, e.g. emulation of a storage device or system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45579—I/O management, e.g. providing access to device drivers or storage
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本发明涉及计算机技术领域,公开了一种虚拟化数据访问系统、方法、装置及服务器,该系统包括RAID芯片、接口控制组件和硬盘,RAID芯片包括若干个虚拟设备和各虚拟设备的目标地址空间;通过将源地址转换为目标RAID物理地址,并确定对应的虚拟机标识信息,使硬盘可以直接将请求响应数据发送至目标RAID物理地址,RAID芯片通过结合虚拟机标识信息生成请求响应报文包,以将请求响应数据直接写入主机的物理地址空间,以使服务器即便采用快速数据路径,也可以在虚拟化场景下进行硬盘数据的快速访问,从而提高了服务器在虚拟化场景下的RAID性能。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种虚拟化数据访问系统、方法、装置及服务器。
背景技术
由于RAID系统的写操作会对外部存储器有非常明显的写放大效应,外部存储器往往无法提供匹配主机接口所需的带宽而成为整个RAID系统的瓶颈,所以能够解决RAID系统地址空间和主机地址空间的转换问题的快速数据路径应运而生,快速数据路径能够让硬盘数据不经过RAID系统的缓存直接写入主机。
在相关技术中,快速数据路径通常在PCIe控制器中设置直接访问通道,当主机发起读访问时,可以绕过外部存储器,直接进入PCIe控制器,使硬盘数据直接通过直接访问通道写入主机。
但是,服务器为响应多用户需求,常常进行虚拟化部署,服务器在虚拟化场景下的数据访问加速本质是虚拟机直接访问硬件,但主机中的各虚拟机GPA地址会出现重叠的情况,导致服务器在应用快速数据路径时,无法在虚拟化场景下进行硬盘数据的快速访问,也就降低了服务器在虚拟化场景下的RAID性能。
发明内容
本申请提供一种虚拟化数据访问系统、方法、装置及服务器,以解决相关技术降低了服务器在虚拟化场景下的RAID性能等缺陷。
本申请第一个方面提供一种虚拟化数据访问系统,包括:RAID芯片、接口控制组件和硬盘,所述RAID芯片包括若干个虚拟设备和各所述虚拟设备的目标地址空间;
所述虚拟设备用于接收主机中任一虚拟机发送的数据访问请求,并确定所述数据访问请求的源地址,将所述数据访问请求及源地址发送至接口控制组件;
所述接口控制组件用于按照所述目标地址空间表征的虚拟地址和RAID物理地址之间的映射关系,根据所述源地址,确定对应的目标RAID物理地址及目标虚拟机标识信息,并根据所述数据访问请求,将所述目标RAID物理地址发送至对应的硬盘;
所述硬盘用于根据所述目标RAID物理地址,将请求响应数据发送至所述接口控制组件;
所述接口控制组件用于按照所述目标地址空间表征的虚拟地址和RAID物理地址之间的映射关系,将所述目标RAID物理地址逆转换为目标虚拟地址,根据所述目标虚拟地址、目标虚拟机标识信息及请求响应数据生成请求响应报文包,并将所述请求响应报文包发送至主机。
在一种可选的实施方式中,所述目标地址空间包括各所述虚拟设备所对应的虚拟机的虚拟地址空间及RAID物理地址空间;
所述虚拟地址空间包括所述虚拟机的虚拟基地址;
所述RAID物理地址空间包括各所述虚拟基地址所对应的RAID物理基地址。
在一种可选的实施方式中,所述接口控制组件包括:PCIe控制器和第一地址转换器;
所述PCIe控制器用于通过所述虚拟设备获取数据访问请求及源地址;
所述第一地址转换器用于按照所述目标地址空间表征的虚拟地址和RAID物理地址之间的映射关系,根据所述源地址,确定对应的目标RAID物理地址及目标虚拟机标识信息;
所述PCIe控制器用于根据所述数据访问请求表征的硬盘响应需求,将所述目标RAID物理地址发送至对应的硬盘。
在一种可选的实施方式中,所述第一地址转换器,用于:
获取当前接收所述数据访问请求的虚拟设备所对应的虚拟编号;
在所述目标地址空间中,根据所述虚拟编号,确定对应的目标虚拟基地址和目标RAID物理基地址;
根据所述源地址、目标虚拟基地址和目标RAID物理基地址,确定目标RAID物理地址。
在一种可选的实施方式中,所述第一地址转换器,用于:
基于如下公式,确定所述目标RAID物理地址:
其中,表示目标RAID物理地址,/>表示源地址,/>表示目标RAID物理基地址,/>表示目标虚拟基地址。
在一种可选的实施方式中,所述第一地址转换器,用于:
根据各所述虚拟设备对应的目标RAID物理基地址和目标虚拟基地址,构建若干条地址转换规则,以得到地址转换规则库;
根据所述源地址,确定对应的虚拟设备;
在所述地址转换规则库中调用该虚拟设备所对应的目标地址转换规则;
基于所述目标地址转换规则,将所述源地址转换为目标RAID物理地址。
在一种可选的实施方式中,所述第一地址转换器,用于:
根据所述目标RAID物理地址,确定接收所述数据访问请求的虚拟设备所对应的虚拟编号;
按照预设的虚拟设备与虚拟机之间的对应关系,确定该虚拟编号所对应的目标虚拟机标识信息。
在一种可选的实施方式中,所述接口控制组件包括:主机接口控制组件;
所述主机接口控制组件包括各所述虚拟设备对应的主机接口控制器;
所述PCIe控制器用于数据访问请求及源地址发送至对应的目标主机接口控制器;
所述目标主机接口控制器用于将所述数据访问请求及源地址发送至所述第一地址转换器。
在一种可选的实施方式中,所述接口控制组件包括:PCIe控制器,所述PCIe控制器包括第二地址转换器;
所述第二地址转换器用于获取当前接收所述数据访问请求的虚拟设备所对应的虚拟编号;
在所述目标地址空间中,根据所述虚拟编号,确定对应的目标虚拟基地址和目标RAID物理基地址;
根据所述目标RAID物理地址、目标虚拟基地址和目标RAID物理基地址,确定目标虚拟地址。
在一种可选的实施方式中,所述第二地址转换器,用于:
根据如下公式,将所述目标RAID物理地址逆转换为目标虚拟地址:
其中,表示目标虚拟地址,/>表示目标RAID物理地址,/>表示目标RAID物理基地址,/>表示目标虚拟基地址。
在一种可选的实施方式中,所述系统还包括:
输入输出内存管理单元,用于接收所述接口控制组件向所述主机发送的请求响应报文,解析所述请求响应报文,确定目标物理内存地址空间,将所述请求响应数据写入所述目标物理内存地址空间。
在一种可选的实施方式中,所述输入输出内存管理单元,用于:
根据所述请求响应报文解析结果表征的目标虚拟地址和目标虚拟机标识信息,确定目标物理内存地址空间。
本申请第二个方面提供一种虚拟化数据访问方法,应用于RAID芯片,所述方法包括:
接收主机中任一虚拟机发送的数据访问请求,并确定所述数据访问请求的源地址;
按照目标地址空间表征的虚拟地址和RAID物理地址之间的映射关系,根据所述源地址,确定对应的目标RAID物理地址及目标虚拟机标识信息;
根据所述数据访问请求,将所述目标RAID物理地址发送至对应的硬盘,以使所述硬盘根据所述目标RAID物理地址,反馈请求响应数据至RAID芯片;
按照所述目标地址空间表征的虚拟地址和RAID物理地址之间的映射关系,将所述目标RAID物理地址逆转换为目标虚拟地址;
根据所述目标虚拟地址、目标虚拟机标识信息及请求响应数据生成请求响应报文包,并将所述请求响应报文包发送至主机。
本申请第三个方面提供一种虚拟化数据访问装置,应用于RAID芯片,所述装置包括:
请求接收模块,用于接收主机中任一虚拟机发送的数据访问请求,并确定所述数据访问请求的源地址;
地址转换模块,用于按照目标地址空间表征的虚拟地址和RAID物理地址之间的映射关系,根据所述源地址,确定对应的目标RAID物理地址及目标虚拟机标识信息;
硬盘响应模块,用于根据所述数据访问请求,将所述目标RAID物理地址发送至对应的硬盘,以使所述硬盘根据所述目标RAID物理地址,反馈请求响应数据至RAID芯片;
地址逆转换模块,用于按照所述目标地址空间表征的虚拟地址和RAID物理地址之间的映射关系,将所述目标RAID物理地址逆转换为目标虚拟地址;
请求响应模块,用于根据所述目标虚拟地址、目标虚拟机标识信息及请求响应数据生成请求响应报文包,并将所述请求响应报文包发送至主机。
本申请第四个方面提供一种服务器,包括如上第一个方面以及第一个方面各种可能的设计所述的虚拟化数据访问系统。
本申请技术方案,具有如下优点:
本申请提供一种虚拟化数据访问系统、方法、装置及服务器,该系统包括RAID芯片、接口控制组件和硬盘,RAID芯片包括若干个虚拟设备和各虚拟设备的目标地址空间;虚拟设备用于接收主机中任一虚拟机发送的数据访问请求,并确定数据访问请求的源地址,将数据访问请求及源地址发送至接口控制组件;接口控制组件用于按照目标地址空间表征的虚拟地址和RAID物理地址之间的映射关系,根据源地址,确定对应的目标RAID物理地址及目标虚拟机标识信息,并根据数据访问请求,将目标RAID物理地址发送至对应的硬盘;硬盘用于根据目标RAID物理地址,将请求响应数据发送至接口控制组件;接口控制组件用于按照目标地址空间表征的虚拟地址和RAID物理地址之间的映射关系,将目标RAID物理地址逆转换为目标虚拟地址,根据目标虚拟地址、目标虚拟机标识信息及请求响应数据生成请求响应报文包,并将请求响应报文包发送至主机。上述方案提供的系统,通过将源地址转换为目标RAID物理地址,并确定对应的虚拟机标识信息,使硬盘可以直接将请求响应数据发送至目标RAID物理地址,RAID芯片通过结合虚拟机标识信息生成请求响应报文包,以将请求响应数据直接写入主机的物理地址空间,以使服务器即便采用快速数据路径,也可以在虚拟化场景下进行硬盘数据的快速访问,从而提高了服务器在虚拟化场景下的RAID性能。
附图说明
为了更清楚地说明本申请实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的快速数据路径的结构示意图;
图2为本申请实施例提供的虚拟化数据访问系统的交互流程示意图;
图3为本申请实施例提供的示例性的虚拟机地址空间结构示意图;
图4为本申请实施例提供的示例性的目标地址空间的结构示意图;
图5为本申请实施例提供的虚拟化数据访问系统的结构示意图;
图6为本申请实施例提供的PCIe控制器的结构示意图;
图7为本申请实施例提供的示例性的虚拟化数据访问系统的结构示意图;
图8为本申请实施例提供的虚拟化数据访问方法的流程示意图;
图9为本申请实施例提供的虚拟化数据访问装置的结构示意图;
图10为本申请实施例提供的服务器的结构示意图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本公开构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
此外,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。在以下各实施例的描述中,“多个”的含义是两个以上,除非另有明确具体的限定。
在相关技术中,外部存储器的带宽往往是RAID系统的瓶颈。这是由于RAID系统的写操作会对外部存储器有非常明显的写放大效应。以基础的RAID5系统为例,主机向RAID系统下发的大小为一个块(存储系统以块为单位,典型大小是4KB)的写操作,将引发对外部存储器的9次读写操作,分别是:读取主机数据写入存储器(1次写);读取磁盘对应位置数据写入存储器(1次写);读取磁盘冗余校验数据写入存储器(1次写);从存储器读取主机数据、磁盘对应数据、冗余校验数据进行RAID计算(3次读);将新的冗余校验计算结果写入存储器(1次写);从存储器读取主机数据写入磁盘(1次读);从存储器读取新冗余校验数据写入磁盘(1次读)。
随着PCIe技术的飞速发展,主机接口带宽不断提高,外部存储器往往无法提供匹配主机接口所需的带宽而成为整个RAID系统的瓶颈。因此,优化存储器的访问可以直接带来RAID系统性能的提升。在实际应用中,主机对RAID系统的访问既有写操作也有读操作。读操作虽然不如写操作的放大效应明显,但依然会增加一些负担。
为解决该技术问题,如图1所示,为本申请实施例提供的快速数据路径的结构示意图,快读数据路径通过解决RAID系统地址空间和主机地址空间的转换问题,实现主机发起读访问请求时绕过外部存储器桥接,直接传输至主机,这样可以有效减少RAID系统读磁盘对存储器的访问,降低存储器负担。其中,原始的数据访问路径是硬盘将访问数据存储至存储器,存储器提供数据跨地址域传输过程中的桥接作用,RAID芯片基于存储控制器,在存储器读取访问数据,最后通过PCIe控制器的DMA通道进行地址转换,再将访问数据发送至主机。本申请实施例提供的快速数据路径是在PCIe控制器中增设直接访问通道,该直接访问通道支持地址转换,可以将访问数据在新数据页列表内对应的系统芯片地址转换为主机目标地址,并将访问数据发送至主机的主机目标地址。
但是,服务器为响应多用户需求,常常进行虚拟化部署,服务器在虚拟化场景下的数据访问加速本质是虚拟机直接访问硬件,但主机中的各虚拟机GPA地址会出现重叠的情况,导致服务器在应用快速数据路径时,无法在虚拟化场景下进行硬盘数据的快速访问,也就降低了服务器在虚拟化场景下的RAID性能。
针对上述问题,本申请实施例提供一种虚拟化数据访问系统、方法、装置及服务器,该系统包括RAID芯片、接口控制组件和硬盘,RAID芯片包括若干个虚拟设备和各虚拟设备的目标地址空间;虚拟设备用于接收主机中任一虚拟机发送的数据访问请求,并确定数据访问请求的源地址,将数据访问请求及源地址发送至接口控制组件;接口控制组件用于按照目标地址空间表征的虚拟地址和RAID物理地址之间的映射关系,根据源地址,确定对应的目标RAID物理地址及目标虚拟机标识信息,并根据数据访问请求,将目标RAID物理地址发送至对应的硬盘;硬盘用于根据目标RAID物理地址,将请求响应数据发送至接口控制组件;接口控制组件用于按照目标地址空间表征的虚拟地址和RAID物理地址之间的映射关系,将目标RAID物理地址逆转换为目标虚拟地址,根据目标虚拟地址、目标虚拟机标识信息及请求响应数据生成请求响应报文包,并将请求响应报文包发送至主机。上述方案提供的系统,通过将源地址转换为目标RAID物理地址,并确定对应的虚拟机标识信息,使硬盘可以直接将请求响应数据发送至目标RAID物理地址,RAID芯片通过结合虚拟机标识信息生成请求响应报文包,以将请求响应数据直接写入主机的物理地址空间,以使服务器即便采用快速数据路径,也可以在虚拟化场景下进行硬盘数据的快速访问,从而提高了服务器在虚拟化场景下的RAID性能。
下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本发明实施例进行描述。
本申请实施例提供了一种虚拟化数据访问系统,用于使服务器在虚拟化场景能够实现硬盘数据的快速访问。
如图2所示,为本申请实施例提供的虚拟化数据访问系统的交互流程示意图,该系统包括:RAID芯片、接口控制组件和硬盘,RAID芯片包括若干个虚拟设备和各虚拟设备的目标地址空间。
其中,虚拟设备用于接收主机中任一虚拟机发送的数据访问请求,并确定数据访问请求的源地址,将数据访问请求及源地址发送至接口控制组件;接口控制组件用于按照目标地址空间表征的虚拟地址和RAID物理地址之间的映射关系,根据源地址,确定对应的目标RAID物理地址及目标虚拟机标识信息,并根据数据访问请求,将目标RAID物理地址发送至对应的硬盘;硬盘用于根据目标RAID物理地址,将请求响应数据发送至接口控制组件;接口控制组件用于按照目标地址空间表征的虚拟地址和RAID物理地址之间的映射关系,将目标RAID物理地址逆转换为目标虚拟地址,根据目标虚拟地址、目标虚拟机标识信息及请求响应数据生成请求响应报文包,并将请求响应报文包发送至主机。
需要说明的是,RAID芯片支持虚拟化硬件加速,即芯片可以提供多个虚拟设备供主机使用。RAID芯片不需要硬盘支持虚拟化硬件加速,即硬盘可以只呈现为一个设备,RAID芯片可以在上述条件下使用快速数据路径对主机进行访问,访问时:待读取的硬盘数据并不会进出存储器(包括外部存储器和片上存储器);读操作带宽可以大于外部存储器带宽的1/2;主机对RAID芯片的读操作带宽与写操作带宽无关;主机对RAID芯片的读操作,在RAID芯片内的延时可以小于数据进、出存储器的延时的和。
需要进一步说明的是,虚拟化是指硬件支持的虚拟化加速,即一套硬件设备,对主机呈现出多个虚拟设备。每个主机的虚拟机可以独享一个或者多个虚拟设备。这样的虚拟设备称为一个PCIe Function,每一个Function有一个独一无二的硬件编号称为FunctionNumber。当虚拟机对设备发起访问时,可以直接访问对应的Function提供的硬件接口,而不支持硬件虚拟化加速的设备,则需要虚拟机管理器软件将上述访问进行捕获和转换。
其中,硬件的虚拟化加速的本质是虚拟机直接访问硬件,但各虚拟机之间的地址空间是相互重叠的,即每个虚拟机都认为自己拥有地址0~地址N-1的全部地址空间(对每个虚拟机,N可以不同)。因此,虚拟机在访问硬件时,所使用的是自己认为的上述物理空间,也称为虚拟机物理地址(虚拟地址),后文简称为GPA(Guest Physical Address)。由于没有宿主机软件的参与,硬件将直接使用GPA对主机进行直接内存访问(Direct Memory Access,简称:DMA)访问,但由于GPA本身是虚拟的,需要最终被映射为真实的主机物理内存地址,才能对主机内存空间进行访问。 这个转换工作通常由CPU中的输入输出内存管理单元(Input/Output Memory Management Unit,简称:IOMMU)完成,转换后的真实物理内存地址也被称为宿主机物理地址,简称HPA。
示例性的,如图3所示,为本申请实施例提供的示例性的虚拟机地址空间结构示意图,由于GPA地址是重叠的,因此,IOMMU在进行转换时,除需要该地址外,还需要FunctionNumber(虚拟编号),以根据虚拟设备与虚拟机之间的对应关系,进而将GPA地址最终还原为HPA。一个虚拟机可以对应多个虚拟设备,每个虚拟设备仅服务一个虚拟机。对于快速数据路径而言,由于采用硬盘直接向主机进行DMA操作的方式,因此,也需要硬盘在发起操作时,指定该操作的Function Number,这就需要硬盘本身的Function数量不小于RAID芯片的Function数量。这往往是难以满足的,因为RAID芯片向服务器提供的性能远高于硬盘,因此Function数量一般也高于硬盘。然而,由于服务器系统通常服务于多用户场景,且由于服务器硬件性能越来越高,软件虚拟化成为明显的瓶颈,因此硬件的虚拟化加速功能几乎成为必备的需求。如何在虚拟化场景下支持快速数据路径,是目前面临的一个难题。
需要进一步说明的是,本申请实施例为了解决上述难题,本申请实施例在RAID芯片中预设目标地址空间,该目标地址空间用于建立虚拟地址和RAID物理地址之间的映射关系,因此可以根据接收到的数据访问请求所携带的源地址(GPA地址),确定其当前访问的虚拟设备所对应的RAID物理地址,从而可以在将GPA地址转换为目标RAID物理地址的同时,确定该目标RAID物理地址对应的Function Number,进而确定对应的目标虚拟机标识信息。
在上述实施例的基础上,图4为本申请实施例提供的示例性的目标地址空间的结构示意图,作为一种可实施的方式,在一实施例中,目标地址空间包括各虚拟设备所对应的虚拟机的虚拟地址空间(虚拟机物理空间)及RAID物理地址空间(SoC地址空间)。
其中,虚拟地址空间包括虚拟机的虚拟基地址(GPA基地址);RAID物理地址空间包括各虚拟基地址所对应的RAID物理基地址(SoC基地址)。
具体地,可以先在RAID芯片的SoC地址空间中为每一个Function(虚拟设备)预留一块地址空间,每一块地址空间的大小不能小于使用该Function所对应的虚拟机的内存空间大小,这块空间下文称为该Function的GPA地址空间(Func1 GPA~ Func2 GPA)。需要说明的是,由于一个虚拟机可以使用多个Function,因此,独立的GPA地址空间的数量可以与Function数量不同,但RAID芯片无需感知这一点。从RAID芯片的视角,需要预留的SoC地址空间的数量与Function数量相等,无论主机中的虚拟机如何使用这些Function。由于本申请实施例提出基地址概念,所以Function的GPA起始地址不必从0开始。
在上述实施例的基础上,图5为本申请实施例提供的虚拟化数据访问系统的结构示意图,作为一种可实施的方式,在一实施例中,接口控制组件包括:PCIe控制器和第一地址转换器。
其中,PCIe控制器用于通过虚拟设备获取数据访问请求及源地址;第一地址转换器用于按照目标地址空间表征的虚拟地址和RAID物理地址之间的映射关系,根据源地址,确定对应的目标RAID物理地址及目标虚拟机标识信息;PCIe控制器用于根据数据访问请求表征的硬盘响应需求,将目标RAID物理地址发送至对应的硬盘。
需要说明的是,第一地址转换器也可以称之为SoC地址转换器,用于将源地址(GPA地址)转换为SoC地址(目标RAID物理地址)
具体地,在一实施例中,第一地址转换器可以获取当前接收数据访问请求的虚拟设备所对应的虚拟编号;在目标地址空间中,根据虚拟编号,确定对应的目标虚拟基地址和目标RAID物理基地址;根据源地址、目标虚拟基地址和目标RAID物理基地址,确定目标RAID物理地址。
具体地,在RAID芯片中通过一个被称为SoC地址转换器的功能模块完成FunctionGPA的地址转换,并且将转换后的地址(目标RAID物理地址)下发给硬盘。由于每个虚拟设备仅对应唯一的虚拟机,因此可以根据当前接收数据访问请求的虚拟设备所对应的虚拟编号,在目标地址空间定位对应的GPA地址空间(Func1 GPA~ Func2 GPA),进而确定与该GPA地址空间对应的SoC地址空间,以确定目标虚拟基地址和目标RAID物理基地址,从而确定目标RAID物理地址。
具体地,在一实施例中,第一地址转换器可以基于如下公式,确定目标RAID物理地址:
其中,表示目标RAID物理地址,/>表示源地址,/>表示目标RAID物理基地址,/>表示目标虚拟基地址。
具体地,在一实施例中,为进一步提高地址转换效率,第一地址转换器可以根据各虚拟设备对应的目标RAID物理基地址和目标虚拟基地址,构建若干条地址转换规则,以得到地址转换规则库;根据源地址,确定对应的虚拟设备;在地址转换规则库中调用该虚拟设备所对应的目标地址转换规则;基于目标地址转换规则,将源地址转换为目标RAID物理地址。
具体地,SoC地址转换器预设有N条目标地址转换规则,N为RAID芯片Function(虚拟设备Func)的数量,每一条转换规则与一个Function绑定。每一条规则,即该Function对应的GPA地址(源地址)到下发给硬盘的SoC地址(目标RAID物理地址)。
具体地,在一实施例中,第一地址转换器可以根据目标RAID物理地址,确定接收数据访问请求的虚拟设备所对应的虚拟编号;按照预设的虚拟设备与虚拟机之间的对应关系,确定该虚拟编号所对应的目标虚拟机标识信息。
需要说明的是,在不使用快速数据路径的传统方法中,由于SoC内部各功能模块包括硬盘,都使用SoC内部存储器,因此无需关联Function信息(虚拟机标识信息)。Function信息一般在将数据从SoC内部存储器搬移到主机的DMA模块中实现, 而DMA位于主机接口控制器内部或者与主机接口控制器绑定,因此传统的SoC系统主机控制器并不需要输出该信息。
具体地,由于RAID芯片的SoC地址空间与虚拟设备是一一对应的关系,因此可以根据目标RAID物理地址确定对应的SoC地址空间,进而确定该SoC地址空间所对应的虚拟设备,也就确定了Function Number。然后再照预设的虚拟设备与虚拟机之间的对应关系,确定该虚拟编号(Function Number)所对应的目标虚拟机标识信息(如虚拟机1、虚拟机2和虚拟机3等)。
具体地,在一实施例中,如图5所示,接口控制组件包括:主机接口控制组件;主机接口控制组件包括各虚拟设备对应的主机接口控制器(控制器0~N);PCIe控制器用于数据访问请求及源地址发送至对应的目标主机接口控制器;目标主机接口控制器用于将数据访问请求及源地址发送至第一地址转换器。
需要说明的是,主机接口控制器指包含主机可访问的寄存器和交互逻辑在内的一个功能电路,用来按照预先定义的流程实现与主机软件的交互,以接收主机的命令、完成数据传输以及实现应答等。对于一个Function数量为N的RAID芯片,必须有N个独立的主机接口控制器,每一个主机接口控制器与一个Function进行绑定。当主机中的虚拟机访问对应的Function时,PCIe控制器中的Function处理逻辑都需要能正确访问与其绑定的主机接口控制器。因此,对于每个主机接口控制器而言,只需要在被访问时,将自身预先设定的Function编号传递到后级即可。
具体地,在一实施例中,如图6所示,为本申请实施例提供的PCIe控制器的结构示意图,接口控制组件包括:PCIe控制器,PCIe控制器包括第二地址转换器;第二地址转换器用于获取当前接收数据访问请求的虚拟设备所对应的虚拟编号;在目标地址空间中,根据虚拟编号,确定对应的目标虚拟基地址和目标RAID物理基地址;根据目标RAID物理地址、目标虚拟基地址和目标RAID物理基地址,确定目标虚拟地址。
其中,第二地址转换器也可以称之为PCIe地址转换器,为了提高PCIe地址转换器的地址转换效率,同样可以将不同虚拟设备对应的虚拟地址转换逻辑设置为对应的虚拟地址转换规则,以通过调用虚拟地址转换规则,实现目标虚拟地址的快速转换。
具体地,在一实施例中,第二地址转换器可以根据如下公式,将目标RAID物理地址逆转换为目标虚拟地址:
其中,表示目标虚拟地址,/>表示目标RAID物理地址,/>表示目标RAID物理基地址,/>表示目标虚拟基地址。其中,目标虚拟地址实际为上述实施例中的源地址,即/>。
具体地,该第二地址转换器内部同样有N条规则,N为RAID芯片中的Function数量。该地址转换器与SoC地址转换器不同:其一,该地址转换器采用地址命中的方法,每一个规则对应一段SoC地址段,当某一次访问请求 的地址落在某一个规则对应的地址段内时,这次访问请求即命中该规则;其二,该地址转换器不仅需要实现SoC地址到GPA地址的转换,并且需要在访问请求经过PCIe控制器发往主机时,在PCIe的报文包中添加正确的Function编号(图6中的Func#)字段。该字段属于PCIe协议定义的报文包的标准字段,添加的方式根据实际的实现会有所不同。每条规则的Function编号可以静态绑定,例如规则0对应的Function编号为0,也可以为每个Function预设一个寄存器,再初始化配置时为每个规则指定Function编号。
具体地,在一实施例中,系统还包括:输入输出内存管理单元,用于接收接口控制组件向主机发送的请求响应报文,解析请求响应报文,确定目标物理内存地址空间,将请求响应数据写入目标物理内存地址空间。
其中,输入输出内存管理单元(IOMMU)实际部署于主机,即主机基于IOMMU 请求响应报文。
具体地,在一实施例中,根据请求响应报文解析结果表征的目标虚拟地址和目标虚拟机标识信息,确定目标物理内存地址空间。
具体地,IOMMU可以通过页表查询的方式,确定目标虚拟机标识信息所对应的地址域,进而根据目标虚拟地址,在该地址域中定位目标物理内存地址空间。
为了便于本领域技术人员更好地了解本申请实施例提供的虚拟化数据访问系统,如图7所示,为本申请实施例提供的示例性的虚拟化数据访问系统的结构示意图,假定数据访问请求由主机中的虚拟机0向RAID芯片的Function 0发起。读数据的目标地址为虚拟机0的GPA地址空间中的Addr1位置,该位置对应的主机实际物理内存中的空间用相同的图纹标出。主机的IO对应的硬盘是硬盘L,主机硬盘访问数据流如下:
虚拟机向Function 0发起读访问,并指定返回数据存放的地址是虚拟机0的GPA空间的Addr1。
PCIe控制器接收到该访问请求,并交给Function 0处理逻辑。处理逻辑解析该访问,然后对主机接口控制器中的控制器0逻辑进行访问。
控制器0将主机发起的访问请求和相关参数 交给SoC对应模块处理,但特别的是,控制器0需要将这次IO的数据存放地址Addr1提交给SoC地址转换器的规则0进行转换。
SoC地址转换器按照规则0转换公式进行地址转换,转换后的地址称为f0(Addr1)。该地址将被SoC中的其他逻辑进行处理,并最终转换为发送给磁盘L的读访问的返回数据存放地址字段。
磁盘L响应读请求,并将数据写往f0(Addr1)地址,该数据将被路由给PCIe控制器。
PCIe控制器接收到对f0(Addr1)的访问,经过地址比对,发现该访问命中PCIe地址转换器的规则0。PCIe地址转换器按照转换公式对地址进行转换,转换后的结果为Addr1,并且将这次访问标记为Function 0交给PCIe控制器。然后,PCIe控制器向主机发送请求响应报文包,其中地址字段为Addr1,Function编号字段为0。
主机IOMMU收到PCIe请求响应报文包,根据地址Addr1和Function编号0进行页表查询,最终找到真实的物理地址空间(目标物理内存地址空间)并将数据写入。
本申请实施例提供的虚拟化数据访问系统,包括RAID芯片、接口控制组件和硬盘,RAID芯片包括若干个虚拟设备和各虚拟设备的目标地址空间;虚拟设备用于接收主机中任一虚拟机发送的数据访问请求,并确定数据访问请求的源地址,将数据访问请求及源地址发送至接口控制组件;接口控制组件用于按照目标地址空间表征的虚拟地址和RAID物理地址之间的映射关系,根据源地址,确定对应的目标RAID物理地址及目标虚拟机标识信息,并根据数据访问请求,将目标RAID物理地址发送至对应的硬盘;硬盘用于根据目标RAID物理地址,将请求响应数据发送至接口控制组件;接口控制组件用于按照目标地址空间表征的虚拟地址和RAID物理地址之间的映射关系,将目标RAID物理地址逆转换为目标虚拟地址,根据目标虚拟地址、目标虚拟机标识信息及请求响应数据生成请求响应报文包,并将请求响应报文包发送至主机。上述方案提供的系统,通过将源地址转换为目标RAID物理地址,并确定对应的虚拟机标识信息,使硬盘可以直接将请求响应数据发送至目标RAID物理地址,RAID芯片通过结合虚拟机标识信息生成请求响应报文包,以将请求响应数据直接写入主机的物理地址空间,以使服务器即便采用快速数据路径,也可以在虚拟化场景下进行硬盘数据的快速访问,从而提高了服务器在虚拟化场景下的RAID性能。并且,通过在虚拟化场景下应用快速数据路径,降低了读操作对外部存储器的负担,提高RAID系统写操作性能;使RAID系统读操作不依赖于外部存储器带宽,提高RAID系统读操作性能;使读操作带宽和写操作带宽互不影响,进一步提高系统整体性能;降低由于数据进出外部存储器带来的延时,在大数据块读取时该优势尤为突出。
本申请实施例提供了一种虚拟化数据访问方法,应用于RAID芯片,用于使服务器在虚拟化场景能够实现硬盘数据的快速访问。本申请实施例的执行主体为电子设备,比如服务器或RAID芯片等。
如图8所示,为本申请实施例提供的虚拟化数据访问方法的流程示意图,该方法包括:
步骤801,接收主机中任一虚拟机发送的数据访问请求,并确定数据访问请求的源地址;
步骤802,按照目标地址空间表征的虚拟地址和RAID物理地址之间的映射关系,根据源地址,确定对应的目标RAID物理地址及目标虚拟机标识信息;
步骤803,根据数据访问请求,将目标RAID物理地址发送至对应的硬盘,以使硬盘根据目标RAID物理地址,反馈请求响应数据至RAID芯片;
步骤804,按照目标地址空间表征的虚拟地址和RAID物理地址之间的映射关系,将目标RAID物理地址逆转换为目标虚拟地址;
步骤805,根据目标虚拟地址、目标虚拟机标识信息及请求响应数据生成请求响应报文包,并将请求响应报文包发送至主机。
关于本实施例中的虚拟化数据访问方法,其中各个步骤的具体实施方式已经在有关该系统的实施例中进行了详细描述,此处将不做详细阐述说明。
本申请实施例提供的虚拟化数据访问方法,用于应用于上述实施例提供的虚拟化数据访问系统,其实现方式与原理相同,不再赘述。
本申请实施例提供了一种虚拟化数据访问装置,用于执行上述实施例提供的虚拟化数据访问方法。
如图9所示,为本申请实施例提供的虚拟化数据访问装置的结构示意图。该虚拟化数据访问装置90包括:请求接收模块901、地址转换模块902、硬盘响应模块903、地址逆转换模块904和请求响应模块905。
其中,请求接收模块,用于接收主机中任一虚拟机发送的数据访问请求,并确定数据访问请求的源地址;地址转换模块,用于按照目标地址空间表征的虚拟地址和RAID物理地址之间的映射关系,根据源地址,确定对应的目标RAID物理地址及目标虚拟机标识信息;硬盘响应模块,用于根据数据访问请求,将目标RAID物理地址发送至对应的硬盘,以使硬盘根据目标RAID物理地址,反馈请求响应数据至RAID芯片;地址逆转换模块,用于按照目标地址空间表征的虚拟地址和RAID物理地址之间的映射关系,将目标RAID物理地址逆转换为目标虚拟地址;请求响应模块,用于根据目标虚拟地址、目标虚拟机标识信息及请求响应数据生成请求响应报文包,并将请求响应报文包发送至主机。
关于本实施例中的虚拟化数据访问装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本申请实施例提供的虚拟化数据访问装置,用于执行上述实施例提供的虚拟化数据访问方法,其实现方式与原理相同,不再赘述。
本申请实施例提供了一种服务器,用于执行上述实施例提供的虚拟化数据访问方法。
如图10所示,为本申请实施例提供的服务器的结构示意图。该服务器包括:上述实施例提供的虚拟化数据访问系统。
本申请实施例提供的服务器,用于部署上述实施例提供的虚拟化数据访问系统,其实现方式与原理相同,不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施例方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (14)
1.一种虚拟化数据访问系统,其特征在于,包括:RAID芯片、接口控制组件和硬盘,所述RAID芯片包括若干个虚拟设备和各所述虚拟设备的目标地址空间;
所述虚拟设备用于接收主机中任一虚拟机发送的数据访问请求,并确定所述数据访问请求的源地址,将所述数据访问请求及源地址发送至接口控制组件;
所述接口控制组件用于按照所述目标地址空间表征的虚拟地址和RAID物理地址之间的映射关系,根据所述源地址,确定对应的目标RAID物理地址及目标虚拟机标识信息,并根据所述数据访问请求,将所述目标RAID物理地址发送至对应的硬盘;
所述硬盘用于根据所述目标RAID物理地址,将请求响应数据发送至所述接口控制组件;
所述接口控制组件用于按照所述目标地址空间表征的虚拟地址和RAID物理地址之间的映射关系,将所述目标RAID物理地址逆转换为目标虚拟地址,根据所述目标虚拟地址、目标虚拟机标识信息及请求响应数据生成请求响应报文包,并将所述请求响应报文包发送至主机;
其中,所述接口控制组件包括:PCIe控制器和第一地址转换器;
所述PCIe控制器用于通过所述虚拟设备获取数据访问请求及源地址;所述PCIe控制器中增设直接访问通道,所述直接访问通道支持地址转换;
所述第一地址转换器用于按照所述目标地址空间表征的虚拟地址和RAID物理地址之间的映射关系,根据所述源地址,确定对应的目标RAID物理地址及目标虚拟机标识信息;
所述PCIe控制器用于根据所述数据访问请求表征的硬盘响应需求,将所述目标RAID物理地址发送至对应的硬盘。
2.根据权利要求1所述的系统,其特征在于,所述目标地址空间包括各所述虚拟设备所对应的虚拟机的虚拟地址空间及RAID物理地址空间;
所述虚拟地址空间包括所述虚拟机的虚拟基地址;
所述RAID物理地址空间包括各所述虚拟基地址所对应的RAID物理基地址。
3.根据权利要求2所述的系统,其特征在于,所述第一地址转换器,用于:
获取当前接收所述数据访问请求的虚拟设备所对应的虚拟编号;
在所述目标地址空间中,根据所述虚拟编号,确定对应的目标虚拟基地址和目标RAID物理基地址;
根据所述源地址、目标虚拟基地址和目标RAID物理基地址,确定目标RAID物理地址。
4.根据权利要求3所述的系统,其特征在于,所述第一地址转换器,用于:
基于如下公式,确定所述目标RAID物理地址:
其中,表示目标RAID物理地址,/>表示源地址,/>表示目标RAID物理基地址,表示目标虚拟基地址。
5.根据权利要求4所述的系统,其特征在于,所述第一地址转换器,用于:
根据各所述虚拟设备对应的目标RAID物理基地址和目标虚拟基地址,构建若干条地址转换规则,以得到地址转换规则库;
根据所述源地址,确定对应的虚拟设备;
在所述地址转换规则库中调用该虚拟设备所对应的目标地址转换规则;
基于所述目标地址转换规则,将所述源地址转换为目标RAID物理地址。
6.根据权利要求1所述的系统,其特征在于,所述第一地址转换器,用于:
根据所述目标RAID物理地址,确定接收所述数据访问请求的虚拟设备所对应的虚拟编号;
按照预设的虚拟设备与虚拟机之间的对应关系,确定该虚拟编号所对应的目标虚拟机标识信息。
7.根据权利要求1所述的系统,其特征在于,所述接口控制组件包括:主机接口控制组件;
所述主机接口控制组件包括各所述虚拟设备对应的主机接口控制器;
所述PCIe控制器用于数据访问请求及源地址发送至对应的目标主机接口控制器;
所述目标主机接口控制器用于将所述数据访问请求及源地址发送至所述第一地址转换器。
8.根据权利要求1所述的系统,其特征在于,所述接口控制组件包括:PCIe控制器,所述PCIe控制器包括第二地址转换器;
所述第二地址转换器用于获取当前接收所述数据访问请求的虚拟设备所对应的虚拟编号;
在所述目标地址空间中,根据所述虚拟编号,确定对应的目标虚拟基地址和目标RAID物理基地址;
根据所述目标RAID物理地址、目标虚拟基地址和目标RAID物理基地址,确定目标虚拟地址。
9.根据权利要求8所述的系统,其特征在于,所述第二地址转换器,用于:
根据如下公式,将所述目标RAID物理地址逆转换为目标虚拟地址:
其中,表示目标虚拟地址,/>表示目标RAID物理地址,/>表示目标RAID物理基地址,/>表示目标虚拟基地址。
10.根据权利要求1所述的系统,其特征在于,所述系统还包括:
输入输出内存管理单元,用于接收所述接口控制组件向所述主机发送的请求响应报文,解析所述请求响应报文,确定目标物理内存地址空间,将所述请求响应数据写入所述目标物理内存地址空间。
11.根据权利要求10所述的系统,其特征在于,所述输入输出内存管理单元,用于:
根据所述请求响应报文解析结果表征的目标虚拟地址和目标虚拟机标识信息,确定目标物理内存地址空间。
12.一种虚拟化数据访问方法,其特征在于,应用于RAID芯片,所述方法包括:
接收主机中任一虚拟机发送的数据访问请求,并确定所述数据访问请求的源地址;
按照目标地址空间表征的虚拟地址和RAID物理地址之间的映射关系,根据所述源地址,确定对应的目标RAID物理地址及目标虚拟机标识信息;
根据所述数据访问请求,将所述目标RAID物理地址发送至对应的硬盘,以使所述硬盘根据所述目标RAID物理地址,反馈请求响应数据至RAID芯片;
按照所述目标地址空间表征的虚拟地址和RAID物理地址之间的映射关系,将所述目标RAID物理地址逆转换为目标虚拟地址;
根据所述目标虚拟地址、目标虚拟机标识信息及请求响应数据生成请求响应报文包,并将所述请求响应报文包发送至主机;
所述按照目标地址空间表征的虚拟地址和RAID物理地址之间的映射关系,根据所述源地址,确定对应的目标RAID物理地址及目标虚拟机标识信息,包括:
基于第一地址转换器,按照所述目标地址空间表征的虚拟地址和RAID物理地址之间的映射关系,根据所述源地址,确定对应的目标RAID物理地址及目标虚拟机标识信息;
所述根据所述数据访问请求,将所述目标RAID物理地址发送至对应的硬盘,包括:
基于PCIe控制器,根据所述数据访问请求表征的硬盘响应需求,将所述目标RAID物理地址发送至对应的硬盘;
其中,所述PCIe控制器中增设直接访问通道,所述直接访问通道支持地址转换。
13.一种虚拟化数据访问装置,其特征在于,应用于RAID芯片,所述装置包括:
请求接收模块,用于接收主机中任一虚拟机发送的数据访问请求,并确定所述数据访问请求的源地址;
地址转换模块,用于按照目标地址空间表征的虚拟地址和RAID物理地址之间的映射关系,根据所述源地址,确定对应的目标RAID物理地址及目标虚拟机标识信息;
硬盘响应模块,用于根据所述数据访问请求,将所述目标RAID物理地址发送至对应的硬盘,以使所述硬盘根据所述目标RAID物理地址,反馈请求响应数据至RAID芯片;
地址逆转换模块,用于按照所述目标地址空间表征的虚拟地址和RAID物理地址之间的映射关系,将所述目标RAID物理地址逆转换为目标虚拟地址;
请求响应模块,用于根据所述目标虚拟地址、目标虚拟机标识信息及请求响应数据生成请求响应报文包,并将所述请求响应报文包发送至主机;
所述地址转换模块,用于:
基于第一地址转换器,按照所述目标地址空间表征的虚拟地址和RAID物理地址之间的映射关系,根据所述源地址,确定对应的目标RAID物理地址及目标虚拟机标识信息;
所述硬盘响应模块,用于:
基于PCIe控制器,根据所述数据访问请求表征的硬盘响应需求,将所述目标RAID物理地址发送至对应的硬盘;
其中,所述PCIe控制器中增设直接访问通道,所述直接访问通道支持地址转换。
14.一种服务器,其特征在于,包括:如权利要求1至11任一项所述的虚拟化数据访问系统。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410071029.2A CN117591037B (zh) | 2024-01-18 | 2024-01-18 | 一种虚拟化数据访问系统、方法、装置及服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410071029.2A CN117591037B (zh) | 2024-01-18 | 2024-01-18 | 一种虚拟化数据访问系统、方法、装置及服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117591037A CN117591037A (zh) | 2024-02-23 |
CN117591037B true CN117591037B (zh) | 2024-05-03 |
Family
ID=89910258
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410071029.2A Active CN117591037B (zh) | 2024-01-18 | 2024-01-18 | 一种虚拟化数据访问系统、方法、装置及服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117591037B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101741831A (zh) * | 2008-11-10 | 2010-06-16 | 国际商业机器公司 | 动态物理和虚拟多路径输入/输出的方法、系统和装置 |
CN107783913A (zh) * | 2016-08-31 | 2018-03-09 | 华为技术有限公司 | 一种应用于计算机的资源访问方法和计算机 |
CN112148418A (zh) * | 2019-06-26 | 2020-12-29 | 北京百度网讯科技有限公司 | 用于访问数据的方法、装置、设备和介质 |
CN115185643A (zh) * | 2022-07-22 | 2022-10-14 | 地平线征程(杭州)人工智能科技有限公司 | 访问控制方法、装置、计算机可读存储介质及电子设备 |
CN115344521A (zh) * | 2018-08-22 | 2022-11-15 | 英特尔公司 | 可扩展输入/输出(i/o)虚拟化(s-iov)架构中的虚拟设备构成 |
CN116774933A (zh) * | 2023-06-19 | 2023-09-19 | 北京火山引擎科技有限公司 | 存储设备的虚拟化处理方法、桥接设备、系统及介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9264384B1 (en) * | 2004-07-22 | 2016-02-16 | Oracle International Corporation | Resource virtualization mechanism including virtual host bus adapters |
-
2024
- 2024-01-18 CN CN202410071029.2A patent/CN117591037B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101741831A (zh) * | 2008-11-10 | 2010-06-16 | 国际商业机器公司 | 动态物理和虚拟多路径输入/输出的方法、系统和装置 |
CN107783913A (zh) * | 2016-08-31 | 2018-03-09 | 华为技术有限公司 | 一种应用于计算机的资源访问方法和计算机 |
CN115344521A (zh) * | 2018-08-22 | 2022-11-15 | 英特尔公司 | 可扩展输入/输出(i/o)虚拟化(s-iov)架构中的虚拟设备构成 |
CN112148418A (zh) * | 2019-06-26 | 2020-12-29 | 北京百度网讯科技有限公司 | 用于访问数据的方法、装置、设备和介质 |
CN115185643A (zh) * | 2022-07-22 | 2022-10-14 | 地平线征程(杭州)人工智能科技有限公司 | 访问控制方法、装置、计算机可读存储介质及电子设备 |
CN116774933A (zh) * | 2023-06-19 | 2023-09-19 | 北京火山引擎科技有限公司 | 存储设备的虚拟化处理方法、桥接设备、系统及介质 |
Non-Patent Citations (4)
Title |
---|
LiveSSD: A Low-Interference RAID Scheme for Hardware Virtualized SSDs;You Zhou et al.;《IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems 》;20200811;第40卷(第7期);第1354--1366页 * |
云数据中心I/O资源池化;王展等;《集成技术》;20160115;第5卷(第01期);第1-16页 * |
基于上下文模型的超长哈夫曼码校正算法;张永兴等;《计算机技术与发展》;20230210;第33卷(第02期);第92-98页 * |
基于单根I/O虚拟化的多根I/O资源池化方法;王展等;《计算机研究与发展》;20150115;第52卷(第01期);第83-93页 * |
Also Published As
Publication number | Publication date |
---|---|
CN117591037A (zh) | 2024-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9678918B2 (en) | Data processing system and data processing method | |
WO2018137529A1 (zh) | 一种数据传输的方法、装置、设备和系统 | |
US7774575B2 (en) | Integrated circuit capable of mapping logical block address data across multiple domains | |
US20220222016A1 (en) | Method for accessing solid state disk and storage device | |
JP4401305B2 (ja) | デイスクアレイ装置の構成定義設定方法及びデイスクアレイ装置 | |
CN112463307A (zh) | 一种数据传输方法、装置、设备及可读存储介质 | |
CN115495389A (zh) | 存储控制器、计算存储装置以及计算存储装置的操作方法 | |
EP3959611A1 (en) | Intra-device notational data movement system | |
US20060026328A1 (en) | Apparatus And Related Method For Calculating Parity of Redundant Array Of Disks | |
CN115811509A (zh) | 一种总线通信方法及相关设备 | |
CN117591037B (zh) | 一种虚拟化数据访问系统、方法、装置及服务器 | |
US7930445B2 (en) | Computer system using remote I/O and I/O data transfer method | |
CN115543894A (zh) | 存储系统、数据处理方法及装置、存储介质及电子设备 | |
CN113157602B (zh) | 一种对内存进行分配的方法、设备及计算机可读存储介质 | |
KR20200143922A (ko) | 메모리 카드 및 이를 이용한 데이터 처리 방법 | |
CN117032591B (zh) | 直接访问通道的应用方法、装置、计算机设备和存储介质 | |
CN117539802B (zh) | 一种缓存操作方法、系统以及相关装置 | |
US11281612B2 (en) | Switch-based inter-device notational data movement system | |
CN116774925A (zh) | 磁盘存储系统、方法及服务器 | |
TWI591532B (zh) | 電腦系統及其硬碟存取方法 | |
CN107422981B (zh) | 硬碟存取方法 | |
CN117555768A (zh) | 计算快速链路设备的测试方法、装置、系统及设备和介质 | |
CN117785758A (zh) | Cxl模组、控制器、任务处理方法、介质和系统 | |
CN116225996A (zh) | 一种映射系统、映射方法、设备及介质 | |
US20050172048A1 (en) | Method for transmitting data via a data bus |
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 |