US2017228156A1PendingUtilityA1

Raid set initialization

47
Assignee: SILICON GRAPHICS INT CORPPriority: Jan 24, 2014Filed: Feb 21, 2017Published: Aug 10, 2017
Est. expiryJan 24, 2034(~7.5 yrs left)· nominal 20-yr term from priority
Inventors:Larry Fenske
G06F 3/0689G06F 3/061G06F 3/0632G06F 3/0619G06F 11/1076G06F 3/0604G06F 3/0665
47
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

Embodiments of the presently claimed invention enable a RAID set to appear as if it were initialized immediately after a command to initialize a RAID set is initiated. Typically, a driver or other software in the software stack intercepts the command to initialize the RAID set. The driver then responds to user application programs as if the RAID set initialization is complete, even when it is not. After intercepting the RAID set initialization command, the driver will intercept and respond to data read or write commands as if the RAID set were initialized. The driver or other software will then, typically initialize the RAID set using background tasks. In certain instances, data stored in a non-RAID configuration may be migrated to a RAID configuration during the initialization process.

Claims

exact text as granted — not AI-modified
1 . (canceled) 
     
     
         2 . A method for initializing data in a RAID set:
 intercepting a RAID set initialization command, wherein the intercepted RAID set initialization command corresponds to a set of data currently stored in a non-RAID format;   converting a first part of the data currently stored in the non-raid format from the non-RAID format to a RAID format;   writing the first portion of data in the RAID format to one or more data storage locations associated with the first portion of the RAID set as one or more first background tasks;   storing information that identifies the initialization state of the RAID state based on the first portion of the RAID set being written by the one or more first background tasks, wherein the stored information that identifies the initialization state of the RAID set identifies that the first portion of the RAID set has been initialized into the RAID format;   receiving a read command relating to the RAID set from the application in the user space;   identifying that the received read command maps to an un-initialized portion of the RAID set; and   servicing the received read command by reading data from the set of data stored in the non-RAID format and by providing the data read from the set of data stored in the non-RAID format to application in the user space.   
     
     
         3 . The method of  claim 2 , further comprising receiving a write command to the RAID set from the application in the user space and writing data from the received write command to the RAID set. 
     
     
         4 . The method of  claim 2 , further comprising identifying that the received write command is to the un-initialized portion of the RAID set and storing updated information that identifies an updated initialization state of the RAID state based on data written according to the received write command to the un-initialized portion of the RAID set. 
     
     
         5 . The method of  claim 2 , further comprising:
 converting a second part of the data currently stored in the non-raid format from the non-RAID format to the RAID format;   writing the second portion of data in the RAID format to one or more data storage locations associated with the portion of the RAID set as one or more second set of background tasks, wherein the application residing in user space is not aware of the one or more second background tasks; and   storing updated information that identifies an updated initialization state of the RAID state, wherein the stored information that identifies the updated initialization state of the RAID set identifies that the second portion of the RAID set has been initialized into the RAID format.   
     
     
         6 . The method of  claim 2 , wherein the application in the user space provides commands to a driver according to the RAID format when the RAID set is not initialized. 
     
     
         7 . The method of  claim 2 , wherein the RAID format corresponds to a copy of the data stored in the non-RAID format. 
     
     
         8 . The method of  claim 2 , wherein the RAID format includes a plurality of stripes. 
     
     
         9 . The method of  claim 2 , wherein the RAID format includes parity information. 
     
     
         10 . The method of  claim 6 , wherein the driver is in kernel space. 
     
     
         11 . A non-transitory computer readable storage medium having embodied thereon a program executable by a processor to perform a method for initializing data in a RAID set:
 intercepting a RAID set initialization command, wherein the intercepted RAID set initialization command corresponds to a set of data currently stored in a non-RAID format;   converting a first part of the data currently stored in the non-raid format from the non-RAID format to a RAID format;   writing the first portion of data in the RAID format to one or more data storage locations associated with the first portion of the RAID set as one or more first background tasks;   storing information that identifies the initialization state of the RAID state based on the first portion of the RAID set being written by the one or more first background tasks, wherein the stored information that identifies the initialization state of the RAID set identifies that the first portion of the RAID set has been initialized into the RAID format;   receiving a read command relating to the RAID set from the application in the user space;   identifying that the received read command maps to an un-initialized portion of the RAID set; and   servicing the received read command by reading data from the set of data stored in the non-RAID format and by providing the data read from the set of data stored in the non-RAID format to application in the user space.   
     
     
         12 . The non-transitory computer readable storage medium of  claim 11 , the program is further executable to receive a write command to the RAID set from the application in the user space and to write data from the received write command to the RAID set. 
     
     
         13 . The non-transitory computer readable storage medium of  claim 11 , the program is further executable to identify that the received write command is to the un-initialized portion of the RAID set and storing updated information that identifies an updated initialization state of the RAID state based on data written according to the received write command to the un-initialized portion of the RAID set. 
     
     
         14 . The non-transitory computer readable storage medium of  claim 11 , the program is further executable to:
 convert a second part of the data currently stored in the non-raid format from the non-RAID format to the RAID format;   write the second portion of data in the RAID format to one or more data storage locations associated with the portion of the RAID set as one or more second set of background tasks, wherein the application residing in user space is not aware of the one or more second background tasks; and   store updated information that identifies an updated initialization state of the RAID state, wherein the stored information that identifies the updated initialization state of the RAID set identifies that the second portion of the RAID set has been initialized into the RAID format.   
     
     
         15 . The non-transitory computer readable storage medium of  claim 11 , wherein the application in the user space provides commands to a driver according to the RAID format when the RAID set is not initialized. 
     
     
         16 . The non-transitory computer readable storage medium of  claim 11 , wherein the RAID format corresponds to a copy of the data stored in the non-RAID format. 
     
     
         17 . The non-transitory computer readable storage medium of  claim 11 , wherein the RAID format includes a plurality of stripes. 
     
     
         18 . The non-transitory computer readable storage medium of  claim 11 , wherein the RAID format includes parity information. 
     
     
         19 . The non-transitory computer readable storage medium of  claim 16 , wherein the driver is in kernel space. 
     
     
         20 . A apparatus for initializing data in a RAID set:
 a memory; and   a processor executing instructions out of the memory that:   intercept a RAID set initialization command, wherein the intercepted RAID set initialization command corresponds to a set of data currently stored in a non-RAID format;   convert a first part of the data currently stored in the non-raid format from the non-RAID format to a RAID format;   write the first portion of data in the RAID format to one or more data storage locations associated with the first portion of the RAID set as one or more first background tasks;   control the storage of information that identifies the initialization state of the RAID state based on the first portion of the RAID set being written by the one or more first background tasks, wherein the stored information that identifies the initialization state of the RAID set identifies that the first portion of the RAID set has been initialized into the RAID format;   receive a read command relating to the RAID set from the application in the user space;   identify that the received read command maps to an un-initialized portion of the RAID set; and   service the received read command by reading data from the set of data stored in the non-RAID format and by providing the data read from the set of data stored in the non-RAID format to application in the user space.   
     
     
         21 . The apparatus of  claim 20 , wherein a write command to the RAID set is received from the application in the user space and data from the received write command is written to the RAID set.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.