IP Library Granted Patent US 11,334,533
Granted Patent B2
US 11,334,533 · App. 16/524,709 · Granted May 17, 2022

Dynamic storage tiering in a virtual environment

Inventors: Sanjay Kumar (Maharastra, IN); Venkatesha M. G. (Cupertino, CA)
Assignee: VERITAS TECHNOLOGIES LLC
G06F16/185G06F3/0604G06F3/0605G06F3/0647G06F3/0649G06F3/0667G06F3/0683G06F3/0685
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 11,334,533
App. No.
16/524,709
Granted
May 17, 2022
Kind
B2
Abstract

Methods, computer program products, and computer systems for performing dynamic storage tiering in a virtual environment are disclosed. In one embodiment, such a method can include moving a storage object from a first storage tier of a storage system to a second storage tier of the storage system, which can be performed based, at least in part, on tiering information. Such moving can include determining a location of the storage object in the storage system by translating a location of the storage object in a virtual machine file to the location of the storage object in the storage system, using mapping information, and transmitting an instruction to a storage manager of the storage system. The instruction indicates that the storage manager should perform the moving. The mapping information translates a location in the virtual machine file to a corresponding location in the storage system.

Claims (83)

1. A computer-implemented method comprising:

causing a storage object to be moved from a first storage tier of a storage system to a second storage tier of the storage system, wherein the storage object is moved based, at least in part, on tiering information, the causing comprises

determining a location of the storage object in the storage system by translating a location of the storage object in a virtual machine file to the location of the storage object in the storage system, using mapping information;

transmitting an instruction to a storage manager of the storage system,

the instruction indicates that the storage manager should move the storage object from the first storage tier to the second storage tier,

the mapping information translates each of a plurality of locations in the virtual machine file to a corresponding location of a plurality of locations in the storage system,

the plurality of locations in the virtual machine file comprise the location of the storage object in the virtual machine file, and

the plurality of locations in the storage system comprise the location of the storage object in storage system; and

updating the mapping information to translate the location of the storage object in the virtual machine file to a new location for the storage object in the storage system.

2. The computer-implemented method of claim 1 , further comprising: detecting whether the storage object has been modified by monitoring metadata associated with the virtual machine file.

3. The computer-implemented method of claim 2 , wherein the virtual machine file comprises a plurality of storage objects, the plurality of storage objects comprises the storage object, the metadata comprises a bitmap, and the bitmap comprises a bit for each storage object of the plurality of storage objects.

4. The computer-implemented method of claim 1 , wherein the location of the storage object in the virtual machine file is a location according to a guest file system of a guest operating system, the virtual machine file and the guest operating system are associated with a virtual machine, the virtual machine is implemented by a host comprising a host operating system that implements a host file system, the location of the storage object in the storage system is a host-relative location in the host file system, and the translating translates the location according to the guest file system of the guest operating system to the host-relative location.

5. The computer-implemented method of claim 4 , wherein the mapping information comprises a map, and the map comprises a location of each block of one or more blocks of the storage object in the virtual machine file.

6. The computer-implemented method of claim 5 , wherein the locations of the one or more blocks are determined by the guest operating system.

7. The computer-implemented method of claim 4 , wherein the storage object is a block of a plurality of blocks in the virtual machine file, and each block of the plurality of blocks is located at an offset from the location of the virtual machine file.

8. The computer-implemented method of claim 1 , wherein the storage object is a block of a plurality of blocks in the virtual machine file, the storage manager moves one or more blocks of the plurality of blocks, and the one or more blocks are moved on a block-by-block basis.

9. The computer-implemented method of claim 1 , wherein the storage object is moved as part of a tiering operation, the updating is performed as part of an updating operation, and the method further comprises:

determining whether the storage object has been modified; and

in response to a determination that the storage object has been modified, cancelling the tiering operation and canceling the updating operation.

10. The computer-implemented method of claim 1 , wherein the determining is performed by a tiering module implemented in a guest operating system.

11. The computer-implemented method of claim 10 , further comprising: receiving tiering information at the tiering module, wherein the tiering information comprises a tiering policy; and identifying the storage object as being subject to a tiering policy.

12. The computer-implemented method of claim 11 , wherein the identifying comprises: detecting whether the storage object meets a criterion, wherein the criterion is specified in the tiering policy.

13. The computer-implemented method of claim 10 , wherein the mapping information comprises a map, the map comprises locations of one or more blocks of the storage object in the virtual machine file as calculated by the guest operating system.

14. The computer-implemented method of claim 1 , wherein the determining is performed by a tiering module implemented in a host operating system.

15. The computer-implemented method of claim 14 , further comprising:

receiving tiering information at the tiering module, wherein the tiering information comprises a tiering policy; and

identifying the storage object as being subject to the tiering policy.

16. A computer system comprising:

one or more processors;

a computer-readable storage medium coupled to the one or more processors; and

a plurality of instructions, encoded in the computer-readable storage medium and

configured to cause the one or more processors to implement a storage manager,

wherein the storage manager is configured to

receive one or more instructions, wherein

the one or more instructions comprise

one or more move commands, and

location information,

the one or more move commands indicate that the storage manager should move a storage object from a first storage tier of a storage system to a second storage tier of the storage system,

the location information identifies a location of the storage object in the storage system,

the location in the storage system corresponds to a location of the storage object in a virtual machine file relative to a location of the virtual machine file in the storage system, and

the storage manager is configured to manage the storage system,

in response to receipt of the one or more instructions, perform a tiering operation,

wherein

the tiering operation comprises

moving the storage object from the first storage tier to the second storage tier,

the moving the storage object is performed based, at least in part, on tiering information,

the location is determined using mapping information,

the mapping information translates each of a plurality of locations in the virtual machine file to a corresponding location of a plurality of locations in the storage system,

the plurality of locations in the virtual machine file comprise the location of the storage object in the virtual machine file, and

the plurality of locations in the storage system comprise the location of the storage object in storage system, and

update the mapping information to translate the location of the storage object in the virtual machine file to a new location for the storage object in the storage system.

17. The computer system of claim 16 , wherein the computer system further comprises a tiering module, the location of the storage object in the storage system is determined by the tiering module, and the plurality of instructions comprise further instructions configured to cause the one or more processors to:

receive tiering information at the tiering module, wherein

the tiering module is implemented in at least one of a guest operating system or a host operating system, and

the tiering information comprises a tiering policy; and

identify the storage object as being subject to the tiering policy.

18. The computer system of claim 16 , wherein the location of the storage object in the virtual machine file is a location according to a guest file system of a guest operating system,

the virtual machine file and the guest operating system are associated with a virtual machine,

the virtual machine is implemented by a host comprising a host operating system that implements a host file system,

the location of the storage object in the storage system is a host-relative location in the host file system, and

the location of the storage object in the virtual machine file is translated according to the guest file system of the guest operating system to the host-relative location.

19. A computer program product comprising:

a plurality of instructions, implementing a storage manager and comprising

a first set of instructions, executable by a processor of a computer system,

configured to receive one or more instructions, wherein

the one or more instructions comprise

one or more move commands, and

location information,

the one or more move commands indicate that the storage manager should move a storage object from a first storage tier of a storage system to a second storage tier of the storage system,

the location information identifies a location of the storage object in the storage system,

the location in the storage system is a location of the storage object in a virtual machine file relative to a location of the virtual machine file in the storage system, and

the storage manager is configured to manage the storage system, and

a second set of instructions, executable by the processor, configured to, in response to receipt of the one or more instructions, perform a tiering operation, wherein

the tiering operation comprises

moving the storage object from the first storage tier to the second storage tier, and

the moving the storage object is performed based, at least in part, on tiering information, and

a third set of instructions, executable by the processor, configured to update mapping information to translate the location of the storage object in the virtual machine file to a new location for the storage object in the storage system; and

a non-transitory computer-readable storage medium, wherein the instructions are encoded in the non-transitory computer-readable storage medium.

20. The computer program product of claim 19 , wherein a second plurality of instructions implement a tiering module, the location is determined by the tiering module, and the second plurality of instructions comprise:

a first subset of instructions, executable by the processor, configured to receive tiering information at the tiering module, wherein

the tiering module is implemented in at least one of a guest operating system or a host operating system, and

the tiering information comprises a tiering policy; and

a second subset of instructions, executable by the processor, configured to identify the storage object as being subject to the tiering policy.

Assignments (13)
SECURITY INTEREST Recorded Dec 12, 2025
From: ARCTERA US LLC
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 073951/0470 →
TERMINATION AND RELEASE OF PATENT SECURITY AGREEMENT AT R/F 070530/0497 Recorded Dec 1, 2025
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: ARCTERA US LLC
Reel/Frame 073833/0730 →
TERMINATION AND RELEASE OF PATENT SECURITY AGREEMENT AT R/F 069585/0150 Recorded Dec 1, 2025
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: ARCTERA US LLC
Reel/Frame 073833/0848 →
RELEASE OF SECURITY INTEREST Recorded Dec 16, 2024
From: ACQUIOM AGENCY SERVICES LLC, AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069697/0238 →
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2024
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069634/0584 →
PATENT SECURITY AGREEMENT Recorded Dec 10, 2024
From: ARCTERA US LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 069585/0150 →
SECURITY INTEREST Recorded Dec 10, 2024
From: ARCTERA US LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 069563/0243 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2024
From: VERITAS TECHNOLOGIES LLC
To: ARCTERA US LLC
Reel/Frame 069548/0468 →
ASSIGNMENT OF SECURITY INTEREST IN PATENT COLLATERAL Recorded Nov 25, 2024
From: BANK OF AMERICA, N.A., AS ASSIGNOR
To: ACQUIOM AGENCY SERVICES LLC, AS ASSIGNEE
Reel/Frame 069440/0084 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS AT R/F 052426/0001 Recorded Nov 30, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 054535/0565 →
SECURITY INTEREST Recorded Aug 20, 2020
From: VERITAS TECHNOLOGIES LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 054370/0134 →
PATENT SECURITY AGREEMENT SUPPLEMENT Recorded Apr 16, 2020
From: VERITAS TECHNOLOGIES, LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 052426/0001 →
PATENT SECURITY AGREEMENT SUPPLEMENT Recorded Mar 18, 2020
From: VERITAS TECHNOLOGIES LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 052189/0311 →
Continuity (3)
Continuation 15294976 · Oct 17, 2016
Continuation 13327366 · Dec 15, 2011
Related Publication 20190354513A1 · Nov 21, 2019
Cited By (6)
US 12,197,398 US 12,242,455 US 12,248,434 US 12,248,435 US 12,517,874 US 12,627,681