IP Library Granted Patent US 9,400,792
Granted Patent B1
US 9,400,792 · App. 13/928,591 · Granted Jul 26, 2016

File system inline fine grained tiering

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 9,400,792
App. No.
13/928,591
Granted
Jul 26, 2016
Kind
B1
Abstract

A technique for managing storage tiering in a data storage apparatus operates at a fine level of granularity in response to write requests as blocks are allocated for writing. As write requests arrive or are otherwise processed by the data storage apparatus, the data storage apparatus identifies a quality of service to be provided for satisfying each write request and allocates a set of blocks from storage devices of storage tiers that provide the identified quality of service. The data storage apparatus may then store the information specified in the write request in the newly allocated blocks.

Claims (70)

1. A method of storing data in different storage tiers of a data storage apparatus, the method comprising:

receiving, via an IO stack of a storage processor of the data storage apparatus, a request to write a set of information in the data storage apparatus;

obtaining, in response to receiving the request via the IO stack, a data element designating a quality of service to be provided for storing the set of information; and

allocating a set of blocks from one or more storage devices of a storage tier that provides the quality of service designated in the data element read in response to receiving the request,

wherein the quality of service designated in the data element is a first quality of service, and wherein the method further comprises:

receiving, via the IO stack of the storage processor of the data storage apparatus, a second request to write a second set of information in the data storage apparatus;

obtaining, in response to receiving the second request via the IO stack, a second data element designating a second quality of service to be provided for storing the second set of information; and

allocating a second set of blocks from one or more storage devices of a second storage tier that provide the second quality of service designated in the second data element read in response to receiving the second request,

wherein the set of information includes file data to be written to a file of a file system, and

wherein the second set of information includes metadata pertaining to the file of the file system,

wherein the request to write the set of information is directed to a file of an upper-deck file system of the data storage apparatus,

wherein the method further comprises mapping the upper-deck file system to a file of an internal, lower-deck file system of the data storage apparatus, the file of the lower-deck file system providing a complete representation of the upper-deck file system and including both data and metadata of the upper-deck file system,

wherein obtaining the data element designating the quality of service to be provided for storing the set of information is performed by a manager of the upper-deck file system,

wherein the method further comprises conveying the data element, via the IO stack, to a manager of the lower-deck file system, the manager of the lower-deck file system thereby receiving the data element via the IO stack, and

wherein allocating the set of blocks is preformed in response to the manager of the lower-deck file system reading the data element received from the manager of the upper-deck file system and applying the data element to select the storage tier that provides the quality of service designated in the data element.

2. The method of claim 1 , wherein obtaining the data element includes:

accessing a policy that specifies different qualities of service for different types of information and/or circumstances;

identifying, a quality of service specified by the policy for the set of information and/or current circumstances; and

generating the data element to designate the quality of service specified by the policy.

3. The method of claim 2 , wherein the set of information includes data to be written to a file of the upper-deck file system, wherein the policy specifies a quality of service for storing file data, and wherein identifying the quality of service specified by the policy includes identifying the quality of service for storing file data from the policy.

4. The method of claim 2 , wherein the set of information includes data to be written to a particular range of a file of the upper-deck file system, wherein the policy specifies a quality of service for file data of the particular range, and wherein identifying the quality of service specified by the policy includes identifying the quality of service specified for the particular range of file data from the policy.

5. The method of claim 2 , wherein the set of information includes metadata pertaining to a file of the upper-deck file system, wherein the policy specifies a quality of service for file metadata, and wherein identifying the quality of service specified by the policy includes identifying the quality of service specified for file metadata from the policy.

6. The method of claim 5 , wherein the set of information pertains to an inode of the file of the upper-deck file system, wherein the policy specifies a quality of service for inodes, and wherein identifying the quality of service specified by the policy includes identifying the quality of service specified for inodes from the policy.

7. The method of claim 5 , wherein the set of information pertains to at least one indirect block of the file of the upper-deck file system, wherein the policy specifies a quality of service for indirect blocks, and wherein identifying the quality of service specified by the policy includes identifying the quality of service specified for indirect blocks from the policy.

8. The method of claim 2 , wherein the set of information includes data of a virtual hard disk (VHD) stored in a file of the upper-deck file system, wherein the policy specifies a quality of service for VHD data, and wherein identifying the quality of service specified by the policy includes identifying the quality of service specified for VHD data from the policy.

9. The method of claim 2 , wherein the set of information includes data of a virtual memory disk (VMDK) stored in a file of the upper-deck file system, wherein the policy specifies a quality of service for VMDK data, and wherein identifying the quality of service specified by the policy includes identifying the quality of service specified for VMDK data from the policy.

10. The method of claim 1 , wherein the request to write the set of information is directed to a file of a file system of the data storage apparatus, and wherein the method further comprises, after reading the data element designating the quality of service to be used for storing the set of information, checking a data structure of the file system to determine whether any free blocks are available to provide the quality of service designated in the data element read from the request.

11. The method of claim 1 , wherein the request to write the set of information is directed to a file of a file system of the data storage apparatus, and wherein obtaining the data element designating the quality of service includes accessing metadata for the file stored in the file system to receive a designation of quality of service from the metadata.

12. The method of claim 11 , wherein obtaining the data element designating the quality of service includes accessing an inode for the file stored in the file system to receive a designation of quality of service from the inode.

13. The method of claim 11 , wherein obtaining the data element designating the quality of service includes accessing an indirect block for the file stored in the file system to receive a designation of quality of service for a particular range of the file from the indirect block.

14. The method of claim 1 , wherein obtaining the data element designating the quality of service to be provided for storing the set of information includes, by the manager of the upper-deck file system:

sending a message to a tiering policy requesting a quality of service to be provided for the set of information;

in response to the tiering policy receiving the message, receiving the data element from the tiering policy; and

applying the data element to the request as a tag,

wherein the request and the applied tag propagate through the IO stack to the manager of the lower-deck file system.

15. The method of claim 1 , wherein obtaining the data element designating the quality of service to be provided for storing the set of information includes, by the manager of the upper-deck file system:

checking metadata of the upper-deck file system to identify a quality of service to be provided for the set of information;

in response to checking the metadata, receiving the data element; and

applying the data element to the request as a tag,

wherein the request and the applied tag propagate through the IO stack to the manager of the lower-deck file system.

16. A data storage apparatus, comprising:

a storage processor; and

multiple storage devices, coupled to the storage processor, for storing data of at least one host,

wherein the storage processor includes a set of processing units coupled to memory, the memory storing executable instructions, which when executed by the set of processing units cause the set of processing units to perform a method of storing data in different storage tiers of the data storage apparatus, wherein the method comprises:

receiving, via an IO stack of the storage processor of the data storage apparatus, a request to write a set of information in the data storage apparatus;

obtaining, in response to receiving the request via the IO stack, a data element designating a quality of service to be provided for storing the set of information; and

allocating a set of blocks from one or more storage devices of a storage tier that provides the quality of service designated in the data element read in response to receiving the request,

wherein the request to write the set of information is directed to a file of an upper-deck file system of the data storage apparatus, the upper-deck file system mapped to a file in a lower-deck file system of the data storage apparatus, a manager of the upper-deck file system obtaining the data element designating the quality of service, the IO stack conveying the data element to a manager of the lower-deck file system, and wherein allocating the set of blocks is performed in response to the manager of the lower-deck file system applying the data element to select the storage tier that provides the quality of service designated in the data element.

17. The data storage apparatus of claim 16 , wherein the file of the lower-deck file system provides a complete representation of the upper-deck file system and includes both data and metadata of the upper-deck file system.

18. The data storage apparatus of claim 16 , wherein the quality of service designated in the data element is a first quality of service, and wherein the method further comprises:

receiving, via the IO stack of the storage processor of the data storage apparatus, a second request to write a second set of information in the data storage apparatus;

obtaining, in response to receiving the second request via the IO stack, a second data element designating a second quality of service to be provided for storing the second set of information; and

allocating a second set of blocks from one or more storage devices of a second storage tier that provide the second quality of service designated in the second data element read in response to receiving the second request,

wherein the set of information includes file data to be written to a file of a file system, and

wherein the second set of information includes metadata pertaining to the file of the file system.

19. A non-transitory computer readable medium including instructions which, when executed by a set of processing units of a storage processor of a data storage apparatus, cause the set of processing units to perform a method of storing data in different storage tiers of the data storage apparatus, wherein the method comprises:

receiving, via an IO stack of the storage processor of the data storage apparatus, a request to write a set of information in the data storage apparatus;

obtaining, in response to receiving the request via the IO stack, a data element designating a quality of service to be provided for storing the set of information; and

allocating a set of blocks from one or more storage devices of a storage tier that provides the quality of service designated in the data element read in response to receiving the request,

wherein the request to write the set of information is directed to a file of an upper-deck file system of the data storage apparatus, the upper-deck file system mapped to a file in a lower-deck file system of the data storage apparatus, a manager of the upper-deck file system obtaining the data element designating the quality of service, the IO stack conveying the data element to a manager of the lower-deck file system, and wherein allocating the set of blocks is performed in response to the manager of the lower-deck file system applying the data element to select the storage tier that provides the quality of service designated in the data element.

20. The non-transitory computer readable medium of claim 19 , wherein obtaining the data element includes:

accessing a policy that specifies different qualities of service for different types of information and/or circumstances;

identifying, a quality of service specified by the policy for the set of information and/or current circumstances; and

generating the data element to designate the quality of service specified by the policy.

21. The non-transitory computer readable medium of claim 19 , wherein the quality of service designated in the data element is a first quality of service, and wherein the method further comprises:

receiving, via the IO stack of the storage processor of the data storage apparatus, a second request to write a second set of information in the data storage apparatus;

obtaining, in response to receiving the second request via the IO stack, a second data element designating a second quality of service to be provided for storing the second set of information; and

allocating a second set of blocks from one or more storage devices of a second storage tier that provide the second quality of service designated in the second data element read in response to receiving the second request,

wherein the set of information includes file data to be written to a file of a file system, and

wherein the second set of information includes metadata pertaining to the file of the file system.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061753/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001) Recorded Apr 26, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061324/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 3, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL USA L.P.; ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL, L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058216/0001 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 3, 2016
From: EMC CORPORATION
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 040206/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040136/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040134/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 9, 2013
From: BONO, JEAN-PIERRE; DAVENPORT, WILLIAM C.; DE FOREST, MILES A.; ARMANGAU, PHILIPPE; SCHEER, MICHAEL; CLARK, MORGAN; RASHID, AHSAN
To: EMC CORPORATION
Reel/Frame 030980/0109 →