Guest-assisted live storage migration
The present disclosure is a new and innovative system, methods and apparatus live storage migration. In an example, a system includes a memory and processor in communication with the memory. The processor is configured to receive a request to perform live storage migration of a guest managed by a source hypervisor on a source machine to a destination machine. The guest is configured to store data in blocks of block storage. The source hypervisor, executing on the processor, receives a hint for each block of data in block storage of the guest via an agent of the guest, wherein the hint relates to properties of a specific block of data. The source hypervisor then determines an efficient prioritization that identifies which blocks to copy and in what order as a part of the live storage migration based on the hints received from the agent. The source hypervisor then copies the blocks of data identified for copying in the migration based on the prioritization, saving time and computational resources.
1 . A system comprising:
a memory; and
a processor in communication with the memory, wherein the processor is configured to:
receive a request to initiate a live storage migration of a guest running on a source machine and managed by a source hypervisor to a destination machine;
receive, by the source hypervisor, a hint for each block in block storage relating to properties of data stored in a specific block from an agent of the guest, wherein a first hint includes a status indicating that a first block of data is empty, wherein a second hint includes a compressed status of a second block of data, and wherein a third hint includes an uncompressed status of a third block of data;
determine, by the source hypervisor, a prioritization that identifies which blocks of data to copy and an order in which to copy as part of the live storage migration based on the hints received from the guest, wherein the prioritization indicates that the first block of data that is empty is not to be copied as part of the live storage migration, and wherein the prioritization further indicates that the second block of data is to be copied before the third block of data in the live storage migration; and
copy the blocks of data identified for copy in the live storage migration based on the prioritization.
2 . The system of claim 1 , wherein a fourth hint includes another status indicating that a fourth block of data contains read-only data, and wherein the prioritization further indicates that the fourth block of data is to be copied before the second block of data in the live storage migration.
3 . The system of claim 1 , wherein a fifth hint includes another status indicating that a fifth block of data contains temporary files, and wherein the prioritization further indicates that the fifth block of data is to be copied after the second block of data and before the third block of data in the live storage migration.
4 . The system of claim 1 , wherein a sixth hint indicates that a sixth block of data contains static data and a seventh hint indicates that a seventh block of data contains dynamic data, wherein the prioritization further indicates that the sixth block of data is to be copied before the seventh block of data in the live storage migration.
5 . The system of claim 1 , wherein the hints include another status indicating that a subrange of blocks in block storage have a common property.
6 . The system of claim 1 , wherein the agent is configured to monitor what blocks of data are copied as part of the live storage migration and to log which blocks of data have already been copied.
7 . A method comprising:
receiving a request to perform live storage migration of a guest managed by a source hypervisor on a source machine to a destination machine, wherein the guest is configured to store data in blocks of block storage;
receiving, by the source hypervisor, a hint for each block of data in block storage of the guest via an agent of the guest, wherein the hint relates to properties of a specific block of data, wherein a first hint includes a status indicating that a first block of data is empty, wherein a second hint includes a compressed status of a second block of data, and wherein a third hint includes an uncompressed status of a third block of data;
determining, by the source hypervisor, a prioritization that identifies which blocks to copy and an order in which to copy as a part of the live storage migration based on the hints received from the agent, wherein the prioritization indicates that the first block of data that is empty is not to be copied as part of the live storage migration, and wherein the prioritization further indicates that the second block of data is to be copied before the third block of data in the live storage migration; and
copying the blocks of data identified for copying in the live storage migration based on the prioritization.
8 . The method of claim 7 , wherein the copy of blocks of data is an iterative process based on the prioritization of blocks to migrate.
9 . The method of claim 7 , wherein a fourth hint includes another status indicating that a fourth block of data contains read-only data, and wherein the prioritization further indicates that the fourth block of data is to be copied before the second block of data in the live storage migration.
10 . The method of claim 7 , wherein a fifth hint includes another status indicating that a fifth block of data contains temporary files, and wherein the prioritization further indicates that the fifth block of data is to be copied after the second block of data and before the third block of data in the live storage migration.
11 . The method of claim 7 , wherein a sixth hint indicates that a sixth block of data contains static data and a seventh hint indicates that a seventh block of data contains dynamic data, wherein the prioritization further indicates that the sixth block of data is to be copied before the seventh block of data in the live storage migration.
12 . The method of claim 7 , wherein the hints include a status indicating that a subrange of blocks in block storage have a common property.
13 . The method of claim 7 , further comprising monitoring which blocks of data are copied to the destination machine as a part of the live storage migration and creating a log of which blocks have been previously copied.
14 . A non-transitory computer readable medium storing instructions, which when executed by a processor, are configured to cause the processor to:
receive a request to initiate a live storage migration of a guest running on a source machine and managed by a source hypervisor to a destination machine;
receive, at the source hypervisor, a hint for each block in block storage relating to properties of data stored in a specific block from an agent of the guest, wherein a first hint includes a status indicating that a first block of data is empty, wherein a second hint includes a compressed status of a second block of data, and wherein a third hint includes an uncompressed status of a third block of data;
determine, by the source hypervisor, a prioritization that identifies which blocks of data to copy and an order in which to copy as part of the live storage migration based on the hints received from the guest, wherein the prioritization indicates that the first block of data that is empty is not to be copied as part of the live storage migration, and wherein the prioritization further indicates that the second block of data is to be copied before the third block of data in the live storage migration; and
copy the blocks of data identified for copy in the live storage migration based on the prioritization.
15 . The non-transitory computer readable medium of claim 14 , wherein a fifth hint includes another status indicating that a fifth block of data contains temporary files, and wherein the prioritization further indicates that the fifth block of data is to be copied after the second block of data and before the third block of data in the live storage migration.
16 . The non-transitory computer readable medium of claim 14 , wherein a sixth hint indicates that a sixth block of data contains static data and a seventh hint indicates that a seventh block of data contains dynamic data, wherein the prioritization further indicates that the sixth block of data is to be copied before the seventh block of data in the live storage migration.
17 . The non-transitory computer readable medium of claim 14 , wherein a fourth hint includes another status indicating that a fourth block of data contains read-only data, and wherein the prioritization further indicates that the fourth block of data is to be copied before the second block of data in the live storage migration.
18 . The non-transitory computer readable medium of claim 14 , wherein the hints include another status indicating that a subrange of blocks in block storage have a common property.
19 . The non-transitory computer readable medium of claim 14 , wherein the agent is configured to monitor what blocks of data are copied as part of the live storage migration and to log which blocks of data have already been copied.