3.1.1.4 Cluster Node Volume Accessibility
A cluster can support making a Volume on a disk accessible to all cluster nodes. A volume that is accessible to all cluster nodes is referred to in this document as a "cluster shared volume".
A server maintains the EnableSharedVolumes state, which indicates whether or not the server supports cluster shared volumes. EnableSharedVolumes is a Boolean. How it is configured is implementation-specific. EnableSharedVolumes is part of the nonvolatile cluster state.
A cluster shared volume is associated with a storage class resource. There can be zero or more shared volumes associated with a single storage class resource. For each resource, a server maintains the ResourceSharedVolumes state with data type Boolean. A value of TRUE indicates that the volumes associated with that resource are cluster shared volumes. ResourceSharedVolumes is part of the nonvolatile cluster state. ResourceSharedVolumes is FALSE for all resources that are not storage class resources. If EnableSharedVolumes is FALSE, then ResourceSharedVolumes is FALSE for all resources. ResourceSharedVolumes is initially FALSE when a resource is created.
A server associates three state variables with each cluster shared volume: volume maintenance mode, volume redirected mode, and volume backup mode. A server maintains the values of these three state variables independently, in that a value change in one state variable does not cause a value change in a different variable. However, some protocol methods that change one of these state variables are rejected based on another of these state variables (as specified for CLUSCTL_RESOURCE_ENABLE_SHARED_VOLUME_DIRECTIO (section 3.1.4.3.1.52) and CLUSCTL_RESOURCE_DISABLE_SHARED_VOLUME_DIRECTIO (section 3.1.4.3.1.53)).
Volume maintenance mode is similar to but distinct from maintenance mode for storage class disk resources described in section 3.1.1.1.1.2. In this document it will be referred to as "volume maintenance mode" as opposed to just "maintenance mode". Volume maintenance mode indicates whether or not maintenance activities can be performed on the volume. Volume-level health checks are disabled while a cluster shared volume is in volume maintenance mode. If there are multiple volumes associated with the same storage class resource, volume maintenance mode can be enabled differently for each volume. The method by which the server supports volume maintenance mode is implementation-specific. Whether or not a specific cluster shared volume is in volume maintenance mode is part of the non-volatile cluster state. The volume maintenance mode state has data type Boolean, where a value of TRUE indicates that the cluster shared volume is in volume maintenance mode (also referred to as volume maintenance mode enabled). Volume maintenance mode corresponds to the InMaintenance field of CLUS_CSV_MAINTENANCE_MODE_INFO (section 2.2.3.19) and the VolumeStateInMaintenance value of the FaultState field of CLUS_CSV_VOLUME_INFO (section 2.2.3.18). Volume maintenance mode is initially FALSE when a volume is made a cluster shared volume.
Volume redirected mode indicates that health checks are enabled on the volume, but some volume-level maintenance activities can still be performed. The method by which the server supports volume redirected mode is implementation-specific. Whether or not a specific cluster shared volume is in volume redirected mode is part of the non-volatile cluster state. The volume redirected mode state has data type Boolean, where a value of TRUE indicates that the cluster shared volume is in volume redirected mode (also referred to as volume redirected mode enabled). Volume redirected mode is initially FALSE when a volume is made a cluster shared volume.
Volume backup mode indicates whether or not a backup of the volume is currently expected or being performed. If there are multiple volumes associated with the same storage class resource, the volume backup mode of these volumes can differ.
The method by which the server supports volume backup mode is implementation-specific. Whether or not a specific cluster shared volume is in volume backup mode is part of the volatile cluster state. The volume backup mode state has data type Boolean, where a value of TRUE indicates that the cluster shared volume is in volume backup mode (also referred to as volume backup mode enabled). Volume backup mode corresponds to the BackupState field of CLUS_CSV_VOLUME_INFO (section 2.2.3.18) and the BackupState field of CLUS_SHARED_VOLUME_BACKUP_MODE (section 2.2.3.20). Volume backup mode is initially FALSE when a volume is made a cluster shared volume.
A protocol client can perform the following management operations for cluster shared volumes. Note that these operations are supported in protocol version 3 only.
-
Change ResourceSharedVolumes: change whether the volumes associated with a resource are cluster shared volumes. For more information, see section 3.1.4.2.122.
-
Enumerate: enumerate the resources that have cluster shared volumes. For more information, see section 3.1.4.2.8.
-
Query configuration: query the configuration of a cluster shared volume. For more information, see 3.1.4.3.1.48.
-
Change configuration: change the configuration of a cluster shared volume. For more information, see 3.1.4.3.1.51, 3.1.4.3.1.52, 3.1.4.3.1.53, and 3.1.4.3.1.54.