In a redundant array of disks, the disks are divided into areas of different sizes, so that small amounts of data can be stored in an area of an appropriate size on a single disk, instead of being spread over multiple disks. A usage status table indicates which areas are in use. Check information is generated and stored only for areas indicated to be in use. When new check information is generated, it is therefore possible to omit the reading of unnecessary old data and old check information. When a disk fails and is replaced with a standby disk, only the data in areas indicated to be in use are reconstructed. Check information can be stored on a solid-state disk.