A storage system comprising: a first storage device having a first plurality of storage drives (121a - 121h), each including a plurality of storage areas, and a first controller controlling said first plurality of storage drives (121a - 121h); wherein said first controller stores data in said first plurality of storage drives (121a - 121h) by stripes, each stripe including M data and N parity data, where M and N are integers, and said first controller calculates for each stripe said N parity data using said M data, wherein said first plurality of storage drives (121a - 121h) include more than M+N storage drives (121a - 121h), said plurality of storage areas of the first plurality of storage drives (121a - 121h) are managed as a plurality of groups, each of said plurality of groups includes M+N storage areas each of which is belonging to a different storage drive of said plurality of storage drives (121a - 121h), and each of said plurality of groups stores a plurality of stripes, wherein a first storage drive of said first plurality of storage drives (121a - 121h) includes a first storage area of a first group of said plurality of groups and a second storage area of a second group of said plurality of groups, while a second storage drive of said first plurality of storage drives (121a - 121h) includes a third storage area of only one of the first group or the second group so that the first storage drive includes data or parity data of both a first stripe of the first group and a second stripe of the second group, while the second storage drive includes data or parity data of only one of said first stripe or said second stripe, wherein during data recovery involving failure of one of the first plurality of storage drives (121a - 121h) as a failed storage drive, the data in the failed storage drive is recovered for each stripe by calculation using data and parity data in other storage drives of the first plurality of storage drives (121a - 121h) for said each stripe. a first storage device having a first plurality of storage drives (121a - 121h), each including a plurality of storage areas, and a first controller controlling said first plurality of storage drives (121a - 121h); wherein said first controller stores data in said first plurality of storage drives (121a - 121h) by stripes, each stripe including M data and N parity data, where M and N are integers, and said first controller calculates for each stripe said N parity data using said M data, wherein said first plurality of storage drives (121a - 121h) include more than M+N storage drives (121a - 121h), said plurality of storage areas of the first plurality of storage drives (121a - 121h) are managed as a plurality of groups, each of said plurality of groups includes M+N storage areas each of which is belonging to a different storage drive of said plurality of storage drives (121a - 121h), and each of said plurality of groups stores a plurality of stripes, wherein a first storage drive of said first plurality of storage drives (121a - 121h) includes a first storage area of a first group of said plurality of groups and a second storage area of a second group of said plurality of groups, while a second storage drive of said first plurality of storage drives (121a - 121h) includes a third storage area of only one of the first group or the second group so that the first storage drive includes data or parity data of both a first stripe of the first group and a second stripe of the second group, while the second storage drive includes data or parity data of only one of said first stripe or said second stripe, wherein during data recovery involving failure of one of the first plurality of storage drives (121a - 121h) as a failed storage drive, the data in the failed storage drive is recovered for each stripe by calculation using data and parity data in other storage drives of the first plurality of storage drives (121a - 121h) for said each stripe.