Configuring Windows Clustering with PowerShell: B Configuration Cluster

2 Failover Cluster

  • Failover Cluster(故障转移群集)是服务器可用性和伸缩性的一种技术架构。它是由一组独立的服务器构成,服务器与服务器之间协同工作。所有加入Failover Cluster 的成员服务器被称为Node(节点)服务器。如果一个或多个的Cluster Server发生故障,则由其他Node提供服务,这个触发的过程被称为Failover Process(故障转移过程)。
    Failover Cluster Service 会主动监控群集角运行角色,已验证他们是否正常工作,如果不能正常工作,则会其他节点上重新启动群集角色。

3 一些概念

3.1 Scale-Out

  • Scale Out(横向扩展)又名 Horizontal(水平)Scaling horizontally(Out/In)
    • Scale Out(向外扩张)也是分布式计算架构中一种技术,同时也是群集技术的一种,它被广泛用于分布式计算。横向扩展是指“分布式计算系统”中资源扩展的一种扩展技术。它将资源以水平式的方式加入到分布式系统系统中,被加入资源称为 Node(节点)
    • 横向扩展属于纵向扩展的后期,当纵向扩展的资源达到资源上线时,才会考虑使用横向扩展技术。

3.1.2 Scale-Out File Server for application data(为应用程序横向扩展文件服务器)

横向扩展文件服务器是一种旨在提供横向扩展文件共享的功能,这些共享可用于基于文件的服务器应用程序存储。横向扩展文件共享提供了从同一群集的多个节点共享同一文件夹的功能。更多关于横向扩展请参阅为应用程序横向扩展文件服务器

3.2 Cluster and pool quorum(群集和池仲裁)

Windows Server Failover Clustering 提供高可用性,如果托管资源中的节点已启动,则这些资源节点将被视为Cluster的成员,这些成员具有仲裁能力。

  • Quorum(仲裁):是指皆在防止,当网络中存在分区,且节点的子集无法相互通信时产生的脑裂状况。
    脑裂将导致节点间的子集都视图将自己作为主节点工作,并写入同一硬盘,这将导致数据严重分裂,以及不一致性Quorum(仲裁)皆在处理群集节点子集之间通信出现问题时,多个服务器会尝试同时托管资源组并同时写入同一磁盘的情况。通过群集仲裁,群集将会强制停止其他的子节点,保留一个以,确保只有一个特定资源组的为真正的所有者。一旦已停止的节点可以再次与主节点组通信,它们将自动重新加入群集并启动其群集服务。
  • Pool Quorum(池仲裁):当启用Storage Spaces Direct时,它在池级别上运行(即,您可以丢失节点和驱动器并使池保持运行状态)。存储池旨在用于集群和非集群方案,这就是为什么它们具有不同的仲裁机制。

3.2.1 How cluster quorum works(群集仲裁如何工作)

  • 当节点发生故障或节点子集与另一子集失去联系时,幸存的节点需要验证它们是否构成群集的大部分以保持联机状态。如果无法验证状态,就会离线。
    下表概述了每个方案的群集仲裁结果:

    服务器节点数 可以接受一个节点故障 可以接受一个服务器节点故障,然后另一个存活 可以接受两个服务器节点同时失败
    2 50/50 False False
    2 +见证 True False False
    3 True 50/50 False
    3 +见证 True True False
    4 True True 50/50
    4 +见证 True True True
    5 +以上 True True True

3.2.2 Pool quorum overview(池仲裁概述)

当驱动器发生故障,或者某些驱动器子集与另一个子集失去联系时,幸存的驱动器需要验证它们是否构成池的大部分以保持联机状态。如果无法验证,它们将离线。根据是否有足够的磁盘用于仲裁(50%+1)来保持联机或者脱机,池所有者(活动群集节点)可以是+1。但Pool Quorum(池仲裁)的工作方式与Cluster Quorum(群集仲裁)的方式不同,具体如下:

  • 池使用群集中的一个节点作为见证作为打破平局,以使一半驱动器消失(此节点是池资源所有者)
  • 池没有动态仲裁
  • 池不会实现自己的删除投票版本
    下表概述了每个方案的池仲裁结果:

    服务器节点 可以承受一个服务器节点故障 可以存活一个服务器节点故障,然后另一个 可以存活两个服务器节点同时失败
    2 False False False
    2 +见证 True False False
    3 True False False
    3 +见证 True False False
    4 True False False
    4 +见证 True True True
    5 +以上 True True True

3.2.3 Fault domain awareness(故障域感知)

故障转移群集可以使多个服务器之间协同工作,从而提高可用性、节点容错性,更是为了防止出现诸如机箱、机柜故障或是自然灾害等。

  • 故障域级别有四个规范级别的故障域分别为:
    站点,机架,机箱和节点。
    节点自动发现; 每个附加级别是可选的。例如,如果您的部署不使用刀片服务器,则机箱级别可能对您没有意义。

Windows Server 2019 中提供了故障域感知功能,但默认情况下它已禁用,需要通过 PowerShell 开启

Planning and design(规划设计)

4.1 Cluster requirements(群集要求)

4.1.1 Failover Cluster System

  1. Active Directory(活动目录):
    所有群集中节点必须加入 Active Directory活动目录);
  2. Failover node(故障转移节点):
    群集中的计算节点数必须 ≥ 2;

4.1.2 共享存储

  1. Shared Storage(共享存储):
    故障转移群集必须使用共享存储,共享存储可以是 (SMB、SAN、iSCSI、NFS) 等共享存储,并且所有节点的 NIC(适配器)与存储相连的物理线缆都必须具备冗余线缆,避免出现单点故障。
  2. Internet Small Computer Systems Interface(iSCSI):
    如果使用的是 iSCSI 做为共享存储,则各群集节点都应具有一个或多个专用于群集存储的网络适配器或 HBA。
    ! 不应将用于 iSCSI 的网络用于网络通信。 在所有群集服务器中,用于连接 iSCSI 存储目标的网络适配器都应相同,建议使用千兆或更高速度的以太网。
  3. Serial Attached SCSI or Fibre Channel
    如果使用的是 Storage Area NetworkSAN)作为共享存储,则存储堆栈的所有组件都应相同。 它要求多路径 I/O (MPIO) 软件必须相同,并且设备特定模块 (DSM) 软件也相同。
    同时建议使用 ≥ 16/32/64Gbps 的 Host Bus Adapter(HAB 主机总线适配器),并且群集中的节点使用相同的 HBA,如果使用不同的 HBA,应向存储供应商验证是否支持。
  4. Multipath I/O MPIO
    所有节点必须启用 Multipath I/O(MMPIO),以防出现单点故障。
  5. 共享磁盘
    所有群集节点需含有两个不同的 NTFS 格式的共享(逻辑单元号或 LUN)的磁盘,且群集中具有“相同业务”的节点所有连接的“共享磁盘”的盘符必须相同。
    ! 建议使用 NTFS 格式化分区。 如果使用群集共享卷 (CSV),则其中每个分区都必须采用 NTFS 格式。
    对于磁盘分区,建议使用“Master boot record (MBR)分区表” 或者 “GUID partition table” (GPT)分区表.
    所有群集节点的 “共享磁盘” 不应 ≤ 2个共享磁盘。
    其中一个磁盘用于 Quorum Disk(仲裁磁盘),另一个则用于群集“业务磁盘”。针对 Quorum Disk(仲裁磁盘)可以使用 NTFS 或弹性文件系统 (ReFS) 格式化磁盘。

4.1.3 Network Interface Controller NIC

  1. 所有群集节点的 NIC 可用数建议 ≥ 5,且 NIC 应以 ≥ 2 为组,组成 Nic Group NIC Team。每组 NIC 应具备链路冗余,从而提高网络的可用性。更多请详见NIC 组合
  2. NIC 节点应使用 10Gbps 网络适配器。
  3. 如果使用的是 SAN 存储,建议使用 ≥ 16/32/64Gbps 的 Host Bus Adapter(HAB 主机总线适配器)
  4. 节点的 Nic Team 应具备3个 Nic Team,一个Nic team用于管理网络,一个Nic team用于存储网络,一个Nic team用于群集网络。
  5. 对于用于连接存储的 Nic Team 或 HBA 应 ≥ 2,以防止单点故障。且Nic team 或者 HBA 都应具备线缆冗余。以防出现链路故障而导致的单点故障。

5 Example:Install and configure a Windows failover cluster

5.1 Install the Windows Failover Clustering feature component with PowerShell

5.1.1
Install the Windows failover cluster feature component on the node (在 Node 节点上安装 Windows failover cluster 功能组件)dd

5.2 Configuration the Windows Failover Clustering with PowerShell

5.2.1
Test the Windows hardware and system settings to meet failover clustering capabilities (运行硬件和系统设置是否满足群集设置,如果满足将新建群集)

5.2.2
Set up Access rules for organizational units in the Active Directory (设置活动目录中组织单位的访问规则)

发表评论