IP Library Granted Patent US 10,895,995
Granted Patent B2
US 10,895,995 · App. 16/431,648 · Granted Jan 19, 2021

Capacity based load balancing in distributed storage systems with deduplication and compression functionalities

Inventors: Jorge Guerra Delgado (Sunnyvale, CA); Jin Zhang (Palo Alto, CA); Radhika Vullikanti (Palo Alto, CA); Abhishek Gupta (Palo Alto, CA)
Assignee: VMware, Inc.
G06F3/0647G06F3/067G06F3/0608G06F3/0641G06F16/2365G06F3/0617G06F9/45558G06F16/174G06F16/1744G06F16/25G06F2009/45579H04L67/1097
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,895,995
App. No.
16/431,648
Granted
Jan 19, 2021
Kind
B2
Abstract

A logical group of data blocks stored in a first node is migrated to a second node according to a method that includes determining a first metric for each logical group of data blocks stored in the first node, the first metric representing a total size of the data blocks in the logical group, determining a second metric for each logical group of data blocks stored in the first node, the second metric representing a total size of the data blocks in the logical group that are uniquely stored in the first node, and selecting a logical group of data blocks for migration from the first node to the second node based on the first metric and the second metric.

Claims (40)

1. A method for migrating a first group of data blocks stored in a first node to a second node, comprising:

determining, for each of a plurality of groups of data blocks stored in the first node, a corresponding first metric representing a total size for storing all data blocks in the corresponding group without deduplication, wherein each data block of the plurality of groups of data blocks is associated with a corresponding physical address;

determining, for each of the plurality of groups of data blocks stored in the first node, a corresponding second metric representing a total size for storing all unique data blocks in the corresponding group, wherein a given data block is a unique data block if no other data block of the plurality of groups of data blocks is associated with the same physical address as the given data block;

selecting the first group of data blocks for migration from the first node to the second node based on the corresponding first metric satisfying a first criteria and the corresponding second metric satisfying a second criteria; and

migrating the first group of data blocks to the second node.

2. The method of claim 1 , wherein the second criteria is that the corresponding second metric is equal to or greater than a median of all second metrics of the plurality of groups of data blocks.

3. The method of claim 1 , wherein the first criteria is that the corresponding first metric has a minimum value among all first metrics of all of the plurality of groups of data blocks associated with a second metric that satisfies the second criteria.

4. The method of claim 1 , further comprising:

determining, for each of the plurality of groups of data blocks stored in the first node, a corresponding third metric representing a total size for storing all distinct data blocks in the corresponding group, wherein the total size for storing all distinct data blocks in the corresponding group comprises a total size for storing all data blocks in the corresponding group with deduplication across the corresponding group; and

selecting the second node from among a plurality of nodes based on the second node having available storage capacity equal to or greater than the third metric of the first group of data blocks.

5. The method of claim 4 , wherein multiple nodes of the plurality of nodes have available storage capacity equal to or greater than the third metric of the first group of data blocks, and wherein the second node is randomly selected from among the multiple of the plurality of nodes.

6. The method of claim 1 , wherein the first metric is determined based on uncompressed sizes of data blocks, and wherein the second metric is determined based on compressed sizes of data blocks.

7. The method of claim 1 , wherein each of the plurality of groups of data blocks is a component object of a composite object.

8. A non-transitory computer readable storage medium comprising instructions that are executable in a computer system to cause the computer system to perform a method for migrating a first group of data blocks stored in a first node to a second node, comprising:

determining, for each of a plurality of groups of data blocks stored in the first node, a corresponding first metric representing a total size for storing all data blocks in the corresponding group without deduplication, wherein each data block of the plurality of groups of data blocks is associated with a corresponding physical address;

determining, for each of the plurality of groups of data blocks stored in the first node, a corresponding second metric representing a total size for storing all unique data blocks in the corresponding group, wherein a given data block is a unique data block if no other data block of the plurality of groups of data blocks is associated with the same physical address as the given data block;

selecting the first group of data blocks for migration from the first node to the second node based on the corresponding first metric satisfying a first criteria and the corresponding second metric satisfying a second criteria; and

migrating the first group of data blocks to the second node.

9. The non-transitory computer readable storage medium of claim 8 , wherein the second criteria is that the corresponding second metric is equal to or greater than a median of all second metrics of the plurality of groups of data blocks.

10. The non-transitory computer readable storage medium of claim 8 , wherein the first criteria is that the corresponding first metric has a minimum value among all first metrics of all of the plurality of groups of data blocks associated with a second metric that satisfies the second criteria.

11. The non-transitory computer readable storage medium of claim 8 , wherein the method further comprises:

determining, for each of the plurality of groups of data blocks stored in the first node, a corresponding third metric representing a total size for storing all distinct data blocks in the corresponding group, wherein the total size for storing all distinct data blocks in the corresponding group comprises a total size for storing all data blocks in the corresponding group with deduplication across the corresponding group; and

selecting the second node from among a plurality of nodes based on the second node having available storage capacity equal to or greater than the third metric of the first group of data blocks.

12. The non-transitory computer readable storage medium of claim 11 , wherein multiple nodes of the plurality of nodes have available storage capacity equal to or greater than the third metric of the first group of data blocks, and wherein the second node is randomly selected from among the multiple of the plurality of nodes.

13. The non-transitory computer readable storage medium of claim 8 , wherein the first metric is determined based on uncompressed sizes of data blocks, and wherein the second metric is determined based on compressed sizes of data blocks.

14. The non-transitory computer readable storage medium of claim 8 , wherein each of the plurality of groups of data blocks is a component object of a composite object.

15. A computer system comprising:

local storage of a first node that stores a plurality of groups of data blocks; and

a processor configured to:

determine, for each of the plurality of groups of data blocks stored in the first node, a corresponding first metric representing a total size for storing all data blocks in the corresponding group without deduplication, wherein each data block of the plurality of groups of data blocks is associated with a corresponding physical address;

determine, for each of the plurality of groups of data blocks stored in the first node, a corresponding second metric representing a total size for storing all unique data blocks in the corresponding group, wherein a given data block is a unique data block if no other data block of the plurality of groups of data blocks is associated with the same physical address as the given data block;

select the first group of data blocks for migration from the first node to the second node based on the corresponding first metric satisfying a first criteria and the corresponding second metric satisfying a second criteria; and

migrate the first group of data blocks to the second node.

16. The computer system of claim 15 , wherein the second criteria is that the corresponding second metric is equal to or greater than a median of all second metrics of the plurality of groups of data blocks.

17. The computer system of claim 15 , wherein the first criteria is that the corresponding first metric has a minimum value among all first metrics of all of the plurality of groups of data blocks associated with a second metric that satisfies the second criteria.

18. The computer system of claim 15 , wherein the processor is further configured to:

determine, for each of the plurality of groups of data blocks stored in the first node, a corresponding third metric representing a total size for storing all distinct data blocks in the corresponding group, wherein the total size for storing all distinct data blocks in the corresponding group comprises a total size for storing all data blocks in the corresponding group with deduplication across the corresponding group; and

select the second node from among a plurality of nodes based on the second node having available storage capacity equal to or greater than the third metric of the first group of data blocks.

19. The computer system of claim 18 , wherein multiple nodes of the plurality of nodes have available storage capacity equal to or greater than the third metric of the first group of data blocks, and wherein the second node is randomly selected from among the multiple of the plurality of nodes.

20. The computer system of claim 15 , wherein the first metric is determined based on uncompressed sizes of data blocks, and wherein the second metric is determined based on compressed sizes of data blocks.

Assignments (2)
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067103/0030 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 27, 2019
From: GUERRA DELGADO, JORGE; ZHANG, JIN; VULLIKANTI, RADHIKA; GUPTA, ABHISHEK
To: VMWARE, INC.
Reel/Frame 049617/0071 →
Continuity (2)
Continuation 15592834 · May 11, 2017
Related Publication 20190286360A1 · Sep 19, 2019