Understanding the state of your Cluster Shared Volumes in Windows Server 2012 R2

Understanding the state of your Cluster Shared Volumes in Windows Server 2012 R2

Rate This
  • Comments 4

Cluster Shared Volumes (CSV) is the clustered file system for the Microsoft Private cloud, first introduced in Windows Server 2008 R2. In Windows Server 2012, we radically improved the CSV architecture. We presented a deep dive of these architecture improvements at TechEd 2012. Building on this new and improved architecture, in Windows Server 2012 R2, we have introduced several new CSV features. In this blog, I am going to discuss one of these new features – the new Get-ClusterSharedVolumeState Windows Server Failover Clustering PowerShell® cmdlet. This cmdlet enables you to view the state of your CSV. Understanding the state of your CSV is useful in troubleshooting failures as well as optimizing the performance of your CSV. In the remainder of this blog, I will explain how to use this cmdlet as well as how to interpret the information provided by the cmdlet.

Get-ClusterSharedVolumeState Windows PowerShell® cmdlet

The Get-ClusterSharedVolumeState cmdlet allows you to view the state of your CSV on a node in the cluster. Note that the state of your CSV can vary between the nodes of a cluster. Therefore, it might be useful to determine the state of your CSV on multiple or all nodes of your cluster.

To use the Get-ClusterSharedVolumeState cmdlet open a new Windows PowerShell console and run the following:

  •          To view the state of all CSVs on all the nodes of your cluster


  •          To view the state of all CSVs on a subset of the nodes in your cluster

Get-ClusterSharedVolumeState –Node clusternode1,clusternode2

  •          To view the state of a subset of CSVs on all the nodes of your cluster  

Get-ClusterSharedVolumeState –Name "Cluster Disk 2","Cluster Disk 3"


Get-ClusterSharedVolume "Cluster Disk 2" | Get-ClusterSharedVolumeState


Understanding the state of your CSV 

The Get-ClusterSharedVolumeState cmdlet output provides two important pieces of information for a particular CSV – the state of the CSV and the reason why the CSV is in that particular state. There are three states of a CSV – Direct, File System Redirected and Block Redirected. I will now examine the output of this cmdlet for each of these states.

Direct Mode

In Direct Mode, I/O operations from the application on the cluster node can be sent directly to the storage. It therefore, bypasses the NTFS or ReFS volume stack.



File System Redirected Mode

In File System Redirected mode, I/O on a cluster node is redirected at the top of the CSV pseudo-file system stack over SMB to the disk. This traffic is written to the disk via the NTFS or ReFS file system stack on the coordinator node.






  •          When a CSV is in File System Redirected Mode, I/O for the volume will not be cached in the CSV Block Cache.
  •          Data deduplication occurs on a per file basis. Therefore, when a file on a CSV volume is deduped, all I/O for that file will occur in File System Redirected mode. I/O for the file will not be cached in the CSV Block Cache – it will instead be cached in the Deduplication Cache. For the remaining non-deduped files, CSV will be in direct mode. The state of the CSV will be reflected as being in Direct mode.
  •          The Failover Cluster Manager will show a volume as in Redirected Access only when it is in File System Redirected Mode and the FileSystemRedirectedIOReason is UserRequest.


Block Redirected Mode

In Block level redirected mode, I/O passes through the local CSVFS proxy file system stack and is written directly to Disk.sys on the coordinator node. As a result it avoids traversing the NTFS/ReFS file system stack twice.



In conclusion, the Get-ClusterSharedVolumeState cmdlet is a powerful tool that enables you to understand the state of your Cluster Shared Volume and thus troubleshoot failures and optimize the performance of your private cloud storage infrastructure.


Subhasish Bhattacharya
Program Manager
Clustering and High Availability

Leave a Comment
  • Please add 1 and 1 and type the answer here:
  • Post
  • Thanks for a very interesting post.

    I would love to see more of these truly in depth and technical blog posts about CSV.

  • Hi Subhasish

    Very nice read ; I am setting up and testing this technology as we are building our private cloud using Microsoft technology . The issue is that we are using storage tiering ; this is causing CSVs to switch to FileSystemRedirected state . when I stress CSV ; it sends some IOPS over network even on coordinator node itself. unfortunately MS support cannot help with design concerns like this .. would you be able to provide some more information about this behavior ?

  • Hi Ali,

    As you can see from the section in this blog on File System Redirected mode, given that you are using Storage Spaces tiering, the behavior you are seeing is expected. You should see incoming SMB traffic over the network on the coordinator node. Therefore, you want to ensure that you provision appropriate network bandwidth between your coordinator node and the cluster nodes as well as spread the coordinator node ownership for your CSVs across the cluster (this will parallelize the updates). Also, refer to this presentation for some additional CSV networking considerations: channel9.msdn.com/.../MDC-B337



  • What is the max. volume size supported in CSV? Are there any technical limits document available on Web can refer to? Its really critical for cloud sizing and planning.

Page 1 of 1 (4 items)