IP Library Granted Patent US 8,775,786
Granted Patent B1
US 8,775,786 · App. 13/736,400 · Granted Jul 8, 2014

Boot caching for boot acceleration within data storage systems

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,775,786
App. No.
13/736,400
Granted
Jul 8, 2014
Kind
B1
Abstract

Technologies are described herein for boot caching to accelerate boot access in a data storage system providing boot consolidation. Boot caching may be provided to improve boot access for multiple clients concurrently booting from a common storage server. Boot statistics may be collected per user or client. The boot statistics can determine common patterns within the boot procedures of the clients and may be used to compute boot caching tables. These tables may then be used during boot caching to accelerate booting of clients. A boot caching mechanism can be implemented to support improved booting performance by caching data blocks common to multiple booting volumes. This approach can leverage the condition that much of the data loaded by clients at boot time may be substantially identical, because booting can involve loading the same operating system components into each client.

Claims (57)

1. A method for boot acceleration within a data storage system, the method comprising:

collecting boot statistics related to boot load operations for a plurality of thin client devices;

analyzing the boot statistics;

providing boot cache tables in response to analyzing the boot statistics;

providing a boot cache in memory;

loading the boot cache tables into the boot cache;

analyzing the boot cache tables to determine common boot blocks, wherein the common boot blocks are accessed by at least two of the thin client devices during the boot load operations;

upon determining the common boot blocks, loading the common boot blocks into the boot cache; and

servicing the boot load operations for the thin client devices from the common boot blocks in the boot cache over a network.

2. The method of claim 1 , further comprising:

invalidating one or more of the common boot blocks in response to write operations by at least one of the thin client devices to the one or more of the common boot blocks;

maintaining a list of the invalidated common boot blocks; and

in response to an input/output (“I/O”) operation by the at least one of the thin client devices directed to the invalidated common boot blocks, bypassing the boot cache and redirecting the I/O operation to a physical storage device.

3. The method of claim 1 , further comprising collecting boot cache efficacy statistics.

4. The method of claim 3 , further comprising rebuilding the boot cache in response to the boot efficacy statistics falling below a specified threshold.

5. The method of claim 1 , further comprising associating dependent blocks to reference blocks based on signature values.

6. The method of claim 5 , further comprising matching data between the associated dependent blocks and reference blocks, and removing mismatched blocks from the boot cache tables.

7. The method of claim 1 , further comprising establishing a reference volume as a volume having a highest number of matching blocks.

8. A non-transitory computer storage medium having computer-executable instructions stored thereon which, when executed by a computer system, cause the computer system to:

collect boot statistics related to boot load operations for a plurality of thin client devices;

analyze the boot statistics;

provide boot cache tables in response to analyzing the boot statistics;

provide a boot cache in memory;

load the boot cache tables into the boot cache;

analyze the boot cache tables to determine common boot blocks, wherein the common boot blocks are accessed by at least two of the thin client devices during the boot load operations;

upon determining the common boot blocks, load the common boot blocks into the boot cache; and

service the boot load operations for the thin client devices from the common boot blocks in the boot cache over a network.

9. The non-transitory computer storage medium of claim 8 , having further computer-executable instructions stored thereon which, when executed by the computer system, cause the computer system to:

invalidate one or more of the common boot blocks in response to write operations by at least one of the thin client devices to the one or more of the common boot blocks;

maintain a list of the invalidated common boot blocks; and

in response to an input/output (“I/O”) operation by the at least one of the thin client devices directed to the invalidated common boot blocks, bypass the boot cache and redirect the I/O operation to a physical storage device.

10. The non-transitory computer storage medium of claim 8 , having further computer-executable instructions stored thereon which, when executed by the computer system, cause the computer system to collect boot cache efficacy statistics.

11. The non-transitory computer storage medium of claim 10 , having further computer-executable instructions stored thereon which, when executed by the computer system, cause the computer system to rebuild the boot cache in response to the boot efficacy statistics falling below a specified threshold.

12. The non-transitory computer storage medium of claim 8 , having further computer-executable instructions stored thereon which, when executed by the computer system, cause the computer system to associate dependent blocks to reference blocks based on signature values.

13. The non-transitory computer storage medium of claim 12 , having further computer-executable instructions stored thereon which, when executed by the computer system, cause the computer system to match data between the associated dependent blocks and reference blocks, and remove mismatched blocks from the boot cache tables.

14. The non-transitory computer storage medium of claim 8 , having further computer-executable instructions stored thereon which, when executed by the computer system, cause the computer system to establish a reference volume as a volume having a highest number of matching blocks.

15. A data storage system comprising:

a storage server;

a physical storage device associated with the storage server;

a processing unit associated with the storage server; and

one or more modules for execution on the processing unit, the one or more modules being configured to:

collect boot statistics related to boot load operations for a plurality of thin client devices,

analyze the boot statistics,

provide boot cache tables in response to analyzing the boot statistics,

provide a boot cache in memory,

load the boot cache tables into the boot cache,

analyze the boot cache tables to determine common boot blocks, wherein the common boot blocks are accessed by at least two of the thin client devices during the boot load operations,

upon determining the common boot blocks, load the common boot blocks into the boot cache, and

service the boot load operations for the thin client devices from the common boot blocks in the boot cache over a network.

16. The data storage system of claim 15 , wherein the one or more modules for execution on the processing unit are further configured to:

invalidate one or more of the common boot blocks in response to write operations to the one or more of the common boot blocks;

maintain a list of the invalidated common boot blocks; and

in response to an input/output (“I/O”) operation by the at least one of the thin client devices directed to the invalidated common boot blocks, bypass the boot cache and redirect the I/O operation to the physical storage device.

17. The data storage system of claim 15 , wherein the one or more modules for execution on the processing unit are further configured to collect boot cache efficacy statistics.

18. The data storage system of claim 17 , wherein the one or more modules for execution on the processing unit are further configured to rebuild the boot cache in response to the boot efficacy statistics falling below a specified threshold.

19. The data storage system of claim 15 , wherein the one or more modules for execution on the processing unit are further configured to associate dependent blocks to reference blocks based on signature values.

20. The data storage system of claim 19 , wherein the one or more modules for execution on the processing unit are further configured to match data between the associated dependent blocks and reference blocks, and remove mismatched blocks from the boot cache tables.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 22, 2020
From: AMERICAN MEGATRENDS INTERNATIONAL, LLC,
To: AMZETTA TECHNOLOGIES, LLC,
Reel/Frame 053007/0151 →
CHANGE OF NAME Recorded Jun 22, 2020
From: AMERICAN MEGATRENDS, INC.
To: AMERICAN MEGATRENDS INTERNATIONAL, LLC
Reel/Frame 053007/0233 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 8, 2013
From: CHATTERJEE, PARESH; SUBRAMANIAN, SRIKUMAR; GRANDHI, SURESH; MUTHIRISAVENUGOPAL, VIJAYARAKAN
To: AMERICAN MEGATRENDS, INC.
Reel/Frame 030373/0820 →