摘要 |
Hard disk drives (410, 420) are used to mirror and stripe data. At the time of a write, a hard disk controller writes (504) a first stripe (412) to a first hard disk (410) and allocates (510) an appropriate amount of space on a second hard disk (420) to mirror the stripe. Simultaneously, a second stripe (422) may be written to the second hard disk (420) and an appropriate amount of space may be allocated on the first hard disk (410) to mirror the second stripe. Information about which stripes have and have not been mirrored is stored in memory. At a later time, such as during idle disk time, a controller or file system may synchronize the data between drives (410, 420) by copying (508) the corresponding stripe into the pre-allocated space. During idle disk time, the controller or file system may also validate (518) stripes to identify corrupted data. A user may specify whether to mirror data at the time of a write and whether to validate data at the time of a read. Therefore, the user may decide between speed and reliability for both reads and writes individually. |