Multiple quality of service file system
First Claim
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.
1 Assignment
0 Petitions
Accused Products
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.
150 Citations
57 Claims
-
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. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
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. - View Dependent Claims (9, 10, 11, 12, 13, 14, 15, 16, 17, 18)
-
-
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. - View Dependent Claims (20, 21, 22, 23, 24, 25, 26, 27, 28)
-
-
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. - View Dependent Claims (30, 31, 32)
-
-
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. - View Dependent Claims (34, 35, 36, 37, 38, 39, 40)
-
-
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. - View Dependent Claims (42)
-
-
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. - View Dependent Claims (44)
-
-
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. - View Dependent Claims (46, 47, 48, 49, 50, 51, 52, 53, 54, 55)
-
-
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. - View Dependent Claims (57)
-
Specification