Communications between virtual dual control modules in virtual machine environment

US10922119B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10922119-B2
Application numberUS-201816021262-A
CountryUS
Kind codeB2
Filing dateJun 28, 2018
Priority dateJun 30, 2017
Publication dateFeb 16, 2021
Grant dateFeb 16, 2021

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Embodiments of the present disclosure relate to communications between virtual dual control modules in a virtual machine environment. A computer-implemented method and an electronic device are disclosed. The method includes deploying a first virtual control module and a second virtual control module in a virtual storage, the first virtual control module and the second virtual control module are redundant with each other. The method further comprises creating a virtual Peripheral Component Interconnect Express (PCIe) switch for emulating a physical PCIe switch, and synchronizing cache data between the first virtual control module and the second virtual control module via the virtual PCIe switch. In the embodiments of the present disclosure, virtual dual control modules are configured in the virtual machine environment, and virtual PCIe communications between virtual dual control modules are realized by emulating the physical PCIe through software, thereby enabling low-latency communications between virtual dual control modules in a virtual storage.

First claim

Opening claim text (preview).

We claim: 1. A computer-implemented method, comprising: deploying a first virtual control module and a second virtual control module in a virtual storage, the first virtual control module and the second virtual control module being redundant with each other; creating a virtual Peripheral Component Interconnect Express (PCIe) switch for emulating a physical PCIe switch; and synchronizing cache data between the first virtual control module and the second virtual control module via the virtual PCIe switch, wherein deploying a first virtual control module and a second virtual control module comprises deploying a respective virtual PCIe interface within each of the virtual control modules to interface the virtual control modules to the virtual PCIe switch, using single-root I/O virtualization by which the virtual control modules can share a single PCIe hardware interface, and wherein the virtual PCIe interface includes a transaction layer, a data link layer and a hardware abstraction layer, the transaction layer including a plurality of virtual circuits as master interfaces for communicating with other components in the virtual PCIe interface, the data link layer including a PCIe transmission module for implementing data communication at a link layer, and the hardware abstraction layer being configured and operative to abstract hardware circuitry to provide operational interface to the transaction layer and data link layer in which hardware and virtual hardware are indistinguishable; and wherein the hardware abstraction layer includes a DMA module configured and operative to provide direct-memory access (DMA) operation between the virtual control modules via the virtual PCIe switch, the DMA operation being used in the synchronizing of cache data between the first virtual control module and the second virtual control module via the virtual PCIe switch. 2. The method according to claim 1 , wherein the creating the virtual PCIe switch comprises: creating the virtual PCIe switch by emulating at least one of the followings of the physical PCIe switch: PCIe address translation, input/output (I/O) routing, I/O parsing and I/O isolation. 3. The method according to claim 2 , wherein the creating the virtual PCIe switch further comprises: generating an address translation between a first PCIe address space in which the first virtual control module is located and a second PCIe address space in which the second virtual control module is located; and converting a first address in the first PCIe address space into a second address in the second PCIe address space based on the address translation. 4. The method according to claim 1 , wherein the synchronizing the cache data comprises: transmitting the cache data from the first virtual control module to the second virtual control module; and writing the cache data to a virtual disk array of the virtual storage. 5. The method according to claim 1 , wherein the synchronizing the cache data comprises: performing, by the virtual PCIe switch, direct memory access between a first hardware abstraction layer in the first virtual control module and a second hardware abstraction layer in the second virtual control module. 6. The method according to claim 1 , further comprising: creating, using the virtual PCIe switch, communication between a particular physical device enabling PCIe and at least one of the first virtual control module and the second virtual control module. 7. The method according to claim 6 , further comprising: allocating routing identifiers to the first virtual control module and the second virtual control module; and allocating routing identifiers to a plurality of virtual functions in the particular physical device, one of the plurality of virtual functions being associated with a part of physical resources of the particular physical device. 8. The method according to claim 6 , further comprising: adjusting a size of a buffer at the virtual PCIe switch dynamically based on a message feedback received from the particular physical device. 9. An electronic device, comprising: a processing unit; and a memory coupled to the processing unit and storing instructions, the instructions, when executed by the processing unit, perform the actions of: deploying a first virtual control module and a second virtual control module in a virtual storage, the first virtual control module and the second virtual control module being redundant with each other; creating a virtual Peripheral Component Interconnect Express (PCIe) switch for emulating a physical PCIe switch; and synchronizing cache data between the first virtual control module and the second virtual control module via the virtual PCIe switch, wherein deploying a first virtual control module and a second virtual control module comprises deploying a respective virtual PCIe interface within each of the virtual control modules to interface the virtual control modules to the virtual PCIe switch, using single-root I/O virtualization by which the virtual control modules can share a single PCIe hardware interface, and wherein the virtual PCIe interface includes a transaction layer, a data link layer and a hardware abstraction layer, the transaction layer including a plurality of virtual circuits as master interfaces for communicating with other components in the virtual PCIe interface, the data link layer including a PCIe transmission module for implementing data communication at a link layer, and the hardware abstraction layer being configured and operative to abstract hardware circuitry to provide operational interface to the transaction layer and data link layer in which hardware and virtual hardware are indistinguishable; and wherein the hardware abstraction layer includes a DMA module configured and operative to provide direct-memory access (DMA) operation between the virtual control modules via the virtual PCIe switch, the DMA operation being used in the synchronizing of cache data between the first virtual control module and the second virtual control module via the virtual PCIe switch. 10. The device according to claim 9 , wherein the creating the virtual PCIe switch comprises: creating the virtual PCIe switch by emulating at least one of the followings of the physical PCIe switch: PCIe address translation, input/output (I/O) routing, I/O parsing and I/O isolation. 11. The device according to claim 10 , wherein the creating the virtual PCIe switch further comprises: generating an address translation between a first PCIe address space in which the first virtual control module is located and a second PCIe address space in which the second virtual control module is located; and converting a first address in the first PCIe address space into a second address in the second PCIe address space based on the address translation. 12. The device according to claim 9 , wherein the synchronizing the cache data comprises: transmitting the cache data from the first virtual control module to the second virtual control module; and writing the cache data to a virtual disk array of the virtual storage. 13. The device according to claim 9 , wherein synchronizing the cache data comprises: performing direct memory access between a first hardware abstraction layer in the first virtual control module and a second hardware abstraction layer in the second virtual control module through the virtual PCIe switch. 14. The device according to claim 9 , the actions further comprising: creating, using the virtual PCIe switch, communication between a particular physical device enabling PCIe and at least one of the first virtual control module and t

Assignees

Inventors

Classifications

  • G06F13/105Primary

    where the program performs an input/output emulation function · CPC title

  • Improving the reliability of storage systems · CPC title

  • I/O management, e.g. providing access to device drivers or storage · CPC title

  • Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit · CPC title

  • Network integration; Enabling network access in virtual machine instances · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US10922119B2 cover?
Embodiments of the present disclosure relate to communications between virtual dual control modules in a virtual machine environment. A computer-implemented method and an electronic device are disclosed. The method includes deploying a first virtual control module and a second virtual control module in a virtual storage, the first virtual control module and the second virtual control module are…
Who is the assignee on this patent?
Emc Ip Holding Co Llc
What technology area does this patent fall under?
Primary CPC classification G06F13/105. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Feb 16 2021 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 4 related publications on this page (citations in our corpus or others sharing the same primary CPC).