A storage hypervisor having a software defined storage controller (SDSC) provides for a comprehensive set of storage control, virtualization and monitoring functions to decide the placement of data and manage functions such as availability, automated provisioning, data protection and performance acceleration. The SDSC running as a software driver on the server replaces the hardware storage controller function, virtualizes physical disks in a cluster into virtual building blocks and eliminates the need for a physical RAID layer, thus maximizing configuration flexibility for virtual disks. This configuration flexibility consequently enables the storage hypervisor to optimize the combination of storage resources, data protection levels and data services to efficiently achieve the performance, availability and cost objectives of individual applications. This invention enables complex SAN infrastructure to be eliminated without sacrificing performance, and provides more services than prior art SAN with fewer components, lower costs and higher performance.