配置 Windows 故障转移群集网络
在这篇博文中,我们将讨论在故障转移群集中配置网络时需要全面考虑的一系列做法。
避免单点故障:
识别单点故障并在网络中的每一点配置冗余对于保持高可用性至关重要。您可以通过使用多个独立网络或使用 NIC 组合来保持冗余。通过以下多种方式实现这一目标:
· 使用多个物理网络适配器卡。在网络中使用同一多端口卡或底板的多个端口会引发单点故障。
· 将网络适配器卡连接到不同的独立交换机。对单一交换机应用多个 VLAN 补丁程序会引发单点故障。
· 使用非冗余网络 NIC 组合,如客户端连接、群集内通信、CSV 和实时迁移。如果当前的活动网络发生故障,卡会将通信转移到组合中的其他卡。
· 如果 NIC 驱动程序发生问题,请使用不同类型的网络适配器同时消除对所有网络适配器连接的影响。
· 确保上游网络复原能力,消除多个网络间的单点故障。
· 故障转移群集网络驱动程序按逻辑子网检测系统上的网络。不建议为每个子网分配多个网络适配器,包括 IPV6 本地链接,因为群集只能使用一个卡,其他卡将被忽略。
网络绑定顺序:
Adapters and Bindings 表列按网络服务访问连接的顺序列出相关连接。这些连接顺序反映了向网络发送通用 TCP/IP 呼叫/包的顺序。
如何更改网络适配器的绑定顺序
- 单击 Start,单击 Run,键入 ncpa.cpl,然后单击 OK。您可以在 Network Connections 窗口的 LAN and High-Speed Internet 部分查看可用连接。
- 在 Advanced 菜单上,单击 Advanced Settings,然后单击 Adapters and Bindings 选项卡。
- 在 Connections 区域中,选择要移动到列表更高位置的连接。使用箭头按钮移动该连接。一般而言,与网络进行通信的卡(域连接、路由到其他网络等)应当是最先绑定(列表顶部)的卡。
群集节点是多主系统。网络优先级会影响 DNS 客户端的出站网络连接。客户端通信使用的网络适配器应为最高绑定顺序。非路由网络则可设置为较低的优先级。在 Windows Server 2012/2012R2 中,群集网络驱动程序 (NETFT.SYS) 适配器将被自动置于绑定顺序列表的底部。
群集网络角色:
系统会自动为连接群集中的所有节点的所有逻辑子网创建群集网络。故障转移群集管理器中将会列出连接某一通用子网的各个网络适配器卡。您可以为群集网络配置不同的用途。
名称 |
值 |
描述 |
Disabled for Cluster Communication |
0 |
没有任何类型的群集通信通过此网络传送 |
Enabled for Cluster Communication only |
1 |
内部群集通信和 CSV 流量可通过此网络传送 |
Enabled for client and cluster communication |
3 |
可在此网络上创建供客户端连接的群集 IP 地址资源。内部流量和 CSV 流量可通过此网络传送 |
自动配置
创建群集期间会自动配置网络角色。上表对群集中配置的网络进行了描述。
ISCSI 与 ISCSI 软件发起程序间通信使用的网络将被自动禁用群集通信(Do not allow cluster network communication on this network)。
未配置默认网关的网络仅会自动启用群集通信(Allow cluster network communication on this network)。
配置默认网关的网络会自动启用客户端和群集通信(Allow cluster network communication on this network, Allow clients to connect through this network)。
手动配置
如上所述,虽然创建群集时会自动配置群集网络,但也可以根据环境需求手动进行配置。
要修改故障转移群集的网络配置,请执行以下操作:
· 打开故障转移群集管理器。
· 展开 Networks。
· 右键单击要修改设置的网络,然后单击 Properties。
· 如有需要,请更改网络名称。
· 选择以下选项之一:
o Allow cluster network communication on this network。如果选择此选项,意味着您只希望节点(而非客户端)使用该网络,清除 Allow clients to connect through this network。否则,确保选择此选项。
o Do not allow cluster network communication on this network。如果您使用某个网络仅执行 iSCSI(通过存储通信)或仅执行备份,请选择此选项。(这些是选择此选项的最常见原因。)
另外,还可以使用 PowerShell 命令 Get-ClusterNetwork 更改群集网络角色。
例如:
(Get-Cluster Network “Cluster Network 1”). Role =3
这将配置启用“群集网络 1”进行客户端和群集通信。
在 Windows 2012/2012R2 中配置服务质量策略:
要达到服务质量,我们可以使用多张网卡,或者也可为多个 VLAN 创建 QoS 策略。
建议对所有群集部署配置 QoS 优先级。检测信号和群集内通信对延迟十分敏感,配置 QoS 优先级流控制策略有助于缩短延迟。
例如,您可以通过以下方式将群集检测信号和节点内通信设置为最高优先级通信:
New-NetQosPolicy “Cluster”-Cluster –Priority 6
New-NetQosPolicy “SMB” –SMB –Priority 5
New-NetQosPolicy “Live Migration” –LiveMigration –Priority 3
注意:
可用值为 0 到 6
必须在群集中的所有节点和物理网络交换机上启用
未定义的通信的优先级为 0
带宽分配:
建议为 CSV 部署配置相对最低带宽 SMB 策略。例如,将群集的最低策略设置为总带宽的 30%、将实时迁移设置为总带宽的 20%,将 SMB 通信设置为总带宽的 50%.
New-NetQosPolicy “Cluster” –Cluster –MinBandwidthWeightAction 30 New-NetQosPolicy “Live Migration” –LiveMigration –MinBandwidthWeightAction 20
New-NetQosPolicy “SMB” –SMB –MinBandwidthWeightAction 50
多子网群集:
故障转移群集支持节点位于不同的 IP 子网中。Windows Server 2012 及 SQL Server 2012 的群集共享卷 (CSV) 均支持多子网群集。
通常情况下,一直以来采用的常规规则是为每个网络提供一个角色。配置群集网络时需要牢记以下几点。
客户端连接
客户端连接用来供群集节点上运行的应用程序与客户端系统进行通信。您可以通过静态分配的 IPv4、IPv6 IP 地址或 DHCP 分配的 IP 地址配置此网络。不得使用 APIPA 地址,因为这些地址方案将采用群集虚拟网络适配器,因此这些网络将被忽略。可以使用 IPV6 无状态地址自动配置,但请记住,DHCPv6 地址不支持群集 IP 地址资源。这些网络通常也是带有默认网关的可路由网络。
使用CSV 网络进行存储I/O 重定向。
如果用作 Hyper-V 群集和高度可用的虚拟机,那么势必希望使用此网络。此网络用于对群集共享卷 (CSV) 文件系统执行 NTFS 元数据更新。这些更新应当是轻型更新且不太频繁,除非需要向存储传送通信相关事件。
如果执行 CSV I/O 重定向,此网络延迟可能会降低存储 I/O 性能。服务质量对于此网络至关重要。如果任意节点或存储间的存储路径发生故障,则会通过该网络将所有 I/O 重定向到连接畅通的某个节点以提交数据。所有 I/O 均将通过 SMB 进行转发,鉴于此,对于该网络而言网络带宽十分重要。
需要启用微软网络客户端及微软网络文件和打印机共享,以便为 CSV 所需的服务器消息块 (SMB) 提供支持。建议配置此网络不通过 DNS 进行注册,因为它不需要执行任何名称解析。CSV 网络将通过 NTLM 身份验证在节点间建立连接。
CSV 通信将充分利用 SMB 3.0 功能的各项优势(如 SMB 多通道和 SMB 直通服务),从而跨越多个网络以流的方式传输流量,提高其 I/O 重定向的 I/O 性能。
默认情况下,该群集将自动为 CSV 选择要使用的 NIC;有关手动配置,请参阅以下文章。
指定群集共享卷通信首选网络https://technet.microsoft.com/en-us/library/ff182335(WS.10).aspx
应当为群集通信配置此网络
实时迁移网络
与 CSV 网络一样,如果用作 Hyper-V 群集和高度可用的虚拟机,那么势必需要使用此网络。实时迁移网络用于在群集节点间实时迁移虚拟机。将此网络配置为群集通信专用网络。默认情况下,群集将自动选择 NIC 进行实时迁移。
您可以选择多个网络进行实时迁移,具体取决于工作负载和性能。它将利用 SMB 3.0 的 SMB 直通功能更迅速地完成虚拟机迁移。
ISCSI 网络:
如果您使用的是 ISCSI 存储并通过网络进行连接,那么建议为 iSCSI 存储结构创建专用独立网络。此网络应禁止开展群集通信,这样才能保证该网络专门用于传输存储相关流量。
这会阻止群集内通信及 CSV 流量通过同一网络进行传输。创建群集期间,将会删除 ISCSI 流量并禁止群集使用该网络。此网络应设置为最低绑定顺序。
与所有存储网络一样,您应该配置多个卡,以便实现 MPIO 冗余。通过使用 Microsoft 提供的随机组合驱动程序,具有 iSCSI 的 Win2012 网卡组合现已支持网卡组合。
检测信号通信和群集内通信
检测信号通信用于在节点间进行运行状况监控以检测节点故障。检测信号包本质上为轻型(134 位)包且对延迟较为敏感。如果饱和 NIC 导致群集检测信号延迟或者由于防火墙的原因造成信号遭到阻止,可能会从群集成员身份中删除该群集节点。
群集内通信则用于随各种群集状态变化跨越所有节点更新群集数据库。群集是一种分布式同步系统。此网络延迟可能会减缓群集状态更改。
IPv6 是首选网络,因为它比 IPv4 更可靠、速度更快。IPv6 本地链接 (fe80) 适用于此网络。
在 Windows 群集中,检测信号阈值增加并将作为 Hyper-V 群集的默认值。
当首个虚拟机开始群集时,默认值就会发生更改。
群集属性 |
默认值 |
Hyper-V 默认值 |
SameSubnetThreshold |
5 |
10 |
CrossSubnetThreshold |
5 |
20 |
通常情况下,创建群集后会修改检测信号阈值。如果需要增加阈值,可以通过调整生产时间来实现,并且更改立即生效。
配置交错检测信号
群集虚拟网络驱动程序 (NetFT.SYS) 基于群集属性 PlumbAllCrossSubnetRoutes 建立节点间路由。
Value Description
0 Do not attempt to find cross subnet routes if local routes are found
1 Always attempt to find routes that cross subnets
2 Disable the cluster service from attempting to discover cross subnet routes after node successfully joins.
要对该属性做出更改,您可以使用以下命令:
(Get-Cluster). PlumbAllCrossSubnetRoutes = 1
在故障转移群集上为Exchange 2013 和 SQL 2012 配置网络的参考资料。
通过Exchange Server 2013 配置 DAG 网络https://technet.microsoft.com/en-us/library/dd298065(v=exchg.150).aspx
为 SQL Server 2012 安装故障转移群集前的准备工作https://msdn.microsoft.com/en-us/library/ms189910.aspx
在TechEd 2013 北美大会上,其中一场会议的主题是故障转移群集网络基础知识,由 Elden Christensen(故障转移群集项目经理)主持,期间介绍了大量配置、最佳实践及其他知识。
故障转移群集网络基础知识https://channel9.msdn.com/Events/TechEd/NorthAmerica/2013/MDC-B337#fbid=ZpvM0cLRvyX
S. Jayaprakash
高级支持专家级工程师
微软印度分公司 GTSC