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.
Claims17
A method for storing data in a plurality of storage devices, comprising:
- receiving a plurality of data blocks to be written;
- and
- writing each of the plurality of data blocks, wherein writing a given data block within the plurality of data blocks comprises:
- designating a data drive, at least one mirror drive, and a hotspare drive from the plurality of storage devices for the given data block;
- storing the data block in the data drive;
- and
- mirroring the data block on the at least one mirror drive,
- providing hotspare space on the hotspare drive for the given data block, wherein the hotspare space is unused drive space that may be put into action if a drive fails,
- wherein each storage device in the plurality of storage devices is designated as a hotspare drive for at least one data block, and
- 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.
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 written;
- wherein, for each data block in the plurality of data blocks to be written, the processor is configured to write each of the plurality of data blocks, wherein writing a given data block within the plurality of data blocks comprises designating a data drive, at least one mirror drive, and a hotspare drive from the plurality of storage devices for the given data block, storing the data block in the data drive, mirroring the data block on the at least one mirror drive, providing hotspare space on the hotspare drive for the given data block, wherein the hotspare space is unused drive space that may be put into action if a drive fails,
- wherein each storage device in the plurality of storage devices is designated as a hotspare drive for at least one data block, 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 written;
- and
- a second mode of operation in which the storage controller writes each of the plurality of data blocks, wherein writing a given data block within the plurality of data block comprises designating a data drive, at least one mirror drive, and a hotspare drive from the plurality of storage devices for the given data block, storing the data block in the data drive, mirroring the data block on the at least one mirror drive, providing hotspare space on the hotspare drive for the given data block, wherein the hotspare space is unused drive space that may be put into action if a drive fails,
- wherein each storage device in the plurality of storage devices is designated as a hotspare drive for at least one data block, and
- 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, comprising computer readable program code means for enabling a data processing machine to store data in a plurality of storage devices, comprising:
- instructions for receiving a plurality of data blocks to be written;
- instructions for writing each of the plurality data blocks, wherein the instructions for writing a given data block within the plurality data blocks comprises:
- instructions for designating a data drive, at least one mirror drive, and a hotspare drive from the plurality of storage devices for the given data block;
- instructions for storing the data block in the data drive;
- and
- instructions for mirroring the data block on the at least one mirror drive,
- instructions for providing hotspare space on the hotspare drive for the given data block, wherein the hotspare space is unused drive space that may be put into action if a drive fails,
- wherein each storage device in the plurality of storage devices is designated as a hotspare drive for at least one data block, and
- 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.