在写上篇博文时,提到了群集共享卷,正好在网上看到一篇关于这个的文章,所以不自量力的花了一天的时间翻译了这篇文章,这也是我第一次翻译文章,原文:Q. How do Cluster Shared Volumes work in Windows Server 2008 R2?,水平有限,有误之处,请多指教,并欢迎大家讨论!

NTFS不是一个群集文件系统,因为它是设计支持单服务器访问,并不支持多服务器的并发访问,这通常是没有问题的。在故障转移群集中,只有一个节点服务/应用程序师处于活动状态的,并且这个活动节点拥有包含相关数据的LUN,如果服务和应用程序被移动到另一个节点上市,物理磁盘资源就会被卸载,然后装载到新的节点上,这就意味着在故障转移期间需要有几秒钟的停机时间,移动LUN的这几秒钟是不能被虚拟化所接受的,如果你想在移动虚拟机时达到零停机时间,这就意味着要有一种让多节点同时访问一个Lun上的VHD文件的方法,如下图所示

csv1

Windows 2008 R2新增了群集共享卷(CSV),使分配给群集共享卷的共享磁盘在群集所有节点的可用存储中可见   群集共享卷显示为systemroot%:\ClusterStorage文件夹的子文件夹,每一个卷命名为VolumeN(e.g.,C:\ClusterStorage\Volume1 and C:\ClusterStorage\Volume2)

csv2 虚拟机(VM)被放在VolumeN文件夹的自己的子文件中,CVS最大的优点就是群集中所有节点可以同时访问CVS中的内容,这就意味着不同节点需要去开始访问VHD时是没有延时的。也意味着每个VM都放在VolumeN中的自己的子文件夹中,所以粒度故障转移功能不再需要为每一个VM配置一个LUN。下图显示了群集共享卷(CSV)中的ClusterStorage文件夹的两个Volumes卷

csv5

每一个CSV,群集中的某一个节点作为该卷协调节点,只有这一个节点可以向卷中写入NTFS元数据,这就意味着,群集中所有节点尝试将NTFS元数据写入CSV时,将会先将元数据更新发送到该卷的协调节点,群集中所有节点都可以直接将普通块级别的信息写入该卷.CSV的实现是通过CSVFilter.sys文件系统的mini-filter驱动程序去截获节点丢失与目标卷的的事件中的NTFS元数据请求和所有I/O请求。如果节点不再联系到目标卷,节点可以要求协调节点执行所有的I/O。

csv3csv4

CSV目前仅支持Hyper-V,有一个额外的好处,CSV解决了一个前版本的问题:每一个VHD文件被放在自己的LUN上,然后这些LUN才能在群集之间独立移动。,因为LUN访问是故障转移的最小单元。使用CSV,群集中所有节点可以在同一时间内访问单个LUN中的所有VHD,排除了一个VM一个LUN的需求。这样可以降低复杂性并节省由于数百个小LUN连接池所浪费的空间

 

PS:再次说明,本人英文不好,文中多出翻译有本人语言组织,所以请多参考原文,如有错误,欢迎提出,谢谢!