Patent ID: 8171217

Claim:
A storage apparatus comprising: a disk device having a storage medium for storing data in accordance with commands from a host computer; and a disk adapter that is connected to the disk device, the disk adapter configured to control the disk device, wherein the disk adapter controls the disk device to form a data volume and a pool volume, the data volume including an actual volume that is defined with a storage capacity larger than an inherent storage capacity for the storage medium and is associated with a storage area in the storage medium, and a virtual volume that is assigned a storage area other than the actual volume, the pool volume being assigned with a storage area for storing data to be stored in the storage area assigned to the virtual volume; wherein the disk adapter creates data block for parity data, based on write data according to a write command transmitted from the host computer, the parity data in a parity group to which the write data belongs under control based on a predetermined RAID configuration having a data block that constitutes the write data and another data block in the parity group, and compresses the write data and the created parity data in the parity group to create compressed data blocks and compressed parity data blocks; wherein the disk adapter judges whether the number of compressed data blocks excluding compressed parity data blocks is smaller than the number of the compressed parity data blocks; and wherein the disk adapter judges whether the size of the compressed data and the size of the compressed parity data in the parity group are each within a predetermined size, depending on whether a compressed data string obtained by compressing each of the data blocks in the parity group includes compressed data blocks of a number exceeding a predetermined number; and if the number of the compressed data blocks excluding the compressed parity data blocks is determined to be smaller than the number of the compressed parity data blocks, stores a number of compressed data blocks equal to or less than the predetermined number and compressed parity data that are within the predetermined size in storage areas in the actual volume, and stores remaining compressed data blocks of a number greater than the predetermined number and compressed parity data that exceed the predetermined size in storage areas in the pool volume corresponding to the virtual volume.