摘要:
A continuous media file server has a controller connected to multiple data servers. Each data server supports at least one storage disk. Data files are distributed across the data servers so that data blocks of the data files are stored on each of the storage disks according to a present striping layout. The file server employs declustered mirroring techniques in which data is redundantly copied and stored on other disks and servers to guard against component failure. In the event that the storage capacity of the media file server is changed (i.e., by adding or removing one or more storage disks), the continuous media file server is restriped in a three-phase process. During the first phase, the controller determines a new striping layout of the data files across the storage disks which accounts for the capacity change. The controller then creates an ordered work list describing the data block moves that a corresponding data server needs to make to convert from the present striping layout to the new striping layout. The controller distributes the list to the data servers. The order of the latter two phases depends on whether disks are being added or removed. In one of the two final phases, the data servers reorganize the redundancy data for the new disk configuration. In the other of the two final phases, the data servers execute their respective work lists and communicate with one another to move the data blocks to the appropriate disks in conformance with the new striping layout.