A Microsoft failover cluster is a group of independent physical servers or virtual machines (cluster nodes) that provides high availability and scalability of clustered roles. These cluster nodes feature a software and hardware configuration that allows the services to run on surviving nodes if one or more cluster nodes fail. Cluster roles are also pro-actively monitored to ensure smooth functioning of the applications. As needed, roles are moved to better performing nodes automatically or under user control. Failover clusters also provide Cluster Shared Volume (CSV) functionality that provides a consistent, distributed names space that cluster roles can use to access shared storage across all nodes.