1. A method for providing performance isolation for storage clouds, comprising: grouping workloads across a storage cloud architecture into clusters; creating a performance isolation domain for each of the clusters, each of the performance isolation domains comprising a set of data stores associated with a set of storage subsystems and a set of data paths that connect the set of data stores to a set of clients; providing performance isolation among a set of layers of the performance isolation domains; pooling data stores from separate performance isolation domains into separate pools; and assigning the pools to device adapters, RAID controllers, and the set of storage subsystems, the assigning being based on a goal of minimizing an overlap in data paths of each cluster of the clusters.