使存储空间直通服务器脱机以进行维护
10/08/2018
本文内容
适用于: Windows server 2022、Windows server 2019 Windows Server 2016
本主题提供有关如何正确重启或关闭带有存储空间直通的服务器的指南。
如果具有存储空间直通,使服务器脱机(将其关机)还意味着使在群集中的所有服务器之间共享的存储部分脱机。 这样做需要暂停 (挂起) 你要脱机的服务器,使服务器的磁盘处于维护模式,将角色移动到群集中的其他服务器,并验证所有数据在群集中的其他服务器上是否可用,以便数据在整个维护过程中保持安全和可访问。
使其脱机之前,使用以下步骤正确暂停存储空间直通群集中的服务器。
重要
要在存储空间直通群集上安装更新,请使用群集感知更新 (CAU),它将自动执行本主题中的步骤,使你无需在安装更新时执行。 有关详细信息,请参阅群集感知更新 (CAU)。
验证使服务器脱机是否安全
使服务器脱机以进行维护之前,验证所有卷是否正常。
为此,请使用管理员权限打开一个 PowerShell 会话,然后运行以下命令以查看卷状态:
Get-VirtualDisk
下面是此输出的执行示例:
FriendlyName ResiliencySettingName OperationalStatus HealthStatus IsManualAttach Size
------------ --------------------- ----------------- ------------ -------------- ----
MyVolume1 Mirror OK Healthy True 1 TB
MyVolume2 Mirror OK Healthy True 1 TB
MyVolume3 Mirror OK Healthy True 1 TB
验证每个卷(虚拟磁盘)的 HealthStatus 属性为 Healthy。
若要在故障转移群集管理器中执行此操作,请参阅 存储 > 磁盘。
验证每个卷(虚拟磁盘)的 状态 列显示 联机。
暂停并清空服务器
重启或关闭服务器之前,请暂停并清空(移除)任意角色(例如,在服务器上运行的虚拟机)。 然后,将该服务器的磁盘设置为维护模式。 这使存储空间可以直接刷新和提交数据,以确保关闭对于在该服务器上运行的任何应用程序都是透明的。
重要
请在重启或关闭之前始终暂停或清空群集服务器。
在 PowerShell 中运行以下 cmdlet(以管理员身份)可暂停并清空。
Suspend-ClusterNode -Drain
要在故障转移群集管理器中执行此操作,请转到 节点,右键单击该节点,然后依次选择 暂停 > 清空角色。
所有虚拟机将开始实时迁移到群集中的其他服务器。 这会需要几分钟时间。
备注
正确暂停和清空群集节点时,Windows 将执行自动安全检查,以确保可以安全继续。 如果有不正常的卷,安全检查会停止,并提醒你继续操作不安全。
在 PowerShell 中,以管理员) 身份运行以下 cmdlet,以启用存储维护模式 (。
Get-StorageScaleUnit -FriendlyName "Server1" | Enable-StorageMaintenanceMode
正在关闭服务器
服务器完成清空后,它将在故障转移群集管理器和 PowerShell 中显示为 暂停。
现在,你可以像往常一样(例如,通过使用 Restart-Computer 或 Stop-Computer PowerShell cmdlet)安全重启或关机。
Get-VirtualDisk
FriendlyName ResiliencySettingName OperationalStatus HealthStatus IsManualAttach Size
------------ --------------------- ----------------- ------------ -------------- ----
MyVolume1 Mirror Incomplete Warning True 1 TB
MyVolume2 Mirror Incomplete Warning True 1 TB
MyVolume3 Mirror Incomplete Warning True 1 TB
当节点关闭或启动/停止节点上的群集服务时,操作状态为 "未完成" 或 "降级" 是正常的。 你的所有卷都保持联机和可访问。
恢复服务器
当你已准备好服务器开始托管工作负荷时,请在磁盘上禁用维护模式,然后再恢复。
在 PowerShell 中,以管理员) (运行以下 cmdlet。 要移回之前在此服务器中运行的角色,请使用可选的 -故障回复 标志。
Get-StorageScaleUnit -FriendlyName "Server1" | Disable-StorageMaintenanceMode
Resume-ClusterNode –Failback Immediate
要在故障转移群集管理器中执行此操作,请转到 节点,右键单击该节点,然后依次选择 恢复 > 故障回复角色。
等待要重新同步的存储
当服务器恢复时,在服务器不可用时发生的任何新写入都需要重新同步。 此过程自动发生。 使用智能更改跟踪无需扫描或同步 所有 数据,只需扫描或同步更改。 此过程会受到限制,以缓解生产负载产生的影响。 这一过程可能需要数分钟才能完成,具体取决于服务器暂停的时间和写入的新数据量。
你必须等待重新同步完成才能使群集中的任意其他服务器脱机。
在 PowerShell 中运行以下 cmdlet(以管理员身份)监视进度。
Get-StorageJob
下面是一些显示重新同步(修复)作业的示例输出:
Name IsBackgroundTask ElapsedTime JobState PercentComplete BytesProcessed BytesTotal
---- ---------------- ----------- -------- --------------- -------------- ----------
Repair True 00:06:23 Running 65 11477975040 17448304640
Repair True 00:06:40 Running 66 15987900416 23890755584
Repair True 00:06:52 Running 68 20104802841 22104819713
BytesTotal 显示需要重新同步的存储数。 PercentComplete 显示进度。
警告
在修复作业完成之前,使其他服务器脱机都是不安全的。
在此期间,卷将继续显示为 警告,这是正常情况。
例如,如果使用 Get-VirtualDisk cmdlet,你可能会看到以下输出:
FriendlyName ResiliencySettingName OperationalStatus HealthStatus IsManualAttach Size
------------ --------------------- ----------------- ------------ -------------- ----
MyVolume1 Mirror InService Warning True 1 TB
MyVolume2 Mirror InService Warning True 1 TB
MyVolume3 Mirror InService Warning True 1 TB
作业完成后,使用 Get-VirtualDisk cmdlet 再次验证卷是否显示 正常。 下面是一些示例输出:
FriendlyName ResiliencySettingName OperationalStatus HealthStatus IsManualAttach Size
------------ --------------------- ----------------- ------------ -------------- ----
MyVolume1 Mirror OK Healthy True 1 TB
MyVolume2 Mirror OK Healthy True 1 TB
MyVolume3 Mirror OK Healthy True 1 TB
现在可以安全地暂停和重启群集中的其他服务器。
如何脱机更新存储空间直接节点
使用以下步骤快速更新存储空间的直接系统。 它涉及到计划维护时段并使系统停机,以便进行更新。 如果需要快速应用重要的安全更新,或者需要确保在维护时段完成更新,则可以使用此方法。 此过程会关闭存储空间直接群集,对其进行更新,并再次将其打开。 权衡是托管资源的停机时间。
规划维护时段。
使虚拟磁盘脱机。
停止群集以使存储池脱机。 运行 停止群集 cmdlet,或使用故障转移群集管理器停止群集。
在每个节点上的 services.msc 中将群集服务设置为 " 已禁用 "。 这会阻止群集服务在修补后启动。
将 Windows 服务器累积更新和任何所需的服务堆栈更新应用到所有节点。 (可以同时更新所有节点,而无需等待群集关闭) 。
重新启动节点,确保一切正常。
在每个节点上将群集服务重新设置为 自动 。
启动群集。 运行 启动群集 cmdlet,或使用故障转移群集管理器。
稍等几分钟。 请确保存储池处于正常状态。
使虚拟磁盘恢复联机状态。
通过运行 Get-Volume 和 Get-VirtualDisk cmdlet 来监视虚拟磁盘的状态。
其他参考