A method of organizing storage devices of unequal storage capacity within an array of storage devices accessible from a host computer system, wherein data stored by said host computer system on each one of said storage devices is distributed across all storage devices in said array, said method comprising the steps of:
- (a) dividing data blocks on said storage devices to a plurality of rectangle portions, wherein a number of data blocks allocated on each storage device within each of said plurality of rectangle portions comprises a first number of unallocated data blocks equal to a second number of unallocated data blocks located on a smallest storage device having unallocated blocks;
- and
- (b) distributing data independently in each of said rectangle portions comprising
- (b1) when a rectangle portion comprises blocks from at least three storage devices, writing data using RAID 5 format,
- (b2) when a rectangle portion comprises blocks from two storage devices, writing data using RAID 1 format, and
- (b3) when a rectangle portion comprises blocks from only one storage device, writing data using RAID 0 format.