US2007083482A1PendingUtilityA1

Multiple quality of service file system

45
Assignee: RATHI UNMESHPriority: Oct 8, 2005Filed: Oct 8, 2005Published: Apr 12, 2007
Est. expiryOct 8, 2025(expired)· nominal 20-yr term from priority
G06F 16/182G06F 16/185G06F 3/048
45
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

The invention relates to a multiple QoS file system and methods of processing files at different QoS according to rules. The invention allocates multiple VLUNs at different qualities of service to the multiQoS file system. Using the rules, the file system chooses an initial QoS for a file when created. Thereafter, the file system moves files to different QoS using rules. Users of the file system see a single unified space of files, while administrators place files on storage with the new cost and performance according to attributes of the files. A multiQoS file system enhances the descriptive information for each file to contain the chosen QoS for the file.

Claims

exact text as granted — not AI-modified
1 . A method of provisioning a multiQoS file system on a host, comprising: 
 allocating a high QoS VLUN and a low QoS VLUN;    creating file system core structures in the high or low QoS VLUN;    initializing space allocation structures in the high QoS VLUN and the low QoS VLUN; and    creating a fixed table that maps indexes into VLUN identifiers.    
   
   
       2 . The method of  claim 1 , wherein the step of allocating includes computing user capacity required for the high QoS VLUN and the low QoS VLUN.  
   
   
       3 . The method of  claim 1 , further comprising detecting the high QoS VLUN or the low QoS VLUN are running out of space and notifying the file system of the need for expansion of the high QoS VLUN or the low QoS VLUN.  
   
   
       4 . The method of  claim 1 , further comprising adding a new QoS to the file system, allocating a new VLUN at the new QoS, initializing a new space allocation structure in the new VLUN and updating a rule to use the new QoS.  
   
   
       5 . The method of  claim 4 , wherein the new QoS is between the high QoS and low QoS.  
   
   
       6 . The method of  claim 4 , wherein the new QoS is below the low QoS.  
   
   
       7 . The method of  claim 4 , wherein the new QoS is above the high QoS.  
   
   
       8 . A method of processing files in a multiQoS file system, comprising: 
 (a) reading a migration rule;    (b) reading a file having an attribute, a current QoS, and blocks;    (c) testing if the file is identified for migration and if not:    (d) computing a new QoS by comparing the migration rule to the attribute; and    (e) testing if the current QoS equals the new QoS and if not, indicating that migration is in progress.    
   
   
       9 . The method of  claim 8 , wherein the migration rule includes a value of file activity.  
   
   
       10 . The method of  claim 8 , wherein the migration rule includes a value of capacity threshold.  
   
   
       11 . The method of  claim 8 , wherein the migration rule includes a value of file size.  
   
   
       12 . The method of  claim 8 , wherein the extension of the file name defines the current QoS.  
   
   
       13 . The method of  claim 8 , wherein the file attribute includes a migration flag and step (e) includes setting the migration flag.  
   
   
       14 . The method of  claim 8 , wherein the file attributes and the addresses of the blocks are held in an i-node of the multiQoS file system.  
   
   
       15 . The method of  claim 8 , further comprising a step of (f) migrating the file to a VLUN having an identifier corresponding to the new QoS.  
   
   
       16 . The method of  claim 15 , wherein the method repeats steps (a)-(f) for another file.  
   
   
       17 . The method of  claim 15 , wherein the blocks have addresses, further comprising a step (g) allocating blocks in the new QoS VLUN; (h) copying the blocks from the old QoS VLUN to the blocks allocated in the new QoS VLUN; and (i) releasing the blocks in the old QoS VLUN.  
   
   
       18 . The method of  claim 8 , wherein step (b) uses a preallocation size from the CIFS protocol as the file size.  
   
   
       19 . A multiQoS file system in a host, wherein each file has an attribute, a migration flag, and a QoS, arid blocks, comprising: 
 a multiQoS file system; and    a host coupled to the multiQoS file system to receive a migration rule, to determine if a file is identified for migration and if not compute a new QoS by comparing the migration rule to the attribute, compare the current QoS to the new QoS and if not equal set the migration flag and migrate the file from the current QoS VLUN to the new QoS VLUN.    
   
   
       20 . The system of  claim 19 , wherein the migration rule uses a value associated with a capacity of the current QoS VLUN, a file activity, a file size, or a file type.  
   
   
       21 . The system of  claim 19 , wherein the file attributes and addresses of the blocks are located in an i-node of the multiQoS file system.  
   
   
       22 . The system of  claim 19 , wherein the host reads the current QoS in the block addresses before the file migrates and the host writes the new QoS in the block addresses after the file migrates.  
   
   
       23 . The system of  claim 19 , wherein the host migrates the file in chunks from the current QoS VLUN to the new QoS VLUN.  
   
   
       24 . The system of  claim 19 , wherein the host writes the file to a performance band of a data storage subsystem that corresponds to the new QoS VLUN.  
   
   
       25 . The system of  claim 19 , wherein the host writes the file to an array of storage devices in a data storage subsystem that corresponds to the new QoS VLUN.  
   
   
       26 . The system of  claim 19 , further comprising a management client coupled to a management controller to receive and transmit IT administrator input to the host.  
   
   
       27 . The system of  claim 26 , wherein the management client is configured to receive IT administrator input for user capacity, file type, capacity threshold, migration size, and/or a migration rule.  
   
   
       28 . The system of  claim 19 , wherein the migration rule includes a value of file activity, capacity threshold, file size, and/or file type.  
   
   
       29 . A method of identifying files for migration between different QoS in a multiQoS file system, comprising: 
 (a) testing if a file of an i-node is identified for migration and if not, computing a new QoS of the file by comparing a migration rule to a rule attribute of the file; and    (b) testing if a current QoS of the file equals the new QoS computed at step (b) and if not, setting a migration flag to identify the file for migration.    
   
   
       30 . The method of  claim 29 , further comprising a step (c) migrating the file from the current QoS to the new QoS.  
   
   
       31 . The method of  claim 30 , wherein the method performs step (c) after step (b) before performing the method for another file.  
   
   
       32 . The method of  claim 30 , wherein steps (a) and (b) repeat for all files in the multiQoS file system before performing step (c).  
   
   
       33 . A method of migration of files from a current QoS VLUN to a new QoS VLUN in a multiQoS file system, comprising: 
 (a) assigning a first i-node of the multiQoS file system to a variable I;    (b) testing if the variable I is greater than the last i-node of the multiQoS file system, and if greater, waiting for the next scan of all of the i-nodes of the multiQoS file system, and if not greater, testing if the file is identified for migration and if not, computing a new QoS for the file using migration rule(s); and    (c) testing if the current QoS of the file equals the new QoS of the file and if not, identifying the file for migration.    
   
   
       34 . The method of  claim 33 , wherein using the migration rule includes reading a value of file activity, capacity threshold, file size, or file type.  
   
   
       35 . The method of  claim 33 , wherein step (c) includes setting a migration flag.  
   
   
       36 . The method of  claim 33 , further comprising step (d) migrating the file from the current QoS VLUN to the new QoS VLUN.  
   
   
       37 . The method of  claim 36 , wherein steps (a) through (c) are performed on all files in the multiQoS file system before performing step (d).  
   
   
       38 . The method of  claim 33 , wherein the next scan of step (b) runs as a background process, starts after a predetermined time, or starts when a condition is met.  
   
   
       39 . The method of  claim 38 , wherein the condition is based on relative priority of the next scan with respect to other processes running in the host, recent consumption of host CPU time for the method falls below a value, or the amount of time the method has slept.  
   
   
       40 . The method of  claim 33 , wherein the file is identified for migration in the file attributes.  
   
   
       41 . A method of migration of a file between QoS in a multiQoS file system when a file offset is less than the total number of blocks of the file, comprising 
 (a) placing a read lock on the file;    (b) finding the block addresses for a chunk of the file starting with the file offset;    (c) unlocking the read lock and reading the blocks found in step (b);    (d) allocating new blocks for the chunk of the file in a new QoS VLUN;    (e) placing a write lock on the file;    (f) copying the old blocks to the new blocks;    (g) updating the file attributes to the new QoS;    (h) putting the old blocks on the free list;    (i) committing the transaction and unlocking writes; and    (j) adding the file offset to the chunk size to get the value of file offset.    
   
   
       42 . The method of  claim 41 , wherein the step (g) includes updating the file attributes to point to the new blocks.  
   
   
       43 . A method of migration of a file between QoS in a multiQoS file system, comprising: 
 iterating through the blocks of a file;    allocating new blocks in a new QoS, wherein the blocks in each QoS contain an index in certain bits of their block address indicating the QoS;    copying the data from the old blocks to the new blocks for each block of the file;    adjusting the attributes of the file to point to the new blocks; and    freeing the old blocks.    
   
   
       44 . The method of  claim 43 , wherein the step of allocating new blocks includes allocating copying and freeing small chunks at a time.  
   
   
       45 . A method of migrating extents of a large file between QoS of a multiQoS file system, comprising: 
 (a) testing if the large file is identified for migration, and if not, performing the following steps:    (b) testing if the extent is part of the large file and if so, performing the following steps:    (c) computing a new QoS of the extent using a migration rule; and    (d) testing if the current QoS equals the new QoS, and if not, identifying the extent as in migration; and    (e) migrating the extent from the current QoS VLUN to the new QoS VLUN.    
   
   
       46 . The method of  claim 45 , wherein using the migration rule includes reading a value of file activity, capacity threshold, file size, or file type.  
   
   
       47 . The method of  claim 45 , wherein step (d) includes setting a migration flag.  
   
   
       48 . The method of  claim 45 , wherein steps (a) through (e) are performed for the extent before steps (a) through (d) are performed on another extent.  
   
   
       49 . The method of  claim 45 , wherein steps (a) through (d) are performed on all extents of the large file before performing step (e) for any extent.  
   
   
       50 . The method of  claim 45 , wherein steps (a) through (e) run as a background process, start after a predetermined time, or start when a condition is met.  
   
   
       51 . The method of  claim 50 , wherein the condition is based on the relative priority of the method with respect to other processes, recent consumption of CPU time by the method falls below a value, or the amount of time the method has slept.  
   
   
       52 . The method of  claim 45 , wherein the extent is identified for migration in the extent attributes.  
   
   
       53 . The method of  claim 45 , wherein the step (b) includes evaluating a migration rule using an extent attribute.  
   
   
       54 . The method of  claim 45 , wherein after steps (a) through (d) are performed on all extents of the large file, the method repeats for the next file in the file system.  
   
   
       55 . The method of  claim 45 , wherein after steps (a) through (e) are performed on all extents of the large file the method repeats for the next file in the file system.  
   
   
       56 . A method of migration of a large file including extents, between different QoS VLUNs in a multiQoS file system, comprising 
 (a) placing a read lock on each extent;    (b) finding the block addresses for each extent;    (c) unlocking the read lock and reading the blocks found in step (b);    (d) allocating new blocks for each extent in a new QoS VLUN;    (e) placing a write lock on each extent;    (f) copying the old blocks to the new blocks;    (g) updating each extent's attributes to the new QoS;    (h) putting the old blocks on the free list;    (i) committing the transaction and unlocking writes; and    (j)resetting the migration flag.    
   
   
       57 . The method of  claim 56 , wherein the step (h) includes resetting the rule attribute and updating the extent attributes to point to the new blocks.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.