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 four state variables with each cluster shared volume: volume maintenance mode, redirected mode, block redirected mode, and backup mode. A server maintains the values of these four 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 nonvolatile 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.

Redirected mode indicates that although the volume is accessible on the server, the accessibility is provided via network communication from the server to a different node in the cluster due to configuration of the file system on the storage-class resource associated with the volume. The method by which the server supports redirected mode is implementation-specific. Whether or not a specific cluster shared volume is in redirected mode is part of the nonvolatile cluster state. The redirected mode state has data type Boolean, where a value of TRUE indicates that the cluster shared volume is in redirected mode (also referred to as redirected mode enabled). Redirected mode is initially FALSE when a volume is made a cluster shared volume.

Block redirected mode indicates that although the volume is accessible on the server, the accessibility is provided via network communication from the server to a different node in the cluster. The method by which the server supports block redirected mode is implementation-specific. The block redirected mode state has data type Boolean, where a value of TRUE indicates that the cluster shared volume is in block redirected mode (also referred to as block redirected mode enabled). Block redirected mode is initially FALSE when a volume is made a cluster shared volume. Block redirected mode cannot be changed via this protocol. How and when the value of the block redirected mode state is modified by the server is implementation-specific.

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 backup mode of these volumes can differ.

The method by which the server supports backup mode is implementation-specific. Whether or not a specific cluster shared volume is in backup mode is part of the volatile cluster state. The backup mode state has data type Boolean, where a value of TRUE indicates that the cluster shared volume is in backup mode (also referred to as backup mode enabled). 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). 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. These operations are supported in ClusAPI Protocol version 3 only.

  • Change ResourceSharedVolumes: change whether the volumes associated with a resource are cluster shared volumes. For more information, see sections 3.1.4.2.122 and 3.1.4.2.162.

  • 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.