Using Cluster Shared Volumes
Traditionally, with a cluster that has shared storage (which means that the storage is
accessible to all nodes in the cluster), only one node in the cluster would actually
mount a specific LUN that is NTFS formatted. The basic problem is that NTFS is a
Shared Nothing filesystem. It does not support multiple operating system instances
connecting concurrently to it, which is the limitation. More specifically, Metadata
updates such as file open/close of extension operations cannot be performed by
multiple operating system instances; the actual SAN holding the LUNs supports
multiple concurrent connections with no problem.
One solution would have been to create a new cluster-aware filesystem that could be
mounted on multiple nodes in the cluster at the same time, which would remove the
LUN failover requirement. However, this would have been a huge undertaking both
from a development perspective and from a testing perspective when you consider
how many services, applications, and tools are based around features of NTFS.
With this in mind, Microsoft looked at ways to make NTFS-formatted LUNs available
to multiple nodes in a cluster concurrently, enabling all the nodes to read and write at
the same time, and came up with Cluster Shared Volumes (CSV). In Windows Server
2012, when you’re viewing a CSV in Disk Manager, the filesystem type shows as
CSVFS instead of NTFS. Under the covers, CSVFS is still NTFS, but the CSVFS adds its
own mini filesystem, which is leveraged to enable many of the capabilities that I cover
in this section. For the most part, though, it just acts as a pass-through to NTFS (or
ReFS in Windows Server 2012 R2, although NTFS should still be used in nearly all
cases).
Prior to Windows Server 2012, to use CSV, the feature had to be enabled manually.
CSV is now available by default, and to make a cluster disk a CSV, you select the disk
in the Storage ➣ Disks view of Failover Cluster Manager and use the Add To Cluster
Shared Volumes action, shown in Figure 7.26. This can also be performed using the
Add-ClusterSharedVolume cmdlet and passing the clustered disk name, as in the
following example:
Figure 7.26 Making a cluster disk a CSV
Add-ClusterSharedVolume –Name "Cluster Disk 1"
When a disk is enabled for CSV, any previous mounts or drive letters are removed and
the disk is made available as a child folder of the %systemroot%\ClusterStorage folder