本主题介绍存储空间直通与存储空间中的存储池、虚拟磁盘(位于存储空间中的卷下方)和驱动器的运行状况和操作状态。 当你尝试排查各种问题(例如,由于使用只读配置而无法删除虚拟磁盘)时,这些状态可以提供宝贵的信息。 本主题还将讨论为何无法将驱动器添加到池中 (CannotPoolReason)。
存储空间包含三个主要对象( 物理磁盘 (硬盘驱动器、SSD 等)添加到 存储池,虚拟化存储,以便可以从池中的可用空间创建 虚拟磁盘 ,如下所示。 池元数据写入池中的每个驱动器。 卷是在虚拟磁盘上创建的,用于存储文件,但本主题不讨论卷。
可以在服务器管理器中或使用 PowerShell 查看运行状况和操作状态。 下面是存储空间直通群集上缺少大部分群集节点(右键单击列标题以添加作状态)的各种运行状况和 作状态的示例。 这不是一个正常的群集。
存储池状态
每个存储池都有一个运行状况 - “正常”、“ 警告”或“ 未知/不正常”,以及一个或多个作状态。
若要了解池所处的状态,请使用以下 PowerShell 命令:
Get-StoragePool -IsPrimordial $False | Select-Object HealthStatus, OperationalStatus, ReadOnlyReason
以下示例输出显示存储池处于“未知”运行状态和“只读”操作状态:
FriendlyName OperationalStatus HealthStatus IsPrimordial IsReadOnly
------------ ----------------- ------------ ------------ ----------
S2D on StorageSpacesDirect1 Read-only Unknown False True
以下部分列出了运行状况和工作状态。
池运行状态:正常
| 作状态 | Description |
|---|---|
| OK | 存储池正常。 |
池运行状态:警告
当存储池处于 “警告 ”运行状况状态时,这意味着该池可访问,但一个或多个驱动器发生故障或缺失。 因此,该存储池的复原能力可能会降低。
| 作状态 | Description |
|---|---|
| Degraded | 存储池中的驱动器有故障或缺失。 这种状态只会出现在托管池元数据的驱动器上。 作:检查驱动器的状态,并在出现其他故障之前替换所有失败的驱动器。 |
池运行状态:“未知”或“不正常”
当存储池处于 “未知 ”或 “不正常 ”运行状况状态时,这意味着存储池是只读的,在池返回到 “警告 ”或 “正常 ”运行状况状态之前,无法修改。
| 作状态 | 只读原因 | Description |
|---|---|---|
| Read-only | Incomplete | 如果存储池丢失其 仲裁,则可能会出现这种情况,这意味着池中的大多数驱动器已失败或出于某种原因处于脱机状态。 当池丢失仲裁时,存储空间会自动将该池的配置设置为只读,直到再次有足够的驱动器可用。 Action: 1. 重新连接任何缺失的驱动器,如果使用的是存储空间直通,请将所有服务器联机。 2. 使用管理权限打开 PowerShell 会话并键入以下命令,将池重新设置为读写: Get-StoragePool <PoolName> -IsPrimordial $False | Set-StoragePool -IsReadOnly $false |
| Policy | 管理员将存储池设置为只读。 行动:若要在故障转移群集管理器中将群集存储池设置为读写访问权限,请转到池,右键单击该池,然后选择“联机”。 对于其他服务器和电脑,请使用管理权限打开 PowerShell 会话,然后键入: Get-StoragePool <PoolName> | Set-StoragePool -IsReadOnly $false |
|
| Starting | 存储空间正在启动或等待池中连接的驱动器。 这应该是一种临时状态。 一旦完全启动,该池应该就会转换为不同的操作状态。 行动: 如果池保持 启动 状态,请确保池中的所有驱动器都已正确连接。 |
另请参阅 Windows Server 存储论坛。
虚拟磁盘状态
在存储空间中,卷放置在从池的可用空间中划分出来的虚拟磁盘(存储空间)上。 每个虚拟磁盘的运行状况状态为 “正常”、“ 警告”、“ 不正常”或“ 未知 ”,以及一个或多个作状态。
若要确定虚拟磁盘所处的状态,请使用以下 PowerShell 命令:
Get-VirtualDisk | Select-Object FriendlyName,HealthStatus, OperationalStatus, DetachedReason
以下输出示例显示了一个分离的虚拟磁盘和一个已降级/不完整的虚拟磁盘:
FriendlyName HealthStatus OperationalStatus DetachedReason
------------ ------------ ----------------- --------------
Volume1 Unknown Detached By Policy
Volume2 Warning {Degraded, Incomplete} None
以下部分列出了运行状况和工作状态。
虚拟磁盘运行状态:正常
| 作状态 | Description |
|---|---|
| OK | 虚拟磁盘正常。 |
| Suboptimal | 数据未均匀写入到各个驱动器。 作:通过运行 Optimize-StoragePool cmdlet 优化存储池中的驱动器使用情况。 |
虚拟磁盘运行状态:警告
当虚拟磁盘处于 “警告 ”运行状况状态时,这意味着数据的一个或多个副本不可用,但存储空间仍可以读取数据至少一个副本。
| 作状态 | Description |
|---|---|
| 在服务中 | Windows 正在修复虚拟磁盘,例如在添加或删除驱动器之后。 修复完成后,虚拟磁盘应该会恢复“正常”运行状态。 |
| Incomplete | 由于一个或多个驱动器出现故障或缺失,虚拟磁盘的复原能力下降。 但是,缺失的驱动器包含数据的最新副本。 Action: 1. 重新连接所有缺失的驱动器,更换所有出现故障的驱动器,如果使用了存储空间直通,请将所有脱机的服务器联机。 2.如果不使用存储空间直通,请使用 Repair-VirtualDisk cmdlet 修复虚拟磁盘。 重新连接或更换驱动器后,存储空间直通会根据需要自动开始修复。 |
| Degraded | 由于一个或多个驱动器出现故障或缺失,并且这些驱动器包含已过时的数据副本,因此虚拟磁盘的复原能力下降。 Action: 1. 重新连接所有缺失的驱动器,更换所有出现故障的驱动器,如果使用了存储空间直通,请将所有脱机的服务器联机。 2.如果不使用存储空间直通,请使用 Repair-VirtualDisk cmdlet 修复虚拟磁盘。 重新连接或更换驱动器后,存储空间直通会根据需要自动开始修复。 |
虚拟磁盘运行状态:不正常
当虚拟磁盘处于 不正常 运行状况状态时,虚拟磁盘上的部分或所有数据当前不可访问。
| 作状态 | Description |
|---|---|
| 无冗余 | 由于太多驱动器发生故障,虚拟磁盘已丢失数据。 作:替换失败的驱动器,然后从备份还原数据。 |
虚拟磁盘运行状态:信息/未知
如果管理员脱机或虚拟磁盘已分离,则虚拟磁盘也可以处于 信息 运行状况状态(如存储空间控制面板项所示)或 未知 运行状况状态(如 PowerShell 中所示)。
| 作状态 | 分离的原因 | Description |
|---|---|---|
| Detached | 按策略 | 管理员已使虚拟磁盘脱机或将虚拟磁盘设置为需要手动附加,在这种情况下,必须在每次重启 Windows 时手动附加虚拟磁盘。 作:使虚拟磁盘重新联机。 为此,当虚拟磁盘位于群集存储池中时,在故障转移群集管理器中选择存储>池>虚拟磁盘,选择显示脱机状态的虚拟磁盘,然后选择“联机”。 若要使不在群集中的虚拟磁盘重新联机,请以管理员身份打开 PowerShell 会话,然后尝试使用以下命令: Get-VirtualDisk | Where-Object -Filter { $_.OperationalStatus -eq "Detached" } | Connect-VirtualDisk若要在重启 Windows 之后自动附加所有非群集虚拟磁盘,请以管理员身份打开 PowerShell 会话,然后使用以下命令: Get-VirtualDisk | Set-VirtualDisk -ismanualattach $false |
| 多数磁盘不正常 | 在此虚拟磁盘使用的驱动器中,有过多的驱动器出现故障、缺失或包含过时的数据。 Action: 1. 重新连接所有缺失的驱动器,如果使用了存储空间直通,请将所有脱机的服务器联机。 2. 在所有驱动器和服务器都联机后,更换所有出现故障的驱动器。 有关详细信息,请参阅 运行状况服务 。 重新连接或更换驱动器后,存储空间直通会根据需要自动开始修复。 3.如果不使用存储空间直通,请使用 Repair-VirtualDisk cmdlet 修复虚拟磁盘。 如果有故障的磁盘数超过你的数据副本数,并且在每两次故障之间虚拟磁盘未修复,则虚拟磁盘上的所有数据将永久丢失。 在这种不妙的情况下,请删除虚拟磁盘,创建新的虚拟磁盘,然后从备份中还原。 |
|
| Incomplete | 没有足够的驱动器可用于读取虚拟磁盘。 Action: 1. 重新连接所有缺失的驱动器,如果使用了存储空间直通,请将所有脱机的服务器联机。 2. 在所有驱动器和服务器都联机后,更换所有出现故障的驱动器。 有关详细信息,请参阅 运行状况服务 。 重新连接或更换驱动器后,存储空间直通会根据需要自动开始修复。 3.如果不使用存储空间直通,请使用 Repair-VirtualDisk cmdlet 修复虚拟磁盘。 如果有故障的磁盘数超过你的数据副本数,并且在每两次故障之间虚拟磁盘未修复,则虚拟磁盘上的所有数据将永久丢失。 在这种不妙的情况下,请删除虚拟磁盘,创建新的虚拟磁盘,然后从备份中还原。 |
|
| Timeout | 附加虚拟磁盘花费的时间过长 行动: 这种情况不应经常发生,因此你可能会尝试查看条件是否经过时间。 或者,可以尝试使用 Disconnect-VirtualDisk cmdlet 断开虚拟磁盘的连接,然后使用 Connect-VirtualDisk cmdlet 重新连接它。 |
驱动器(物理磁盘)状态
以下部分描述了驱动器可能处于的运行状况。 池中的驱动器在 PowerShell 中表示为 物理磁盘 对象。
驱动器运行状况:正常
| 作状态 | Description |
|---|---|
| OK | 驱动器正常。 |
| 在服务中 | 驱动器正在执行某些内部保养操作。 作完成后,驱动器应返回到 正常 运行状况。 |
驱动器运行状况:警告
处于“警告”状态的驱动器可以成功读取和写入数据,但存在问题。
| 作状态 | Description |
|---|---|
| 通信丢失 | 驱动器缺失。 如果使用的是存储空间直通,则原因可能是服务器已关闭。 作:如果使用存储空间直通,请使所有服务器重新联机。 如果这样无法解决问题,请重新连接驱动器、更换驱动器,或者尝试按照“使用 Windows 错误报告进行故障排除 >物理磁盘超时”中的步骤获取有关该驱动器的详细诊断信息。 |
| 从池中删除 | 存储空间正在从其存储池中删除驱动器。 这是一种暂时性的状态。 删除完成后,如果驱动器仍附加到系统,则驱动器将转换为原始池中的另一种操作状态(通常为“正常”)。 |
| 启动维护模式 | 在管理员将驱动器置于维护模式后,存储空间正在将驱动器置于维护模式。 这是一种暂时性的状态 - 驱动器应该很快就会处于“维护中模式”状态。 |
| 维护中模式 | 管理员已将驱动器置于维护模式,从而停止了从该驱动器的读取和写入。 此操作通常在更新驱动器固件之前或者在测试故障时执行。 作:若要使驱动器退出维护模式,请使用 Disable-StorageMaintenanceMode cmdlet。 |
| 停止维护模式 | 管理员使驱动器退出了维护模式,存储空间正在使驱动器重新联机。 这是一种临时状态 - 驱动器应很快处于另一种状态 - 理想情况下为 “正常”。 |
| 预测失败 | 驱动器已报告它即将发生故障。 作:替换驱动器。 |
| IO 错误 | 访问驱动器时发生暂时性错误。 Action: 1.如果驱动器未转换回 正常 状态,则可以尝试使用 Reset-PhysicalDisk cmdlet 擦除驱动器。 2.使用 Repair-VirtualDisk 还原受影响虚拟磁盘的复原能力。 3. 如果这种情况持续发生,请更换驱动器。 |
| 暂时性错误 | 驱动器出现暂时性错误。 此错误通常表示驱动器无响应,但也可能表示不恰当地从驱动器中删除了存储空间的保护分区。 Action: 1.如果驱动器未转换回 正常 状态,则可以尝试使用 Reset-PhysicalDisk cmdlet 擦除驱动器。 2.使用 Repair-VirtualDisk 还原受影响虚拟磁盘的复原能力。 3. 如果这种情况持续发生,请更换驱动器,或者尝试按照“使用 Windows 错误报告进行故障排除 >物理磁盘无法联机”中的步骤获取有关该驱动器的详细诊断信息。 |
| 异常延迟 | 根据存储空间直通中运行状况服务的度量,驱动器运行速度缓慢。 作:如果这种情况持续发生,请替换驱动器,以免整体降低存储空间的性能。 |
驱动器运行状况:不正常
当前无法写入或访问处于“不正常”状态的驱动器。
| 作状态 | Description |
|---|---|
| 不可用 | 存储空间不能使用此驱动器。 有关详细信息,请参阅存储空间直通 硬件要求;如果未使用存储空间直通,请参阅存储空间概述。 |
| Split | 已从池中分离驱动器。 作:重置驱动器,擦除驱动器中的所有数据,并将其添加回池作为空驱动器。 为此,请以管理员身份打开 PowerShell 会话,运行 Reset-PhysicalDisk cmdlet,然后运行 Repair-VirtualDisk。 若要获取有关此驱动器的详细诊断信息,请按照“使用 Windows 错误报告进行故障排除 >物理磁盘无法联机”中的步骤操作。 |
| 过时元数据 | 存储空间在驱动器上找到旧元数据。 作:这应该是一个临时状态。 如果驱动器无法转换回正常,则可以运行 Repair-VirtualDisk ,在受影响的虚拟磁盘上启动修复作。 如果这无法解决问题,可以使用 Reset-PhysicalDisk cmdlet 重置驱动器,擦除驱动器中的所有数据,然后运行 Repair-VirtualDisk。 |
| 无法识别的元数据 | 存储空间在驱动器上找到了无法识别的元数据,这通常表示驱动器包含来自其他池的元数据。 作:若要擦除驱动器并将其添加到当前池,请重置驱动器。 若要重置驱动器,请以管理员身份打开 PowerShell 会话,运行 Reset-PhysicalDisk cmdlet,然后运行 Repair-VirtualDisk。 |
| 失败的媒体 | 驱动器出现故障,不再可供存储空间使用。 作:替换驱动器。 若要获取有关此驱动器的详细诊断信息,请按照“使用 Windows 错误报告进行故障排除 >物理磁盘无法联机”中的步骤操作。 |
| 设备硬件故障 | 此驱动器上出现硬件故障。 作:替换驱动器。 |
| 更新固件 | Windows 正在更新驱动器上的固件。 这是一种暂时性的状态,其持续时间通常小于一分钟,在此期间,池中的其他驱动器会处理所有读取和写入操作。 有关详细信息,请参阅更新驱动器固件。 |
| Starting | 驱动器正在为操作做好准备。 这应该是一种暂时性的状态 - 完成后,驱动器应会过渡到另一种工作状态。 |
驱动器无法入池的原因
某些驱动器尚未准备好放入存储池。 通过查看物理磁盘的 CannotPoolReason 属性,可以确定驱动器为何不符合入池条件。 下面是用于显示 CannotPoolReason 属性的示例 PowerShell 脚本:
Get-PhysicalDisk | Format-Table FriendlyName,MediaType,Size,CanPool,CannotPoolReason
下面是示例输出:
FriendlyName MediaType Size CanPool CannotPoolReason
------------ --------- ---- ------- ----------------
ATA MZ7LM120HCFD00D3 SSD 120034123776 False Insufficient Capacity
Msft Virtual Disk SSD 10737418240 True
Generic Physical Disk SSD 119990648832 False In a Pool
下表更具体地描述了每种原因。
| Reason | Description |
|---|---|
| 在池中 | 驱动器已属于某个存储池。 驱动器只能属于一个存储池。 若要在另一个存储池中使用此驱动器,请先将此驱动器从其当前所在的池中删除,这会告知存储空间将此驱动器上的数据移动到池中的另一驱动器。 或者,如果在未通知存储空间的情况下将驱动器与其所在的池断开连接,请重置该驱动器。 若要安全地从存储池中删除驱动器,请使用 Remove-PhysicalDisk,或转到服务器管理器 >文件和存储服务>存储池、 >物理磁盘,右键单击驱动器,然后选择“ 删除磁盘”。 若要重置驱动器,请使用 Reset-PhysicalDisk。 |
| 不正常 | 该驱动器不处于正常状态,可能需要更换。 |
| 可移动媒体 | 该驱动器分类为可移动驱动器。 存储空间不支持由 Windows 识别为可移动媒体的媒体,例如蓝光驱动器。 尽管许多固定驱动器位于可移动槽中,但一般情况下,Windows 分类 为可移动的媒体不适合用于存储空间。 |
| 已由群集使用 | 该驱动器当前已由故障转移群集使用。 |
| Offline | 驱动器已脱机。 若要使所有脱机的驱动器联机并将其设置为读/写,请以管理员身份打开 PowerShell 会话,然后使用以下脚本: Get-Disk | Where-Object -Property OperationalStatus -EQ "Offline" | Set-Disk -IsOffline $falseGet-Disk | Where-Object -Property IsReadOnly -EQ $true | Set-Disk -IsReadOnly $false |
| 容量不足 | 当有分区占用了驱动器上的可用空间时,通常会发生这种情况。 作:删除驱动器上的任何卷,擦除驱动器上的所有数据。 执行此作的一种方法是使用 Clear-Disk PowerShell cmdlet。 |
| 正在验证 | 运行状况服务正在检查驱动器上的驱动器或固件是否已获服务器管理员批准使用。 |
| 验证失败 | 运行状况服务无法检查驱动器上的驱动器或固件是否已获得服务器管理员的批准。 |
| 固件不合规 | 物理驱动器上的固件不在服务器管理员使用 运行状况服务指定的已批准的固件修订列表中。 |
| 硬件不合规 | 驱动器不在服务器管理员使用 运行状况服务指定的已批准的存储模型列表中。 |