30、存储与集群管理技术全解析

存储与集群管理技术全解析

1. 超融合存储空间直接集群

超融合存储空间直接(Storage Spaces Direct)允许在虚拟机上安装 Hyper - V,创建嵌套虚拟机并进行集群化。不过,这种方式速度不快,主机服务器物理磁盘处理的磁盘请求会很混乱,但确实可行。其缺点是无法独立扩展软件定义文件服务器(SoFS)和 Hyper - V 服务。若要添加服务器为存储池提供更多存储,必须同时向 Hyper - V 集群添加节点。

超融合存储空间直接集群的部署与标准 Hyper - V 集群差异不大,只是在创建集群后必须启用 S2D。S2D 的一个优点是它利用了管理员可能已经掌握的技能。与设置存储区域网络(SAN)相比,存储空间直接要容易得多。

若需详细的超融合存储空间直接集群部署步骤,可参考:https://technet.microsoft.com/en - us/windows - server - docs/storage/storage - spaces/hyper - converged - solution - using - storage - spaces - direct

快速检查
以下哪种共享存储解决方案能让集群利用计算机内的本地磁盘?
1. 光纤通道
2. 集群共享卷
3. 串行连接 SCSI
4. 存储空间直接

答案 :存储空间直接(选项 4)可以创建一个由集群所有节点的本地磁盘存储组成的存储池,并与整个集群共享。

2. 管理故障转移集群

安装和配置故障转移集群后,需要使用故障转移集群管理器和 FailoverClusters 模块中的 Windows PowerShell cmdlet 等工具进行持续的维护和管理任务。具体包括以下方面:

2.1 配置特定角色设置,包括持续可用共享

在故障转移集群管理器中安装的每个集群角色或使用 PowerShell cmdlet 安装的角色都有特定于其功能的设置。在故障转移集群管理器的“角色”页面上,选择一个角色时,“操作”窗格中会显示该角色的相关操作。

  • 虚拟机角色设置 :对于虚拟机角色,有类似于 Hyper - V 管理器的操作,如启动、停止和连接到虚拟机,以及打开其设置对话框。“移动”菜单可用于执行实时迁移、快速迁移和迁移虚拟机存储。
  • 持续可用共享设置 :安装文件服务器集群角色时,可以选择创建通用文件服务器或扩展文件服务器,为 Hyper - V 和 SQL Server 等应用程序提供存储。这两个角色都可以通过 SMB 3.0 协议创建持续可用的共享。

SMB 3.0 协议的增强功能在集群环境中特别有用,如下表所示:
| 功能 | 描述 |
| ---- | ---- |
| SMB 透明故障转移 | 允许客户端会话在集群节点之间无中断转移,默认在所有故障转移集群文件服务器共享上实现,客户端和服务器都必须支持 SMB 3.0(Windows Server 2012 或 Windows 8) |
| SMB 扩展 | 使客户端可以同时从集群中的所有节点访问共享,有效增加共享的可用带宽,扩展共享仅对运行 SMB 2 和 3 版本的客户端可用 |
| SMB 多通道 | 允许文件服务器组合多个网络接口适配器的带宽,以实现增强的吞吐量和容错能力,SMB 可以自动检测多个适配器的存在并进行自我配置 |
| SMB 直接 | 使用远程直接内存访问(RDMA)在远程系统之间进行直接内存到内存的数据传输,最大限度减少系统处理器的使用,客户端和服务器都必须使用 SMB 3.0 |
| SMB 加密 | 使用 SMB 3.0 在服务器和客户端之间提供端到端 AES 加密 |

在故障转移集群管理器中创建或修改文件服务器共享时,“新建共享向导”会显示“配置共享设置”页面。默认选中的“启用持续可用性”复选框可激活 SMB 透明故障转移功能,“加密数据访问”复选框可启用 SMB 加密。

graph LR
    A[创建或修改文件服务器共享] --> B[打开新建共享向导]
    B --> C[显示配置共享设置页面]
    C --> D{启用持续可用性?}
    D -- 是 --> E[激活 SMB 透明故障转移]
    C --> F{加密数据访问?}
    F -- 是 --> G[启用 SMB 加密]
2.2 配置 VM 监控

在集群中运行 Hyper - V 的一个优点是集群能够监控虚拟机上的特定服务,在出现问题时进行报告并采取配置好的操作。可以选择与虚拟机上关键应用程序关联的服务,并配置虚拟机在出现问题时重启该服务或故障转移到其他节点。

使用故障转移群集中的 VM 监控,虚拟机必须满足以下先决条件:
- 虚拟机必须与 Hyper - V 主机在同一域中。
- 虚拟机上的 Windows 防火墙必须启用“虚拟机监控”组中的入站规则。
- Hyper - V 集群管理员必须是虚拟机上本地管理员组的成员。

配置特定虚拟机监控的步骤如下:
1. 打开故障转移集群管理器,点击“角色”显示“角色”页面。
2. 选择要监控的虚拟机角色,在“操作”窗格中选择“更多操作” -> “配置监控”。
3. 在出现的“选择服务”对话框中,选择要监控的服务的复选框,然后点击“确定”。

也可以使用 Windows PowerShell 窗口中的 Add - ClusterVMMonitoredItem cmdlet 进行配置,例如:

add - clustervmmonitoreditem –virtualmachine clustervm3 - service spooler

当所选服务出现问题时,首先由虚拟机上的服务控制管理器处理,它使用各个服务的属性来控制其操作。如果服务控制管理器的努力失败,服务仍然故障,集群将接管并执行自己的恢复操作:
- 集群在主机的系统日志中创建一个事件 ID 为 1250 的条目。
- 集群将虚拟机的状态更改为“虚拟机关键应用程序”。
- 集群在同一节点上重启虚拟机。如果服务继续失败,集群将该角色故障转移到其他节点。

可以通过打开虚拟机集群 WMI 属性表(位于集群主页的“集群核心资源”框中)来修改这些默认的重启活动。

3. 配置故障转移和偏好设置

故障转移是指在集群节点上运行的角色无法继续运行时,集群将其移动到另一个节点。故障转移可能由于多种原因发生,如电源故障、软件故障或管理员为维护而关闭节点。故障回复是指在导致故障转移的问题解决后,集群将角色移回其原始节点。

管理员可以通过修改角色的属性来控制集群在节点选择和特定角色的故障转移行为方面的行为。在故障转移集群管理器的“角色”页面上,选择一个角色并点击“操作”窗格中的“属性”,将显示该角色的属性表。

  • 常规选项卡 :可以指定希望运行该角色的节点。虽然节点在功能上是相同的,但可以通过选择其中一个节点的复选框并使用“上移”和“下移”按钮来更改偏好顺序。在“优先级”下拉列表中,可以指定“高”、“中”或“低”值,以指示该角色相对于集群中其他角色的启动时间。还有“无自动启动”设置,可防止节点随集群启动,需要手动启动。
  • 故障转移选项卡 :可以指定在“周期”设置指定的时间间隔内,集群应尝试重启角色或将其故障转移到其他节点的最大次数。还可以指定角色是否应故障回复到首选节点,以及是在首选节点恢复联机后立即进行,还是等待指定的时间间隔。
graph LR
    A[选择角色] --> B[点击属性]
    B --> C[显示角色属性表]
    C --> D[常规选项卡]
    D --> E[指定首选节点]
    D --> F[设置优先级]
    C --> G[故障转移选项卡]
    G --> H[设置最大故障转移次数]
    G --> I[设置故障回复选项]
4. 实现扩展和感知站点的故障转移集群

容错是为各种可能情况进行规划,故障转移集群是预测硬件和软件故障的一种手段。但有时会发生大规模的故障,影响的不仅仅是硬盘和服务器,还有建筑物和城市。因此,希望在任何情况下都能保持应用程序运行的组织可以创建扩展集群。

扩展集群是指节点分布在不同站点(通常是不同城市)的集群。这样,在发生灾难(如飓风或地震)时,集群可以将其角色故障转移到远离问题的节点。然而,扩展集群给管理员带来了一些难题,如如何确保不同城市的集群节点使用相同的数据,以及如何在节点不可互换的情况下控制故障转移行为。

许多扩展集群使用非对称存储,即每个站点都有自己的共享存储解决方案。管理员可以使用 Windows Server 2016 中的存储复制功能来同步站点之间的数据。

即使解决了共享数据问题,扩展集群仍存在其他问题。例如,在故障转移情况下,集群如何区分位于纽约和旧金山的节点?Windows Server 2016 故障转移集群通过提供创建感知站点的故障转移集群的功能来解决这个问题。

感知站点的故障转移集群包含基于为每个节点配置的站点属性值的故障域。集群使用这些故障域来确定故障转移和其他角色转移期间的行为。创建感知站点的集群的步骤如下:
1. 使用 New - ClusterFaultDomain PowerShell cmdlet 定义站点。例如:

new - clusterfaultdomain –name ny –type site –description "primary" –location "new york ny"
new - clusterfaultdomain –name sf –type site –description "secondary" –location "san francisco ca"
  1. 使用 Set - ClusterFaultDomain cmdlet 将集群节点分配到创建的站点。例如,对于一个四节点集群,每个站点有两个节点:
set - clusterfaultdomain –name node1 –parent ny
set - clusterfaultdomain –name node2 –parent ny
set - clusterfaultdomain –name node3 –parent sf
set - clusterfaultdomain –name node4 –parent sf

配置这些属性后,集群使用站点信息来控制节点之间的资源转移活动。例如,当一个节点发生故障时,集群将首先尝试将其故障转移到同一站点的另一个节点。只有当该站点的所有节点都不可用时,才会将其故障转移到其他站点的节点,这称为故障转移亲和性。

还可以配置集群用于确定节点是否正常运行的心跳设置。在扩展集群中,站点之间的通信延迟通常比子网之间的延迟长,因此可以修改以下设置以防止节点被错误地判定为故障:
- CrossSiteDelay:指定发送到不同站点节点的心跳之间的时间(以毫秒为单位),默认设置为 1000。
- CrossSiteThreshold:指定在将不同站点的节点视为故障之前必须错过的心跳次数,默认设置为 20。

配置这些设置的 PowerShell 命令如下:

(get - cluster).crosssitedelay = 2000
(get - cluster).crosssitethreshold = 30

还可以使用以下命令将创建的一个站点配置为集群的首选站点:

(get - cluster).preferredsite = ny

这样,在集群冷启动时,角色将在首选站点启动,并且在仲裁协商期间,首选站点将优先,必要时以牺牲其他站点为代价保持首选站点的运行。

5. 启用和配置节点公平性

维护、故障转移和其他活动可能导致 Hyper - V 集群上的虚拟机迁移,从而使一些节点过度使用,而另一些节点几乎未被利用。Windows Server 2016 包含一个名为节点公平性的功能,用于平衡节点之间的负载分布。

节点公平性通过评估每个节点的内存和 CPU 负载随时间的变化,尝试识别过度使用的节点。当集群检测到过载节点时,它会在遵守故障域和首选所有者的情况下,将虚拟机实时迁移到空闲节点以平衡负载。

节点公平性默认启用,但可以配置其是否运行以及何时进行负载平衡,还可以配置负载平衡的激进程度。可以在集群属性表的“平衡器”选项卡中进行配置,也可以使用 Windows PowerShell 进行配置:
- (Get - Cluster).AutoBalancerMode :指定节点公平性是否运行以及多久进行一次负载平衡,取值如下:
- 0:节点公平性禁用
- 1:节点加入集群时进行负载平衡
- 2:节点加入集群时进行负载平衡,此后每 30 分钟进行一次,这是默认设置。
- (Get - Cluster).AutoBalancerLevel :指定节点公平性评估每个节点负载的激进程度,取值如下:
- 1:低。当主机负载超过 80% 时迁移虚拟机,这是默认设置。

存储与集群管理技术全解析

6. 管理集群节点中的 VM 移动

在安装、配置并运行集群后,可能需要更改集群节点间虚拟机的分布。Windows Server 2016 提供了多种移动 VM 并控制其移动行为的方法。

6.1 执行实时迁移

创建集群上的虚拟机角色时,先创建虚拟机,再通过高可用性向导或 PowerShell 中的 Add - ClusterVirtualMachineRole cmdlet 为其配置高可用性,这会自动为该角色启用实时迁移,无需手动配置 Hyper - V 服务器以启用实时迁移或选择认证协议。

创建好集群中的虚拟机后,执行实时迁移的操作如下:
- 在“角色”页面上右键单击 VM,在上下文菜单中选择“移动” -> “实时迁移”,可以让集群选择最佳节点,也可以选择集群中的任意节点作为目标。
- 使用 PowerShell 中的 Move - ClusterVirtualMachineRole cmdlet 启动实时迁移,示例代码如下:

move - clustervirtualmachinerole - name clustervm1 - node server2
6.2 执行快速迁移

快速迁移是实时迁移的前身,是最初用于将虚拟机从一个集群节点移动到另一个节点的工具。尽管在 Windows Server 2012 中大部分被实时迁移取代,但在某些情况下仍有使用价值。

与实时迁移相比,实时迁移中 VM 从一个节点到另一个节点的切换在大多数情况下几乎是瞬间完成的,而快速迁移通常会有短暂的暂停。快速迁移过程中数据文件不会移动,且可以对运行或停止的 VM 执行快速迁移,而实时迁移要求 VM 必须处于运行状态。实际中,管理员通常在无法执行实时迁移时才使用快速迁移。

运行中的虚拟机角色的典型快速迁移过程如下:
1. 集群暂停虚拟机角色,暂停 VM 的 I/O 和 CPU 功能。
2. 集群将源 VM 的内存内容和系统状态保存到共享存储,并将 VM 置于“保存”状态。
3. 集群将指定源 VM 文件位置的符号链接复制到目标节点,并将源 VM 文件的所有权转移到目标 VM。
4. 集群从源 VM 中移除符号链接。
5. 集群从“保存”状态恢复角色,将内存内容和系统状态从共享存储复制到目标 VM(现在在目标节点上运行)。

快速迁移与实时迁移的根本区别在于,快速迁移先将 VM 的内存复制到磁盘,再从磁盘复制到目标,而实时迁移直接将内存从源复制到目标。快速迁移的暂停时间取决于 VM 内存的大小和存储子系统的性能,从源 VM 直接复制到目标 VM 的唯一数据是微小的符号链接。

当虚拟机停止时,快速迁移只需要将符号链接从源转移到目标,此时过程几乎是瞬间完成的。

graph LR
    A[开始快速迁移] --> B[暂停虚拟机角色]
    B --> C[保存内存和系统状态到共享存储]
    C --> D[复制符号链接到目标节点]
    D --> E[转移文件所有权]
    E --> F[移除源 VM 符号链接]
    F --> G[恢复角色]
6.3 执行存储迁移

文档未详细提及存储迁移的具体操作步骤,但存储迁移也是管理集群节点中 VM 移动的重要方法之一,它可以帮助调整虚拟机存储的位置,以优化存储资源的使用。

6.4 导入、导出和复制 VMs

导入、导出和复制 VMs 是常见的操作,可用于备份、迁移或创建新的虚拟机副本。不过文档未给出具体的操作步骤,但一般来说,这些操作可以通过 Hyper - V 管理器或 PowerShell 命令来完成。

6.5 配置 VM 网络健康保护

文档未详细说明配置 VM 网络健康保护的具体内容,但该功能有助于确保虚拟机网络的稳定和健康,防止因网络问题导致虚拟机出现故障。

6.6 配置关机时排水

文档未对配置关机时排水的操作进行详细描述,但该操作可以在节点关机时,有序地将虚拟机迁移到其他节点,避免数据丢失和服务中断。

综上所述,在管理存储和集群时,涉及到多种技术和操作,包括超融合存储空间直接集群的部署、故障转移集群的管理、VM 移动的管理等。这些技术和操作相互关联,共同保障了系统的高可用性、容错性和资源的合理分配。通过合理运用这些技术和操作,可以提高系统的性能和稳定性,满足不同场景下的业务需求。

操作类型 关键信息
实时迁移 自动启用,可通过界面或 PowerShell 操作
快速迁移 有短暂暂停,适用于特定场景
存储迁移 未详细提及步骤,用于优化存储资源
导入、导出和复制 VMs 可通过 Hyper - V 管理器或 PowerShell 完成
配置 VM 网络健康保护 确保虚拟机网络稳定
配置关机时排水 关机时有序迁移虚拟机
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值