EC2 使用 FSx 适用于 Windows 文件服务器的亚马逊上设置微软 SQL Server 故障转移群集 - AWS Prescriptive Guidance

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

EC2 使用 FSx 适用于 Windows 文件服务器的亚马逊上设置微软 SQL Server 故障转移群集

Sweta Krishna 和 Ramesh Babu Donti,Amazon Web Services

摘要

带有故障转移群集实例 (FCI) 的微软 SQL Server 标准版可以为 SQL Server Enterprise 提供更具成本效益的替代方案。设置 SQL FCI 需要在节点之间共享文件存储,而 Amazon FSx for Windows File Server 提供了完全托管的存储,可在可用区之间自动同步复制。Amazon 通过为通用文件共享使用内置的重复数据删除功能来 FSx 降低存储成本,从而无需维护第三方解决方案。Amazon FSx 还支持以下内容:

  • 只需按实际用量付费,无需预付费用或承诺。

  • 手动设置 FCI FSx 作为您的共享存储。

  • 用 FSx 作 SQL 集群的文件共享见证人。

  • Amazon FSx for Windows File Server 支持服务器消息块 (SMB) 3.0 以实现持续可用的文件共享,因此适合 SQL Server FCI 部署。

先决条件和限制

先决条件

  • 活跃AWS 账户

  • 创建和管理亚马逊虚拟私有云 (Amazon VPC) 资源、亚马逊弹性计算云 (Amazon EC2) 实例、安全组和 AWS Identity and Access Management (IAM) 角色的权限。

  • AWS Managed Microsoft AD 或者你自己的本地活动目录。

  • 具有设置故障转移群集所需权限的 Active Directory 域用户。

  • 用于安全混合连接的 SQL Server FCI 和微软 Active Directory 端口的安全组规则。

  • SQL Server 的 Active Directory 中的一个服务帐户,它配置了跨越 SQL 节点的适当权限。

  • Amazon FSx for Windows 文件服务器位于故障转移群集中。

  • SQL 服务器安装二进制文件。

限制

产品版本

  • EC2 适用于 Windows Server 2012 R2 或更高版本的亚马逊

  • FSx 适用于Windows的亚马逊文件服务器,所有当前的Windows服务器版本

  • FSx 适用于 NetApp ONTAP 的 Amazon 作为共享存储的替代方案

  • SQL Server 2012/2016/2019/2022

架构

技术堆栈

  • Amazon EC2

  • FSx 适用于 Windows 文件服务器的亚马逊

  • Amazon VPC

  • AWS Directory Service

  • AWS Systems Manager

  • IAM

目标架构

下图显示了微软 SQL Server FCI 在亚马逊上 EC2 使用适用于 Windows 的文件服务器的亚马逊 SQL Server FCI FSx 的高级架构。

亚马逊上 EC2 使用亚马 FSx 逊 Windows 文件服务器的 Microsoft Server FCI 架构图。

网络基础架构

  • Amazon VPC 提供了一个跨越三个可用区的网络容器。

  • 私有子网在每个可用区中提供隔离的子网,用于部署资源。

计算层

  • 亚马逊 EC2 包含一个 SQL Server 群集节点 1,作为 Windows 服务器故障转移群集 (WSFC) 的一部分部署在可用区 1 中。

  • 亚马逊 EC2 包含一个 SQL Server 集群节点 2,作为 WSFC 的一部分部署在可用区 2 中。

  • WSFC 群集连接两个 SQL Server 节点以实现故障转移功能。

适用于 Windows 文件服务器 FSx 的亚马逊存储层

多可用区 FSx 部署(跨可用区 1 和 2)

  • 可用区 1 中的主 FSx 文件系统托管活动的 SQL Server 数据和日志文件。

  • 可用区 2 中的辅助 FSx 文件系统提供自动故障转移功能。

  • 共享的 SMB 文件共享 (\\ fsx.domain\ sqlshare),两个群集节点都可以访问 SQL Server 数据库。

单可用区 FSx 部署(中 AZ3)

  • 可用区 3 中的 Amazon FSx 文件服务器见证人充当集群法定人数见证人。

  • 文件共享见证人 (\\fsx.domain\witness) 维护群集法定人数并防止出现脑裂的情况。

目录服务

  • AWS Managed Microsoft AD 提供群集功能所需的 Windows 身份验证和域服务。

高可用性功能

  • 多可用区组件提供跨可用区域的容错能力。

  • FSx 如果主服务器出现故障,备用文件服务器可自动进行故障转移。

  • File share witness 在可用区 3 中提供集群法定人数管理,以帮助确保集群在故障期间正常运行。

  • 与域集成,可实现无缝 AWS Managed Microsoft AD 的 Windows 身份验证。

工具

AWS 服务

  • 亚马逊弹性计算云 (Amazon EC2) 在中提供可扩展的计算容量 AWS Cloud。您可以根据需要启动任意数量的虚拟服务器,并快速扩展或缩减它们。

  • Amazon FSx 提供的文件系统支持行业标准的连接协议,并提供高可用性和跨 AWS 区域复制功能。

  • Amazon Virtual Private Cloud(亚马逊 VPC)可帮助您将 AWS 资源启动到您定义的虚拟网络中。该虚拟网络类似于您在数据中心中运行的传统网络,并具有使用 AWS的可扩展基础设施的优势。

  • AWS Directory Service for Microsoft Active Directory允许你的目录感知工作负载和 AWS 资源使用中的 Microsoft Active Directory。 AWS Cloud

  • AWS Identity and Access Management (IAM) 通过控制谁经过身份验证并有权使用 AWS 资源,从而帮助您安全地管理对资源的访问权限。

  • AWS Systems Manager 可帮助您管理在 AWS Cloud中运行的应用程序和基础设施。它简化了应用程序和资源管理,缩短了检测和解决操作问题的时间,并帮助您大规模安全地管理 AWS 资源。

最佳实践

操作说明

Task说明所需技能

添加名称和标签。

  1. 在中 AWS Management Console,导航至 Amazon EC2。

  2. 选择启动实例

  3. 添加所需的标签。

数据库管理员

选择 Windows AMI。

选择符合你的 SQL Server 要求的 Windows 版亚马逊系统映像 (AMI)。

数据库管理员

选择一个实例类型。

选择符合您要求的 Amazon EC2 实例类型。

数据库管理员

使用 key pair。

您可以使用 key pair 安全地连接到您的实例。在启动实例之前,请确保您可以访问所选密钥对。

数据库管理员

配置网络设置。

  1. 选择用于配置活动目录的 VPC。

  2. 选择 VPC 和私有子网。

  3. 选择现有的安全组。如果没有,请选择创建安全组

数据库管理员

配置高级网络设置。

  1. 选择高级网络设置

  2. 选择辅助 IP。

  3. 选中 “自动分配” 复选框以分配子网中的辅助 IP。

数据库管理员

配置存储。

配置所需的总存储空间并选择所需的存储类型。

数据库管理员

配置高级详细信息并启动实例。

  1. 从目录列表中选择活动目录域。

  2. 选择一个附加了AmazonSSMManagedInstanceCoreAmazonSSMDirectoryServiceAccess策略的 IAM 角色。

  3. (可选)配置其他可用选项。

  4. 启动实例。

数据库管理员

创建节点 2。

重复这些步骤以创建和配置节点 2。

数据库管理员
Task说明所需技能

登录节点 1。

以管理员身份登录 Windows Amazon EC2 实例。

数据库管理员

在节点 1 上安装 FCI 功能。

  1. 在中 PowerShell,运行以下脚本:

Install-WindowsFeature -Name Failover-Clustering -IncludeManagementTools
  1. 安装完成后,请检查并安装所有未完成的 Windows 更新。

  2. 重新启动实例。

数据库管理员

登录节点 2。

以管理员身份登录 Windows Amazon EC2 实例。

数据库管理员

在节点 2 上安装 FCI 功能。

  1. 在中 PowerShell,运行以下脚本:

Install-WindowsFeature -Name Failover-Clustering -IncludeManagementTools
  1. 安装完成后,请检查并安装所有未完成的 Windows 更新。

  2. 重新启动实例。

数据库管理员

向集群添加节点。

  1. 使用远程桌面连接到节点 1,然后选择 “启动服务器管理器”。

  2. 工具菜单中,选择故障转移群集管理器

  3. 故障转移群集管理器窗格上的管理下,选择创建群集以打开创建群集向导

  4. Before You Begin (在您开始之前) 页面上,选择 Next (下一步)

  5. 如果出现 “选择服务器” 页面,请在 “输入名称” 字段中选择 “浏览并搜索您的服务器”,然后选择 “添加”。对要添加的每台服务器重复此步骤,然后选择 “下一步”。

  6. 用于管理集群的接入点页面上,选择集群,然后选择下一步

  7. “确” 页面显示集群名称、节点和其他域信息。查看这些详细信息,然后选择 “下一步”。

  8. 在 “摘要” 页面上,验证 FCI 是否已成功创建。如果有任何警告或错误,请查看摘要输出或选择查看报告

  9. 选择完成

  10. 配置集群后,系统会显示 “您已完成创建集群向导”

  11. 对节点 2 重复这些步骤。

数据库管理员

使集群联机。

要使群集联机,请更新两个节点的静态 IP 地址:

  1. 选择群集对象的名称。

  2. 打开上下文(右键单击)菜单并选择 “属性”。

  3. 从您的 EC2 实例中选择子网和未使用的辅助 IP 地址。

  4. 更新辅助 IP 地址后,打开上下文(右键单击)菜单并选择群集对象名称

  5. 选择 “联机”。

数据库管理员

验证集群。

导航到故障转移群集管理器并验证群集核心资源是否处于联机状态。

数据库管理员
Task说明所需技能

登录服务器。

以管理员身份登录 Amazon EC2 实例。

数据库管理员

装载 SQL 二进制文件。

  1. 启动 SQL Server 安装中心,然后选择 “安装”。

  2. 选择新的 SQL Server 故障转移群集安装

  3. 按照提示进入安装文件

  4. 在 “全局规则” 对话框中,确认所有检查均成功。

  5. 在 “安装故障转移群集规则” 对话框中,确认所有检查均成功。请先解决所有警告,然后再继续。

  6. 功能选择对话框中,选中数据库引擎服务和客户端工具连接对应的复选框。

  7. 功能规则对话框中,确认所有规则均已通过。

  8. 实例配置对话框中,输入 SQL Server 网络名称。

  9. 群集资源组中,指定资源组的名称。从下拉列表中选择群组或输入自定义名称。

  10. 集群网络配置对话框中,选择IPv4并清除 DHCP。为每个节点提供辅助私有 IP 地址。

  11. 在 “服务器配置” 对话框中:

    • 在 “服务帐户” 选项卡上,提供 SQL 服务帐户名和 SQL Server 凭据所需的详细信息。

    • 确认代理和数据库引擎的启动类型设置为手动

    • 选中 “向 SQL Server 数据库引擎服务授予执行批量维护任务权限” 复选框。这将为 SQL Server 启用即时文件初始化。

  12. 数据库引擎配置对话框中:

    • Windows 身份验证模式下的服务器配置选项卡上,确认已选择身份验证模式

    • 数据目录选项卡上,指定数据、日志、tempdb 和备份文件(\\fsx.domain\sqlshare\data例如.mdf,文件和文件)的 Amazon FSx 路径的位置。\\fsx.domain\sqlshare\logs .ldf

  13. 在 “功能配置规则” 对话框中,确认所有检查均成功,然后选择 “下一步”。

  14. 在 “准备安装” 对话框中,验证所有配置设置。

  15. 选择 “安装” 继续安装。

  16. 在 “完成” 对话框中,选择 “关闭”。

将节点 2 添加到故障转移群集。

  1. 导航到 SQL Server 安装中心

  2. 选择 “安装”。

  3. 选择 “向 SQL Server 故障转移群集添加节点”,然后按照提示进行群集节点配置

  4. 群集节点配置对话框中,选中IPv4并清除 DHCP

  5. 为节点 2 添加一个 IP 地址。

  6. 在 “服务帐户” 下,验证节点 1 和 2 的详细信息是否匹配。

  7. 提供相应的 SQL Server 服务帐户的凭据。

  8. 功能规则对话框中,确认所有检查均成功。

  9. 选择 “下一步”,然后按照其余提示进行操作。

  10. 选择 “安装” 继续安装。

  11. 在 “完成” 对话框中,选择 “关闭”。

数据库管理员
Task说明所需技能

配置法定人数设置。

  1. 使用 RDP 连接到您的亚马逊 EC2 实例。

  2. 导航到故障转移群集管理器

  3. 打开群集上的上下文(右键单击)菜单,然后选择更多操作

  4. 选择配置集群法定设置。

  5. 配置法定人数设置。

数据库管理员

检索 DNS 详细信息。

在 Amazon FSx 控制台中,选择托管 AD,然后选择 “附加”。DNS 应采用以下格式:\\example.example.net\share

数据库管理员

配置文件共享见证。

选择 Amazon FSx 文件共享路径,然后选择 “完成”。

数据库管理员

相关的资源

AWS resources

其他资源

其他信息

配置文件共享见证

通过在 Amazon FSx 安全组中添加允许入站连接的规则,确保您已从两个节点连接到文件系统。应允许 SMB 端口。例如,如果 DNS 名称为\\example.example.com\share,则使用\\example.example.com\share。在 Always On 可用性集群中对文件共享见证使用相同的值。完成以下步骤来配置文件共享见证:

  1. 使用 RDP 连接到您的亚马逊 EC2 实例。

  2. 导航到故障转移群集管理器

  3. 打开上下文(右键单击)菜单并选择 “更多操作”。

  4. 选择配置集群法定设置。

  5. 选择下一步

  6. 选择 “法定配置” 并配置文件共享见证。

  7. 提供 DNS 名称。

  8. 查看摘要,然后选择 “完成”。文件共享见证人应在 “群集核心资源” 部分中处于联机状态。