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; and placing a plurality of strips of said stripe across said selected group of active failure domains.