Modular switched fabric for data storage systems
US-10503618-B2 · Dec 10, 2019 · US
US10922119B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-10922119-B2 |
| Application number | US-201816021262-A |
| Country | US |
| Kind code | B2 |
| Filing date | Jun 28, 2018 |
| Priority date | Jun 30, 2017 |
| Publication date | Feb 16, 2021 |
| Grant date | Feb 16, 2021 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
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.
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
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
Related publications grouped by family.
Answers are generated from the same data shown on this page.