IP Library Granted Patent US 8,499,132
Granted Patent B1
US 8,499,132 · App. 12/030,168 · Granted Jul 30, 2013

Software module for using flash memory as a secondary permanent storage device

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 8,499,132
App. No.
12/030,168
Granted
Jul 30, 2013
Kind
B1
Abstract

Described herein is a flash remapping (FR) layer in a storage operating system for utilizing flash memory as a secondary permanent storage device in a storage system. The FR layer collects particular information (specified by collection parameters) of received access requests for data stored on primary storage devices of the storage system. Based on the collected information and a predetermined access pattern (specified by pattern parameters), the FR layer selects data sets on the primary storage devices to be transferred permanently to flash memory, whereby subsequent access requests to the selected data sets are redirected to flash memory. New parameters may be received by the FR layer (from a user or program) to dynamically reconfigure the functions of the FR layer. The FR layer may be implemented in the operating system without requiring other code of the storage operating system to be modified.

Claims (82)

1. A system for using flash memory as a secondary storage device in a storage system, the system comprising:

the storage system comprising:

a first set of one or more primary storage devices of a first storage device type;

a second set of one or more primary storage devices of a second storage device type that is different than the first storage device type;

the flash memory; and

an operating system for processing access-request information regarding received access requests for various data on the first and second sets of primary storage devices, the operating system comprising a flash remapping (FR) layer for using the flash memory as a secondary storage device, the FR layer configured for:

collecting, according to a set of one or more collection parameters, the access-request information regarding the received access requests;

based on the collected access-request information, determining flash selected data comprising areas of data in the first set of primary storage devices exhibiting a first predetermined access pattern, the first predetermined access pattern being specified by a first set of one or more pattern parameters specified for the first set of primary storage devices;

transferring flash selected data from the first set of primary storage devices to the flash memory;

based on the collected access-request information, determining flash selected data comprising areas of data in the second set of primary storage devices exhibiting a second predetermined access pattern, the second predetermined access pattern being specified by a second set of one or more pattern parameters specified for the second set of primary storage devices, wherein the first predetermined access pattern specified for the first set of primary storage devices is different from the second predetermined access pattern specified for the second set of primary storage devices; and

transferring flash selected data from the second set of primary storage devices to the flash memory.

2. The system of claim 1 , wherein the FR layer is further configured for:

for received access requests for data transferred to the flash memory, redirecting the access requests to the flash memory for performance of the access request.

3. The system of claim 1 , wherein the FR layer is configured to transfer flash selected data from the set of primary storage devices to the flash memory by:

copying the flash selected data stored on the set of primary storage devices;

storing the flash selected data on the flash memory; and

deleting the flash selected data on the set of primary storage devices, wherein subsequent received write requests for the flash selected data are performed only on the flash memory and not on the set of primary storage devices.

4. The system of claim 1 , wherein:

a collection parameter specifies a type of access-request information to be collected and classified by the FR layer; and

a pattern parameter specifies a type of access request and a minimum or maximum threshold value indicating a minimum or maximum number of access requests of the specified type that is received for an area of data for the area of data to qualify as flash selected data.

5. The system of claim 1 , wherein the collection or pattern parameters are based on performance characteristics of flash memory relative to the primary storage device.

6. A method for using flash memory as a secondary storage device in a storage system, the storage system comprising the flash memory, a first set of one or more primary storage devices of a first storage device type, a second set of one or more primary storage devices of a second storage device type that is different than the first storage device type, and an operating system for processing access-request information regarding received access requests for various data on the first and second sets of primary storage devices, the method comprising:

collecting, according to a set of one or more collection parameters, the access-request information regarding the received access requests;

based on the collected access-request information, determining flash selected data comprising areas of data in the set of primary storage devices exhibiting a predetermined access pattern for the first application, the predetermined access pattern for the first application being specified by a first set of one or more pattern parameters specified for only the first application;

based on the collected access-request information, determining flash selected data comprising areas of data in the first set of primary storage devices exhibiting a first predetermined access pattern, the first predetermined access pattern being specified by a first set of one or more pattern parameters specified for the first set of primary storage devices;

transferring flash selected data from the first set of primary storage devices to the flash memory;

based on the collected access-request information, determining flash selected data comprising areas of data in the second set of primary storage devices exhibiting a second predetermined access pattern, the second predetermined access pattern being specified by a second set of one or more pattern parameters specified for the second set of primary storage devices, wherein the first predetermined access pattern specified for the first set of primary storage devices is different from the second predetermined access pattern specified for the second set of primary storage devices; and

transferring flash selected data from the second set of primary storage devices to the flash memory.

7. The method of claim 6 , further comprising:

for received access requests for data transferred to the flash memory, redirecting the access requests to the flash memory for performance of the access request.

8. The method of claim 6 , wherein the transferring comprises:

copying the flash selected data stored on the set of primary storage devices;

storing the flash selected data on the flash memory; and

deleting the flash selected data on the set of primary storage devices, wherein subsequent received write requests for the flash selected data are performed only on the flash memory and not on the set of primary storage devices.

9. The method of claim 6 , wherein:

a collection parameter specifies a type of access-request information to be collected and classified; and

a pattern parameter specifies a type of access request and a minimum or maximum threshold value indicating a minimum or maximum number of access requests of the specified type that is received for an area of data for the area of data to qualify as flash selected data.

10. The method of claim 6 , wherein the collection or pattern parameters are based on performance characteristics of flash memory relative to the primary storage device.

11. A system for using flash memory as a secondary storage device in a storage system, the system comprising:

the storage system comprising:

a first set of one or more primary storage devices of a first storage device type;

a second set of one or more primary storage devices of a second storage device type that is different than the first storage device type;

the flash memory; and

an operating system comprising a plurality of software layers for processing access-request information regarding received access requests for various data on the set first and second sets of primary storage devices, the plurality of software layers comprising a flash remapping (FR) layer configured for:

installation onto the operating system for using the flash memory as a secondary storage device without requiring code modification of the other software layers of the operating system;

collecting, according to a set of one or more collection parameters, the access-request information regarding the received access requests;

based on the collected access-request information, determining flash selected data comprising areas of data in the first set of primary storage devices exhibiting a first predetermined access pattern, the first predetermined access pattern being specified by a first set of one or more pattern parameters specified for the first set of primary storage devices;

transferring flash selected data from the first set of primary storage devices to the flash memory;

based on the collected access-request information, determining flash selected data comprising areas of data in the second set of primary storage devices exhibiting a second predetermined access pattern, the second predetermined access pattern being specified by a second set of one or more pattern parameters specified for the second set of primary storage devices, wherein the first predetermined access pattern specified for the first set of primary storage devices is different from the second predetermined access pattern specified for the second set of primary storage devices; and

transferring flash selected data from the second set of primary storage devices to the flash memory.

12. The system of claim 11 , wherein the FR layer is further configured for:

for received access requests for data transferred to the flash memory, redirecting the access requests to the flash memory for performance of the access request.

13. The system of claim 11 , wherein the FR layer is further configured for:

receiving as input access-request information from a prior adjacent layer of the storage operating system; and

for received access requests for data not transferred to the flash memory, sending as output the same access-request information received as input to a next adjacent layer of the storage operating system.

14. The system of claim 13 , wherein:

the prior adjacent layer comprises a file system layer and the next adjacent layer comprises a storage layer of the operating system, wherein the access-request information comprises file-based access-request information; or

the prior adjacent layer comprises the storage layer and the next adjacent layer comprises a device driver layer of the operating system, wherein the access-request information comprises block-based access-request information.

15. The system of claim 11 , wherein the FR layer is configured to transfer flash selected data from the set of primary storage devices to the flash memory by:

copying the flash selected data stored on the set of primary storage devices;

storing the flash selected data on the flash memory; and

deleting the flash selected data on the set of primary storage devices, wherein subsequent received write requests for the flash selected data are performed only on the flash memory and not on the set of primary storage devices.

16. A method for using flash memory as a secondary storage device in a storage system, the storage system comprising the flash memory, a first set of one or more primary storage devices of a first storage device type, a second set of one or more primary storage devices of a second storage device type that is different than the first storage device type, and an operating system comprising a plurality of software layers for processing access-request information regarding received access requests for various data on the set first and second sets of primary storage devices, the method comprising:

providing a flash remapping (FR) layer configured for:

installation onto the operating system for using the flash memory as a secondary storage device without requiring code modification of the other software layers of the operating system;

collecting, according to a set of one or more collection parameters, the access-request information regarding the received access requests;

based on the collected access-request information, determining flash selected data comprising areas of data in the first set of primary storage devices exhibiting a first predetermined access pattern, the first predetermined access pattern being specified by a first set of one or more pattern parameters specified for the first set of primary storage devices;

transferring flash selected data from the first set of primary storage devices to the flash memory;

based on the collected access-request information, determining flash selected data comprising areas of data in the second set of primary storage devices exhibiting a second predetermined access pattern, the second predetermined access pattern being specified by a second set of one or more pattern parameters specified for the second set of primary storage devices, wherein the first predetermined access pattern specified for the first set of primary storage devices is different from the second predetermined access pattern specified for the second set of primary storage devices; and

transferring flash selected data from the second set of primary storage devices to the flash memory.

17. The method of claim 16 , wherein the FR layer is further configured for:

for received access requests for data transferred to the flash memory, redirecting the access requests to the flash memory for performance of the access request.

18. The method of claim 16 , wherein the FR layer is further configured for:

receiving as input access-request information from a prior adjacent layer of the storage operating system; and

for received access requests for data not transferred to the flash memory, sending as output the same access-request information received as input to a next adjacent layer of the storage operating system.

19. The method of claim 18 , wherein:

the prior adjacent layer comprises a file system layer and the next adjacent layer comprises a storage layer of the operating system, wherein the access-request information comprises file-based access-request information; or

the prior adjacent layer comprises the storage layer and the next adjacent layer comprises a device driver layer of the operating system, wherein the access-request information comprises block-based access-request information.

20. The method of claim 16 , wherein the FR layer is configured to transfer flash selected data from the set of primary storage devices to the flash memory by:

copying the flash selected data stored on the set of primary storage devices;

storing the flash selected data on the flash memory; and

deleting the flash selected data on the set of primary storage devices, wherein subsequent received write requests for the flash selected data are performed only on the flash memory and not on the set of primary storage devices.

Assignments (2)
CHANGE OF NAME Recorded Jun 10, 2011
From: NETWORK APPLIANCE, INC.
To: NETAPP, INC.
Reel/Frame 026427/0475 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 8, 2008
From: PASUPATHY, SHANKAR; GOODSON, GARTH; VORUGANTI, KALADHAR; SRINIVASAN, KIRAN
To: NETWORK APPLIANCE, INC.
Reel/Frame 020799/0309 →