CN108139937B - 多根i/o虚拟化系统 - Google Patents
多根i/o虚拟化系统 Download PDFInfo
- Publication number
- CN108139937B CN108139937B CN201580083861.3A CN201580083861A CN108139937B CN 108139937 B CN108139937 B CN 108139937B CN 201580083861 A CN201580083861 A CN 201580083861A CN 108139937 B CN108139937 B CN 108139937B
- Authority
- CN
- China
- Prior art keywords
- agent
- node
- node1
- physical function
- placement information
- 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
- 238000013519 translation Methods 0.000 claims description 104
- 238000000034 method Methods 0.000 claims description 45
- 238000013507 mapping Methods 0.000 claims description 18
- 238000004891 communication Methods 0.000 claims description 17
- 230000003863 physical function Effects 0.000 description 187
- 239000003795 chemical substances by application Substances 0.000 description 147
- 230000008901 benefit Effects 0.000 description 23
- 238000010586 diagram Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 14
- 238000005516 engineering process Methods 0.000 description 10
- 230000008859 change Effects 0.000 description 6
- 238000007726 management method Methods 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 238000005192 partition Methods 0.000 description 4
- 239000007787 solid Substances 0.000 description 4
- 238000000638 solvent extraction Methods 0.000 description 3
- 230000002776 aggregation Effects 0.000 description 2
- 238000004220 aggregation Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- DBMJMQXJHONAFJ-UHFFFAOYSA-M Sodium laurylsulphate Chemical compound [Na+].CCCCCCCCCCCCOS([O-])(=O)=O DBMJMQXJHONAFJ-UHFFFAOYSA-M 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 239000000654 additive Substances 0.000 description 1
- 230000000996 additive effect Effects 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
Images
Classifications
-
- 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- 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
-
- 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
- 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/0662—Virtualisation aspects
- G06F3/0665—Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
-
- 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/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/505—Clust
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
- G06F2212/657—Virtual address space management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种虚拟化系统(200)包含:至少一个存储设备(204、214);多个计算节点(201、211)Node1、Node2,每个计算节点连接到所述存储设备中的至少一个,其中每个计算节点Node1、Node2,包括物理功能代理(203、213),PF代理,其中用于访问所述至少一个存储设备(204、214)的物理地址空间PAS的物理功能(205、215)PF指派到所述物理功能代理(203、213),PF代理;以及多个虚拟机(202、212)VM1、VM2,其中用于访问逻辑地址空间(221、231)LAS的至少一个虚拟功能(204、214)VF指派到每个虚拟机(202、212),其中所述多个计算节点(201、211)中的第一计算节点(201)Node1的所述物理功能代理(203、213)PF代理用于从所述多个虚拟机(202、212)中的虚拟机(202)VM1接收检索或写入数据的请求,且获得放置信息,其中所述放置信息指示所述多个计算节点(201、211)中的第二计算节点(211)Node2来检索或写入数据;且其中所述第一计算节点(201)Node1的所述PF代理(203)用于与所述第二计算节点(211)Node2的所述PF代理(213)通信,以基于所述放置信息从所述第二计算节点(211)Node2检索数据,或将数据写入到所述第二计算节点(211)Node2。
Description
技术领域
本公开涉及一种虚拟化系统,其包括至少一个存储设备、多个计算节点和多个虚拟机。本公开进一步涉及一种用于由虚拟化系统的虚拟机访问至少一个存储设备的方法。确切地说,本发明涉及用于启用SR-IOV(单根输入/输出虚拟化)的SSD(固态驱动)的分布式控制的技术。
背景技术
虚拟化是信息技术领域中快速增长的趋势。其引入在单或多租户计算环境的任一个中有效控制硬件资源的全新机制。虚拟化允许将某一给定硬件资源或硬件资源集合呈现为与软件完全不同的虚拟资源。这提供汇集和分块的机会,汇集即将整个丛集的物理资源聚集到单一资源池中,分块即在不同主机上的若干客户端之间分割此池。最后,其有助于增加资源利用率且因此降低计算复杂性。
虚拟化可分成三种虚拟化技术:计算虚拟化、网络虚拟化和存储虚拟化。计算虚拟化是提供用于向共同形成虚拟机(Virtual Machine,VM)的系统软件呈现虚拟CPU、虚拟内存、虚拟I/O设备等(或一般来说,虚拟计算环境)的基本机制的技术的集合。网络虚拟化是用以在刚性物理互连上提供任何种类的虚拟叠加网络的技术范围。存储虚拟化主要是在物理存储资源上方形成抽象层的技术,所述抽象层表示具有给定特点和能力的集合的虚拟存储。
如果虚拟化过程由某一高级软件开发经理控制,则虚拟化的所述类型通常称为软件定义。软件定义网络(Software Defined Network,SDN)和软件定义存储(SoftwareDefined Storage,SDS)虚拟化是当前市场上众所周知的虚拟化技术的系列。软件定义方法带来更大灵活性和对于虚拟化过程的控制。
另一方面,我们引入的软件控制越多,则我们可获得的性能越少。为应对引入虚拟化技术的负面性能影响,在最新服务器硬件中提供硬件辅助的虚拟化扩展。这里,硬件辅助意味着有助于对其进行虚拟化的硬件中的特殊逻辑集合。硬件辅助的虚拟化技术已知用于所有类型的虚拟化技术。每个当代服务器微处理器包含此类扩展(例如)以增加其上虚拟化CPU的性能。市场上现存若干SDN-感知网络设备(例如OpenFlow硬件开关)。最值得注意的是,服务器定向I/O设备(网络适配器、盘控制器)通过提供硬件辅助的I/O虚拟化支持来帮助对其进行虚拟化。
当然,存在对硬件辅助的I/O虚拟化技术进行标准化的尝试。其中之一是针对基于PCI Express(PCIe)的I/O设备引入单根I/O虚拟化(SR-IOV)技术。SR-IOV通过引入物理功能(physical function,PF)和虚拟功能(virtual function,VF)的理念来工作。物理功能是全面性PCIe功能;虚拟功能是缺乏配置资源但适于基本I/O操作的“轻量”功能。每个PF可伴有表示物理设备上的虚拟设备的至少一个VF。稍后,VF准备好映射到VM的虚拟存储器地址空间中以为VM提供对虚拟化硬件资源的直接访问。现今,启用SR-IOV的网卡是市场上最流行的类型的启用SR-IOV的设备。
在本公开中,兴趣点在存储虚拟化的话题上。存在若干用以向软件提供虚拟存储的技术和方法。其中一些基于比如SAN或NAS等此类技术系列。其它可通过使DAS系统的丛集虚拟化因此形成所谓的“虚拟SAN”或“汇聚存储”系统来建立。后者产生DAS系统的益处(低时延、高处理量)与SAN系统的益处(可缩放性、可管理性)的组合。
汇聚存储是将存储和计算组合到单一实体中的存储架构。这可产生用于服务器中心、存储中心或混合工作负载的平台的开发,其中应用和数据在一起以改进应用性能和递送。大多数情况下,此类平台由供应商特定软件控制,这使其为软件定义的。市场上对于此类技术存在浓厚兴趣。
发明内容
本发明的目标是提供一种将存储和计算组合到单一实体中的改进的汇聚存储系统。
此目标通过独立权利要求的特征得以实现。从所附权利要求书、描述内容及图式显而易见更多实施形式。
本发明中所描述的基本概念是根据以下信息:几乎所有当代汇聚SDS架构的核心处存在SSD层,其目的是提供用于数据操作的高性能层。因此,尽可能有效地使此层虚拟化至关重要。本发明是基于如下理念:针对服务器定向SSD应用硬件辅助的I/O虚拟化以便大幅度缩短I/O时延和改进虚拟化环境中的处理量。在本公开中,引入组合I/O性能的硬件-软件系统,其因PCIe标准对SR-IOV的固有支持而具有前景,通过提供用于SDS管理器的扩展控制接口而具有软件驱动的灵活性。导出的硬件-软件控制接口允许在其上实施任何种类的汇聚SDS架构。
本发明通过在大多数情况下为存储介质的客户端提供对存储介质的直接访问来解决前述问题,即保持数据路径尽可能短;使控制逻辑与数据路径分离;提供紧凑型且通用的数据路径,所述紧凑型且通用的数据路径提供用于可编程性(控制)的合适的接口;感知虚拟化环境的系统;提供从丛集中的每个节点对每个节点上的存储介质的访问的分布式系统。本发明解决针对启用SR-IOV的SSD设备的分布式控制的问题。
为了详细描述本发明,将使用以下术语、缩写和符号:
SR-IOV: 单根输入/输出虚拟化
SSD: 固态驱动
VM: 虚拟机或计算设备
CPU: 中央处理单元
SDN: 软件定义网络
SDS: 软件定义存储
I/O: 输入/输出
PCIe: PCI Express
PF: 物理功能
VF: 虚拟功能
DHT: 动态散列表
LAS: 逻辑地址空间
PAS: 物理地址空间
LBA: 逻辑块地址
PBA: 物理块地址
下文中,描述使用SSD设备的系统、设备和方法。固态驱动(SSD)是使用集成电路组合件作为存储器来持久存储数据的数据存储设备。
下文中,描述使用SDS的系统、设备和方法。软件定义存储(SDS)是计算机数据存储软件独立于硬件管理数据存储的基于策略的供给和管理的概念。软件定义存储可包含用以使存储硬件与管理存储基础架构的软件分离的存储虚拟化。
下文中,描述使用SR-IOV的系统、设备和方法。单根I/O虚拟化(SR-IOV)接口是PCIExpress(PCIe)规范的扩展。SR-IOV允许例如网络适配器等设备在各种PCIe硬件功能之间分离对其资源的访问。这些功能可包含以下类型:PCIe物理功能(PF),其是设备的主要功能且展现设备的SR-IOV能力。PF与虚拟化环境中的虚拟机监控器母分区相关联。一个或多个PCIe虚拟功能(VF),其中每个VF与设备的PF相关联。VF与PF和设备上的其它VF共享设备的一个或多个物理资源,例如存储器和网络端口。每个VF与虚拟化环境中的虚拟机监控器子分区相关联。
下文中,描述使用例如物理地址空间(PA)和逻辑地址空间(LAS)等地址空间的系统、设备和方法。地址空间定义离散地址的范围,所述离散地址中的每个地址可对应于存储设备小区或其它逻辑或物理实体。可通过使用虚拟内存的概念实施虚拟到物理地址转换,其中虚拟地址空间的不同页面映射到页面文件或映射到主存储器物理地址空间。若干数值上不同的虚拟地址可全部参照一个物理地址,且因此参照RAM的相同物理字节。或单一虚拟地址可映射到零个、一个、或一个以上物理地址。
下文中,描述使用放置信息的系统、设备和方法。放置信息定义逻辑地址空间(LAS)中的某一逻辑地址和上面定位对应数据的计算节点之间的关联,所述计算节点或简称为“节点”。因此,放置信息表示控制信息。当如下文相对于图1到7描述而使用协调器服务(协调器)时,放置信息可由协调器管理,因此每个PF代理可通过提供对应节点的网络地址而要求协调器解析地址转换冲突。随后,举例来说,Node1的PF代理可能够连接到Node2的PF代理(由协调器提供),且如下文相对于图2详细描述而请求或写入数据。
根据第一方面,本发明涉及一种虚拟化系统,包括:至少一个存储设备;多个计算节点Node1、Node2,每个计算节点连接到存储设备中的至少一个,其中每个计算节点Node1、Node2,包括物理功能代理,PF代理,其中用于访问所述至少一个存储设备的物理地址空间PAS的物理功能PF指派到物理功能代理,PF代理;以及多个虚拟机VM1、VM2,其中用于访问逻辑地址空间LAS的至少一个虚拟功能VF指派到每个虚拟机,其中所述多个计算节点的第一计算节点Node1的物理功能代理,PF代理用于从所述多个虚拟机的虚拟机VM1接收检索或写入数据的请求,且获得放置信息,其中所述放置信息指示所述多个计算节点的第二计算节点Node2来检索或写入数据;且其中第一计算节点Node1的PF代理用于与第二计算节点Node2的PF代理通信以基于放置信息从第二计算节点Node2检索数据,或将数据写入到第二计算节点Node2。
此虚拟化系统提供将存储和计算组合到单一实体中的改进的汇聚存储系统。虚拟化系统提供以下优点:
数据路径上对存储介质的任何访问或事件可借助于PF接口过滤;控制逻辑可分离且位于表示协调器服务的专门管理节点上;PF代理能够借助于协调器和丛集中的其它PF代理解析任何过滤的事件。
可应用位于丛集环境中的不同节点处的存储介质以实现共享使用。如果存储介质的一些部分位于丛集的每个节点处,则虚拟化系统提供具有从每个节点对整个存储阵列的共享访问的方式。
在根据第一方面的虚拟化系统的第一可能实施形式中,第一计算节点Node1的物理功能代理,PF代理用于经由与第二计算节点的PF代理直接通信而获得放置信息。
这提供以下优点:通信路径较短从而提供快速且有效的通信。
在根据第一方面的虚拟化系统的第二可能实施形式中,虚拟化系统进一步包括协调服务设备,协调器,其中第一计算节点Node1的物理功能代理,PF代理用于经由协调服务设备,协调器与第二计算节点Node2的物理功能代理,PF代理通信,以获得放置信息。
此虚拟化系统提供具有从每个节点对整个存储阵列的共享访问的方式。控制逻辑,即协调服务设备,协调器负责整个存储阵列的分块,即分割,且应用QoS规则来访问这些分块或分区。因此,虚拟化系统提供具有用于包含虚拟机监控器的完全虚拟化环境的分离的数据和控制平面的机构。
在如此根据第一方面或根据第一方面的先前实施形式中的任一个的虚拟化系统的第三可能实施形式中,所述至少一个存储设备包括转换表,用于物理地址空间PAS的物理块地址PBA和逻辑地址空间LAS的逻辑块地址LBA之间的转换。
这提供存储器虚拟化的优点,从而提供汇集物理资源和将物理资源分块成部分的机会。因此,其有助于增加资源利用率且因此降低计算复杂性。
在根据第一方面的第三实施形式的虚拟化系统的第四可能实施形式中,如果在与第一计算节点Node1连接的存储设备的转换表中建立所请求逻辑块地址到物理块地址的映射,则第一计算节点Node1的虚拟机VM1用于在不与第一计算节点Node1的物理功能代理,PF代理交互的情况下访问与第一计算节点Node1连接的存储设备。
这提供以下优点:虚拟机可直接访问存储设备而不使用PF代理。这缩短用于访问存储器的时间且因此产生较快通信。
在根据第一方面的第三实施形式的虚拟化系统的第五可能实施形式中,如果未在与第一计算节点Node1连接的存储设备的转换表中建立所请求逻辑块地址到物理块地址的映射,则第一计算节点Node1的虚拟机VM1用于请求第一计算节点Node1的物理功能代理,PF代理来解析地址转换冲突。
这提供以下优点:不要求虚拟机保持映射表用于解析地址冲突,这降低了虚拟机的复杂性。
在根据第一方面的第五实施形式的虚拟化系统的第六可能实施形式中,如果用于解析地址转换冲突的放置信息在第一计算节点Node1的物理功能代理,PF代理中可用,则第一计算节点Node1的物理功能代理,PF代理用于解析所述地址转换冲突。
这提供以下优点:通信路径较短,因为其在相同计算节点内实现,借此提供快速且有效的通信。
在根据第一方面的第五实施形式的虚拟化系统的第七可能实施形式中,如果用于解析地址转换冲突的放置信息在第一计算节点Node1的物理功能代理,PF代理中不可用,则第一计算节点Node1的物理功能代理,PF代理用于请求协调服务设备,协调器以获得用于解析地址转换冲突的放置信息。
这提供以下优点:Node1的PF代理不必保持整个系统的放置信息,因为可向协调服务设备询问不可用的信息。当可从系统的另一实体获得信息时可以低复杂性实施PF代理。
在根据第一方面的第七实施形式的虚拟化系统的第八可能实施形式中,第一计算节点Node1的物理功能代理,PF代理用于基于从协调服务设备,协调器接收的用于解析地址转换冲突的放置信息来解析地址转换冲突。
这提供以下优点:虚拟化系统允许基于分布信息解析地址转换冲突。因此,虚拟化提供一种用于信息的分布式存储的有效方式。
在根据第一方面的第五实施形式的虚拟化系统的第九可能实施形式中,第一计算节点Node1的物理功能代理,PF代理用于基于用于解析地址转换冲突的放置信息在第二计算节点Node2处可用的信息来请求第二计算节点Node2的物理功能代理,PF代理以获得用于解析地址转换冲突的放置信息。
这提供以下优点:用于解析地址转换冲突的放置信息可存储在系统中任何位置处。这意味着此类放置信息可存储于整个系统的单一实体中,不需要将此类信息存储在系统中的多个位置处。因此,虚拟化系统提供保持硬件资源的高效通信。
在根据第一方面的第九实施形式的虚拟化系统的第十可能实施形式中,第一计算节点Node1的物理功能代理,PF代理用于基于从第二计算节点Node2接收的用于解析地址转换冲突的放置信息来解析地址转换冲突。
这提供以下优点:虚拟化系统允许基于分布信息解析地址转换冲突。因此,虚拟化提供一种用于信息的分布式存储的有效方式。
在根据第一方面的第八实施形式或第十实施形式的虚拟化系统的第十一可能实施形式中,第一计算节点Node1的物理功能代理,PF代理用于基于所接收的用于解析地址转换冲突的放置信息更新与第一计算节点Node1连接的存储设备的转换表。
这提供以下优点:转换表可保持最新从而允许快速和有效通信。
在根据第一方面的第八到第十一实施形式中的任一个的虚拟化系统的第十二可能实施形式中,第一计算节点Node1的物理功能代理,PF代理用于通知协调服务设备,协调器关于导致与第一计算节点Node1连接的存储设备的转换表的改变的任何事件,以及关于导致放置信息的改变的任何事件。
这提供以下优点:协调服务设备可保持最新从而允许快速和有效通信。
在如此根据第一方面或根据第一方面的先前实施形式中的任一个的虚拟化系统的第十三可能实施形式中,第二计算节点Node2的PF代理用于从第二计算节点的存储设备检索数据,且将数据传递到第一计算节点的PF代理,和/或从第一计算节点的PF代理接收数据,且将数据写入到第二计算节点的存储设备。
这提供以下优点:可在整个系统上快速且有效地执行数据读取/写入操作。
根据第二方面,本发明涉及一种用于通过如此根据第一方面或根据第一方面的先前实施形式中的任一个的虚拟化系统的虚拟机访问至少一个存储设备的方法,所述方法包括:如果在所述至少一个存储设备的转换表中建立所请求逻辑块地址到物理块地址的映射,则在不与第一计算节点Node1的物理功能代理,PF代理交互的情况下访问所述至少一个存储设备;以及如果未在所述至少一个存储设备的转换表中建立所请求逻辑块地址到物理块地址的所述映射,则请求第一计算节点Node1的物理功能代理,PF代理来解析地址转换冲突。
此方法提供对将存储和计算组合到单一实体中的汇聚存储系统的改进的访问。所述方法提供用于位于丛集环境中的不同节点处的存储介质的共享使用的机制。如果存储介质的一些部分位于丛集的每个节点处,则所述方法提供具有从每个节点对整个存储阵列的共享访问的方式。
在根据第二方面的方法的第一可能实施形式中,所述方法包括:如果用于解析地址转换冲突的放置信息在第一计算节点Node1的物理功能代理,PF代理中可用,则解析所述地址转换冲突;以及如果用于解析地址转换冲突的放置信息在第一计算节点Node1的物理功能代理,PF代理中不可用,则请求协调服务设备,协调器或第二计算节点Node2的物理功能代理,PF代理以获得用于解析地址转换冲突的放置信息。
所述方法提供以下优点:数据路径上对存储介质的任何访问或事件可由PF代理借助于PF接口过滤;控制逻辑可分离且位于表示协调服务设备,协调器的专门管理节点上;PF代理能够借助于协调器和丛集中的其它PF代理来解析任何经过滤事件。
分布式散列表(DHT)实施方案提供可由系统的任务使用的类似于散列表的查找服务。PF代理可知道取决于DHT实施方案在何处请求放置信息。对于一些DHT情境,可通过简单地使原始地址散列化来获得目的地节点。或者,对于一些其它DHT情境,可询问系统中的任何节点,且可通过重导向到数据的实际保持者来获得目的地节点。
在根据第二方面的第一实施形式的方法的第二可能实施形式中,所述方法包括:基于用于解析地址转换冲突的放置信息更新所述至少一个存储设备的转换表;以及通知协调服务设备,协调器关于解析后的地址转换冲突。
这提供以下优点:转换表和协调服务设备可保持最新从而允许快速和有效通信。
根据第三方面,本发明涉及一种系统,所述系统由以下各项组成:多个计算节点,其中每个计算节点连接到至少一个具有SR-IOV功能的存储设备;每个计算节点上的多个虚拟机(VM),其中至少一个虚拟功能(VF)指派到每个VM;每个计算节点上的可信PF代理组件,其经由其物理功能(PF)控制SSD设备且负责与协调器服务和其它节点上的PF代理的通信,其中每个存储设备能够进行LBA到PBA地址转换,其中每个VF可用于访问其自身的LAS,且其中设备内部的转换表由本地PF代理经由PF根据按需从协调器服务检索的放置信息来维持。
此系统提供以下优点:数据路径上对存储介质的任何访问或事件可由PF代理借助于PF接口过滤;控制逻辑可分离且位于表示协调服务设备,协调器的专门管理节点上。PF代理能够借助于协调器和丛集中的其它PF代理解析任何经过滤事件。
在根据第三方面的系统的第一可能实施形式中,LAS在所有计算节点上共享,且可借助于协调器动态地附接到VF/从VF脱离,其中活跃LAS的数目是当前连接到VF的LAS的数目,其它LAS被视为非活跃。
这提供以下优点:通过动态地向/从VF附接LAS,系统具有极大灵活性。
在如此根据第三方面或根据第三方面的第一实施形式的系统的第二可能实施形式中,LAS在所有计算节点上共享且可附接或脱离。
这提供以下优点:系统通过在所有计算节点上共享LAS而非常高效,且通过按需附接/脱离LAS而非常灵活。
在如此根据第三方面或根据第三方面的先前实施形式中的任一个的系统的第三可能实施形式中,当设备可在硬件中解析VM的请求时,其简单地经由VF从/向设备传回或写入所请求数据,而无与PF代理的任何不必要的交互。
这提供通信路径可保持较短的优点。因此,用于访问数据的时间较短。
在如此根据第三方面或根据第三方面的先前实施形式中的任一个的系统的第四可能实施形式中,当设备不能在硬件中解析VM的请求时,其产生针对PF的中断,因此通知PF代理关于未解析的请求;且PF代理继而可从协调器请求对应的放置信息且决定在何处获得所述信息(如果其为读取请求)或将其放置在何处(如果其为写入请求);且在此之后其将VM的请求完成为成功或失败。
这提供以下优点:系统很灵活,因为PF代理能够借助于协调器解析经过滤事件。
在如此根据第三方面或根据第三方面的先前实施形式中的任一个的系统的第五可能实施形式中,当必要时,PF代理可根据放置信息从其它节点上的PF代理检索数据,且经由PF或直接在VM的存储器空间内部将其写入到设备。
这提供以下优点:系统很灵活,因为PF代理能够借助于丛集中的其它PF代理解析经过滤事件。
在如此根据第三方面或根据第三方面的先前实施形式中的任一个的系统的第六可能实施形式中,PF代理可通知协调器关于一些事件(比如擦除或写入请求)。因此,协调器能够改变放置信息且相应地通知PF代理。
这提供以下优点:放置信息可保持最新从而允许快速和有效通信。
附图说明
本发明的进一步实施例将结合以下图式进行描述,其中:
图1示出说明根据实施形式虚拟化系统100的系统架构的框图;
图2示出说明根据实施形式虚拟化系统200的概观的框图;
图3示出说明根据实施形式用于在逻辑块地址和物理块地址之间转换的转换表300的示例性结构的框图;
图4示出说明根据实施形式如图1中所示出的虚拟化系统100中的直接读取/写入情境400的框图;
图5示出说明根据实施形式如图1中所示出的虚拟化系统100中的间接读取/写入情境500的框图;
图6示出说明根据实施形式如图1中所示出的虚拟化系统100中的擦除通知情境600的框图;以及
图7示出说明根据实施形式用于通过图2中示出的虚拟化系统200的虚拟机访问至少一个存储设备的方法700的示意图。
具体实施方式
以下结合附图进行详细描述,所述附图是描述的一部分,并通过说明的方式示出可以实践本发明的具体方面。可以理解的是,在不脱离本发明范围的情况下,可以利用其它方面,并可以做出结构上或逻辑上的改变。因此,以下详细描述并不当作限定,本发明的范围由所附权利要求书界定。
应理解,与所描述的方法有关的注解也适用于执行该方法的对应设备或系统,反之亦然。例如,如果描述了特定方法步骤,则对应设备可以包含用于执行所描述的方法步骤的单元,即使此类单元没有在图中明确描述或图示。此外,应理解,本文所描述的各种示例性方面的特征可以相互组合,除非另外明确说明。
图1示出说明根据实施形式虚拟化系统100的系统架构的框图。
图1描绘从丛集的一个节点的视点来看虚拟化系统100的系统架构。其它节点具有相同结构,如从下文图2可以看出,图2说明从丛集的多个节点的视点来看的虚拟化系统200。在图2中,示出两个节点,但所述结构对于其它节点是相同的。图1的虚拟化系统100是图2中描绘的虚拟化系统200的内部结构的实例。然而,还可针对图2中描绘的虚拟化系统200应用例如除启用SR-IOV的SSD设备以外的其它存储介质等任何其它内部结构。
虚拟化系统100包含以下主要组件:1)VM 101-具有某一I/O绑定应用102的虚拟机。一个节点上虚拟机101的最大数目受VF 104(虚拟功能)的最大数目限制。2)HW 131(硬件)-启用SR-IOV的SSD设备。此处,NVM阵列134表示实际存储介质。然而,还可以使用任何其它存储介质。3)主机111-具有对硬件资源131的不受限制访问的特权域。节点能够仅含有一个主机111。4)PF代理112-负责借助于PF接口管理SSD设备的主机驻留组件,包含PF驱动113和物理功能(PF)114。此组件的实际职责在下文描述。5)协调器141-负责丛集中的PF代理112之间的动作的协调的管理组件。此组件141的实际职责在下文描述。
VM 101包含用户层处的应用102,其借助于虚拟机监控器121经由VF驱动103耦合到虚拟功能VF 104。VF驱动103实施在VM 101的内核层级处。主机111包含用户层处的PF代理112,其借助于虚拟机监控器121经由PF驱动113耦合到物理功能PF 114。PF驱动113实施在主机111的内核层级处。虚拟机监控器将VM 101的数据路径以及主机111的数据路径124和控制路径123耦合到硬件131。硬件131包含充当与VM 101的接口的VF控制器132和充当与主机111的接口的PF控制器135。硬件131进一步包含转换表133和NVM阵列134。转换表133与VF控制器132和NVM阵列134耦合。NVM阵列134与转换表133和PF控制器135耦合。PF控制器135还经由控制路径与转换表133和VF控制器132耦合。
主机111中的PF代理112经由控制路径142耦合到协调器141,且经由另一控制路径144耦合到其它主机中的其它PF代理151。主机111中的PF代理112经由数据路径143耦合到其它PF代理151。
虚拟化系统100实现以下目标:每个VM 101与映射到VM的地址空间的至少一个VF104相关联。具有SR-IOV功能的设备131内部的每个VF 104、132指派到单独逻辑地址空间(LAS)。LAS为稀疏的且本质上巨大,这意味着其不受NVM阵列134大小约束。逻辑块地址(LBA)到物理块地址(PBA)转换表133提供将LAS中的逻辑页面映射到NVM阵列134内部的物理页面的机制,例如如图3中针对假想PCIe SSD所描绘。擦除块表和页面表可由PF代理112经由PF接口114动态地加载到设备/从设备卸载,因此允许处理比一个节点上的最大所支持VF数目多的LAS。针对PF 114的LAS等效于物理地址空间(PAS)。
图2示出说明根据实施形式虚拟化系统200的概观的框图。图2仅示出两个节点201、211以便保持图式简单。然而,虚拟化系统200可包含任何其它数目的节点,确切地说3、4、5、6、7、8、9、10个(等)节点。每个节点可根据图1中示出的说明实现。存储设备204、214可被实现为启用SR-IOV的SSD设备、PCIe SSD设备或任何其它存储介质。
虚拟化系统200包含至少一个存储设备204、214和多个计算节点201(Node1)、211(Node2),其中每个计算节点连接到存储设备204、214中的至少一个。在图2中,第一计算节点201连接到第一存储设备204,且第二计算节点211连接到第二存储设备214。
每个计算节点201、211包含物理功能代理203、213,(PF代理),其中用于访问所述至少一个存储设备204、214的物理地址空间(PAS)的物理功能205、215(PF)指派到物理功能代理203、213。每个计算节点201、211包含多个虚拟机202(VM1)、212(VM2),其中用于访问逻辑地址空间221、231(LAS)的至少一个虚拟功能204、214(VF)指派到每个虚拟机202、212。
在图2中,Node1 201的第一段222、Node1 201的第二段223和Node2 211的第一段224指派到VM1 202的LAS 221作为一实例;且Node1 201的第一段232、Node2 211的第一段233和Node2 211的第二段234指派到VM2 212的LAS 231作为一实例。
所述多个计算节点201、211的第一计算节点201的物理功能代理203用于从所述多个虚拟机202、212的虚拟机202接收检索或写入数据的请求,且获得放置信息,其中所述放置信息指示所述多个计算节点201、211的第二计算节点211来检索或写入数据。
第一计算节点201的PF代理203用于与第二计算节点211的PF代理213通信以基于放置信息从第二计算节点211检索数据或将数据写入到第二计算节点211。
第一计算节点201的物理功能代理203可用于经由与第二计算节点211的PF代理213直接通信而获得放置信息。
虚拟化系统200进一步包含协调服务设备141(协调器)。第一计算节点201的物理功能代理203可经由协调服务设备141与第二计算节点211的物理功能代理213通信以获得放置信息。类似地,第二计算节点211的物理功能代理213可经由协调服务设备141与第一计算节点201的物理功能代理203通信以获得放置信息。
所述至少一个存储设备204、214包括转换表,例如如下文相对于图3所描述的转换表300,用于在物理地址空间(PAS)的物理块地址302(PBA)和逻辑地址空间221、231(LAS)的逻辑块地址301(LBA)之间转换。
如果在与第一计算节点201连接的存储设备204的转换表300中建立所请求逻辑块地址301到物理块地址302的映射,则第一计算节点201的虚拟机202可在不与第一计算节点201的物理功能代理203交互的情况下访问与第一计算节点201连接的存储设备204。类似地,如果在与第二计算节点211连接的存储设备214的转换表300中建立所请求逻辑块地址301到物理块地址302的映射,则第二计算节点211的虚拟机212可在不与第二计算节点211的物理功能代理213交互的情况下访问与第二计算节点211连接的存储设备214。类似功能性适用于图2中未描绘的更多虚拟机。
如果未在与第一计算节点201连接的存储设备204的转换表300中建立所请求逻辑块地址301到物理块地址302的映射,则第一计算节点201的虚拟机202可请求第一计算节点201的物理功能代理203来解析地址转换冲突。类似功能性适用于第二计算节点211的虚拟机212且适用于图2中未描绘的更多虚拟机。
如果用于解析地址转换冲突的放置信息在第一计算节点201的物理功能代理203中可用,则第一计算节点201的物理功能代理203可解析地址转换冲突。类似功能性适用于第二计算节点211的物理功能代理213且适用于图2中未描绘的更多物理功能代理。
如果用于解析地址转换冲突的放置信息在第一计算节点(201)Node1的物理功能代理203中不可用,则第一计算节点201的物理功能代理203可请求协调服务设备141以获得用于解析地址转换冲突的放置信息。类似功能性适用于第二计算节点211的物理功能代理213且适用于图2中未描绘的更多物理功能代理。
第一计算节点201的物理功能代理203可基于从协调服务设备141接收的用于解析地址转换冲突的放置信息解析地址转换冲突。类似功能性适用于第二计算节点211的物理功能代理213且适用于图2中未描绘的更多物理功能代理。
第一计算节点201的物理功能代理203可基于用于解析地址转换冲突的放置信息在第二计算节点211处可用的信息而请求第二计算节点211的物理功能代理213以获得用于解析地址转换冲突的放置信息。类似功能性适用于第二计算节点211的物理功能代理213且适用于图2中未描绘的更多物理功能代理。
第一计算节点201的物理功能代理203可基于从第二计算节点211接收的用于解析地址转换冲突的放置信息解析地址转换冲突。类似功能性适用于第二计算节点211的物理功能代理213且适用于图2中未描绘的更多物理功能代理。
第一计算节点201的物理功能代理203可基于所接收的用于解析地址转换冲突的放置信息更新与第一计算节点201连接的存储设备204的转换表300。类似功能性适用于第二计算节点211的物理功能代理213且适用于图2中未描绘的更多物理功能代理。
第一计算节点201的物理功能代理203可通知协调服务设备141关于导致与第一计算节点201连接的存储设备204的转换表300的改变的任何事件,以及关于导致放置信息的改变的任何事件。类似功能性适用于第二计算节点211的物理功能代理213且适用于图2中未描绘的更多物理功能代理。
图3示出说明根据实施形式用于在逻辑块地址和物理块地址之间转换的转换表300的示例性结构的框图。
512字节块(也可应用任何其它字节数目)的逻辑块地址(LBA)301包含指示擦除块号的第一字段、指示页面号的第二字段和指示页面偏移的第三字段。擦除块号输入到擦除块表303,擦除块表303指示若干N个擦除块页面表地址(EB PTA),每个EB PTA指派有一个只读(RO)位。EB PTA零指示未分配的页面表。页面号输入到页面表304,所述页面表304指示若干M个页面物理块地址(PBA),每个PBA指派有一个只读(RO)位。页面PBA零指示未分配的页面。擦除块页面表地址用于定位对应擦除块的页面表。页面物理块地址与LBA块301的页面偏移一起耦合到加性组合器305用于获得512字节块的物理块地址(PBA)302。
图3中示出的转换表的实施方案仅为实例。还可以使用用于实现逻辑块地址(LBA)和物理块地址(PBA)之间的映射的任何其它实施方案。
图4示出说明根据实施形式如图1中所示出的虚拟化系统100中的直接读取/写入情境400的框图。
本发明的主要创新在于用于具有SR-IOV功能的SSD设备131的分布式控制的方案。此协议在下文描述。
数据路径122、124与控制路径123分离-因此,在大多数情况下,应用102仅从本地NVM阵列134读取信息/向本地NVM阵列134写入信息,甚至不产生针对PF代理112的中断(当针对VM的101LAS恰当地建立针对所请求地址的LBA到PBA映射时)。如图4中描绘,在“直接读取或写入”情境400的情况下,数据路径401尽可能短。在图4、5和6中,实线箭头表示当前数据路径,且虚线箭头表示当前控制路径。
图5示出说明根据实施形式如图1中所示出的虚拟化系统100中的间接读取/写入情境500的框图。
如果未针对LAS中的所请求地址建立LBA到PBA映射或设定了RO位(如上文相对于图3所描述)且此为写入请求(1.“读取/写入”)501,则针对PF产生中断,且CPU上下文立即切换到PF代理过程以解析此情形(2.“中断”)502。所述阶段可包含在PF代理112或其它PF代理(假如已知可从另一节点检索放置信息)中不存在所述信息的情况下与协调器141的通信(3.“通信”)503。在一些实施例中,PF代理112可能够借助于DHT算法确定数据位置。
为完成解析阶段,PF代理112能够改变LBA到PBA转换表133内部的映射和/或用一些数据填充所请求页面或将结果复制到VM的101DMA存储区,乃至拒绝所述请求(4.“解析”)504。最后,PF代理112将所述请求标记为经过解析,且将CPU上下文切换回到正等待完成的VM(5.“完成”)505。
显然,此处,协调器141的作用是为PF代理提供元数据,且指出所请求信息可在丛集中何处发现。协调器141的额外作用可包含例如负载均衡器、复制管理器、节点可用性跟踪器等。在一些实施例中协调器141可提供高层级API以控制其行为。出于高可用性和可缩放性目的,合理的是将协调器141实施为管理子丛集中的分布式组件。
图6示出说明根据实施形式如图1中所示出的虚拟化系统100中的擦除通知情境600的框图。
当建议由VM 101擦除某一块范围(例如由于修剪(TRIM)操作)(1.“擦除”)601时,针对PF 114产生中断,且CPU上下文立即切换到PF代理112过程以接收通知(2.“中断”)602,且必要时,通知协调器141(3.“通知”)603。此后,PF代理112产生完成且将CPU上下文切换回到VM 101(4.“完成”)604。
在虚拟化系统100、200中,LAS是全局概念-其意味着LAS与特定VM 101相关联,所述特定VM 101可例如在迁移过程(图2中示出)之后位于丛集的不同节点上(参看图6)。一个LAS的不同部分可由丛集中的不同PF代理维持。通常,每个PF代理针对在其介质LAS上的所有内容维持LBA到PBA表(不仅仅是那些加载到设备中的)。协调器141知道LAS的哪些段位于什么PF代理上。
虚拟化系统100、200提供两种有利的效应:能够通过在具有PCIe功能的SSD设备上使用硬件辅助虚拟化技术(SR-IOV)实现较低直接读取和写入时延;以及能够由丛集的每个客户端利用丛集的整个聚合存储介质。
图7示出说明根据实施形式用于通过图2中示出的虚拟化系统200的虚拟机访问至少一个存储设备的方法700的示意图。方法700用于在如上文相对于图1到6所描述的虚拟化系统100、200上运行。
方法700包含:如果在所述至少一个存储设备204、214的转换表300中建立所请求逻辑块地址301到物理块地址302的映射,则在不与第一计算节点201Node1的物理功能代理203,PF代理交互的情况下访问701至少一个存储设备204。所述方法进一步包含如果未在所述至少一个存储设备204的转换表300中建立所请求逻辑块地址301到物理块地址302的映射,则请求702第一计算节点201Node1的物理功能代理203,PF代理来解析地址转换冲突。
所述方法可进一步包含:如果用于解析地址转换冲突的放置信息在第一计算节点201Node1的物理功能代理203,PF代理中可用,则解析所述地址转换冲突;以及如果用于解析地址转换冲突的放置信息在第一计算节点201Node1的物理功能代理203,PF代理中不可用,则请求协调服务设备141,协调器或第二计算节点211Node2的物理功能代理213,PF代理以获得用于解析地址转换冲突的放置信息。所述方法可进一步实施上文相对于图1到6描述的功能性中的任一个来解析冲突,处置放置信息和实施读取/写入访问。
方法700可包含基于用于解析地址转换冲突的放置信息更新所述至少一个存储设备204的转换表300;以及通知协调服务设备141,协调器关于解析后的地址转换冲突。
本公开还支持包含计算机可执行代码或计算机可执行指令的计算机程序产品,所述计算机可执行代码或计算机可执行指令在执行时致使至少一个计算机执行本文中所描述的所述执行和计算步骤,确切地说如上文相对于图7所描述的方法700。这种计算机程序产品可以包含其上存储供计算机使用的程序代码的可读存储介质。所述程序代码可执行上文相对于图7描述的方法700。
尽管本发明的特定特征或方面可能已经仅结合几种实施形式中的一种进行公开,但此类特征或方面可以和其它实施形式中的一个或多个其它特征或方面相结合,只要对于任何给定或特定的应用是有需要或有利。而且,在一定程度上,术语“包含”、“有”、“具有”或这些词的其它变形在详细的说明书或权利要求书中使用,这类术语与术语“包括”是类似的,都是表示包含的含义。同样,术语“示例性”、“举例来说”和“例如”仅表示为实例,而不是最好或最佳的。可以使用术语“耦合”和“连接”及其派生词。应当理解,这些术语可以用于指示两个元件彼此协作或交互,而不管它们是直接物理接触还是电接触,或者它们彼此不直接接触。
尽管本文中已说明和描述特定方面,但所属领域的一般技术人员应了解,多种替代和/或等效实施方案可在不脱离本发明的范围的情况下替代所示出和描述的特定方面。本申请旨在覆盖本文论述的特定方面的任何修改或变更。
尽管以上权利要求书中的元件是利用对应的标签按照特定顺序列举的,除非对权利要求的阐述另外暗示用于实施部分或所有这些元件的特定顺序,否则这些元件不必限于以所述特定顺序来实施。
通过以上启示,对于所属领域的技术人员来说,许多替代、修改和变化是显而易见的。当然,所属领域的技术人员容易认识到,除本文所描述的应用之外,还存在本发明的众多其它应用。虽然已参考一个或多个特定实施例描述了本发明,但所属领域的技术人员将认识到在不偏离本发明的范围的前提下,仍可对本发明作出许多改变。因此,应理解,只要是在所附权利要求书及其等效物的范围内,可以用不同于本文具体描述的方式来实践本发明。
Claims (13)
1.一种虚拟化系统(200),其特征在于,包括:
至少一个存储设备(204、214);
多个计算节点(201、211)Node1、Node2,每个计算节点连接到所述存储设备中的至少一个,
其中每个计算节点Node1、Node2,包括物理功能代理(203、213)PF代理,其中用于访问所述至少一个存储设备(204、214)的物理地址空间PAS的物理功能(205、215)PF指派到所述物理功能代理(203、213)PF代理;以及
多个虚拟机(202、212)VM1、VM2,其中用于访问逻辑地址空间(221、231)LAS的至少一个虚拟功能(204、214)VF指派到每个虚拟机(202、212),
其中所述多个计算节点(201、211)中的第一计算节点(201)Node1的所述物理功能代理(203)PF代理用于从所述多个虚拟机(202、212)中的虚拟机(202)VM1接收检索或写入数据的请求,且获得放置信息,其中所述放置信息指示所述多个计算节点(201、211)中的第二计算节点(211)Node2来检索或写入数据;
其中所述第一计算节点(201)Node1的所述PF代理(203)用于与所述第二计算节点(211)Node2的所述PF代理(213)通信,以基于所述放置信息从所述第二计算节点(211)Node2检索数据,或将数据写入到所述第二计算节点(211)Node2;
其中,所述至少一个存储设备(204、214)包括转换表(300),用于所述物理地址空间PAS的物理块地址(302)PBA和所述逻辑地址空间(221、231)LAS的逻辑块地址(301)LBA之间的转换;
其中,如果在与所述第一计算节点(201)Node1连接的所述存储设备(204)的所述转换表(300)中建立所请求逻辑块地址(301)到物理块地址(302)的映射,则所述第一计算节点(201)Node1的所述虚拟机(202)VM1用于在不与所述第一计算节点(201)Node1的所述物理功能代理(203)PF代理交互的情况下访问与所述第一计算节点(201)Node1连接的所述存储设备(204);并且
其中,如果未在与所述第一计算节点(201)Node1连接的所述存储设备(204)的所述转换表(300)中建立所请求逻辑块地址(301)到物理块地址(302)的映射,则所述第一计算节点(201)Node1的所述虚拟机(202)VM1用于请求所述第一计算节点(201)Node1的所述物理功能代理(203)PF代理来解析地址转换冲突。
2.根据权利要求1所述的虚拟化系统(200),
其特征在于,所述第一计算节点(201)Node1的所述物理功能代理(203)PF代理用于通过与所述第二计算节点(211)的所述PF代理(213)直接通信而获得所述放置信息。
3.根据权利要求1所述的虚拟化系统(200),其特征在于,进一步包括:
协调服务设备(141),协调器,
其中所述第一计算节点(201)Node1的所述物理功能代理(203)PF代理用于经由所述协调服务设备(141)协调器与所述第二计算节点(211)Node2的所述物理功能代理(213)PF代理通信,以获得所述放置信息。
4.根据权利要求1所述的虚拟化系统(200),
其特征在于,如果用于解析所述地址转换冲突的放置信息在所述第一计算节点(201)Node1的所述物理功能代理(203)PF代理中可用,则所述第一计算节点(201)Node1的所述物理功能代理(203)PF代理用于解析所述地址转换冲突。
5.根据权利要求1所述的虚拟化系统(200),
其特征在于,如果用于解析所述地址转换冲突的放置信息在所述第一计算节点(201)Node1的所述物理功能代理(203)PF代理中不可用,则所述第一计算节点(201)Node1的所述物理功能代理(203)PF代理用于请求协调服务设备(141)协调器以获得所述用于解析所述地址转换冲突的放置信息。
6.根据权利要求5所述的虚拟化系统(200),
其特征在于,所述第一计算节点(201)Node1的所述物理功能代理(203)PF代理用于基于从所述协调服务设备(141)协调器接收的所述用于解析所述地址转换冲突的放置信息来解析所述地址转换冲突。
7.根据权利要求1所述的虚拟化系统(200),
其特征在于,所述第一计算节点(201)Node1的所述物理功能代理(203)PF代理用于基于用于解析所述地址转换冲突的放置信息在所述第二计算节点(211)Node2处可用的信息而请求所述第二计算节点(211)Node2的所述物理功能代理(213)PF代理以获得所述用于解析所述地址转换冲突的放置信息。
8.根据权利要求7所述的虚拟化系统(200),
其特征在于,所述第一计算节点(201)Node1的所述物理功能代理(203)PF代理用于基于从所述第二计算节点(211)Node2接收的所述用于解析所述地址转换冲突的放置信息而解析所述地址转换冲突。
9.根据权利要求6或8所述的虚拟化系统(200),
其特征在于,所述第一计算节点(201)Node1的所述物理功能代理(203)PF代理用于基于所述所接收的用于解析所述地址转换冲突的放置信息来更新与所述第一计算节点(201)Node1连接的所述存储设备(204)的所述转换表(300)。
10.根据权利要求6到8中任一项所述的虚拟化系统(200),
其特征在于,所述第一计算节点(201)Node1的所述物理功能代理(203)PF代理用于通知协调服务设备(141)协调器关于导致与所述第一计算节点(201)Node1连接的所述存储设备(204)的所述转换表(300)的改变的任何事件,以及关于导致所述放置信息的改变的任何事件。
11.一种用于通过根据前述权利要求中的一项所述的虚拟化系统(200)的虚拟机(202、212)访问至少一个存储设备(204)的方法(700),其特征在于,所述方法包括:
(701)如果在所述至少一个存储设备(204、214)的所述转换表(300)中建立所请求逻辑块地址(301)到物理块地址(302)的映射,则在不与所述第一计算节点(201)Node1的所述物理功能代理(203)PF代理交互的情况下访问所述至少一个存储设备(204);以及
(702)如果未在所述至少一个存储设备(204)的所述转换表(300)中建立所述所请求逻辑块地址(301)到物理块地址(302)的所述映射,则请求所述第一计算节点(201)Node1的所述物理功能代理(203)PF代理来解析地址转换冲突。
12.根据权利要求11所述的方法(700),其特征在于,包括:
如果用于解析所述地址转换冲突的放置信息在所述第一计算节点(201)Node1的所述物理功能代理(203)PF代理中可用,则解析所述地址转换冲突;以及
如果所述用于解决所述地址转换冲突的放置信息在所述第一计算节点(201)Node1的所述物理功能代理(203)PF代理中不可用,则请求协调服务设备(141)协调器或所述第二计算节点(211)Node2的所述物理功能代理(213)PF代理以获得所述用于解析所述地址转换冲突的放置信息。
13.根据权利要求12所述的方法(700),其特征在于,包括:
基于所述用于解析所述地址转换冲突的放置信息更新所述至少一个存储设备(204)的所述转换表(300);以及
通知所述协调服务设备(141)协调器关于解析后的地址转换冲突。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/RU2015/000666 WO2017065630A1 (en) | 2015-10-13 | 2015-10-13 | Multi root i/o virtualization system |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108139937A CN108139937A (zh) | 2018-06-08 |
CN108139937B true CN108139937B (zh) | 2021-08-13 |
Family
ID=55967387
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580083861.3A Active CN108139937B (zh) | 2015-10-13 | 2015-10-13 | 多根i/o虚拟化系统 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11016817B2 (zh) |
EP (1) | EP3350700B1 (zh) |
CN (1) | CN108139937B (zh) |
WO (1) | WO2017065630A1 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11531752B2 (en) | 2018-09-26 | 2022-12-20 | Intel Corporation | Technologies for control plane separation in a network interface controller |
US12008389B2 (en) * | 2018-11-13 | 2024-06-11 | Marvell Asia Pte, Ltd. | Flexible resource assignment to physical and virtual functions in a virtualized processing system |
US11194750B2 (en) * | 2018-12-12 | 2021-12-07 | Micron Technology, Inc. | Memory sub-system with multiple ports having single root virtualization |
US11354147B2 (en) * | 2019-05-06 | 2022-06-07 | Micron Technology, Inc. | Class of service for multi-function devices |
EP4160422A4 (en) * | 2020-07-02 | 2023-12-06 | Huawei Technologies Co., Ltd. | METHOD FOR USING AN INTERMEDIATE DEVICE FOR PROCESSING DATA, COMPUTER SYSTEM AND INTERMEDIATE DEVICE |
CN112395220B (zh) * | 2020-11-18 | 2023-02-28 | 海光信息技术股份有限公司 | 共享存储控制器的处理方法、装置、系统及存储控制器 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7467381B2 (en) * | 2003-12-16 | 2008-12-16 | Intel Corporation | Resource partitioning and direct access utilizing hardware support for virtualization |
US8122225B2 (en) | 2008-08-12 | 2012-02-21 | International Business Machines Corporation | LUN masking/mapping in a SR-IOV enabled SAS adapter |
US9256560B2 (en) * | 2009-07-29 | 2016-02-09 | Solarflare Communications, Inc. | Controller integration |
US8473947B2 (en) * | 2010-01-18 | 2013-06-25 | Vmware, Inc. | Method for configuring a physical adapter with virtual function (VF) and physical function (PF) for controlling address translation between virtual disks and physical storage regions |
US8521941B2 (en) * | 2010-12-28 | 2013-08-27 | Plx Technology, Inc. | Multi-root sharing of single-root input/output virtualization |
US9411654B2 (en) * | 2011-12-16 | 2016-08-09 | International Business Machines Corporation | Managing configuration and operation of an adapter as a virtual peripheral component interconnect root to expansion read-only memory emulation |
US9311122B2 (en) | 2012-03-26 | 2016-04-12 | Oracle International Corporation | System and method for providing a scalable signaling mechanism for virtual machine migration in a middleware machine environment |
US20140237156A1 (en) * | 2012-10-25 | 2014-08-21 | Plx Technology, Inc. | Multi-path id routing in a pcie express fabric environment |
US9003071B2 (en) * | 2013-03-13 | 2015-04-07 | Futurewei Technologies, Inc. | Namespace access control in NVM express PCIe NVM with SR-IOV |
US9720717B2 (en) | 2013-03-14 | 2017-08-01 | Sandisk Technologies Llc | Virtualization support for storage devices |
CN106796529B (zh) * | 2014-10-03 | 2020-04-21 | 华为技术有限公司 | 通过利用商品型PCI交换机在PCIe结构中的CPU上使用未经修改的PCIe设备驱动程序来使用PCIe设备资源的方法 |
-
2015
- 2015-10-13 WO PCT/RU2015/000666 patent/WO2017065630A1/en active Application Filing
- 2015-10-13 EP EP15860018.9A patent/EP3350700B1/en active Active
- 2015-10-13 CN CN201580083861.3A patent/CN108139937B/zh active Active
-
2018
- 2018-04-13 US US15/952,976 patent/US11016817B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20180239649A1 (en) | 2018-08-23 |
WO2017065630A1 (en) | 2017-04-20 |
US11016817B2 (en) | 2021-05-25 |
EP3350700A1 (en) | 2018-07-25 |
CN108139937A (zh) | 2018-06-08 |
EP3350700B1 (en) | 2024-01-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11416275B2 (en) | Techniques for migration paths | |
US11556437B2 (en) | Live migration of virtual devices in a scalable input/output (I/O) virtualization (S-IOV) architecture | |
US10768862B2 (en) | Extending existing storage devices in virtualized environments | |
CN110063051B (zh) | 用于重新配置服务器的系统和方法以及服务器 | |
CN108139937B (zh) | 多根i/o虚拟化系统 | |
US20210232528A1 (en) | Configurable device interface | |
TWI621023B (zh) | 用於支持對經由nvme控制器、通過網路存取的遠端存儲設備的熱插拔的系統和方法 | |
EP4318203A2 (en) | Managed switching between one or more hosts and solid state drives (ssds) based on the nvme protocol to provide host storage services | |
US9854036B2 (en) | Method for migrating memory data of virtual machine, and related apparatus and cluster system | |
EP2795464B1 (en) | Enabling efficient nested virtualization | |
US20170024224A1 (en) | Dynamic snapshots for sharing network boot volumes | |
US9626324B2 (en) | Input/output acceleration in virtualized information handling systems | |
KR102321913B1 (ko) | 불휘발성 메모리 장치, 및 그것을 포함하는 메모리 시스템 | |
US9697024B2 (en) | Interrupt management method, and computer implementing the interrupt management method | |
US9460009B1 (en) | Logical unit creation in data storage system | |
US10853259B2 (en) | Exitless extended page table switching for nested hypervisors | |
US10089267B2 (en) | Low latency efficient sharing of resources in multi-server ecosystems | |
CN113939803A (zh) | 用于专用主机的管理计算资源放置即服务 | |
US20220358049A1 (en) | Memory access handling for peripheral component interconnect devices | |
US20230185593A1 (en) | Virtual device translation for nested virtual machines | |
US11748136B2 (en) | Event notification support for nested virtual machines | |
WO2024127177A1 (en) | Continuity of service for virtualized device after resumption from hibernation | |
CN118672725A (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 |