SIOS SANless clusters

SIOS SANless clusters High-availability Machine Learning monitoring

  • Home
  • 产品
    • SIOS DataKeeper for Windows
    • SIOS Protection Suite for Linux
  • 新闻与活动
  • 服务器集群简单化
  • 成功案例
  • 联系我们
  • English
  • 中文 (中国)
  • 中文 (台灣)
  • 한국어
  • Bahasa Indonesia
  • ไทย

华为云SQL Server故障转移集群实例部署

9月 28, 2021 by Jason Aw Leave a Comment

华为云高可用ECS IaaS

*免责声明:虽然以下内容完全涵盖了我们产品范围内的高可用性部分,但这只是一个设置“指南”,应根据您自己的配置进行调整。

概述华为云是一家领先的云服务提供商,不仅在中国,而且在全球拥有许多数据中心。 他们汇集了华为在ICT基础设施产品和解决方案方面30多年的专业知识,致力于提供可靠、安全、高性价比的云服务,为应用赋能、驾驭数据的力量,帮助各种规模的组织在当今时代发展。智能世界。 华为云还致力于通过技术创新,带来实惠、有效、可靠的云和人工智能服务。

DataKeeper 集群版为华为云提供跨可用区的单个区域内的虚拟私有云(VPC)复制。 在这个特定的 SQL Server 群集示例中,我们将在三个可用区中启动四个实例(一个域控制器实例、两个 SQL Server 实例和一个仲裁/见证实例)。

华为云SIOS Datakeeper HA架构

DataKeeper集群版支持集群外的数据复制节点,所有节点都在华为云中。 在这个特定的 SQL Server 群集示例中,在三个可用区中启动了四个实例(一个域控制器实例、两个 SQL Server 实例和一个仲裁/见证实例)。 然后在第二个区域中启动一个额外的 DataKeeper 实例,包括两个区域中的 VPN 实例。 请参见配置从集群节点到外部容灾站点的数据复制想要查询更多的信息。 有关使用多个区域的其他信息,请参阅连接不同地域的两个VPC .

华为云SIOS Datakeeper 容灾架构

DataKeeper集群版还支持集群外的数据复制节点,只有集群外的节点在华为云中。 在这个特定的 SQL Server 集群示例中,WSFC1 和 WSFC2 位于复制到华为云实例的现场集群中。 然后在华为云的某个区域中启动一个额外的 DataKeeper 实例。 请参见配置从集群节点到外部容灾站点的数据复制想要查询更多的信息。

华为云SIOS Datakeeper混合容灾架构

要求

描述 要求
虚拟私有云 在具有三个可用区的单个区域中
实例类型 最小推荐实例类型:s3.large.2
操作系统 请参阅 DKCE 支持矩阵
弹性IP 一个弹性IP地址连接到域控制器
四个实例 一个域控制器实例、两个 SQL Server 实例和一个仲裁/见证实例
每个 SQL 服务器 ENI(弹性网络接口)有 4 个 IP · 在 Windows 中静态定义并由 DataKeeper 集群版使用的主 ENI IP · 三个 IP 由 ECS 维护,同时由 Windows 故障转移集群、DTC 和 SQLFC 使用
卷 三个卷(仅限 EBS 和 NTFS) · 一个主卷(C 驱动器) · 两个附加卷 o 一个用于故障转移群集 o 一个用于 MSDTC

发行说明在开始之前,请确保您阅读了DataKeeper 集群版发行说明了解最新信息。 强烈建议您阅读并理解DataKeeper 集群版安装指南.

创建虚拟私有云 (VPC)虚拟私有云是您在使用 DataKeeper Cluster Edition 时创建的第一个对象。

*虚拟私有云 (VPC) 是一种隔离的私有云,由公共云中可配置的共享计算资源池组成。

  1. 使用注册时指定的电子邮件地址和密码华为云, 登录华为云管理控制台.
  2. 来自服务下拉,选择虚拟私有云.

  1. 在屏幕右侧,单击创建专有网络并选择您要使用的区域。
  2. 输入要用于 VPC 的名称
  3. 通过输入您的虚拟私有云子网来定义您的虚拟私有云子网CIDR(无类别域间路由)如下所述
  4. 输入子网名称,然后单击立即创建.

*路由表将自动创建,并与新 VPC 具有“主要”关联。 您可以稍后使用它或创建另一个路由表。

*有用的链接:华为的创建虚拟私有云 (VPC)启动实例下面将引导您将实例启动到您的子网中。 您需要在一个可用区中启动两个实例,一个用于域控制器实例,另一个用于 SQL 实例。 然后,您将在另一个可用区中启动另一个 SQL 实例,在另一个可用区中启动一个仲裁见证实例。

*有用的网址:华为云ECS实例

  1. 使用注册时指定的电子邮件地址和密码华为云, 登录华为云管理控制台.
  2. 来自服务清单下拉,选择弹性云服务器.

  1. 选择购买 ECS按钮并选择计费模式、区域和可用区(可用区)来部署实例
  2. 选择您的实例类型。 (笔记:选择 s3.large.2 或更大。)。
  3. 选择一个图像。 在公共图像下,选择Windows Server 2019 数据中心 64 位英文版图片
    1. 为了配置网络,选择您的 VPC。
    2. 为了子网,选择要使用的子网,选择手动指定的 IP 地址并输入您要使用的 IP 地址
    3. 选择安全组使用或编辑并选择一个现有的。
    4. 分配 EIP如果需要ECS实例上网
    5. 点击配置高级设置并为 ECS 提供一个名称,使用密码为了登录方式并提供管理员登录的安全密码
    6. 点击立即配置在高级选项添加一个标签命名您的实例并单击确认
  4. 对实例进行最终审查并单击提交.

*重要的:记下此初始管理员密码。 需要登录到您的实例。

对所有实例重复上述步骤。

连接到实例您可以通过以下方式连接到域控制器实例远程登录从 ECS 窗格。

以管理员身份登录并输入您的管理员密码.

*最佳实践:登录后,最好更改密码。

配置域控制器实例现在已经创建了实例,我们开始设置域服务实例。

本指南不是关于如何设置 Active Domain 服务器实例的教程。 我们建议阅读文章关于如何设置和配置 Active Directory 服务器。 了解即使实例在华为云中运行,这也是 Active Directory 的常规安装,了解这一点非常重要。

静态 IP 地址为您的实例配置静态 IP 地址

  1. 连接到您的域控制器实例。
  2. 点击开始/控制面板.
  3. 点击网络和共享中心.
  4. 选择您的网络接口。
  5. 点击特性.
  6. 点击Internet 协议版本 4 (TCP/IPv4) , 然后特性.
  7. 获取您当前的IPv4地址,默认网关和DNS服务器对于网络接口从亚马逊.
  8. 在里面Internet 协议版本 4 (TCP/IPv4) 属性对话框,在使用以下 IP 地址, 输入您的IPv4地址.
  9. 在里面子网掩码框中,键入与您的虚拟私有云子网关联的子网掩码。
  10. 在里面默认网关框中,键入IP地址的默认网关,然后单击好的.
  11. 为了首选 DNS 服务器, 输入您的域控制器的主 IP 地址(例如 15.0.1.72)。
  12. 点击好的,然后选择关闭. 出口网络和共享中心.
  13. 在其他实例上重复上述步骤。

将两个 SQL 实例和见证实例加入域*在尝试加入域之前进行这些网络调整。 在您的网络适配器上,将首选 DNS 服务器添加/更改为新的域控制器地址及其 DNS 服务器。 在此更改后使用 ipconfig /flushdns 刷新 DNS 搜索列表。 在尝试加入域之前执行此操作。

*确保这件事核心网络和文件和打印机共享Windows 防火墙中允许选项。

  1. 在每个实例上,单击开始,然后右键单击计算机并选择特性.
  2. 在最右边,选择更改设置.
  3. 点击改变.
  4. 输入一个新的计算机名称.
  5. 选择领域.
  6. 进入域名–(例如 docs.huawei.com)。
  7. 点击申请.

*用控制面板确保所有实例都使用您所在位置的正确时区。

*最佳实践:建议将系统页面文件设置为系统管理(非自动)并始终使用 C: 驱动器。

控制面板 > 高级系统设置 > 性能 > 设置 > 高级 > 虚拟内存。 选择系统管理大小,卷 C:只有,然后选择放保存。

为两个 SQL 实例分配辅助私有 IP除了主 IP,您还需要向每个 SQL 实例的弹性网络接口添加三个额外的 IP(辅助 IP)。

  1. 来自服务清单下拉,选择弹性云服务器.
  2. 单击要为其添加辅助私有 IP 地址的实例。
  3. 选择NIC > 管理虚拟 IP 地址.
  4. 点击分配虚拟 IP 地址并选择手动的输入实例子网范围内的 IP 地址(例如。 对于 15.0.1.25,输入 15.0.1.26)。 点击好的.
  5. 点击更多的IP 地址行上的下拉菜单,然后选择绑定到服务器,选择要绑定IP地址的服务器和网卡。
  6. 点击好的以保存您的工作。
  7. 执行上述两个 SQL 实例.

*有用的网址:管理虚拟 IP 地址绑定虚拟IP地址到弹性公网IP或弹性云服务器创建和附加卷DataKeeper 是一个块级卷复制解决方案,它要求集群中的每个节点都具有相同大小和相同驱动器号的附加卷(系统驱动器除外)。 请查阅体积注意事项有关存储要求的其他信息。

创建卷在每个可用区为每个 SQL Server 实例创建两个卷,总共四个卷。

  1. 来自服务清单下拉,选择弹性云服务器.
  2. 单击您要管理的实例
  3. 前往磁盘标签
  4. 点击添加磁盘要添加您选择和大小的新卷,请确保选择与您打算将其附加到的 SQL 服务器相同的可用区中的卷
  5. 选中复选框以同意 SLA 并提交
  6. 点击返回服务器控制台
  7. 附如果需要,磁盘到 SQL 实例
  8. 对所有四个卷执行此操作。

*有用的网址:弹性卷服务配置集群在安装 DataKeeper Cluster Edition 之前,重要的是将 Windows Server 配置为使用节点多数仲裁(如果有奇数个节点)或节点和文件共享多数仲裁(如果有偶数个节点)。 除本主题外,请参阅 Microsoft 群集相关文档以获取分步说明。笔记:微软发布了一个修补程序对于 Windows 2008R2,它允许禁用节点投票,这可能有助于在某些多站点群集配置中实现更高级别的可用性。

添加故障转移群集将故障转移群集功能添加到两个 SQL 实例。

  1. 发射服务器管理器.
  2. 选择特征在左窗格中,然后单击添加功能在里面特征这开始添加功能向导.
  3. 选择故障转移集群.
  4. 选择安装.

验证配置

  1. 打开故障转移集群管理器.
  2. 选择故障转移群集管理器,选择验证配置.
  3. 点击下一个,然后添加你的两个SQL实例.

笔记:要搜索,请选择浏览,然后点击先进的和立即查找. 这将列出可用实例。

  1. 点击下一个.
  2. 选择仅运行我选择的测试然后点击下一个.
  3. 在里面测试选择屏幕,取消选择贮存然后点击下一个.
  4. 在出现的确认屏幕上,单击下一个.
  5. 审查验证总结报告然后点击结束.

创建集群

  1. 在故障转移集群管理器, 点击创建集群然后点击下一个.
  2. 输入你的两个SQL实例.
  3. 在验证警告页面,选择不然后点击下一个.
  4. 在用于管理集群的接入点页面,为您的 WSFC 集群输入一个唯一的名称。 然后输入故障转移群集 IP 地址对于集群中涉及的每个节点。 这是三个中的第一个次要 IP 地址之前添加到每个实例。
  5. 重要提示!取消选中“将所有可用存储添加到集群”复选框。 DataKeeper 镜像驱动器不能由集群本地管理。 它们将作为 DataKeeper 卷进行管理。
  6. 点击下一个在确认
  7. 在概括页面,查看所有警告,然后选择结束.

配置仲裁/见证

  1. 在您的仲裁/见证实例(见证)上创建一个文件夹。
  2. 共享文件夹。
    1. 右键单击文件夹并选择分享给/特定的人……
    2. 从下拉菜单中选择每个人然后点击添加.
    3. 在下面权限级别, 选择读/写.
    4. 点击分享, 然后完毕. (记下要在下面使用的此文件共享的路径。)
  3. 在故障转移集群管理器, 右键单击集群并选择更多操作和配置集群仲裁设置. 点击下一个.
  4. 在选择仲裁配置, 选择节点和文件共享多数然后点击下一个.
  5. 在配置文件共享见证屏幕,输入之前创建的文件共享的路径,然后单击下一个.
  6. 在确认页面,点击下一个.
  7. 在概括页面,点击结束.

安装和配置 DataKeeper在配置基本集群之后但在创建任何集群资源之前,安装和许可DataKeeper 集群版在所有集群节点上。 见DataKeeper 集群版安装指南详细说明。

  1. 跑DataKeeper 设置安装DataKeeper 集群版在两个 SQL 实例上。
  2. 输入您的注册码并在出现提示时重新启动。
  3. 启动数据管理员图形用户界面和连接到服务器.

*笔记: 使用的域或服务器帐户必须添加到本地系统管理员组。 该帐户必须在安装了 DataKeeper 的每台服务器上都具有管理员权限。 参考DataKeeper 服务登录 ID 和密码选择了解更多信息。

  1. 右键单击工作并连接到两个 SQL 服务器。
  2. 创建工作对于您将创建的每个镜像。 一个用于您的 DTC 资源,一个用于您的 SQL 资源。
  3. 当询问您是否要将卷自动注册为集群卷时,选择是的.

*笔记:如果在 Windows “Core”(无 GUI 的 Windows)上安装 DataKeeper Cluster Edition,请务必阅读Windows 2008R2/2012服务器核心平台上安装和使用DataKeeper详细说明。

配置 MSDTC

  1. 对于 Windows Server 2012 和 2016,在故障转移群集管理器 GUI , 选择角色,然后选择配置角色.
  2. 选择分布式事务协调器 (DTC) ,然后单击下一个.

*对于 Windows Server 2008,在故障转移群集管理器 GUI , 选择服务和应用,然后选择配置服务或应用程序然后点击下一个.

  1. 在客户端接入点屏幕,输入名称,然后输入MSDTC IP 地址对于集群中涉及的每个节点。 这是三个中的第二个次要 IP 地址之前添加到每个实例。 点击下一个.
  2. 选择MSDTC 体积然后点击下一个.
  3. 在确认页面,点击下一个.
  4. 一旦概括页面显示,点击结束.

在第一个 SQL 实例上安装 SQL

  1. 在域控制器服务器上创建一个文件夹并共享它..
    1. 例如具有“所有人”权限的“TEMPSHARE”。
  2. 创建一个子文件夹“SQL”并将 SQL .iso 安装程序复制到该子文件夹中。
  3. 在 SQL 服务器上,创建一个网络驱动器并将其附加到域控制器上的共享文件夹。
    • .例如“net use S:\TEMPSHARE
  4. 在 SQL 服务器上,将出现 S: 驱动器。 CD 到 SQL 文件夹并找到 SQL .iso 安装程序。 右键单击 .iso 文件并选择山. setup.exe 安装程序将与 SQL .iso 安装程序一起出现。

F:>Setup /SkipRules=Cluster_VerifyForErrors /Action=InstallFailoverCluster

  1. 在设置支持规则, 点击好的.
  2. 在产品密钥对话框,输入您的产品密钥然后点击下一个.
  3. 在许可条款对话框,接受许可协议然后点击下一个.
  4. 在产品更新对话框,点击下一个.
  5. 在设置支持文件对话框,点击安装.
  6. 在设置支持规则对话框,您将收到警告。 点击下一个,忽略此消息,因为它预计在多站点或非共享存储集群中。
  7. 核实集群节点配置然后点击下一个.
  8. 配置您的集群网络通过为您的 SQL 实例添加“第三个”辅助 IP 地址,然后单击下一个. 点击是的继续进行多子网配置。
  9. 进入密码对于服务帐户并单击下一个.
  10. 在错误报告对话框,点击下一个.
  11. 在添加节点规则对话框中,可以忽略跳过的操作警告。 点击下一个.
  12. 验证功能并单击安装.
  13. 点击关闭以完成安装过程。

在第二个 SQL 实例上安装 SQL安装第二个 SQL 实例与第一个类似。

  1. 在 SQL Server 上,创建一个网络驱动器并将其附加到域控制器上的共享文件夹,如上文针对第一个 SQL Server 所述。
  2. 安装 .iso 安装程序后,运行SQL 设置再次从命令行以跳过证实打开一个命令窗口,浏览到您的SQL安装目录并输入以下命令:

设置 /SkipRules=Cluster_VerifyForErrors /Action=AddNode /INSTANCENAME=”MSSQLSERVER” (笔记:这假设您在第一个节点上安装了默认实例)

  1. 在设置支持规则, 点击好的.
  2. 在产品密钥对话框,输入您的产品密钥然后点击下一个.
  3. 在许可条款对话框,接受许可协议然后点击下一个.
  4. 在产品更新对话框,点击下一个.
  5. 在设置支持文件对话框,点击安装.
  6. 在设置支持规则对话框,您将收到警告。 点击下一个,忽略此消息,因为它预计在多站点或非共享存储集群中。
  7. 核实集群节点配置然后点击下一个.
  8. 配置您的集群网络为您的 SQL 实例添加“第三个”辅助 IP 地址,然后单击下一个. 点击是的继续进行多子网配置。
  9. 进入密码对于服务帐户并单击下一个.
  10. 在错误报告对话框,点击下一个.
  11. 在添加节点规则对话框中,可以忽略跳过的操作警告。 点击下一个.
  12. 验证功能并单击安装.
  13. 点击关闭以完成安装过程。

通用集群配置本节描述了一个常见的 2 节点复制集群配置.

  1. 初始配置必须从数据管理员用户界面在集群节点之一上运行。 如果无法在集群节点上运行 DataKeeper UI,例如在仅 Windows Core 的服务器上运行 DataKeeper,请在任何运行 Windows XP 或更高版本的计算机上安装 DataKeeper UI,然后按照仅核心用于通过命令行创建镜像和注册集群资源的部分。
  2. 一旦 DataKeeper UI 运行,连接到每个节点在集群中。
  3. 创建工作使用 DataKeeper UI。 此过程创建一个镜像并将 DataKeeper Volume 资源添加到可用存储。

!重要的:确保虚拟网络名称为了网卡连接在所有集群节点上都是相同的。

  1. 如果需要额外的镜子,您可以向作业添加镜像.
  2. 随着DataKeeper 卷现在在可用存储空间,您可以像创建集群中的共享磁盘资源一样创建集群资源(SQL、文件服务器等)。 除上述内容外,请参阅 Microsoft 文档以获取有关分步群集配置说明的其他信息。

与集群(虚拟)IP 的连接除了主IP和从IP,您还需要在华为云中配置虚拟IP地址,以便它们可以路由到主节点。

  1. 来自服务清单下拉,选择弹性云服务器.
  2. 单击要为其添加群集虚拟 IP 地址的 SQL 实例之一(一个用于 MSDTC,一个用于 SQL 故障转移群集)
  3. 选择NIC > 管理虚拟 IP 地址.
  4. 点击分配虚拟 IP 地址并选择手动的输入实例子网范围内的 IP 地址(例如。 对于 15.0.1.25,输入 15.0.1.26)。 点击好的.
  5. 点击更多的IP 地址行上的下拉菜单,然后选择绑定到服务器, 选择要绑定 IP 地址的服务器和 NIC 卡。
  6. 对 MSDTC 和 SQLFC 虚拟 IP 使用相同的步骤 4. 和 5
  7. 点击好的以保存您的工作。

管理一旦 DataKeeper 卷注册到 Windows Server 故障转移群集,该卷的所有管理都将通过 Windows Server 故障转移群集界面完成。 DataKeeper 中通常可用的所有管理功能将被禁用在集群控制下的任何卷上。 相反,DataKeeper Volume 集群资源将控制镜像方向,因此当 DataKeeper Volume 在某个节点上联机时,该节点将成为镜像的源。 DataKeeper Volume 集群资源的属性还显示基本的镜像信息,例如镜像的源、目标、类型和状态。

故障排除使用以下资源帮助解决问题:

  • 故障排除问题部分
  • 对于有支持合同的客户 – http://us.sios.com/support/overview/
  • 仅适用于评估客户 –售前支持

其他资源:循序渐进:在 Windows Server 2008 R2 上配置 2 节点多站点集群——第 1 部分—— http://clusteringformeremortals.com/2009/09/15/step-by-step-configuring-a-2-node-multi-site-cluster-on-windows-server-2008-r2-%E2%80%93 -第1部分/循序渐进:在 Windows Server 2008 R2 上配置 2 节点多站点集群——第 3 部分—— http://clusteringformeremortals.com/2009/10/07/step-by-step-configuring-a-2-node-multi-site-cluster-on-windows-server-2008-r2-%E2%80%93 -第 3 部分/

Filed Under: Datakeeper, 服务器集群简单化 Tagged With: SQL Server故障转移群集

主要的云中断影响谷歌计算引擎 – 您准备好了吗? 

6月 7, 2019 by Jason Aw Leave a Comment

主要的云中断影响谷歌计算引擎你准备好了

主要的云中断影响谷歌计算引擎 – 您准备好了吗?

谷歌首次在2019年6月2日太平洋时间12:25报道了一个“问题”。现在在任何类型的灾难中都很常见,有关此次停机的报告首次出现在社交媒体上。社交媒体现在似乎是在灾难早期获取任何类型信息的最可靠的地方。

Twitter正在迅速成为从革命,自然灾害到云中断的第一个信息来源。[/ caption]

许多依赖Google Compute Engine的服务都受到了影响。我家里有三个十几岁的孩子。当所有三个孩子从他们的洞穴(又称卧室)出现时,他们的脸上出现了担忧的表情。Snapchat,Youtube和Discord都离线了!他们一定认为这肯定是天启的第一个迹象。我向他们保证,这不是新黑暗时代的开始。相反,他们应该去外面做一些码头工作。这让他们害怕回到现实状态,他们很快就赶紧跑去找别的东西来占用他们的时间。除了开玩笑之外,有许多服务被报告为关闭或仅在某些地区可用。尘埃仍然在停电的原因,广度和范围。但肯定的是,中断在规模和范围上都非常重要,影响了许多客户和服务,包括Gmail和其他G-Suite服务,Vimeo等。

许多服务都受到此次停机,Gmail,YouTube和SnapChat的影响,仅举几例。[/ caption]

在我们等待最新谷歌计算引擎停机的官方根本原因分析时,谷歌报告称“美国东部的高水平网络拥堵”导致停机。我们将不得不等待他们确定导致网络问题的原因。是人为错误,网络攻击,硬件故障还是其他什么?

您是否为此云中断做好了准备?

我在上一次重大云停运期间写道。如果您在云中运行业务关键型工作负载,无论云服务提供商如何,您都有责任为不可避免的中断做好计划。2018年9月4日的多天Azure停电与次级HVAC系统在与电风暴相关的电涌期间启动失败有关。虽然故障只发生在一个数据中心内,但是中断暴露了多个依赖于这个数据中心的服务。这使得数据中心本身成为单点故障。

有一个健全的灾难恢复计划

利用云的基础架构,通过在可用区,区域甚至云服务提供商之间不断复制关键数据来最大限度地降低风险。除了数据保护之外,制定快速恢复关键业务应用程序的程序是任何灾难恢复计划的重要组成部分。有各种复制和恢复选项可用。这包括云供应商自己提供的服务,如Azure Site Recovery,SQL Server Always On Availability Groups等特定于应用程序的解决方案,以及SIOS DataKeeper等第三方解决方案,可保护在Windows和Linux上运行的各种应用程序。拥有完全依赖于单个云提供商的灾难恢复策略会使您容易受到可能影响单个云中多个区域的情况的影响。多数据中心或多地区灾难不太可能发生。但是,正如我们在去年秋天看到的最近这次中断和Azure中断一样,即使单个数据中心本地出现故障,影响也可以在多个数据中心甚至云中的区域内实现。要最大限度地降低风险,请考虑灾难恢复站点位于主云平台之外的多云或混合云方案。云与您自己的数据中心一样容易中断。你必须采取措施为灾难做准备。我建议您首先查看最关键的业务应用程序。如果他们离线并且管理它们的云门户甚至不可用,你会怎么做?你能恢复吗?你会满足你的RTO和RPO目标吗?如果没有,也许是时候重新评估您的灾难恢复策略了。

“由于没准备好,你准备失败。” – 本杰明富兰克林

经Clusteringformeremortals.com许可转载

Filed Under: Datakeeper, 服务器集群简单化

在Azure中的Windows Server 2008 R2上配置SQL Server 2008 R2故障转移群集实例

4月 24, 2019 by Jason Aw Leave a Comment

循序渐进:如何在Azure中的Windows Server 2008 R2上配置SQL Server 2008 R2故障转移群集实例

介绍

2019年7月9日,对SQL Server 2008和2008 R2的支持将结束。这意味着定期安全更新的结束。但是,如果将这些SQL Server实例移动到Azure,Microsoft将为您提供三年的扩展安全更新,无需额外费用。如果您当前正在运行SQL Server 2008/2008 R2并且在7月9日截止日期之前无法更新到SQL Server的更高版本,那么您将希望利用此优惠而不是冒着面临未来安全漏洞的风险。未修补的SQL Server实例可能导致数据丢失,停机或破坏性数据泄露。

在Azure中运行SQL Server 2008/2008 R2时将面临的挑战之一是确保高可用性。在本地,您可能正在运行SQL Server故障转移群集(FCI)实例以实现高可用性,或者您可能正在虚拟机中运行SQL Server,并且依赖VMware HA或Hyper-V群集来获取可用性。迁移到Azure时,这些选项都不可用。 Azure中的停机是非常可能的,您必须采取措施来缓解。

为了减少停机的可能性并获得Azure 99.95%或99.99%SLA的资格,您必须利用SIOS DataKeeper。DataKeeper克服了Azure缺乏共享存储的问题,并允许您在Azure中构建SQL Server FCI,利用每个实例上的本地连接存储。SIOS DataKeeper不仅支持本指南中记录的SQL Server 2008 R2和Windows Server 2008 R2,它支持从2008 R2到Windows Server 2019的任何版本的Windows Server以及从SQL Server 2008到SQL Server 2019的任何版本的SQL Server 。

本指南将介绍在Azure中创建在Windows Server 2008 R2上运行的双节点SQL Server 2008 R2故障转移群集实例(FCI)的过程。尽管SIOS DataKeeper还支持跨可用区或区域的群集,但本指南假设每个节点都位于同一个Azure区域,但位于不同的故障域中。将使用SIOS DataKeeper代替创建SQL Server 2008 R2 FCI通常所需的共享存储。

在Azure中创建第一个SQL Server实例

本指南将利用Azure Marketplace中发布的Windows Server 2008R2映像上的SQL Server 2008R2SP3。

配置第一个实例时,您必须创建新的可用性集。在此过程中,请确保将Fault Domains的数量增加到3。这允许两个群集节点和文件共享见证每个节点驻留在它们自己的故障域中。

为每个实例添加其他磁盘。建议使用Premium或Ultra SSD。禁用用于SQL日志文件的磁盘上的缓存。在用于SQL数据文件的磁盘上启用只读缓存。有关存储最佳实践的其他信息,请参阅Azure虚拟机中的SQL Server性能指南。

如果尚未配置虚拟网络,请允许创建向导为您创建新虚拟网络。

创建实例后,请进入IP配置并使专用IP地址静态。这是SIOS DataKeeper所必需的,也是群集实例的最佳实践。

确保将虚拟网络配置为将DNS服务器设置为本地Windows AD控制器。这是为了确保您能够在以后的步骤中加入域。

在Azure中创建结束SQL Server实例

按照上面的相同步骤。除了确保将此实例放在您使用第一个实例创建的同一虚拟网络和可用性集中。

创建文件共享见证(FSW)实例

为了使Windows Server故障转移群集(WSFC)以最佳方式工作,您需要创建另一个Windows Server实例并将其放在与SQL Server实例相同的可用性集中。通过将其置于同一可用性集中,可确保每个群集节点和FSW位于不同的故障域中。因此,如果整个故障域脱机,确保您的群集保持在线。此实例不需要SQL Server。它可以是一个简单的Windows Server,因为它需要做的就是托管一个简单的文件共享。

此实例将托管WSFC所需的文件共享见证。此实例不需要具有相同的大小,也不需要附加任何其他磁盘。它的唯一目的是托管一个简单的文件共享。它实际上可以用于其他目的。在我的实验室环境中,我的FSW也是我的域控制器。

卸载SQL Server 2008 R2

配置的两个SQL Server实例中的每一个都已经安装了SQL Server 2008 R2。但是,它们作为独立的SQL Server实例安装,而不是群集实例。在我们安装集群实例之前,必须从每个实例中卸载SQL Server。最简单的方法是运行SQL安装程序,如下所示。

运行setup.exe / Action-RunDiscovery时,您将看到所有预安装的内容 

setup.exe / Action-RunDiscovery

运行setup.exe / Action =卸载/ FEATURES = SQL,AS,RS,IS,工具/ INSTANCENAME = MSSQLSERVER启动卸载过程

setup.exe / Action = Uninstall / FEATURES = SQL,AS,RS,IS,Tools / INSTANCENAME = MSSQLSERVER

运行setup.exe / Action-RunDiscovery确认卸载已完成

setup.exe / Action-RunDiscovery

在第二个实例上再次运行此卸载过程。

将实例添加到域

所有这三个实例都需要添加到Windows域中。

添加Windows故障转移群集功能

需要将故障转移群集功能添加到两个SQL Server实例中

Add-WindowsFeature故障转移 - 群集

关闭Windows防火墙

为简单起见,请在安装和配置SQL Server FCI期间关闭Windows防火墙。有关保护Azure资源的建议,请参阅Azure网络安全最佳实践。可以在此处找到所需Windows端口的详细信息,此处的SQL Server端口和此处的SIOS DataKeeper端口,我们稍后将配置的内部负载均衡器还需要端口59999访问。因此,请务必在安全配置中考虑到这一点。

NetSh Advfirewall设置allprofiles状态

安装Windows Server 2008 R2 SP1的Convenience Rollup更新

为了在Azure中配置Windows Server 2008 R2实例,需要进行关键更新(kb2854082)。该更新以及更多内容包含在Windows Server 2008 R2 SP1的便捷汇总更新中。在每个SQL Server实例上安装此更新。

格式化存储

配置两个SQL Server实例时附加的其他磁盘需要格式化。对每个实例上的每个卷执行以下操作。

微软最佳实践说如下……

“NTFS分配单元大小:格式化数据磁盘时,建议您对数据和日志文件以及TempDB使用64 KB的分配单元大小。”

运行群集验证

运行集群验证以确保一切准备好进行集群。

您的报告将包含有关存储和网络的警告。您可以忽略这些警告,因为我们知道没有共享磁盘,并且服务器之间只存在单个网络连接。您可能还会收到有关网络绑定顺序的警告,该警告也可以忽略。如果您遇到任何错误,您必须在继续之前解决这些错误。

创建群集

在Azure中创建集群的最佳实践是使用Powershell,如下所示。Powershell允许我们指定静态IP地址,而GUI方法则不允许。不幸的是,Azure的DHCP实现与Windows Server Failover Clustering不兼容。如果您使用GUI方法,您将使用重复的IP地址作为群集IP地址。这不是世界末日,但你需要在我展示时解决这个问题。

正如我所说,Powershell方法通常效果最好。但是,出于某种原因,它似乎在Windows Server 2008 R2上失败,如下所示。

New-Cluster -Name cluster1 -Node sql1,sql2 -StaticAddress 10.1.0.100 -NoStorage

您可以尝试这种方法,如果它适合您 – 太棒了!我需要回过头来再研究一下,看看它是不是侥幸。如果Powershell不工作,我需要探索的另一个选项是Cluster.exe。运行cluster / create /?使用不推荐使用的cluster.exe命令提供用于创建集群的正确语法。

但是,如果Powershell或Cluster.exe使您失败,则以下步骤说明了如何通过Windows Server Failover Clustering UI创建群集,包括修复将分配给群集的重复IP地址。

请记住,您在此处指定的名称只是群集名称对象(CNO)。这不是SQL客户端用于连接群集的名称;我们将在稍后的步骤中定义SQL Server群集设置期间。 

此时,已创建群集,但由于重复的IP地址问题,您可能无法使用Windows Server Failover Clustering UI连接到群集。

修复重复的IP地址

如前所述,如果使用GUI创建集群,则无法为集群选择IP地址。由于您的实例配置为使用DHCP(Azure中需要),因此GUI希望使用DHCP自动为您分配IP地址。遗憾的是,Azure的DHCP实现无法按预期工作,并且群集将分配其中一个节点已使用的相同地址。虽然群集将正确创建,但在解决此问题之前,您将很难连接到群集。

要解决此问题,请从其中一个节点运行以下命令,以确保在该节点上启动群集服务。

净启动clussvc / fq

在同一节点上,您现在应该能够连接到Windows Server Failover Clustering UI,在那里您将看到IP地址无法联机。

打开群集IP地址的属性并将其从DHCP更改为静态,并为其分配未使用的IP地址。

将Name资源联机

添加文件共享见证

接下来我们需要添加文件共享见证。在我们配置为FSW的第三台服务器上,创建一个文件夹并共享它,如下所示。您需要在共享和安全级别授予群集名称对象(CNO)读/写权限,如下所示。

创建共享后,在其中一个群集节点上运行“配置群集仲裁”向导,然后按照以下步骤操作。

为DataKeeper创建服务帐户

我们几乎准备好安装DataKeeper。但是,在我们这样做之前,您需要创建一个Domain帐户并将其添加到每个SQL Server群集实例上的Local Administrators组。我们将在安装DataKeeper时指定此帐户。

安装DataKeeper

在两个SQL Server群集节点中的每个节点上安装DataKeeper,如下所示。

这是我们将指定我们添加到每个本地域管理员组的域帐户的位置。

配置DataKeeper

在两个群集节点中的每个节点上安装DataKeeper后,即可配置DataKeeper。

注 – 以下步骤中遇到的最常见错误与安全性相关,通常由预先存在的Azure安全组阻止所需端口。请参阅SIOS文档以确保服务器可以通过所需的端口进行通信。

首先,您必须连接到两个节点中的每一个。

如果一切配置正确,您应该在“服务器概述”报告中看到以下内容。

接下来,创建一个新工作并按照下面说明的步骤

在此处选择“是”以在“可用存储”中注册DataKeeper卷资源

为每个卷完成上述步骤。完成后,您应该在Windows Server故障转移群集UI中看到以下内容。

您现在已准备好将SQL Server安装到群集中。

注 – 此时,只能在当前托管可用存储的节点上访问复制卷。这是预期的,所以不要担心!

在第一个节点上安装SQL Server

在第一个节点上,运行SQL Server安装程序。

选择“新建SQL Server故障转移群集安装”,然后按照说明执行操作。

只选择您需要的选项。 

请注意,本文档假定您使用的是SQL Server的默认实例。如果使用命名实例,则需要确保锁定其侦听的端口,并在配置负载平衡器时使用该端口。您还需要为SQL Server Browser服务(UDP 1434)创建负载平衡器规则,以便连接到命名实例。本指南不涉及这两个要求。但是,如果您需要命名实例,那么如果您执行这两个额外步骤,它将起作用。

在这里,您需要指定一个未使用的IP地址

转到“数据目录”选项卡并重定位数据和日志文件。在本指南的最后,我们将讨论将tempdb重定位到非镜像DataKeeper卷以获得最佳性能。现在,只需将其保留在其中一个群集磁盘上即可。

在第二个节点上安装SQL

在第二个节点上再次运行SQL Server安装程序。然后,选择“将节点添加到SQL Server故障转移群集”。

恭喜你,差不多完成了!但是,由于Azure缺乏对免费ARP的支持,我们需要配置内部负载均衡器(ILB)以协助客户端重定向,如以下步骤所示。

更新SQL群集IP地址

为了使ILB正常运行,必须从其中一个集群节点运行以下命令。SQL Cluster IP使SQL Cluster IP地址能够响应ILB运行状况探测,同时还将子网掩码设置为255.255.255.255,以避免IP地址与运行状况探测冲突。

cluster res <IPResourceName> / priv enabledhcp = 0 address = <ILBIP> probeport = 59999 subnetmask = 255.255.255.255

注意 – 我不知道它是不是侥幸。有时候我运行了这个命令,它看起来很有效,但它没有完成工作,我必须重新开始。我可以判断它是否有效的方法是查看SQL Server IP资源的子网掩码。如果它不是255.255.255.255那么你知道它没有成功运行。 它可能只是一个GUI刷新问题。请尝试重新启动群集GUI以验证子网掩码是否已更新。

成功运行后,使资源脱机并将其重新联机以使更改生效。

创建负载均衡器

最后一步是创建负载均衡器。在这种情况下,我们假设您正在运行SQL Server的默认实例,侦听端口1433。

创建负载均衡器时定义的专用IP地址将与SQL Server FCI使用的地址完全相同。

仅将两个SQL Server实例添加到后端池。不要将FSW添加到后端池。

在此负载平衡规则中,您必须启用浮动IP。

测试群集

最简单的测试是在被动节点上打开SQL Server Management Studio并连接到群集。恭喜!你连接时你做的一切都正确!如果你无法连接,不要害怕。我写了一篇博客文章来帮助解决问题。管理群集与管理传统共享存储群集完全相同。一切都通过故障转移群集管理器控制。

可选 – 重定位TempDB

为获得最佳性能,建议将tempdb移至本地非复制SSD。但是,SQL Server 2008 R2要求tempdb位于群集磁盘上。SIOS有一个称为非镜像卷资源的解决方案,可以解决这个问题。建议创建本地SSD驱动器的非镜像卷资源并在那里移动tempdb。请注意,本地SSD驱动器是非持久性的。您必须注意确保每次服务器重新启动时都会重新创建包含tempdb的文件夹和该文件夹的权限。

在创建本地SSD的非镜像卷资源后,请按照本文中的步骤重新定位tempdb。必须将该文章中描述的启动脚本添加到每个群集节点。

经Clusteringformeremortals.com许可转载

Filed Under: Datakeeper, 服务器集群简单化

具有新Azure ILB功能的多实例SQL Server故障转移群集

4月 14, 2019 by Jason Aw Leave a Comment

新的Azure ILB功能允许您构建多实例SQL Server故障转移群集

在今年9月的Microsoft Ignite上,微软围绕Azure发布了一些声明。其中一个公告是内部负载平衡器上的多个VIP的普遍可用性。为什么这对SQL Server DBA如此重要?好吧,到目前为止,如果要在Azure中部署高可用性SQL Server,则每个群集或单个可用性组侦听器仅限于一个SQL Server FCI。此限制强制您为要在故障转移群集中保护的每个SQL Server实例部署新群集。如果您希望在AlwaysOn AG配置中进行自动故障转移和客户端重定向,它还会强制您将所有数据库分组到单个可用性组中。

如何摆脱这些限制?

这些新的ILB功能现已解除了这些限制。在这篇文章中,我将引导您完成在Azure中部署包含两个SQL Server实例的SQL Server FCI的过程。在以后的文章中,我将引导您完成SQL Server AlwaysOn AG的相同过程。

让我们从多实例SQL Server故障转移群集开始

如我在Azure资源管理器中部署Microsoft SQL Server 2014故障转移群集的帖子中所述,在Azure中构建基本的单实例SQL Server FCI。该帖子描述了创建多实例SQL Server故障转移群集的过程。 使用DataKeeper创建群集中使用的复制卷资源,尝试创建内部负载平衡器(ILB),然后修复SQL Server群集IP资源以使用ILB。如果您想跳过该过程并快速启动配置,您可以始终使用Azure部署模板,使用SIOS DataKeeper创建双节点SQL Server FCI假设您现在有一个基本的双节点SQL Server FCI,添加第二个命名的步骤实例如下:

  1. 在另一个当前未使用的卷上创建另一个DataKeeper卷资源。如果没有可用卷,则可能需要向Azure实例添加其他磁盘。作为此卷创建过程的一部分,新的DataKeeper卷资源将在群集中的可用存储中注册。有关详细信息,请参阅前面引用的文章。
  2. 在第一个节点上安装SQL Server的命名实例,指定我们刚刚创建的DataKeeper卷作为存储位置。
  3. “添加节点”到第二个节点上的群集。
  4. 将此新命名实例的端口号锁定到未使用的端口。在我的例子中,我使用端口1440。

将ILB调整为第二个实例

接下来,我们必须调整ILB以将流量重定向到第二个实例。以下是您需要遵循的步骤:添加前端IP地址,该地址与您用于第二个SQL Server实例的SQL群集IP地址相同,如下所示。具有新Azure ILB功能的多实例SQL Server故障转移群集 接下来,我们将需要添加另一个探测,因为实例可以在不同的服务器上运行。如下图所示,我添加了一个探测端口59998(而不是通常的59999)的探测器。我们需要确保新规则引用此探针。我们还需要记住该端口号,因为我们需要在此过程的最后一步更新与此实例关联的IP地址。具有新Azure ILB功能的多实例SQL Server故障转移群集 现在我们需要向ILB添加两个新规则来引导目标为第二个SQL实例的流量。当然我们需要添加一个规则来重定向TCP端口1440(我用于SQL命名实例的端口),但由于我们现在使用的是命名实例,我们还需要一个端口来支持SQL Server Browser服务,UDP端口1434。在下面描述SQL Server Browser服务规则的图片中,请注意前端IP地址引用了新的FrontendIP地址(10.0.0.201),端口和后端端口的UDP端口1434。在池中,您需要指定群集中的两个服务器,最后确保选择刚刚创建的新Health Probe。具有新Azure ILB功能的多实例SQL Server故障转移群集 我们现在将添加TCP / 1440规则。如下图所示,为端口TCP 1440添加新规则,或为SQL Server的命名实例锁定的任何端口。同样,请务必选择新的FrontEnd IP地址和新的Health Probe(59998)。此外,请确保启用了浮动IP(直接服务器返回)。具有新Azure ILB功能的多实例SQL Server故障转移群集

最后一步

现在已配置负载均衡器,最后一步是运行PowerShell脚本以更新与此第二个SQL Server实例关联的新群集IP地址。此PowerShell脚本只需要在其中一个群集节点上运行。

#定义变量

$ ClusterNetworkName =“”

#群集网络名称 
(在更高版本的Windows Server 2012上使用Get-ClusterNetwork查找名称)

$ IPResourceName =“”

#SQL Server的第二个实例的IP地址资源名称

$ ILBIP =“”

#第二个SQL实例的IP地址,
它应该与新的前端IP地址相同

导入模块FailoverClusters

#如果您使用的是Windows Server 2012或更高版本:

Get-ClusterResource $ IPResourceName | 
Set-ClusterParameter -Multiple @ {Address = $ ILBIP; ProbePort = 59998;
子网掩码= “255.255.255.255” 网络= $ ClusterNetworkName; EnableDHCP时= 0}

#如果您使用的是Windows Server 2008 R2,请使用以下命令:

#cluster res $ IPResourceName / priv enabledhcp = 0 address = $ ILBIP probeport = 59998  
子网掩码= 255.255.255.255

您现在在Azure中拥有一个功能齐全的多实例SQL Server FCI。如果您有任何问题要构建具有从Clusteringformeremortals.com重现的新Azure ILB功能的多实例SQL Server故障转移群集

Filed Under: Datakeeper, 服务器集群简单化

具有新Azure ILB功能的多实例SQL Server故障转移群集

4月 14, 2019 by Jason Aw Leave a Comment

新的Azure ILB功能允许您构建多实例SQL Server故障转移群集

在今年9月的Microsoft Ignite上,微软围绕Azure发布了一些声明。其中一个公告是内部负载平衡器上的多个VIP的普遍可用性。为什么这对SQL Server DBA如此重要?好吧,到目前为止,如果要在Azure中部署高可用性SQL Server,则每个群集或单个可用性组侦听器仅限于一个SQL Server FCI。此限制强制您为要在故障转移群集中保护的每个SQL Server实例部署新群集。如果您希望在AlwaysOn AG配置中进行自动故障转移和客户端重定向,它还会强制您将所有数据库分组到单个可用性组中。

如何摆脱这些限制?

这些新的ILB功能现已解除了这些限制。在这篇文章中,我将引导您完成在Azure中部署包含两个SQL Server实例的SQL Server FCI的过程。在以后的文章中,我将引导您完成SQL Server AlwaysOn AG的相同过程。

让我们从多实例SQL Server故障转移群集开始

如我在Azure资源管理器中部署Microsoft SQL Server 2014故障转移群集的帖子中所述,在Azure中构建基本的单实例SQL Server FCI。该帖子描述了创建多实例SQL Server故障转移群集的过程。 使用DataKeeper创建群集中使用的复制卷资源,尝试创建内部负载平衡器(ILB),然后修复SQL Server群集IP资源以使用ILB。如果您想跳过该过程并快速启动配置,您可以始终使用Azure部署模板,使用SIOS DataKeeper创建双节点SQL Server FCI假设您现在有一个基本的双节点SQL Server FCI,添加第二个命名的步骤实例如下:

  1. 在另一个当前未使用的卷上创建另一个DataKeeper卷资源。如果没有可用卷,则可能需要向Azure实例添加其他磁盘。作为此卷创建过程的一部分,新的DataKeeper卷资源将在群集中的可用存储中注册。有关详细信息,请参阅前面引用的文章。
  2. 在第一个节点上安装SQL Server的命名实例,指定我们刚刚创建的DataKeeper卷作为存储位置。
  3. “添加节点”到第二个节点上的群集。
  4. 将此新命名实例的端口号锁定到未使用的端口。在我的例子中,我使用端口1440。

将ILB调整为第二个实例

接下来,我们必须调整ILB以将流量重定向到第二个实例。以下是您需要遵循的步骤:添加前端IP地址,该地址与您用于第二个SQL Server实例的SQL群集IP地址相同,如下所示。具有新Azure ILB功能的多实例SQL Server故障转移群集 接下来,我们将需要添加另一个探测,因为实例可以在不同的服务器上运行。如下图所示,我添加了一个探测端口59998(而不是通常的59999)的探测器。我们需要确保新规则引用此探针。我们还需要记住该端口号,因为我们需要在此过程的最后一步更新与此实例关联的IP地址。具有新Azure ILB功能的多实例SQL Server故障转移群集 现在我们需要向ILB添加两个新规则来引导目标为第二个SQL实例的流量。当然我们需要添加一个规则来重定向TCP端口1440(我用于SQL命名实例的端口),但由于我们现在使用的是命名实例,我们还需要一个端口来支持SQL Server Browser服务,UDP端口1434。在下面描述SQL Server Browser服务规则的图片中,请注意前端IP地址引用了新的FrontendIP地址(10.0.0.201),端口和后端端口的UDP端口1434。在池中,您需要指定群集中的两个服务器,最后确保选择刚刚创建的新Health Probe。具有新Azure ILB功能的多实例SQL Server故障转移群集 我们现在将添加TCP / 1440规则。如下图所示,为端口TCP 1440添加新规则,或为SQL Server的命名实例锁定的任何端口。同样,请务必选择新的FrontEnd IP地址和新的Health Probe(59998)。此外,请确保启用了浮动IP(直接服务器返回)。具有新Azure ILB功能的多实例SQL Server故障转移群集

最后一步

现在已配置负载均衡器,最后一步是运行PowerShell脚本以更新与此第二个SQL Server实例关联的新群集IP地址。此PowerShell脚本只需要在其中一个群集节点上运行。

#定义变量

$ ClusterNetworkName =“”

#群集网络名称 
(在更高版本的Windows Server 2012上使用Get-ClusterNetwork查找名称)

$ IPResourceName =“”

#SQL Server的第二个实例的IP地址资源名称

$ ILBIP =“”

#第二个SQL实例的IP地址,
它应该与新的前端IP地址相同

导入模块FailoverClusters

#如果您使用的是Windows Server 2012或更高版本:

Get-ClusterResource $ IPResourceName | 
Set-ClusterParameter -Multiple @ {Address = $ ILBIP; ProbePort = 59998;
子网掩码= “255.255.255.255” 网络= $ ClusterNetworkName; EnableDHCP时= 0}

#如果您使用的是Windows Server 2008 R2,请使用以下命令:

#cluster res $ IPResourceName / priv enabledhcp = 0 address = $ ILBIP probeport = 59998  
子网掩码= 255.255.255.255

您现在在Azure中拥有一个功能齐全的多实例SQL Server FCI。如果您有任何问题要构建具有从Clusteringformeremortals.com重现的新Azure ILB功能的多实例SQL Server故障转移群集

Filed Under: Datakeeper, 服务器集群简单化

  • 1
  • 2
  • 3
  • …
  • 8
  • Next Page »

最近的帖子

  • 在 Nutanix 环境中选择高可用性解决方案的 10 个注意事项
  • 我的服务器是一次性的吗?高可用性软件如何融入云最佳实践
  • 灾难频发世界的数据恢复策略
  • DataKeeper 和棒球:灾难恢复的战略举措
  • SQL Server 停机风险预算

最热门的帖子

加入我们的邮件列表

Copyright © 2025 · Enterprise Pro Theme on Genesis Framework · WordPress · Log in