CN105975413A - 用于迁移虚拟机的rdma存储器映射的控制器和方法 - Google Patents

用于迁移虚拟机的rdma存储器映射的控制器和方法 Download PDF

Info

Publication number
CN105975413A
CN105975413A CN201610134805.4A CN201610134805A CN105975413A CN 105975413 A CN105975413 A CN 105975413A CN 201610134805 A CN201610134805 A CN 201610134805A CN 105975413 A CN105975413 A CN 105975413A
Authority
CN
China
Prior art keywords
physical
memory region
memory
virtual
machine
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.)
Granted
Application number
CN201610134805.4A
Other languages
English (en)
Other versions
CN105975413B (zh
Inventor
B·梅茨勒
J·普菲弗勒
P·斯图伊迪
A·K·特里维迪
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN105975413A publication Critical patent/CN105975413A/zh
Application granted granted Critical
Publication of CN105975413B publication Critical patent/CN105975413B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1081Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17306Intercommunication techniques
    • G06F15/17331Distributed shared memory [DSM], e.g. remote direct memory access [RDMA]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/657Virtual address space management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/40Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本公开的实施例涉及用于迁移虚拟机的RDMA存储器映射的控制器和方法。提出了一种具有RDMA能力的网络接口控制器,该网络接口控制器用于使用多个映射表来提供到物理机的物理存储器的RDMA访问。物理存储器包括多个物理存储器区域,物理存储器区域中的至少一些物理存储器区域与运行在物理机上的虚拟机的虚拟存储器区域相关联。网络接口控制器包括映射单元,映射单元被配置为基于映射表将存储器区域标识符映射到虚拟存储器区域并且映射到相关联的物理存储器区域,该网络接口控制器还包括处理单元,处理单元被配置为从客户端接收访问物理存储器区域中的、与虚拟机的虚拟存储器区域相关联的一个物理存储器区域的访问请求。

Description

用于迁移虚拟机的RDMA存储器映射的控制器和方法
技术领域
本发明涉及具有RDMA能力的网络接口控制器以及用于提供迁移虚拟机的RDMA存储器映射的机制的方法。在一个从物理机向另一物理机迁移虚拟机时,经由存储器注册调用生成的映射从物理机上的具有RDMA能力的网络接口控制器被传送到另一控制器。
背景技术
在现代网络系统中,远程直接存储器访问(RDMA)用于使用网络控制器来提供从一个物理机(例如计算机)的存储器到另一物理机的存储器中的直接存储器访问,而不需要涉及其中任何一个物理机的操作系统。这实现了可忽略的CPU负载下的高吞吐量和低潜伏期联网。但是RDMA具有特定的要求并且因此使分布式设置中的应用暴露于被绑定到物理机和网络控制器的网络资源(诸如转向标签(STag))以及相关联的寄存的虚拟和物理存储器区域等。这些STag是访问物理机的物理存储器区域所必需的,但是仅对于特定物理机上的特定的网络接口控制器设备有效。这些STag由联网环境中的所有对等点或客户端来分配和使用。在合并的分布式环境(如云网络)中,涉及RDMA访问的工作负荷运行在虚拟机器(VM)内部。然而,当虚拟机器从物理主机向另一物理主机迁移时,前一物理主机或机器的STag和存储器映射在新的主机或机器上无效。因此,具有旧的STag的对等点必须丢弃旧的STag并且学习新迁移的机器上的新的STag。这可能是一个耗时且复杂的过程,其可能导致工作负荷的性能损失。
US 7,565,454 B2公开了一种用于在相同的主机内运行在第一网络接口与第二网络接口之间运行进行传送控制的方法。
因此,本发明的方面在于提供一种在迁移虚拟机时在物理机之间从具有RDMA能力的网络控制器向另一网络控制器迁移虚拟机的存储器映射、并且在访问存储区域时使用迁移的存储器映射的改进方式。
发明内容
根据第一方面,提出了一种具有RDMA能力的网络接口控制器,该网络接口控制器用于使用多个映射表来提供到物理机的物理存储器的RDMA访问。物理存储器包括多个物理存储器区域,这些物理存储器区域中的至少物理存储器区域一些与运行在物理机上的虚拟机的虚拟存储器区域相关联。网络接口控制器包括映射单元和处理单元。映射单元被配置为基于映射表将存储器区域标识符映射到虚拟存储器区域并且映射到相关联的物理存储器区域,每个存储器区域标识符适于标识虚拟存储器区域和相关联的物理存储器区域,其中映射单元被配置为基于被包括在访问请求中的虚拟机的网络标识符来从多个映射表中选择映射表,每个映射表使用多个存储器区域标识符而被索引,多个存储器区域标识符中的每个存储器区域标识符与一个虚拟存储器区域和一个物理存储器区域相关联。处理单元被配置为从客户端接收用于访问物理存储器区域中的、与虚拟机的虚拟存储器区域中的一个虚拟存储器区域相关联的一个物理存储器区域的访问请求,其中访问请求包括多个存储器区域标识符中的、标识虚拟存储器区域和相关联的物理存储器区域的一个存储器区域标识符,其中处理单元还被配置为使用被包含在所选的映射表中的信息并且使用所接收的存储器区域标识符,向客户端提供对虚拟存储器区域和相关联的物理存储器区域的访问。
根据一个实施例,网络接口控制器是软件实现的和/或硬件实现的。
根据另一实施例,访问请求是接收和/或发送访问请求。
根据另一实施例,网络标识符为唯一的网络范围标识符。
根据另一实施例,网络接口控制器还包括:被配置为生成包括存储器区域标识符和相关联的虚拟存储器区域的存储器注册日志的存储器注册日志记录单元。
根据另一实施例,网络接口控制器被配置为向另一物理机传送所生成的存储器注册日志。
根据另一实施例,映射单元被配置为基于所生成的存储器注册日志来生成新的映射表。
根据另一实施例,当虚拟机从另一物理机被迁移到该物理机时,映射单元被配置为从另一物理机接收存储器注册日志连同迁移信息,并且其中映射单元被配置为基于所接收的存储器注册日志来生成新的映射表。
根据另一实施例,映射单元被配置为使用所接收的存储器注册日志的条目来生成针对所迁移的虚拟机的网络标识符的新的映射表,重放所接收的存储器注册日志,并且对于映射表的每个条目,利用物理机的物理存储器区域替换另一物理机的相关联的物理存储器区域。
根据另一实施例,映射单元被配置为在接收到来自客户端的访问请求时,通过基于所接收的存储器注册日志添加条目,来生成新的映射表。
第一方面的任何实施例可以与第一方面的任何实施例进行组合以获得第一方面的另一实施例。
根据第二方面,提出了一种物理机。物理机包括:包括多个物理存储器区域的物理存储器,运行在物理机上的至少一个虚拟机,以及第一方面的网络接口控制器。物理机的多个物理存储器区域借助于虚拟存储器映射机制而被映射到虚拟机的虚拟存储器区域。
根据第三方面,提出了一种网络系统。网络系统包括第二方面的至少两个物理机。运行在至少两个物理机中的第一物理机上的虚拟机被配置为从第一物理机被迁移到至少两个物理机中的第二物理机。
根据一个实施例,当虚拟机从第一物理机被迁移到第二物理机时,第二物理机的网络接口控制器被配置为接收存储器注册日志连同虚拟机的信息。
根据另一实施例,虚拟机被配置为从第二物理机被迁移到第一物理机。
根据第四方面,提出了一种用于使用多个映射表来提供对物理机的物理存储器的RDMA访问的方法。物理存储器包括多个物理存储器区域,物理存储器区域中的至少一些物理存储器区域与运行在物理机上的虚拟机的虚拟存储器区域相关联。该方法包括以下步骤:基于映射表将存储区标识符映射到虚拟存储器区域并且映射到相关联的物理存储器区域,存储器区域标识符中的每个存储器区域标识符适于标识虚拟存储器区域和相关联的物理存储器区域,其中映射表基于虚拟机的网络标识符而选自多个映射表,映射表中的每个映射表使用多个存储器区域标识符而被索引,多个存储器区域标识符中的每个存储器区域标识符与一个虚拟存储器区域以及一个物理存储器区域相关联;从客户端接收用于访问物理存储器区域中的、与虚拟机的一个虚拟存储器区域相关联的一个物理存储器区域的访问请求,其中访问请求包括多个存储器区域标识符中的、标识虚拟存储器区域和相关联的物理存储器区域的一个存储器区域标识符;以及使用被包含在所选择的映射表中的信息并且使用所接收的存储器区域标识符,向客户端提供对虚拟存储器区域和相关联的物理存储器区域的访问。
根据第五方面,本发明涉及一种计算机程序,其包括当运行在至少一个计算机上时用于执行用于提供对物理机的物理存储器的RDMA访问的第四方面的方法的至少一个步骤的程序代码。
下面,参考附图描述本发明的示例性实施例。
附图说明
图1示出用于提供对物理机的物理存储器的RDMA访问的具有RDMA能力的网络接口控制器的实施例;
图2示出与图1的具有RDMA能力的网络接口控制器交互的虚拟机的实施例;
图3示出在从一个物理机向另一物理机迁移之后图2的虚拟机的实施例;
图4示出用于提供对物理机的物理存储器的RDMA访问的一系列的方法步骤的实施例;以及
图5示出被适配用于执行用于提供对物理机的物理存储器的RDMA访问的方法的系统的实施例的示意性框图。
附图中的类似或功能类似的元件在没有另外指出的情况下被分配相同的附图标记。
具体实施方式
对于RDMA访问,通过呈现存储器标识符来标识存储区域,存储器标识符与物理机的虚拟地址区域(本文中也称为虚拟存储器区域)和物理存储器区域相关联。通过在RDMA访问之前执行存储器注册操作(也称为存储器注册调用)来明确地生成存储器标识符及其存储器关联。包括存储器标识符、虚拟存储器区域、物理存储器区域和实现特定的元数据等的这些关联关系被存储在网络接口控制器10中的映射表中,其在图1中详细示出。
图2和3中作为示例示出的实施例涉及本文中所描述的具有RDMA能力的网络接口控制器的设计和方法,其能够更新映射表条目中的物理存储器区域,同时保留先前生成的存储器标识符和相关联的虚拟存储器区域。这一能力用于保存虚拟机内的RDMA工作负荷可见的存储器凭证(即存储器标识符和虚拟存储器区域),同时在虚拟机迁移过程期间更新相关联的物理存储器区域。
在如图2所示的一个实施例中,为了跟踪存储器注册操作,在更高层软件(例如操作系统、驱动程序等)或者控制器本身的帮助下维护存储器注册日志。日志作为虚拟机状态的一部分而被传送,其从旧的物理机主机被传送到新的物理机主机。
为了避免存储器标识符冲突(其在新的物理主机的RDMA控制器的映射表已经包含与虚拟机类似的存储器标识符条目的情况下发生),本文中所描述的RDMA网络接口控制器包含多个映射表,并且使用虚拟机的网络标识符(例如IP地址)来选择正确的表格。因此,本文中所描述的网络接口控制器使用属于虚拟机的网络标识符的映射表来解决对物理存储器的RDMA访问。
在迁移虚拟机时,在旧的物理主机的RDMA网络接口控制器上删除虚拟机的映射表。在新的物理主机的网络接口控制器上创建新的映射表,例如通过重放存储器注册日志并且使用新的物理机主机的新的物理存储器区域来更新映射条目的物理区域。这一机制基于以下想法:虚拟机的网络标识符为网络范围唯一的标识符,并且具有RDMA能力的网络接口控制器能够接收这样的日志,创建和破坏映射表,刷新物理存储器区域条目,并且使用RDMA请求中所呈现的网络标识符来选择用于访问的正确的映射表。
现在将参考附图更详细地描述网络接口控制器及其实施例。
图1示出了用于使用多个映射表提供对物理机30的物理存储器的RDMA访问的具有RDMA能力的网络接口控制器10。物理存储器包括多个物理存储器区域(图1中仅示出一个物理存储器区域31)。物理存储器区域中的一个物理存储器区域31与运行在物理机30上的虚拟机20的虚拟存储器区域21相关联。
网络接口控制器10包括处理单元11、映射单元12和存储器注册日志记录单元13。网络接口控制器10可以是硬件实现的网络接口控制器,但是其也可以用软件实现。实际上,网络接口控制器10的相应单元(例如映射单元12)可以用硬件和/或用软件来实现。如果所述单元用硬件实现,则其可以实施为设备,例如实施为处理器或者实施为系统(例如计算机系统)的一部分。如果上述单元用软件实现,则其可以实施为计算机程序产品,实施为函数,实施为例行程序,实施为程序代码或者实施为可执行对象。
在存储器注册调用(其先于访问请求1)期间,由RDMA设备(如网络接口控制器10)生成存储器区域标识符(例如转向标签或STag)。STag经由具有RDMA能力的网络接口控制器10(也称为NIC或RNIC)唯一地标识虚拟机20上的虚拟存储器区域21(通过虚拟地址va1和长度len1)。STag用于编码虚拟存储器区域21的基地址(va1)和长度(len1),以标识附接到虚拟存储器区域21的物理存储器区域31并且检查访问许可。然而,STag为设备特定的标识符。在一个设备(如RNIC)上生成的STag s1对于另一物理机50上的另一设备无效。因此,访问另一物理机50上的另一RNIC上的STag s1将产生错误,这是因为映射对于另一物理机50上的存储区域无效。在这一上下文中,应当注意,网络接口控制器10与一个设备相关联(即对于一个物理机30)。
为了避免这样的错误,本文中所描述的网络接口控制器10能够在从一个物理机30或主机向另一物理机50(参见图3)或主机迁移虚拟机20时,在物理机之间传送存储器映射。下面将描述网络接口控制器10的不同单元。
处理单元11被配置为从客户端2接收访问请求1,访问请求1用于访问与虚拟机20的虚拟存储器区域21相关联的物理存储器区域31,访问请求1可以是接收或发送请求。客户端2可以在远处或者直接位于网络接口控制器10处。访问请求1包括标识虚拟存储器区域21和相关联的物理存储器区域31的存储器区域标识符S1(参见图2),如转向标签。这一标识可以是显式的或者隐式的。这意味着存储器区域标识符S1可以具有到参考虚拟存储器区域21或物理存储器区域31或者二者直接引用。在任何情况下,存储器区域标识符S1直接地或者经由相应的其他存储器区域来标识这两个区域。
映射单元12被配置为基于映射表41,将存储器区域标识符S1映射到虚拟存储器区域21并且映射到相关联的物理存储器区域31。映射单元12基于虚拟机20的网络标识符IP从多个映射表40中选择映射表41。网络标识符IP是用于标识虚拟机20的唯一的网络范围标识符。其可以是例如IP地址、全局标识符、MAC地址、或任何其他标识符。
应当注意,一个虚拟机20可以具有多个网络标识符IP。在这样的情况下,网络接口控制器10可以具有针对每个网络标识符的映射表,其中相同的虚拟机的每个映射表包含相同的条目。
如果虚拟机20的网络标识符IP变化,则可以选择与之前相同的映射表,但是基于新的网络标识符IP。为了基于新的网络标识符IP来选择相同的映射表,可以相应地在网络接口控制器10中更新用于选择映射表的元数据。
网络标识符IP被包括在接入请求1中。映射表40中的一个映射表基于网络标识符IP而被选择。使用多个存储器区域标识符来索引每个映射表40,其中多个存储器区域标识符中的每个存储器区域标识符与虚拟存储器区域21和物理存储器区域31相关联。
在映射之后,处理单元11使用所选的映射表中所包含的信息并且使用所接收的存储器区域标识符,向客户端2提供对虚拟存储器区域21和相关联的物理存储器区域31的访问3。
将参考图2和3描述虚拟机20从一个物理机30向另一物理机50的迁移以及映射表40的生成。
运行在物理机30上的虚拟机20具有虚拟存储器区域21,其也称为应用缓冲器,其与物理存储器区域31相关联。在虚拟机20上,运行操作系统22(OS)。另外,提供有管理程序23,其用作虚拟机20与物理机30之间的层。提供有用于处理来自客户端2的访问请求1的网络接口控制器10。
当客户端2想要访问虚拟存储器区域21时,生成存储器注册调用作为对访问请求1的准备。这样的存储器注册调用在存储器注册日志44中被日志记录。在存储器注册日志记录单元13中进行这一日志记录。每个存储器注册调用向存储器注册日志44添加条目。一个条目包括存储器区域标识符S1和相关联的虚拟存储器区域21,其例如用地址va1和长度len1指示。另外,也可以使用去注册调用,以用于从存储器注册日志44去除条目。
网络接口控制器10可以直接包括作为硬件或软件实现的单元的存储器注册日志记录单元13。或者,存储器注册日志记录单元13可以实现为RDMA网络接口控制器10的驱动程序的一部分。
网络接口控制器10接收访问请求1并且选择多个映射表40中的一个映射表41。访问请求1中所包括的虚拟机20的IP来完成上述操作。在这之后,可以如以上所描述地使用正确选择的映射表41,来执行使用访问请求1中所包括的存储器区域标识符S1将虚拟存储器区域21映射到物理存储器区域31。
可以向网络中存在的所有客户端转发存储器区域标识符S1。
然而,当虚拟机20从物理机30被迁移4到物理机50时,虚拟机20的虚拟地址和长度保持着,但是底层的物理存储器区域51不同。然而,由于网络接口控制器10(向每个物理机30、50分配的单独的网络接口控制器10)基于虚拟机20的对应IP地址选来择映射表40,所以客户端2所使用的存储器区域标识符S1将被映射到新的物理存储器区域51。
当虚拟机器20被迁移时,映射单元12从前面的物理机30接收存储器注册日志44连同迁移信息。基于存储器注册日志44,映射单元12生成被添加到多个映射表40的新的映射表52。
可以通过重放所接收的存储器注册日志44,并且通过针对映射表41的每个条目,利用物理机50的物理存储器区域51来替换相关联的另一物理机30的物理存储器区域31,来使用所接收的存储器注册日志44的条目来生成新的映射表52。在映射表40中,物理存储器区域31表示为pa1,物理存储器区域51表示为pa2。
在另一实施例中,在接收到来自客户端2的访问请求1时,映射单元12仅生成新的映射表52的新的条目。
图4示出用于提供对物理机的物理存储器的RDMA访问的一系列的方法步骤的实施例。图4的方法具有以下步骤401-403。
在步骤401,基于映射表将存储器区域标识符映射到虚拟存储器区域并且映射到相关联的物理存储器区域,每个存储器区域标识符适于标识虚拟存储器区域和相关联的物理存储器区域。映射表基于虚拟机的网络标识符而选自多个映射表,每个映射表使用多个存储器区域标识符而被索引,多个存储器区域标识符中的每个存储器区域标识符与虚拟存储器区域中的一个虚拟存储器区域和物理存储器区域中的物理存储器区域相关联。
在步骤402,从客户端接收引用访问物理存储器区域中的、与虚拟机的虚拟存储器区域中的一个虚拟存储器区域相关联的一个物理存储器区域的访问请求。访问请求包括多个存储器区域标识符中的、标识虚拟存储器区域和相关联的物理存储器区域的一个存储器区域标识符。
在步骤403,使用所选映射表中所包含的信息并且使用所接收的存储器区域标识符,向客户端提供对虚拟存储器区域和相关联的物理存储器区域的访问。
应当注意,步骤的顺序可以变化,并且也可以按照不同的顺序来执行。
可以合适地设计用于实现如本文中所描述的本发明的实施例的计算机化的设备。在这一方面,可以理解,本文中所描述的方法大部分是非交互式和自动的。在示例性实施例中,本文中所描述的方法可以在交互式、部分交互式或非交互式系统中实现。本文中所描述的方法可以用软件(例如固件)、硬件、或其组合来实现。在示例性实施例中,本文中所描述的方法用软件(如可执行程序)来实现,可执行程序由合适的数字处理设备来执行。在另外的示例性实施例中,以上图4的方法的至少一个步骤或者所有步骤可以用软件(如可执行程序)来实现,可执行程序由合适的数字处理设备来执行。更一般地,可以实现其中使用通用数字计算机(诸如个人计算机、工作站等)的本发明的实施例。
比如,图5中所描绘的系统500示意性地表示计算机化的单元501,例如通用计算机。在示例性实施例中,在软件架构方面,如图5所示,单元501包括处理器505、耦合到存储器控制器515的存储器510、以及经由本地输入/输出控制器535通信耦合的一个或多个输入和/或输出(I/O)设备540、545、550、555(或外围设备)。另外,输入/输出控制器535可以是但不限于一条或多条总线或者其他有线或无线连接,如本领域所公知的。输入/输出控制器535可以具有用于实现通信的另外的元件,其出于简化而被省略,诸如控制器、缓冲器(高速缓存)、驱动器、中继器、和接收器。另外,本地接口可以包括实现上述部件之间的适当通信的地址、控件、和/或数据连接。
处理器505为用于执行特别地被存储在存储器510中的软件的硬件设备。处理器505可以是任何定制或市面上可获得的处理器、中央处理单元(CPU)、与计算机501相关联的若干处理器中的辅助处理器、基于半导体的微处理器(微芯片或芯片集的形式)、或者通常用于执行软件指令的任何设备。
存储器510可以包括易失性存储器元件(例如随机访问存储器)和非易失性存储器元件中的任何一个或组合。另外,存储器510可以包含电子、磁性、光学和/或其他类型的存储介质。注意,存储器510可以具有分布式架构,其中各种部件彼此远离,但是可以由处理器505访问。
存储器510中的软件可以包括一个或多个单独的程序,其每个包括用于实现逻辑功能的可执行指令的有序列表。在图5的示例中,存储器510中的软件包括根据示例性实施例的本文中所描述的方法以及合适的操作系统(OS)511。OS 511基本上控制其他计算机程序的执行,诸如本文中所描述的方法(例如图4),并且提供调度、输入输出控制、文件和数据管理、存储器管理、以及通信控制和相关服务。本文中所描述的方法可以是源程序、可执行程序(目标代码)、脚本、或者包括要执行的指令集的任何其他实体的形式。当为源程序的形式时,程序需要经由编译器、汇编器、解释器等(本身众所周知)来转换,其可以被包括在或者可以没有被包括在存储器510内,以便结合OS 511适当地操作。另外,方法可以被编写为面向对象的编程语言,其具有数据和方法类,或者被编写为过程编程语言,其具有例行程序、子例行程序和/或函数。
传统的键盘550和鼠标555有可能可以耦合到输入/输出控制器555。其他I/O设备540-555可以包括传感器(尤其是在网络元件的情况下),即产生对物理条件(如温度或压力)(要监控的物理数据)的变化的可测量响应的硬件设备。通常,传感器产生的模拟信号通过模数变换器被数字化并且被发送给控制器535以用于进一步处理。传感器节点理想情况下很小,消耗很低的能量,是自动的并且无人值守地操作。
另外,I/O设备540-555还可以包括通信输入和输出二者的设备。系统500还可以包括耦合到显示器530的显示器控制器525。在示例性实施例中,系统500还可以包括用于耦合到网络565的网络接口或收发器560。
网络565在单元501与外部系统之间传输和接收数据。网络565由可能以无线方式来实现,例如使用无线协议和技术,诸如WiFi、WiMax等。网络565可以是固定无线网络、无线局域网(LAN)、无线广域网(WAN)、个人区域网(PAN)、虚拟专用网络(VPN)、内联网或者其他合适的网络系统,并且包括用于接收和发送信号的设备。
网络565也可以是用于经由宽带连接来进行单元501与任何外部服务器、客户端等的通信的基于IP的网络。在示例性实施例中,网络565可以是由服务提供商监管的受管理IP网络。另外,网络565可以是分组交换的网络,诸如LAN、WAN、因特网网络等。
如果单元501为PC、工作站、智能设备等,则存储器510中的软件还可以包括基本输入输出系统(BIOS)。BIOS被存储在ROM中使得BIOS可以在计算机501被激活时执行。
当单元501在操作时,处理器505被配置为执行存储器510内所存储的软件,以向存储器510和从存储器510通信数据并且通常依据软件来控制计算机501的操作。本文中所描述的方法以及OS511全部或者部分由处理器505来读取,通常被缓冲在处理器505内,并且然后被执行。当用软件来实现本文中所描述的方法(例如参考图4)时,方法可以被存储在任何计算机可读介质(诸如存储装置520)上,以用于由或者结合任何计算机相关的系统或方法来使用。
本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子的非穷举的列表包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。本文中所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
本文中所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
本文中参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生用于实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,其中存储有指令的计算机可读介质包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以将计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图图示根据本发明的各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在一些替换实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续示出的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
更一般地,虽然参考某些实施例描述了本发明,然而本领域技术人员应当理解,在没有偏离本发明的范围的情况下,可以做出各种变化并且可以替换等同方案。另外,在没有偏离其范围的情况下,可以做出很多修改以将特定情况适合本发明的教示。因此,意图在于,本发明不限于所公开的特定实施例,本发明将包括落入所附权利要求的范围内的所有实施例。
参考标记
1 访问请求
2 客户端
3 访问
4 通知
5 迁移
10 网络接口控制器
11 处理单元
12 映射单元
13 存储器注册日志记录单元
20 虚拟机
21 虚拟存储器区域
22 操作系统
23 管理程序
30 物理机
31 物理存储器区域
40 多个映射表
41,42,43 映射表
44 存储器注册日志
50 物理机
51 物理存储器区域
401-404 方法步骤
500 系统
501 计算机化的单元
505 处理器
510 存储器
511 操作系统(OS)
515 存储器控制器
520 存储装置
525 显示器控制器
540 显示器
545,550,555 输入和/或输出(I/O)设备
535 本地输入/输出控制器
550 键盘
555 鼠标
560 网络接口或收发器
565 网络

Claims (15)

1.一种具有RDMA能力的网络接口控制器,所述网络接口控制器用于使用多个映射表来提供对物理机的物理存储器的RDMA访问,所述物理存储器包括多个物理存储器区域,所述物理存储器区域中的至少一些物理存储器区域与运行在所述物理机上的虚拟机的虚拟存储器区域相关联,所述网络接口控制器包括:
映射单元,所述映射单元被配置为基于映射表将存储器区域标识符映射到虚拟存储器区域并且映射到相关联的物理存储器区域,所述存储器区域标识符中的每个存储器区域标识符适于标识虚拟存储器区域和相关联的物理存储器区域,其中所述映射单元被配置为基于所述虚拟机的网络标识符来从多个映射表中选择所述映射表,所述映射表中的每个映射表使用多个存储器区域标识符而被索引,所述多个存储器区域标识符中的每个存储器区域标识符与所述虚拟存储器区域中的一个虚拟存储器区域以及所述物理存储器区域中的一个物理存储器区域相关联,以及
处理单元,所述处理单元被配置为从客户端接收访问请求,所述访问请求用于访问所述物理存储器区域中的、与所述虚拟机的所述虚拟存储器区域中的一个虚拟存储器区域相关联的一个物理存储器区域,其中所述访问请求包括所述多个存储器区域标识符中的、标识所述虚拟存储器区域和所述相关联的物理存储器区域的一个存储器区域标识符,其中所述处理单元还被配置为使用被包含在所选择的映射表中的信息并且使用所接收的存储器区域标识符,向所述客户端提供对所述虚拟存储器区域和所述相关联的物理存储器区域的访问。
2.根据权利要求1所述的网络接口控制器,
其中所述网络接口控制器是软件实现的和/或硬件实现的。
3.根据权利要求1所述的网络接口控制器,
其中所述访问请求是接收和/或发送访问请求。
4.根据权利要求1所述的网络接口控制器,
其中所述网络标识符为唯一的网络范围标识符。
5.根据权利要求1所述的网络接口控制器,还包括:
存储器注册日志记录单元,所述存储器注册日志记录单元被配置为生成包括存储器区域标识符和相关联的虚拟存储器区域的存储器注册日志。
6.根据权利要求5所述的网络接口控制器,
其中所述网络接口控制器被配置为向另一物理机传送所生成的存储器注册日志。
7.根据权利要求5所述的网络接口控制器,
其中所述映射单元被配置为基于所生成的存储器注册日志来生成新的映射表。
8.根据权利要求7所述的网络接口控制器,
其中当所述虚拟机从另一物理机被迁移到所述物理机时,所述映射单元被配置为从所述另一物理机接收存储器注册日志连同迁移信息,并且其中所述映射单元被配置为基于所接收的存储器注册日志来生成新的映射表。
9.根据权利要求8所述的网络接口控制器,
其中所述映射单元被配置为使用所接收的存储器注册日志的条目来生成针对所迁移的虚拟机的所述网络标识符的新的映射表,以重放所接收的存储器注册日志,并且对于所述映射表的每个条目,利用所述物理机的所述物理存储器区域替换所述另一物理机的相关联的物理存储器区域。
10.根据权利要求8所述的网络接口控制器,
其中所述映射单元被配置为在接收到来自客户端的访问请求时,通过基于所接收的存储器注册日志添加条目来生成所述新的映射表。
11.一种物理机,包括:
物理存储器,所述物理存储器包括多个物理存储器区域,
至少一个虚拟机,所述至少一个虚拟机运行在所述物理机上,以及
根据权利要求1所述的网络接口控制器,
其中所述物理机的所述多个物理存储器区域借助于虚拟存储器映射机制而被映射到所述虚拟机的虚拟存储器区域。
12.一种网络系统,包括:
根据权利要求11所述的至少两个物理机,
其中运行在所述至少两个物理机中的第一物理机上的虚拟机被配置为从所述第一物理机被迁移到所述至少两个物理机中的第二物理机。
13.根据权利要求12所述的网络系统,
其中当所述虚拟机从所述第一物理机被迁移到所述第二物理机时,所述第二物理机的网络接口控制器被配置为接收存储器注册日志连同所述虚拟机的信息。
14.根据权利要求12所述的网络系统,
其中所述虚拟机被配置为从所述第二物理机被迁移到所述第一物理机。
15.一种用于使用多个映射表来提供对物理机的物理存储器的RDMA访问的方法,所述物理存储器包括多个物理存储器区域,所述物理存储器区域中的至少一些物理存储器区域与运行在所述物理机上的虚拟机的虚拟存储器区域相关联,所述方法包括:
基于映射表将存储器区域标识符映射到虚拟存储器区域并且映射到相关联的物理存储器区域,所述存储器区域标识符中的每个存储器区域标识符适于标识虚拟存储器区域和相关联的物理存储器区域,其中所述映射表基于所述虚拟机的网络标识符而选自多个映射表,所述映射表中的每个映射表使用多个存储器区域标识符而被索引,所述多个存储器区域标识符中的每个存储器区域标识符与所述虚拟存储器区域中的一个虚拟存储器区域以及所述物理存储器区域中的一个物理存储器区域相关联,
从客户端接收访问请求,所述访问请求用于访问所述物理存储器区域中的、与所述虚拟机的所述虚拟存储器区域中的一个虚拟存储器区域相关联的一个物理存储器区域,其中所述访问请求包括所述多个存储器区域标识符中的、标识所述虚拟存储器区域和所述相关联的物理存储器区域的一个存储器区域标识符,以及
使用被包含在所选择的映射表中的信息并且使用所接收的存储器区域标识符,向所述客户端提供对所述虚拟存储器区域和所述相关联的物理存储器区域的访问。
CN201610134805.4A 2015-03-13 2016-03-09 用于迁移虚拟机的rdma存储器映射的控制器和方法 Active CN105975413B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/657,015 2015-03-13
US14/657,015 US9904627B2 (en) 2015-03-13 2015-03-13 Controller and method for migrating RDMA memory mappings of a virtual machine

Publications (2)

Publication Number Publication Date
CN105975413A true CN105975413A (zh) 2016-09-28
CN105975413B CN105975413B (zh) 2019-03-01

Family

ID=55859144

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610134805.4A Active CN105975413B (zh) 2015-03-13 2016-03-09 用于迁移虚拟机的rdma存储器映射的控制器和方法

Country Status (3)

Country Link
US (1) US9904627B2 (zh)
CN (1) CN105975413B (zh)
GB (1) GB2537226B (zh)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108683523A (zh) * 2018-04-24 2018-10-19 国家电网公司信息通信分公司 一种基于网络虚拟化的sdn架构
CN109144972A (zh) * 2017-06-26 2019-01-04 华为技术有限公司 一种数据迁移的方法以及数据节点
CN109308288A (zh) * 2018-09-26 2019-02-05 新华三云计算技术有限公司 数据处理方法及装置
CN109344100A (zh) * 2018-08-17 2019-02-15 北京奇虎科技有限公司 一种辅助系统接口迁移的方法及装置
CN109726039A (zh) * 2017-10-27 2019-05-07 伊姆西Ip控股有限责任公司 用于管理虚拟机的方法和设备
CN109983741A (zh) * 2016-12-27 2019-07-05 英特尔公司 经由直接存储器访问设备在虚拟机之间传送分组
CN109983438A (zh) * 2016-12-22 2019-07-05 英特尔公司 使用直接存储器访问(dma)重新映射来加速半虚拟化网络接口
CN110795365A (zh) * 2018-08-02 2020-02-14 三星电子株式会社 存储设备、包括所述存储设备的电子系统及其操作方法
CN110915161A (zh) * 2017-07-12 2020-03-24 惠普发展公司,有限责任合伙企业 存储器设备的迁移
CN111522788A (zh) * 2019-02-01 2020-08-11 伊姆西Ip控股有限责任公司 处理访问请求和更新存储系统的方法、设备和程序产品
CN113874825A (zh) * 2019-05-28 2021-12-31 美光科技公司 使用借用存储器的智能内容迁移
CN113994313A (zh) * 2019-05-28 2022-01-28 美光科技公司 基于存储器即服务的分布式计算
CN110795365B (zh) * 2018-08-02 2024-06-04 三星电子株式会社 存储设备、包括所述存储设备的电子系统及其操作方法

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9854036B2 (en) * 2013-09-30 2017-12-26 Huawei Technologies Co., Ltd. Method for migrating memory data of virtual machine, and related apparatus and cluster system
US9875047B2 (en) 2015-05-27 2018-01-23 Red Hat Israel, Ltd. Exit-less host memory locking in a virtualized environment
US9753861B2 (en) * 2015-05-27 2017-09-05 Red Hat Israel, Ltd Exit-less movement of guest memory assigned to a device in a virtualized environment
US20200142735A1 (en) * 2019-09-28 2020-05-07 Intel Corporation Methods and apparatus to offload and onload workloads in an edge environment
US20230019814A1 (en) * 2021-07-14 2023-01-19 Vmware, Inc. Migration of virtual compute instances using remote direct memory access

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030177332A1 (en) * 2002-02-25 2003-09-18 Noriyuki Shiota Information processing apparatus in which processes can reduce overhead of memory access and efficiently share memory
CN103530167A (zh) * 2013-09-30 2014-01-22 华为技术有限公司 一种虚拟机内存数据的迁移方法及相关装置和集群系统
US20140164718A1 (en) * 2012-12-07 2014-06-12 Open Kernel Labs, Inc. Methods and apparatus for sharing memory between multiple processes of a virtual machine
US20140201451A1 (en) * 2013-01-16 2014-07-17 International Business Machines Corporation Method, apparatus and computer programs providing cluster-wide page management
CN103942087A (zh) * 2014-03-31 2014-07-23 华为技术有限公司 虚拟机热迁移方法及相关装置和集群系统
US20150263887A1 (en) * 2014-03-17 2015-09-17 Cisco Technology, Inc. Flexible remote direct memory access resource configuration in a network environment

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1552409B1 (en) 2002-08-19 2013-07-24 Broadcom Corporation One-shot rdma
US7565454B2 (en) 2003-07-18 2009-07-21 Microsoft Corporation State migration in multiple NIC RDMA enabled devices
US7756943B1 (en) 2006-01-26 2010-07-13 Symantec Operating Corporation Efficient data transfer between computers in a virtual NUMA system using RDMA
US7552298B2 (en) 2006-09-28 2009-06-23 Broadcom Corporation Method and system for deferred pinning of host memory for stateful network interfaces
US20100083247A1 (en) 2008-09-26 2010-04-01 Netapp, Inc. System And Method Of Providing Multiple Virtual Machines With Shared Access To Non-Volatile Solid-State Memory Using RDMA
US8255475B2 (en) * 2009-04-28 2012-08-28 Mellanox Technologies Ltd. Network interface device with memory management capabilities
JP5684815B2 (ja) * 2010-04-30 2015-03-18 株式会社日立製作所 計算機システム及びその制御方法
CN102694672B (zh) * 2011-03-24 2015-07-22 华为技术有限公司 虚拟机参数迁移的方法、设备和虚拟机服务器
US9306916B2 (en) 2013-12-25 2016-04-05 Cavium, Inc. System and a method for a remote direct memory access over converged ethernet
CN103763173B (zh) 2013-12-31 2017-08-25 华为技术有限公司 数据传输方法和计算节点
US9747249B2 (en) 2014-12-29 2017-08-29 Nicira, Inc. Methods and systems to achieve multi-tenancy in RDMA over converged Ethernet

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030177332A1 (en) * 2002-02-25 2003-09-18 Noriyuki Shiota Information processing apparatus in which processes can reduce overhead of memory access and efficiently share memory
US20140164718A1 (en) * 2012-12-07 2014-06-12 Open Kernel Labs, Inc. Methods and apparatus for sharing memory between multiple processes of a virtual machine
US20140201451A1 (en) * 2013-01-16 2014-07-17 International Business Machines Corporation Method, apparatus and computer programs providing cluster-wide page management
CN103530167A (zh) * 2013-09-30 2014-01-22 华为技术有限公司 一种虚拟机内存数据的迁移方法及相关装置和集群系统
US20150263887A1 (en) * 2014-03-17 2015-09-17 Cisco Technology, Inc. Flexible remote direct memory access resource configuration in a network environment
CN103942087A (zh) * 2014-03-31 2014-07-23 华为技术有限公司 虚拟机热迁移方法及相关装置和集群系统

Cited By (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109983438B (zh) * 2016-12-22 2024-02-02 英特尔公司 使用直接存储器访问(dma)重新映射来加速半虚拟化网络接口
CN109983438A (zh) * 2016-12-22 2019-07-05 英特尔公司 使用直接存储器访问(dma)重新映射来加速半虚拟化网络接口
CN109983741A (zh) * 2016-12-27 2019-07-05 英特尔公司 经由直接存储器访问设备在虚拟机之间传送分组
CN109144972A (zh) * 2017-06-26 2019-01-04 华为技术有限公司 一种数据迁移的方法以及数据节点
CN109144972B (zh) * 2017-06-26 2022-07-12 华为技术有限公司 一种数据迁移的方法以及数据节点
CN110915161B (zh) * 2017-07-12 2023-05-02 惠普发展公司,有限责任合伙企业 计算设备、存储器设备迁移方法和系统
CN110915161A (zh) * 2017-07-12 2020-03-24 惠普发展公司,有限责任合伙企业 存储器设备的迁移
CN109726039A (zh) * 2017-10-27 2019-05-07 伊姆西Ip控股有限责任公司 用于管理虚拟机的方法和设备
CN109726039B (zh) * 2017-10-27 2023-05-05 伊姆西Ip控股有限责任公司 用于管理虚拟机的方法和设备
CN108683523B (zh) * 2018-04-24 2021-05-14 国家电网有限公司信息通信分公司 一种基于网络虚拟化的sdn架构
CN108683523A (zh) * 2018-04-24 2018-10-19 国家电网公司信息通信分公司 一种基于网络虚拟化的sdn架构
CN110795365A (zh) * 2018-08-02 2020-02-14 三星电子株式会社 存储设备、包括所述存储设备的电子系统及其操作方法
CN110795365B (zh) * 2018-08-02 2024-06-04 三星电子株式会社 存储设备、包括所述存储设备的电子系统及其操作方法
CN109344100A (zh) * 2018-08-17 2019-02-15 北京奇虎科技有限公司 一种辅助系统接口迁移的方法及装置
CN109308288B (zh) * 2018-09-26 2020-12-08 新华三云计算技术有限公司 数据处理方法及装置
CN109308288A (zh) * 2018-09-26 2019-02-05 新华三云计算技术有限公司 数据处理方法及装置
US11681475B2 (en) 2019-02-01 2023-06-20 EMC IP Holding Company LLC Methods, devices, and a computer program product for processing an access request and updating a storage system
CN111522788B (zh) * 2019-02-01 2024-02-06 伊姆西Ip控股有限责任公司 处理访问请求和更新存储系统的方法、设备
CN111522788A (zh) * 2019-02-01 2020-08-11 伊姆西Ip控股有限责任公司 处理访问请求和更新存储系统的方法、设备和程序产品
CN113994313A (zh) * 2019-05-28 2022-01-28 美光科技公司 基于存储器即服务的分布式计算
CN113874825A (zh) * 2019-05-28 2021-12-31 美光科技公司 使用借用存储器的智能内容迁移
CN113994313B (zh) * 2019-05-28 2023-12-01 美光科技公司 基于存储器即服务的分布式计算

Also Published As

Publication number Publication date
CN105975413B (zh) 2019-03-01
GB2537226A (en) 2016-10-12
GB201603943D0 (en) 2016-04-20
US9904627B2 (en) 2018-02-27
GB2537226B (en) 2017-04-05
US20160267051A1 (en) 2016-09-15

Similar Documents

Publication Publication Date Title
CN105975413A (zh) 用于迁移虚拟机的rdma存储器映射的控制器和方法
CN105446793B (zh) 迁移虚拟资产的方法和设备
CN106464529A (zh) 隔离在线计算服务的一部分的技术
CN105051693B (zh) 管理计算机服务器能力的方法、装置和系统
CN103299274B (zh) 确定运行图像的最佳计算环境的系统和方法
CN104246738B (zh) 本地迁移
CN107924323A (zh) 基于依赖的容器部署
CN108737325A (zh) 一种多租户数据隔离方法、装置及系统
CN107567696A (zh) 计算集群内的资源实例群组的自动扩展
CN106462505A (zh) 同步计算环境中对状态指示符的更新
CN102446121A (zh) 根据用户指定的虚拟机指标分配虚拟机
CN103858102B (zh) 用于分布式虚拟桌面基础设施的系统和方法
CN106027593A (zh) 用于动态地维护数据结构的方法和系统
CN105843838A (zh) 管理企业网络对等共享存储的方法和系统
Lakhwani et al. Internet of Things (IoT): Principles, paradigms and applications of IoT
CN104680462A (zh) 面向云平台的医疗系统病例信息优化获取方法
CN105786593A (zh) 用于重启上下文相关的应用集的方法和系统
CN105989275A (zh) 用于认证的方法和系统
US10055381B2 (en) Controller and method for migrating RDMA memory mappings of a virtual machine
CN110275897A (zh) 用于基于位置的数据检索的启用信标的系统
CN104917794A (zh) 一种数据共享方法、装置及系统
Smart et al. Comparative study of smart cities in Europe and China
CN104428811B (zh) 使用社交网络接口的通用模拟系统
CN106104414A (zh) 存储公用网络
Brand et al. Sapientia: a Smart Campus model to promote device and application flexibility

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant