群集共享卷(CSV)

群集共享卷

群集共享卷(CSV)使故障转移群集中的多个节点可以同时具有对作为NTFS卷配置的同一LUN(磁盘)的读写访问权限。使用CSV,群集角色可以从一个节点快速故障转移到另一个节点,而无需更改驱动器所有权或卸装和重新安装卷。CSV还有助于简化故障转移群集中潜在大量LUN的管理。

单个CSV可以处理数百个虚拟机(VM)和应用程序-无需为每个VM或应用程序使用单独的逻辑单元号(LUN)。CSV的每个实例都有其自己的命名空间-CSV不需要使用驱动器号,这使其比映射驱动器更具可扩展性

CSV功能首先在Windows 2008 R2中引入,并在2012年(CSV 1.0)进行了显着增强。以下是2012年的主要功能

 Windows Server 2008R2中的CSV(v1.0)

于2008R2首次引入

CSV v1仅支持Hyper-V工作负载,并用于在Windows Server 2008 R2中启用实时迁移。

实现为文件系统微型过滤器

Windows Server 2012中的CSV(v2.0)

除Hyper-v之外,CSV还支持文件服务以处理应用程序工作负载。可以利用SMB 3.0,并用于透明的故障转移横向扩展文件服务器(SOFS) 改进的备份/还原

通过块级I / O重定向提高性能

备份期间直接I / O

CSV在存储空间之上工作

防病毒和备份筛选器驱动程序现在与CSV兼容。许多已经兼容。

有一个新的分布式应用程序一致性备份基础结构。

支持ODX(分载数据传输)和现场修复(现场修复是更新的CHKDSK的一部分,由于在线扫描是完成的,因此CSV的停机时间为零)

CSV支持BitLocker

内存映射的I / O在CSV之上起作用。

删除了对Active Directory域服务的依赖关系,以提高性能和弹性。

Windows Server 2012 R2(CSV 2.0)引入了其他功能,例如分布式CSV所有权,通过Server服务可用性提高的弹性,可分配给CSV缓存的物理内存量更大的灵活性,更好的可诊断性以及增强的互操作性,包括对ReFS和重复数据删除&2012R2(CSV 2.0)的支持。

CSV提供了通用的群集文件系统,该文件系统位于NTFS(或Windows Server 2012 R2中的ReFS)之上。CSV应用程序包括:

群集Hyper-V虚拟机的群集虚拟硬盘(VHD)文件

向外扩展文件共享,以存储向外扩展文件服务器群集角色的应用程序数据。

CSV不支持SQL Server 2012和早期版本的SQL Server中的Microsoft SQL Server群集工作负载

CSV在所有群集节点上提供了一个一致的文件名称空间(同名),并允许多个群集节点在Microsoft的故障转移群集中的共享存储系统上并发访问LUN(逻辑单元号)。主要设计目标之一是通过提供在群

集共享卷(CSV)上托管多个虚拟机(VM)的功能来支持Windows故障转移群集中虚拟机的灵活实时迁移。

无需进行LUN故障转移即可对VM进行故障转移允许LUN上的其他VM彼此独立存在

无需更改驱动器所有权即可移动来宾VM –无“失败状态”的故障转移

对于真正拥有共享LUN的节点,为VM提供完全透明性。

为什么我们需要群集共享卷(CSV)?

在Windows Server 2008中,磁盘的所有权由称为“持久保留”(PR)的SCSI SPC-3协议确定。当一个节点“拥有”磁盘时,它将在该卷上保留一个空间。如果另一个节点尝试访问该磁盘,它将要求获得PR 的所有权,而该PR可能由当前拥有预留的节点授予或拒绝。如果授予另一个节点PR的所有权,则物理磁盘资源将故障转移到该节点,并且该节点将开始管理对LUN的访问。

由于在任何时候只有一个节点可以拥有该LUN,因此,如果需要在LUN上运行的任何应用程序移至另一个节点,则意味着该LUN上的所有应用程序也将进行故障转移(并且在该故障转移期间会出现一些停机时间)。在群集虚拟机时,引入群集共享卷可以解决这些问题。

带有CSV的2008R2中的磁盘所有权:群集共享卷允许节点共享对存储的访问,这意味着该存储上的应用程序可以随时在任何节点或不同节点上运行。CSV打破了应用程序资源(VM)和磁盘资源(对于CSV磁盘)之间的依赖关系,因此在CSV环境中,磁盘的安装位置无关紧要,因为它将出现在集群中所有节点的本地。CSV对存储访问的管理与常规集群磁盘的管理不同。

CSV使您能够将VHD存储在单个LUN上,并在群集中的任何位置运行VM。此外,CSV启用了实时迁移,该迁移使您可以在零停机时间内将正在运行的VM从一个节点移动到另一个节点。由于虚拟机移至另一个节点时不再需要更改磁盘所有权,因此这使过程更快,更安全,从而允许客户端在虚拟机移至群集中的另一个节点时保持连接状态

在没有CSV一个簇,只有一个节点可以访问磁盘LUN在一个时间,所以多个磁盘所需的迁移。使用群集共享卷,可以简化存储,因为多个节点可以一次访问同一磁盘,并且所需的总磁盘更少。

可以从所有者以及非所有者节点访问群集共享卷。它可以通过直接I / O或通过网络smb协议访问磁盘

 CSV典型架构如下所示。

 

 

 

对于CSV,两个主机都可以看到它,但是只有一个主机拥有它并在其上装载卷。该非所有者必须发送一个直接I / O选项或将其发送到协调器节点(所有者节点)通过SMB,并执行I / O。通常,读写

操作是通过直接I / O进行的,其余操作则通过NTFS到达协调器节点。

以下是深入了解CSV的关键概念协调节点

CSV具有“ 协调器 ”节点的概念,“协调器节点通常是拥有CSV卷的群集” 物理磁盘 ”资源的节点。一个节点正在同步集群中所有节点对该卷的所有访问。

非协调器(数据服务器)节点

没有安装集群磁盘的任何其他节点称为数据服务器(DS)

I / O同步

CSV使多个节点可以同时访问同一共享存储。当节点在CSV卷上执行磁盘输入/输出(I / O)时,该节点例如通过存储区域网络(SAN)直接与存储进行通信。但是,任何时候,单个节点(称为协调器节点)“拥有”与LUN关联的物理磁盘资源。CSV卷的协调器节点在故障转移群集管理器中显示为“ 磁盘” 下的“ 所有者”节点

CSV允许从所有群集节点同时对共享LUN进行读/写访问。应用程序可以在任何节点上运行,并且仍可以写入仅安装在群集节点之一上的卷。

元数据同步仅在一个节点(协调器节点)上完成,所有节点的元数据更改都通过该协调器节点进行路由。

 

 

 

 

 I / O重定向

存储连接故障和某些存储操作可能会阻止给定节点直接与存储通信。为了在节点不与存储进行通信时保持功能,该节点通过群集网络将磁盘I / O重定向到当前已安装磁盘的协调器节点。如果当前协调器节点遇到存储连接故障,则在将新节点建立为协调器节点时,所有磁盘I / O操作都将暂时排队。

服务器根据情况使用以下I / O重定向模式之一:

文件系统重定向重定向是按卷进行的,例如,当备份应用程序手动将CSV卷置于重定向I / O模式时,备份应用程序拍摄了CSV快照时。

块重定向重定向处于文件块级别,例如,当存储连接丢失到卷时。块重定向比文件系统重定向快得多。

注意:

在Windows Server 2012 R2中,可以按每个节点查看CSV卷的状态。例如,您可以查看I / O是直接的还是重定向的,或者CSV卷是否不可用。如果CSV卷处于I / O重定向模式,则还可以查看原因。

SMB(服务器消息块)协议:它是Microsoft实施的一种网络协议,用于通过网络读取/写入文件。出于CSV的目的,使用了SMB 3.0多通道协议。该协议查找客户端(非所有者CSV)和服务器(所有者 CSV)主机之间的每个连接,以快速传输数据。SMB 3.0包括SMB多通道和SMB直接功能,这些功能使CSV流量能够在群集中的多个网络之间传输。默认情况下,SMB Multichannel用于CSV通信。

CSV元数据操作

元数据更新是轻量级/小型操作,仅在特定情况下发生,包括

虚拟机创建/删除虚拟机电源开/关

VM移动性(实时迁移或存储实时迁移)快照创建

扩展动态VHD

重命名VHD

需要重定向的I / O。  元数据更改并行发生,从而为应用程序带来了更快的,非破坏性的操作。例如,当涉及复制文件和CSV时,您正在谈论MetaData。MetaData是您直接访问的CSV驱动器的

NTFS文件系统上的实际数据。当涉及元数据时,它将转到“协调器”节点进行复制。如故障转移群集管理器/存储/磁盘中所示,“协调者”是所有者。如果您不坐在“协调器”上,那么所有内容都会通过网络重定向到您所在的节点。例如,您坐在Node1上,而Node2是“ 协调器 ”。当您将某些内容从CSV复制到Node1的本地驱动器时,我们将通过网络将其复制到Node2并将其通过网络复制回去。您所看到的是SMB3(准确地说是SMB多通道)的功能。

SMB Multichannel要做的是选择所有基本相同的网络(速度,设置,度量标准等),然后通过多个网络进行复制,从而使工作比依靠单个网络进行复制要快。

群集共享卷(CSV)堆栈

 

CSV

筛选器驱动程序(

CSVFLT.sys

 

安装在元数据协调器节点上阻止访问NTFS文件系统协调SMB上的元数据操作过滤器高度– 404800 CSV代理文件系统(CSVFS.sys)

它是基础NTFS文件系统之上的代理文件系统,即CSV卷将使用NTFS格式化,但在磁盘管理中显示为CSVFS而不是NTFS,如下面的屏幕快照所示。

CSV安装在包括协调器在内的每个节点上。

如果I / O不是元数据,即常规的读/写I / O,它将对物理磁盘执行直接I / O(绕过NTFS或ReFS卷堆栈)à文件系统将I / O直接向下发送到堆栈到存储并提供直接I / O

如果I / O仅是元数据,它会执行间接I / O- >,即I / O通过SMB路径路由到协调器。协调器节点是唯一安装CSV的节点。对于元数据,NTFS层处理更改

 

使用

CSVFS

,应用程序知道卷是由

CSV

管理的,并且它仍然是

NTFS

下的卷。

CSV

卷管理器(

CSVvBUS.sys

 

该驱动程序是卷管理器。该驱动程序确保将csvs显示为本地卷。该驱动程序位于卷层中。如果要执行任何数据解析,则应在此驱动程序之上进行。

负责CSV伪/虚拟卷块级IO重定向器

群集共享卷(CSV)状态

“ Get-ClusterSharedVolumeState” cmdlet输出提供特定CSV的两个重要信息-CSV的状态以及CSV处于该特定状态的原因。CSV具有三种状态- 直接,文件系统重定向和块重定向。

直接模式

在直接模式下,来自群集节点上的应用程序的I / O操作可以直接发送到存储。因此,它绕过了NTFS 或ReFS卷堆栈

文件系统重定向模式

在文件系统重定向模式下,群集节点上的I / O通过SMB在CSV伪文件系统堆栈的顶部重定向到磁盘。

此流量通过协调器节点上的NTFS或ReFS文件系统堆栈写入磁盘。

块重定向模式

这是WS2012中的新增功能,在存储路径故障和重定向期间提供了更快的重定向IO。它仍在使用

SMB。块级重定向直接进入存储子系统,并提供2倍的磁盘性能。它绕过了协调器节点上的CSV子系统 -SMB重定向的IO(元数据)必须经过此过程。

在块级重定向模式下,I / O通过本地CSVFS代理文件系统堆栈,并直接写入协调器节点上的

Disk.sys。因此,它避免两次遍历NTFS / ReFS文件系统堆栈。

 

 

 

 

 

 

 

CSV组件和数据流程图

 

 群集如何处理CSV上的磁盘持久保留?

  1. 将LUN添加到主机。
  2. 在群集的每个主机上发现LUN。
  3. 群集从主机1和主机2向存储发送持久保留<注册并忽略命令>。
  4. 该命令到达管理存储预留的多路径驱动程序。
  5. 命令转到建立注册的存储位置。
  6. 然后,群集发送另一条命令Persistent reserve 来从主机1建立保留(假设该主机要建立保留)。该命令转到存储,如果尚未保留,则此命令成功。
  7. 保留后,便可以将卷映射到CSV之外,并且可以在每个主机上进行I / O了。

CSV如何处理故障?假设在节点I / O之一在csv上发生故障,然后执行以下步骤。

  1. 指示与此csv相关的节点之间的所有卷都开始耗尽。
  2. 所有卷都将暂停。
  3. 磁盘将脱机
  4. 将尝试使磁盘联机。
  5. 将建立注册和保留来控制磁盘。
  6. 将安装卷,并且实例将附加到csv筛选器驱动程序。
  7. CSVFS的卷过渡时间约为120秒。

群集共享卷(CSV)块缓存

群集共享卷(CSV)缓存是一项功能,可让您将系统内存(RAM)分配为直写式缓存。CSV缓存提供了对只读未缓冲I / O的缓存。这可以提高Hyper-V等应用程序的性能,这些应用程序在访问VHD或

VHDX文件时进行无缓冲的I / O。无缓冲的I / O是Windows缓存管理器未缓存的操作。CSV块缓存提供的缓存可以提高读取请求的性能,而透写功能则无需缓存写入请求。

CSV缓存在块级别提供缓存,从而使其能够对VHD文件中正在访问的数据片段进行缓存。与添加到服务器的带有闪存的PCI卡形式的缓存解决方案的主要区别在于,CSV块缓存从系统内存中保留其缓存。CSV缓存还跟踪VM的移动性,并在其从一个主机移动到另一个主机时使该缓存无效,从而消除了在集群中所有节点上复制和保持缓存一致性的需求。通过不必在所有节点上都缓存所有VM来提高效率,并减少了在节点之间推送数据的性能开销。

CSV缓存已完全集成到故障转移群集功能中,并可以处理群集中节点之间的编排。在虚拟机具有大量读取请求且写入密集度较低的虚拟机的情况下,CSV Cache将提供 大的价值。池VDI VM等场景,或用于减少VM启动风暴的场景。

Hyper-V –在初步测试中,它发现512 MB以 小的成本提供了出色的增益,并且是建议的起点/ 小值(如果启用)。然后,根据您的特定部署和VM中工作负载的I / O特性,您可能希望增加分配的内存量。由于系统内存是Hyper-V群集上的竞争资源,因此建议保持CSV缓存大小适中。例如512 MB,1 GB或2 GB

横向扩展文件服务器 –建议在SoFS上分配明显更大的CSV缓存,因为物理内存通常不是竞争性资源,您可能希望分配4 GB,6 GB甚至更多…… 有两个配置设置可让您控制CSV缓存。

BlockCacheSize –这是集群的公共属性,可让您定义希望为集群中每个节点上的CSV缓存保留的

内存量(以兆字节为单位)。如果定义的值为512,则将在故障转移群集中的每个节点上保留

512 MB的系统内存。配置值为0将禁用CSV块缓存。

EnableBlockCache –这是群集物理磁盘资源的私有属性。它允许您启用/禁用单个磁盘上的缓存。

这样可以灵活地为某些磁盘上运行的读取密集型VM配置缓存,同时允许禁用和防止其他磁盘上的随机I / O清除缓存。例如,具有高读取次数的父VHD可以在Disk1上启用缓存,而对差异磁盘进行高写入操作则可以在Disk2上禁用CSV缓存。默认设置为1(启用)。

CSV缓存在2012年默认情况下处于禁用状态,而在Server 2012 R2中已启用,默认情况下已启用CSV 缓存。但是,您仍然必须分配块缓存的大小以保留

对于池化VDI VM方案而言,这具有很高的价值。只读(差异)父VHD或读写差异VHD。

要在集群级别启用缓存->(Get-Cluster)。BlockCacheSize = 1024

启用CSV缓存后,默认情况下将缓存所有节点上的所有磁盘。您可以使用以下过程灵活地禁用单个磁盘上的CSV缓存:

Get-ClusterSharedVolume“群集磁盘1” | 设置ClusterParameter EnableBlockCache 0

CSV缓存注意事项

Windows Server 2012

Windows Server 2012可以为CSV直写式缓存分配多20%的总物理RAM 可以在不停机的情况下修改缓存大小,但是要修改父分区中的Hyper-V根内存储备以容纳分配给 CSV缓存的内存,它确实需要使用Windows Server 2012重启服务器。以确保资源争用为避免这种情况,建议在修改分配给CSV缓存的内存后重新引导群集中的每个节点。

在单个磁盘上启用CSV缓存要求物理磁盘资源被回收(脱机/联机)才能生效。只需将物理磁盘资源的所有权从一个节点移动到另一个节点,就可以在不停机的情况下完成此任务。

Windows Server 2012中的EnableBlockCache私有属性名为CsvEnableBlockCache

Windows Server 2012中的BlockCacheSize公用属性名为SharedVolumeBlockCacheSizeInMB 启用方式也略有不同,过程如下:

定义要保留的缓存大小的大小(设置为1 GB的示例)

(获取群集)。SharedVolumeBlockCacheSizeInMB = 1024

在单个磁盘上启用CSV缓存(必须对要启用缓存的每个磁盘都执行)

Get-ClusterSharedVolume“群集磁盘1” | Set-ClusterParameter CsvEnableBlockCache 1

Windows Server 2012 R2:

在单个磁盘上启用CSV缓存要求物理磁盘资源被回收(脱机/联机)才能生效。只需将物理磁盘资源的所有权从一个节点移动到另一个节点,就可以在不停机的情况下完成此任务。

建议不要超过在Windows Server 2012 R2上分配的64 GB

CSV缓存将在以下位置禁用:

启用了热图跟踪的分层存储空间

使用内置Windows Server数据重复数据删除功能进行重复数据删除的文件(注意:数据将由重复数据删除缓存代替) 启用完整性流时的ReFS卷

群集共享卷备份

CSV 2.0在Windows故障转移群集中引入了一项突破性的功能,称为“分布式应用程序一致性备份”。

这样一来,客户就可以在一个应用程序一致性备份中备份群集中所有VM的一致性。

Microsoft在VSS框架中引入了两个新组件,它们支持CSV 2.0应用程序一致性备份。WS 2012中添加了新的“ CSV编写器”和“ CSV提供程序”以实现分布式备份。CSV编写器为CSV卷提供来自非请求节点的组件级元数据,并通过为备份会话包含来自远程节点的Hyper-V编写器来充当代理。此外,与 Hyper-V写入器相比,CSV写入器报告的虚拟机的元数据也有所延迟。这使请求者付出了更多工作,以了解组件架构并执行必要的备份准备机制。

 CSV提供程序协调伙伴群集节点上所有Hyper-V编写器的VSS冻结和解冻,以使VM处于应用程序一致状态。此外,CSV提供程序确保在前面介绍的自动恢复过程中,伙伴节点Hyper-V编写器可写入CSV 卷影副本卷。

 

有多种方法可以备份故障转移群集中存储在CSV上的信息。您可以使用Microsoft备份应用程序或非

Microsoft应用程序。

Windows Server Backup通常仅提供基本备份解决方案,该解决方案可能不适用于具有较大群集的组织。Windows Server Backup不支持CSV上与应用程序一致的虚拟机备份。它仅支持崩溃一致的卷级备份。

 

CSV编写器在备份节点上查询VSS请求者的所有伙伴节点VM元数据。仅在备份节点上联系VSS硬件提供程序, 后为整个CSV卷仅创建一个硬件快照。以下是CSV备份的典型步骤

  1. 备份应用程序与备份节点上的VSS服务对话
  2. Hyper-V编写器标识备份节点上的本地VM
  3. 备份节点CSV编写器与群集中其他主机上的Hyper-V编写器联系,以收集该CSV上的VM正在使用的文件的元数据
  4. 备份节点上的CSV提供程序联系Hyper-V Writer以使虚拟机停顿
  5. 备份节点上的Hyper-V Writer也会停止其自己的VM
  6. 整个CSV的VSS快照已创建
  7. 然后,备份工具可以通过VSS快照备份CSV 为群集共享卷通信指定首选网络

启用群集共享卷时,故障转移群集会自动选择看起来 适合CSV通信的网络。但是,您可以使用群集网络属性Metric来指定网络。低的指标值指定用于CSV和内部群集通信的网络。如果使用实时迁

移,第二低的值指定用于实时迁移的网络(您也可以使用故障转移群集管理单元将网络指定为实时迁移)。

Get-ClusterNetwork | ft名称,指标,自动指标,角色

要将名为“ 群集网络1”的网络的“ 度量标准”设置更改为900 ,请键入以下内容:(Get-ClusterNetwork“群集网络1”)。指标= 900

注意: CSV使用专用网络通信。您可以从故障转移群集中指定网络的网络属性->推荐有两个专用网络,一个用于专用,另一个用于CSV

故障转移控制台->群集网络->设置->允许网络上的群集通信并取消选中“清除所有允许客户端通过此网络连接的设置”设置

常见的CSV事件错误(故障排除):

每个群集节点都可以直接访问CSV LUN,也可以通过网络进行重定向访问。

事件ID 5120或5142 –> 5120错误指示重定向的I / O失败,而5142指示重定向的和直接的失败

事件ID 5142指示非所有者节点已断开连接,并且CSV不再排队I / O。结果,记录错误的节点上的VM 将看到存储已断开连接,而不仅仅是响应缓慢。

赛事编号129

警告事件以存储适配器(HBA)驱动程序的名称作为源记录到系统事件日志中。Windows的

STORPORT.SYS驱动程序在检测到请求超时时记录此消息,错误中使用了HBA驱动程序的名称,因为它是与storport关联的微型端口

导致事件ID 129错误的 常见原因是未响应的LUN或请求被丢弃。SAN上的路由器故障或其他硬件问题可能会导致请求丢失。如果您在事件日志中看到事件ID 129错误,则应该开始调查存储和光纤网络

活动编号153

事件153与事件129类似。  当storport驱动程序对磁盘的请求超时时,将记录事件129。153和129之间的区别在于,当storport超时请求时,将记录129,而当storport微型端口驱动程序超时,则将记录

153。

微型端口驱动程序也可以称为适配器驱动程序或HBA驱动程序,此驱动程序通常由硬件供应商编写。

事件ID 5217- >如果备份快照错误,则记录事件

事件ID 5150- >如果CSV处于失败状态,则记录事件其他参考

群集共享卷(CSV)由内而外

http://blogs.msdn.com/b/clustering/archive/2013/12/02/10473247.aspx 群集共享卷诊断http://blogs.msdn.com/b/clustering/archive/2014/03/13/10507826.aspx 群集共享卷性能计数器http://blogs.msdn.com/b/clustering/archive/2014/06/05/10531462.aspx 群集共享卷故障处理http://blogs.msdn.com/b/clustering/archive/2014/10/27/10567706.aspx

对群集共享卷自动暂停进行故障排除–事件5120

http://blogs.msdn.com/b/clustering/archive/2014/12/08/10579131.aspx

群集共享卷恢复失败故障排除–系统事件5142

http://blogs.msdn.com/b/clustering/archive/2015/03/26/10603160.aspx

https://blogs.msdn.microsoft.com/clustering/2015/03/26/troubleshooting-cluster-shared-volumerecovery-failure-system-event-5142/

在故障转移群集中使用群集共享卷

https://technet.microsoft.com/zh-CN/library/jj612868(v=ws.11).aspx

类别:群集共享卷

https://blogs.msdn.microsoft.com/clustering/category/cluster-shared-volumes/

如何启用CSV缓存

https://blogs.msdn.microsoft.com/clustering/2013/07/19/how-to-enable-csv-cache/

群集共享卷–查找瓶颈的系统方法

https://blogs.msdn.microsoft.com/clustering/2015/07/29/cluster-shared-volume-a-systematicapproach-to-finding-bottlenecks/

了解群集共享卷的状态

https://blogs.msdn.microsoft.com/clustering/2013/12/05/understanding-the-state-of-your-clustershared-volumes-in-windows-server-2012-r2/

Windows磁盘超时值:越少越好 https://blogs.msdn.microsoft.com/san/2011/09/01/the-windows-disk-timeout-value-less-is-better/

群集共享卷(CSV):磁盘所有权

https://blogs.msdn.microsoft.com/clustering/2009/03/01/cluster-shared-volumes-csv-diskownership/

 

 

你可能感兴趣的:(群集共享卷(CSV))