1. A computer implemented method of determining a data storage layout comprising: identifying by a controller a plurality of active failure domains associated with a plurality of storage units, wherein each of said plurality of active failure domains includes at least one component that is associated with at least one storage unit; defining a hierarchy of failure domains formed by a plurality of levels of identified active failure domains; selecting a group of said active failure domains from said hierarchy of failure domains that is suitable for placing a stripe, wherein said selecting further includes selecting one of said active failure domains based on a cost determination of a strip placement by computing a cost value dependent on whether or not said one active failure domain in combination with other active failure domains already selected in said stripe will lead to more data stripes than the average number of any other combination of domain pairs; and placing a plurality of strips of said stripe across said selected group of active failure domains.