Cluster Shared Volumes
|This article relies too much on references to primary sources. (May 2009)|
Cluster Shared Volumes (CSV) is a feature of Failover Clustering first introduced in Windows Server 2008 R2 for use with the Hyper-V role. A Cluster Shared Volume is a shared disk containing an NTFS or ReFS (ReFS: Windows Server 2012 R2 only) volume that is made accessible for read and write operations by all nodes within a Windows Server Failover Cluster.
This enables a virtual machine (VM) complete mobility throughout the cluster as any node can access the VHD files on the shared volume. Cluster Shared Volumes simplifies storage management by allowing large numbers of VMs to be accessed off a common shared disk. CSV also increases the resiliency of the cluster by having I/O fault detection and recovery over alternate communication paths between the nodes in the cluster.
While CSV is not required for Live Migration of VMs, it reduces the potential disconnection period at the end of the migration since the NTFS file system does not have to be unmounted/mounted as is the case with a traditional cluster disk. This helps ensure seamless live migration since the physical disk resource does not need to be moved between nodes. CSV increases the chance that a live migration will complete within the TCP reconnect window and ensure a seamless operation to clients.
To use CSV, a Hyper-V VM is configured and the associated virtual hard disk(s) are created on or copied to a CSV disk. Multiple VHDs can be placed on a CSV that in turn are associated with multiple VMs which can be running on different nodes in the cluster.
Cluster Shared Volumes operates by orchestrating metadata I/O operations between the nodes in the cluster via the Server Message Block protocol. The node with ownership of the LUN orchestrating metadata updates to the NTFS volume is referred to as the Coordinator Node. Read / Write operations are passed directly to the Serial attached SCSI, iSCSI, Fibre Channel, or Fibre Channel over Ethernet shared storage via block based protocols.
CSV builds a common global namespace across the cluster using NTFS reparse point. Volumes are accessible under the %SystemDrive%\ClusterStorage root directory from any node in the cluster.
The Cluster will automatically prioritize the most favorable network to route I/O operations by selecting the cluster shared network with the lowest cluster network metric value, this can also be manually configured. Public networks (i.e. networks that connect to users) are assigned higher cluster network metric values by default; this favors I/O operations from using the public network which may already be saturated with user requests.
CSV can be enabled in the Failover Cluster Manager MMC snap-in by selecting 'Enable Shared Volumes' from the information pane after creating a cluster. Additionally, CSV can be enabled using PowerShell:
Import-Module FailoverClusters Get-Cluster [-Name <cluster Name>]| %($_.EnableSharedVolumes="Enabled")
- Step-by-Step (Microsoft Clustering & HA Team): http://blogs.msdn.com/clustering/archive/2009/02/19/9433146.aspx
- Step-by-Step (in English): http://www.servercare.nl/Lists/Posts/Post.aspx?ID=89
- Explained: How CSV works (in German): http://www.server-talk.eu/2009/09/15/einblicke-in-cluster-shared-volume-csv/
- EMC Symmetrix with Hyper-V (in English): http://www.emc.com/collateral/hardware/white-papers/h6643-symmetrix-microsoft-hyper-v-wp.pdf
- NetApp Storage Best Practices(in English): http://www.netapp.com/us/library/technical-reports/tr-3702.html