Method, apparatus, and program for data mirroring with striped hotspare
AssigneeLSI Logic Corporation
InventorsParesh Chatterjee, Parag Ranjan Maharana
Life of this patent
Estimating the term…
Abstract
A storage controller is provided that allows data mirroring with hotspare where all drives take part in data storage. For each stripe written, a drive is designated as the hotspare. The hotspare is not a dedicated drive. Rather, the hotspare rotates as stripes are written to the drives. Thus, every drive is involved in data storage and load may be balanced among more drives. Furthermore, since each drive takes part in data storage, reconstruction after a drive failure takes less time.
Claims21
A method for storing data in a plurality of storage devices, comprising:
- receiving a plurality of data blocks to be stored;
- for each data block in the plurality of data blocks:
- identifying a data drive, at least one mirror drive, and at least one hotspare drive within the plurality of storage devices;
- storing the data block in the data drive;
- and
- mirroring the data block on the at least one mirror drive,
- wherein all storage devices in the plurality of storage devices store at least one of the plurality of data blocks.
A method of adding a striped hotspare to a mirrored configuration comprising a first plurality of storage devices, wherein each storage device in the first plurality of storage devices stores a copy of each data block stored in a first plurality of storage devices, the method comprising:
- adding a hotspare drive to the first plurality of storage devices to form a second plurality of storage devices;
- rebuilding the second plurality of storage devices to form a configuration in which all storage devices in the second plurality of storage devices store at least one of the plurality of data blocks and each storage device in the plurality of storage devices is a hotspare for at least one data block.
A method for storing data, comprising:
- receiving a request to store a first data block;
- storing a first data block on a first storage device;
- mirroring the first data block on a second storage device;
- receiving a request to store a second data block;
- storing the second data block on the first storage device;
- and
- mirroring the second data block on the third storage device.
An apparatus for storing data in a plurality of storage devices, comprising:
- a processor;
- and
- a plurality of storage devices, coupled to the processor,
- wherein the processor is configured to receive a plurality of data blocks to be stored;
- wherein, for each data block in the plurality of data blocks, the processor is configured to identify a data drive, at least one mirror drive, and at least one hotspare drive within the plurality of storage devices, store the data block in the data drive, and mirror the data block on the at least one mirror drive;
- and
- wherein all storage devices in the plurality of storage devices store at least one of the plurality of data blocks.
A storage module comprising:
- a storage controller including a processor;
- and
- a plurality of storage devices coupled to the storage controller,
- wherein the storage controller has a plurality of modes of operation including:
- a first mode of operation in which the storage controller receives a plurality of data blocks to be stored;
- and
- a second mode of operation in which, for each data block in the plurality of data blocks, the storage controller identifies a data drive, at least one mirror drive, and at least one hotspare drive within the plurality of storage devices, stores the data block in the data drive, and mirrors the data block on the at least one mirror drive,
- wherein all storage devices in the plurality of storage devices store at least one of the plurality of data blocks.
A computer program product, in a computer readable medium, for storing data in a plurality of storage devices, comprising:
- instructions for receiving a plurality of data blocks to be stored;
- for each data block in the plurality of data blocks:
- instructions for identifying a data drive, at least one mirror drive, and at least one hotspare drive within the plurality of storage devices;
- instructions for storing the data block in the data drive;
- and
- instructions for mirroring the data block on the at least one mirror drive,
- wherein all storage devices in the plurality of storage devices store at least one of the plurality of data blocks.
Dependencies are inferred from the claim text.