Cross-cloud provider virtual machine migration
US-2017371696-A1 · Dec 28, 2017 · US
US10318166B1 · US · B1
| Field | Value |
|---|---|
| Publication number | US-10318166-B1 |
| Application number | US-201615392676-A |
| Country | US |
| Kind code | B1 |
| Filing date | Dec 28, 2016 |
| Priority date | Dec 28, 2016 |
| Publication date | Jun 11, 2019 |
| Grant date | Jun 11, 2019 |
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.
Techniques for preserving locality of storage accesses to copies of storage objects in a cluster of appliances. Mapping metadata is created indicating regions in a copy of a storage object that are mapped to local storage allocated from a target appliance. Read and write operations to regions of the copy that are mapped to storage in the target appliance are processed within the target appliance. Write operations to regions that are not mapped to storage in the target appliance cause storage to be allocated to the copy in the target appliance, mapped to the regions indicated by the write operations, and used to store the write data. Read operations to regions that are not mapped to storage in the target appliance are performed on an original storage object located on a source appliance, from which the copy of the storage object was made.
Opening claim text (preview).
What is claimed is: 1. A method of preserving locality of storage accesses in a target hyper-converged infrastructure (HCI) appliance, the method comprising the steps of: causing a copy of a virtual machine to be moved to and executed on the target HCI appliance, wherein the copy of the virtual machine is a copy of an original virtual machine that is located on a source HCI appliance, wherein the copy of the virtual machine issues I/O operations to a copy of a storage object that is also moved to the target HCI appliance, wherein the copy of the storage object is a copy of an original storage object that is located on the source HCI appliance, wherein the original storage object is accessed by the original virtual machine located on the source HCI appliance, and wherein the original storage object is mapped to non-volatile storage allocated to the original storage object from at least one storage device contained within the source HCI appliance; in response to the copy of the virtual machine being moved to the target HCI appliance, creating mapping metadata for the copy of the storage object that includes indications of regions in the copy of the storage object that are mapped to non-volatile storage allocated to the copy of the storage object from at least one storage device contained within the target HCI appliance, and indications of regions in the copy of the storage object that are not mapped to non-volatile storage allocated to the copy of the storage object from at least one storage device contained within the target HCI appliance, wherein the mapping metadata initially indicates, at the time the copy of the virtual machine is moved to the target HCI appliance, that no regions of the copy of the storage object are mapped to non-volatile storage allocated to the copy of the storage object from at least one storage device contained within the target HCI appliance; intercepting I/O operations issued by the copy of the virtual machine executing on the target HCI appliance and directed to regions in the copy of the storage object, while the original storage object is simultaneously being accessed by the original virtual machine located on the source HCI appliance; in response to the intercepted I/O operations, maintaining on the source HCI appliance a copy of data written to the copy of the storage object by, for each write I/O operation directed to the copy of the storage object, transmitting a network I/O request to the source HCI appliance requesting that the source HCI appliance perform a write I/O operation identical to the intercepted write I/O operation on a mirror copy of the copy of the storage object, wherein the mirror copy of the copy of the copy of the storage object that is located on the source HCI appliance is separate and independent from the original storage object; and in response to the intercepted I/O operations and the mapping metadata for the copy of the storage object, i) processing those intercepted I/O operations directed to regions in the copy of the storage object that are mapped to non-volatile storage allocated to the copy of the storage object from at least one storage device contained within the target HCI appliance using the non-volatile storage allocated to the copy of the storage object from the at least one storage device contained within the target HCI appliance, and ii) processing those intercepted I/O operations directed to regions in the copy of the storage object that are not mapped to non-volatile storage allocated to the copy of the storage object from at least one storage device contained within the target HCI appliance by, for each read I/O operation directed to a region of the copy of the storage object that is not mapped to non-volatile storage allocated to the copy of the storage object from at least one storage device contained within the target HCI appliance, causing the source HCI appliance to perform the read I/O operation using the original storage object that is located on the source HCI appliance. 2. The method of claim 1 , wherein processing those intercepted I/O operations directed to regions of the copy of the storage object that are not mapped to non-volatile storage allocated to the copy of the storage object from at least one storage device located within the target HCI appliance further includes, for each write I/O operation directed to a region in the copy of the storage object that is not mapped to non-volatile storage allocated to the copy of the storage object from at least one storage device contained within the target HCI appliance: allocating non-volatile storage from the at least one storage device contained within the target HCI appliance to the copy of the storage object to store data for the write I/O operation; storing the data for the write I/O operation into the non-volatile storage allocated from the at least one storage device contained within the target HCI appliance; and modifying the mapping metadata for the copy of the storage object to map the region in the copy of the storage object to which the write I/O operation was directed to the allocated non-volatile storage, and to include an indication that the region in the copy of the storage object to which the write I/O operation was directed is mapped to non-volatile storage allocated to the copy of the storage object from at least one storage device contained within the target HCI appliance. 3. The method of claim 2 , wherein processing those intercepted I/O operations directed to regions of the copy of the storage object that are not mapped to non-volatile storage allocated to the copy of the storage object from at least one storage device located within the target HCI appliance further includes, for each read I/O operation directed to a region of the copy of the storage object that is not mapped to non-volatile storage allocated to the copy of the storage object from at least one storage device contained within the target HCI appliance, causing the source HCI appliance to perform the read I/O operation using the original storage object that is located on the source HCI appliance by: transmitting a network I/O operation to the source HCI appliance requesting that the source HCI appliance perform a read I/O operation, while the original storage object is accessed by the original virtual machine located on the source HCI appliance, on a region in the original storage object that corresponds to the region in the copy of the storage object to which the read I/O operation to the copy of the storage object was directed; receiving, from the source HCI appliance, data read by the source HCI appliance from the region in the original storage that corresponds to the region in the copy of the storage object to which the read I/O operation to the copy of the storage object was directed; and returning, to a requesting entity that issued the read I/O operation directed to the copy of the storage object, the data read by the source HCI appliance from the region in the original storage that corresponds to the region in the copy of the storage object to which the read I/O operation to the copy of the storage object was directed. 4. The method of claim 2 , wherein transmitting each network I/O request to the source HCI appliance requesting that the source HCI appliance perform a write I/O operation identical to an intercepted write I/O operation comprises transmitting a network I/O request to the source HCI appliance requesting that the source HCI appliance perform a write I/O operation on a region in the mirror copy of the copy of the storage object that corresponds to the region in the copy of the storage object to which the intercepted write I/O operation was directed. 5. The method of 4 , wherein processing those intercepted I/O operations directed to regions of the copy of the storage object that are
Hypervisor-specific management and integration aspects · CPC title
Emulated environment, e.g. virtual machine · CPC title
Distribution of virtual machine instances; Migration and load balancing · CPC title
Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS] · CPC title
Improving I/O performance · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.