Reorganization of striped data during file system expansion in a data storage system
First Claim
1. A method of operating a data storage system for on-line expansion of a file system so that the file system uses additional data storage added to original data storage of the data storage system, data of the file system residing in the original data storage prior to the expansion, said method comprising the steps of reorganizing at least a portion of the data of the file system by moving some of the data of the file system from the original data storage to the additional data storage so tat the data of the file system is distributed over the original data storage and the additional data storage, and a file of the file system is reorganized by distributing data of the file over the original data storage and the additional data storage so that one portion of the data of the file remains in the original data storage and another portion of the data of the file is moved from we original data storage to the additional data storage, and repetitively updating metadata of the file during the movement of data of the file to permit a host processor to access concurrently the data of the file during the reorganization of the file;
- wherein data of the file is sequentially striped across the original data storage prior to the expansion, and during the expansion data of the file is sequentially striped across the original data storage and the additional data storage; and
wherein an order of striping of data of the file in the original data storage prior to the expansion is not preserved during the striping of data across the original data storage and the additional data storage during the expansion, and the movement of data of the file from the original data storage to the additional data storage is performed up to a pivot point by using temporary storage for the data that is moved, and after the pivot point the movement of data of the file from the original data storage to the additional data storage is performed without using temporary storage for the data that is moved.
8 Assignments
0 Petitions
Accused Products
Abstract
To reorganize a striped file system, data blocks are sequentially moved from storage locations in original data storage to storage locations in an array including the original data storage and additional data storage. If the new striping has the same precedence order as the original striping, then temporary storage is not needed for the block movement. Otherwise, stripes of the data blocks are sequentially moved to a stripe of temporary storage locations, and moved from the stripe of the temporary locations to storage locations in the array. Once a pivot point is reached, however, there is no need to use the temporary storage. Moreover, there is an increasing separation between the read and write pointers. Once this separation exceeds the stripe length, the file system metadata can be synchronized at decreasing intervals and still permit concurrent read access. The number of block transfers between the synchronization points can increase exponentially, and the synchronization points can be aligned with extent boundaries.
-
Citations
22 Claims
-
1. A method of operating a data storage system for on-line expansion of a file system so that the file system uses additional data storage added to original data storage of the data storage system, data of the file system residing in the original data storage prior to the expansion, said method comprising the steps of reorganizing at least a portion of the data of the file system by moving some of the data of the file system from the original data storage to the additional data storage so tat the data of the file system is distributed over the original data storage and the additional data storage, and a file of the file system is reorganized by distributing data of the file over the original data storage and the additional data storage so that one portion of the data of the file remains in the original data storage and another portion of the data of the file is moved from we original data storage to the additional data storage, and repetitively updating metadata of the file during the movement of data of the file to permit a host processor to access concurrently the data of the file during the reorganization of the file;
-
wherein data of the file is sequentially striped across the original data storage prior to the expansion, and during the expansion data of the file is sequentially striped across the original data storage and the additional data storage; and
wherein an order of striping of data of the file in the original data storage prior to the expansion is not preserved during the striping of data across the original data storage and the additional data storage during the expansion, and the movement of data of the file from the original data storage to the additional data storage is performed up to a pivot point by using temporary storage for the data that is moved, and after the pivot point the movement of data of the file from the original data storage to the additional data storage is performed without using temporary storage for the data that is moved. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A data storage system comprising:
-
original data storage containing a file system; and
a data processor for accessing the file system in the data storage, the data processor being programmed for on-line expansion of the file system so that the file system may use additional data storage added to the original data storage, the data processor being programmed to perform the on-line expansion by moving some of the data of the file system from the original data storage to the additional data storage so that the data of the file system is distributed over the original data storage and the additional data storage, and a file of the file system is reorganized by distributing data of the file over the original data storage and the additional data storage so that one portion of the data of the file remains in the original data storage and another portion of the data of the file is moved from the original data storage to the additional data storage, and repetitively updating metadata of the file during the movement of data of the file to permit a host processor to access concurrently the data of the file during the reorganization of the file;
wherein data of the file is sequentially striped across the original data storage and the additional data storage; and
wherein the data processor is programmed to move data of the file from the original data storage to the additional data storage up to a pivot point by using temporary storage for the data that is moved, and after the pivot point to move the data of the file from the original data storage to the additional data storage without using temporary storage for the data that is moved. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A program storage device containing a program for a data processor of a data storage system, the program being executable by the data processor for on-line expansion of a file system so that the file system may use additional data storage added to original data storage, the program being executable by the data processor to perform the on-line expansion by moving some of the data of the file system from the original data storage to the additional data storage so that the data of the file system is distributed over the original data storage and the additional data storage, and a file of the file system is reorganized by distributing data of the file over the original data storage and the additional data storage so that one portion of the data of the file remains in the original data storage and another portion of the data of the file is moved from the original data storage to the additional data storage, and repetitively updating metadata of the file during the movement of data of the file to permit a host processor to access concurrently the data of the file during the reorganization of the file;
wherein data of the file is sequentially striped across the original data storage and the additional data storage, and the data processor is programmed to move data of the file from the original data storage to the additional data storage up to a pivot point by using temporary storage for the data that is moved, and after the pivot point to move the data of the file from the original data storage to the additional data storage without using temporary storage for the data that is moved. - View Dependent Claims (20, 21, 22)
Specification