IP Library Granted Patent US 10,705,853
Granted Patent B2
US 10,705,853 · App. 14/450,855 · Granted Jul 7, 2020

Methods, systems, and computer-readable media for boot acceleration in a data storage system by consolidating client-specific boot data in a consolidated boot volume

Inventors: Paresh Chatterjee (Fremont, CA); Vijayarankan Muthirisavenugopal (Fremont, CA); Narayanaswami Ganapathy (Newark, CA); Raghavan Sowrirajan (Fremont, CA)
Assignee: Amzetta Technologies, LLC
G06F9/4416H04L67/1097H04L67/34H04L29/0854H04L29/08549H04L29/08729
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,705,853
App. No.
14/450,855
Granted
Jul 7, 2020
Kind
B2
Abstract

Technologies are described herein for accelerating the boot process of client computers by consolidating client-specific boot data in a data storage system. Boot statistics are collected for a number of client computers booting from virtual storage volumes provided by the data storage system. The boot statistics are analyzed to identify client-specific boot data stored on each of the virtual storage volumes, and the client-specific boot data is consolidated and copied into contiguous regions of a single, consolidated boot volume in the data storage system. Requests for read operations from the client computers for the client-specific boot data are then redirected to the consolidated boot volume, increasing boot performance for the client computers.

Claims (34)

1. A computer-implemented method for booting a client device using a consolidated boot volume comprising:

receiving, by a storage process module, an I/O operation for one or more blocks of data of one or more virtual storage volumes;

checking, by the storage process module, a table for the one or more virtual storage volumes, to determine if the one or more blocks of data have been copied to the consolidated boot volume, wherein the consolidated boot volume comprises client-specific boot data from the one or more virtual storage volumes, and wherein the table comprises a plurality of entries for mapping the client-specific boot data from the one or more virtual storage volumes to respective locations on the consolidated boot volume; and

determining, by the storage process module, whether to execute the I/O operation against the consolidated boot volume or one of the one or more virtual storage volumes based at least in part on the determination of whether the one or more blocks of data have been copied to the consolidated boot volume.

2. The method of claim 1 , wherein determining, by the storage process module, whether to execute the I/O operation against the consolidated boot volume or one of the one or more virtual storage volumes comprises determining, by the storage process module, that the one or more blocks of data are found by the storage process module in the table and determining that the I/O operation is a read operation and determining, by the storage process module, whether to read the one or more blocks of data from either the consolidated boot volume or the one of the one or more virtual storage volumes.

3. The method of claim 2 , wherein determining, by the storage process module, whether to read the one or more blocks of data from either the consolidated boot volume or the one of the one or more virtual storage volumes comprises, executing, by the storage process module, a write I/O operation against the one of the one or more virtual storage volumes, and invalidating corresponding blocks of data in the consolidated boot volume by setting bits in a dirty read bitmap that correspond to an index field from an entry in the table for a targeted block of data.

4. The method of claim 3 , wherein determining, by the storage process module, whether to read the one or more blocks of data from either the consolidated boot volume or the one of the one or more virtual storage volumes comprises checking, by the storage process module, a bit in the dirty read bitmap corresponding to each block of data to be retrieved from the consolidated boot volume, determining whether the bit corresponding to the block of data targeted by the read I/O operation is set in the dirty read bitmap, reading directly from the one of the one or more virtual storage volumes if the bit for the block of data is set in the dirty read bitmap, and retrieving, by the storage process module, the block of data from the consolidated boot volume at a location indicated by the index field in the corresponding entry of the table if the bit for the block of data is not set in the dirty read bitmap.

5. The method of claim 1 , wherein the client-specific boot data for the consolidated boot volume is determined by collecting boot statistics for the client device regarding input/output operations over a network performed against the one or more virtual storage volumes during a boot period, analyzing the boot statistics to identify the client-specific boot data stored on the one or more virtual storage volumes, and consolidating the client-specific boot data from the one or more virtual storage volumes onto the consolidated boot volume.

6. The method of claim 1 , wherein determining, by the storage process module, whether to execute the I/O operation against the consolidated boot volume or one of the one or more virtual storage volumes comprises determining, by the storage process module, that the one or more blocks of data are not found by the storage process module in the table and executing the I/O operation against the one of the one or more virtual storage volumes.

7. The method of claim 1 , wherein determining, by the storage process module, whether to execute the I/O operation against the consolidated boot volume or one of the one or more virtual storage volumes comprises determining, by the storage process module, that the one or more blocks of data are found by the storage process module in the table and determining that the I/O operation is a write operation and executing the I/O operation against the one of the one or more virtual storage volumes.

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

receive, by a storage process module, an I/O operation for one or more blocks of data of one or more virtual storage volumes;

check, by the storage process module, a table for the one or more virtual storage volumes, to determine if the one or more blocks of data have been copied to the consolidated boot volume, wherein the consolidated boot volume comprises client-specific boot data from the one or more virtual storage volumes, and wherein the table comprises a plurality of entries for mapping the client-specific boot data from the one or more virtual storage volumes to respective locations on the consolidated boot volume; and

determine, by the storage process module, whether to execute the I/O operation against the consolidated boot volume or one of the one or more virtual storage volumes based at least in part on the determination of whether the one or more blocks of data have been copied to the consolidated boot volume.

9. The non-transitory computer-readable storage medium of claim 8 , wherein determining, by the storage process module, whether to execute the I/O operation against the consolidated boot volume or one of the one or more virtual storage volumes comprises determining, by the storage process module, that the one or more blocks of data are found by the storage process module in the table and determining that the I/O operation is a read operation and determining, by the storage process module, whether to read the one or more blocks of data from either the consolidated boot volume or the one of the one or more virtual storage volumes.

10. The non-transitory computer-readable storage medium of claim 9 , wherein determining, by the storage process module, whether to read the one or more blocks of data from either the consolidated boot volume or the one of the one or more virtual storage volumes comprises, executing, by the storage process module, a write I/O operation against the one of the one or more virtual storage volumes, and invalidating corresponding blocks of data in the consolidated boot volume by setting bits in a dirty read bitmap that correspond to an index field from an entry in the table for a targeted block of data.

11. The non-transitory computer-readable storage medium of claim 10 , wherein determining, by the storage process module, whether to read the one or more blocks of data from either the consolidated boot volume or the one of the one or more virtual storage volumes comprises checking, by the storage process module, a bit in the dirty read bitmap corresponding to each block of data to be retrieved from the consolidated boot volume, determining whether the bit corresponding to the block of data targeted by the read I/O operation is set in the dirty read bitmap, reading directly from the one of the one or more virtual storage volumes if the bit for the block of data is set in the dirty read bitmap, and retrieving, by the storage process module, the block of data from the consolidated boot volume at a location indicated by the index field in the corresponding entry of the table if the bit for the block of data is not set in the dirty read bitmap.

12. The non-transitory computer-readable storage medium of claim 8 , wherein the client-specific boot data for the consolidated boot volume is determined by collecting boot statistics for the client device regarding input/output operations over a network performed against the one or more virtual storage volumes during a boot period, analyzing the boot statistics to identify the client-specific boot data stored on the one or more virtual storage volumes, and consolidating the client-specific boot data from the one or more virtual storage volumes onto the consolidated boot volume.

13. The non-transitory computer-readable storage medium of claim 8 , wherein determining, by the storage process module, whether to execute the I/O operation against the consolidated boot volume or one of the one or more virtual storage volumes comprises determining, by the storage process module, that the one or more blocks of data are not found by the storage process module in the table and executing the I/O operation against the one of the one or more virtual storage volumes.

14. The non-transitory computer-readable storage medium of claim 8 , wherein determining, by the storage process module, whether to execute the I/O operation against the consolidated boot volume or one of the one or more virtual storage volumes comprises determining, by the storage process module, that the one or more blocks of data are found by the storage process module in the table and determining that the I/O operation is a write operation and executing the I/O operation against the one of the one or more virtual storage volumes.

15. A data storage system comprising:

a storage system computer;

a physical storage device operably connected to the storage system computer;

a processing unit associated with the storage system computer; and

a storage process module executing on the processing unit and configured to:

receive an I/O operation for one or more blocks of data of one or more virtual storage volumes;

check a table for the one or more virtual storage volumes, to determine if the one or more blocks of data have been copied to the consolidated boot volume, wherein the consolidated boot volume comprises client-specific boot data from the one or more virtual storage volumes, and wherein the table comprises a plurality of entries for mapping the client-specific boot data from the one or more virtual storage volumes to respective locations on the consolidated boot volume; and

determine whether to execute the I/O operation against the consolidated boot volume or one of the one or more virtual storage volumes based at least in part on the determination of whether the one or more blocks of data have been copied to the consolidated boot volume.

16. The data storage system of claim 15 , wherein determining, by the storage process module, whether to execute the I/O operation against the consolidated boot volume or one of the one or more storage virtual volumes comprises determining, by the storage process module, that the one or more blocks of data are found by the storage process module in the table and determining that the I/O operation is a read operation and determining, by the storage process module, whether to read the one or more blocks of data from either the consolidated boot volume or the one of the one or more virtual storage volumes.

17. The data storage system of claim 16 , wherein determining, by the storage process module, whether to read the one or more blocks of data from either the consolidated boot volume or the one of the one or more virtual storage volumes comprises, executing, by the storage process module, a write I/O operation against the one of the one or more virtual storage volumes, and invalidating corresponding blocks of data in the consolidated boot volume by setting bits in a dirty read bitmap that correspond to an index field from an entry in the table for a targeted block of data.

18. The data storage system of claim 17 , wherein determining, by the storage process module, whether to read the one or more blocks of data from either the consolidated boot volume or the one of the one or more virtual storage volumes comprises checking, by the storage process module, a bit in the dirty read bitmap corresponding to each block of data to be retrieved from the consolidated boot volume, determining whether the bit corresponding to the block of data targeted by the read I/O operation is set in the dirty read bitmap, reading directly from the one of the one or more virtual storage volumes if the bit for the block of data is set in the dirty read bitmap, and retrieving, by the storage process module, the block of data from the consolidated boot volume at a location indicated by the index field in the corresponding entry of the table if the bit for the block of data is not set in the dirty read bitmap.

19. The data storage system of claim 15 , wherein the client-specific boot data for the consolidated boot volume is determined by collecting boot statistics for the client device regarding input/output operations over a network performed against the one or more virtual storage volumes during a boot period, analyzing the boot statistics to identify the client-specific boot data stored on the one or more virtual storage volumes, and consolidating the client-specific boot data from the one or more virtual storage volumes onto the consolidated boot volume.

20. The data storage system of claim 15 , wherein determining, by the storage process module, whether to execute the I/O operation against the consolidated boot volume or one of the one or more virtual storage volumes comprises determining, by the storage process module, that the one or more blocks of data are not found by the storage process module in the table and executing the I/O operation against the one of the one or more virtual storage volumes.

21. The data storage system of claim 15 , wherein determining, by the storage process module, whether to execute the I/O operation against the consolidated boot volume or one of the one or more virtual storage volumes comprises determining, by the storage process module, that the one or more blocks of data are found by the storage process module in the table and determining that the I/O operation is a write operation and executing the I/O operation against the one of the one or more virtual storage volumes.

Assignments (6)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 13, 2021
From: SUBBOTSKII, ANDREI; SÖRQVIST, TORBJÖRN; ERGUNER, ASIL; LUNDBLAD, ANDERS
To: NKT HV CABLES AB
Reel/Frame 058373/0837 →
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 Mar 25, 2020
From: AMERICAN MEGATRENDS INTERNATIONAL, LLC
To: AMZETTA TECHNOLOGIES, LLC
Reel/Frame 052220/0279 →
CONVERSION Recorded Mar 24, 2020
From: AMERICAN MEGATRENDS, INC.
To: AMERICAN MEGATRENDS INTERNATIONAL, LLC
Reel/Frame 052216/0207 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 7, 2014
From: CHATTERJEE, PARESH; MUTHIRISAVENUGOPAL, VIJAYARANKAN; GANAPATHY, NARAYANASWAMI; SOWRIRAJAN, RAGHAVAN
To: AMERICAN MEGATRENDS, INC.
Reel/Frame 033485/0001 →