

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

# Amazon EBS 卷状态检查
<a name="monitoring-volume-checks"></a>

通过卷状态检查，您可以更好地了解、追踪和管理 Amazon EBS 卷上数据的潜在不一致性。它们的作用是在您需要确定 Amazon EBS 卷是否损坏的时候为您提供信息，帮助您控制处理潜在不一致卷的方式。

卷状态检查为自动执行的测试，该测试每隔 5 分钟运行一次并返回通过或故障状态。如果所有的检查都通过，则卷的状态为`ok`。如果一个检查返回故障，则卷的状态为`impaired`。如果状态为`insufficient-data`，那么该检查将在该卷上继续进行。您可以查看卷状态检查的结果来识别任意受损卷并进行所需操作。

当 Amazon EBS 确定某个卷的数据可能不一致时，默认情况下会禁用 I/O 任何连接的 EC2 实例访问该卷，这有助于防止数据损坏。禁 I/O 用后，下一次卷状态检查失败，卷状态为`impaired`。此外，您还会看到一个事件，告知该事件已 I/O 被禁用，并且您可以通过启用音量 I/O 来解决该卷的受损状态。我们等到您启用 I/O 后，您才有机会决定是继续让您的实例使用该卷，还是使用命令（例如**fsck**（Linux 实例）或**chkdsk**（Windows 实例）运行一致性检查，然后再执行此操作。

**注意**  
卷状况以卷状况检查为依据，并不反映卷状态。因此，卷状态并不表示卷处于 `error` 状态（例如，卷无法接受 I/O 时）。有关卷状态的信息，请参阅 [卷状态](ebs-describing-volumes.md#volume-state)。

如果某个卷的一致性无关重要，您可以立即使该卷可用，如果该卷状态是“受损”，您可以配置该卷为自动启用 I/O 来覆盖默认操作。如果您启用**自动启用 IO** 卷属性（API 中的 `autoEnableIO`），则卷状态检查会继续通过。此外，你还会看到一个事件，告诉你音量被确定为可能不一致，但它 I/O 已自动启用。这使您能够检查卷的一致性或随后替换它。

 I/O 性能状态检查会将卷的实际性能与卷的预期性能进行比较。如果卷的表现低于预期，它会提醒您。此状态检查仅适用于挂载到实例的预调配 IOPS SSD（`io1` 和 `io2`）和通用型 SSD（`gp3`）卷。状态检查对于通用型 SSD（`gp2`）、吞吐量优化型 HDD（`st1`）、Cold HDD（`sc1`）或磁介质（`standard`）卷无效。 I/O 性能状态检查每分钟执行一次，并每 5 分钟 CloudWatch 收集一次此数据。从将`io1`或`io2`卷连接到实例的那一刻起，状态检查报告 I/O 性能状态最多可能需要 5 分钟。

**重要**  
在初始化已从快照还原的 Provisioned IOPS SSD 卷时，该卷的性能可能会下降到预期水平的 50% 以下，这会导致该卷在 **I/O 性能**状态检查中显示 `warning` 状态。这是预期行为，并且您可在初始化 Provisioned IOPS SSD 卷时忽略该卷上的 `warning` 状态。有关更多信息，请参阅 [创建后手动初始化卷](initalize-volume.md#ebs-initialize)。

下表列出了 Amazon EBS 卷的状态。


| 卷状态 | I/O 使能状态 | I/O 性能状态（仅限 `io1`、`io2` 和 `gp3` 卷） | 
| --- | --- | --- | 
|  `ok`  |  已启用（I/O Enabled or I/O自动启用）  |  正常（卷的期望性能）  | 
|  `warning`  |  已启用（I/O Enabled or I/O自动启用）  |  降级（卷的性能低于期望性能） 严重降级（卷的性能大大低于期望性能）  | 
|  `impaired`  |  已启用（I/O Enabled or I/O自动启用） 禁用（卷脱机和挂起恢复，或等待用户使能 I/O）  |  停滞（卷性能受到严重影响） 不可用（由于已禁 I/O 用，无法确定 I/O 性能）  | 
|  `insufficient-data`  |  已启用（I/O Enabled or I/O自动启用） 数据不足  |  数据不足  | 

------
#### [ Console ]

**查看状态检查，需要进行以下操作**

1. 打开位于 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 的 Amazon EC2 控制台。

1. 在导航窗格中，选择 **Volumes**。

   **卷状态**列显示每个卷的运行状态。

1. 要查看特定卷的详细状态信息，请在网格中选择该卷，然后选择 **Status checks**（状态检查）选项卡。

1. 如果您的卷状态检查返回故障（状态是 `impaired`），请参阅 [使用受损的 Amazon EBS 卷](work_volumes_impaired.md)。

另外，您还可以在导航器中选择**事件**来查看实例和卷所有的事件。有关更多信息，请参阅[Amazon EBS 卷事件](monitoring-vol-events.md)。

------
#### [ AWS CLI ]

**查看卷状态信息**  
使用 [describe-volume-status](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-volume-status.html) 命令。

```
aws ec2 describe-volume-status --volume-ids vol-01234567890abcdef
```

使用以下示例来识别受损的卷。

```
aws ec2 describe-volume-status --filters Name=volume-status.status,Values=impaired
```

------
#### [ PowerShell ]

**查看卷状态信息**  
使用 [Get-EC2VolumeStatus](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2VolumeStatus.html) cmdlet。

```
Get-EC2VolumeStatus -VolumeId vol-01234567890abcdef
```

使用以下示例来识别受损的卷。

```
Get-EC2VolumeStatus -Filter @{Name="volume-status.status"; Values="impaired"}
```

------

# Amazon EBS 卷事件
<a name="monitoring-vol-events"></a>

当 Amazon EBS 确定某个卷的数据可能不一致时，它会默认禁 I/O 用任何连接的 EC2 实例访问该卷。这将导致卷状态检查故障，并新建一个卷状态事件来指明故障的原因。

要在可能存在数据不一致的卷 I/O 上自动启用，请更改 “**自动启用 IO** 卷” 属性的设置（`autoEnableIO`在 API 中）。更多关于改变这些属性的信息，请参阅[使用受损的 Amazon EBS 卷](work_volumes_impaired.md)。

每个事件都包括一个表示事件发生时间的开始时间和一个持续时间，该持续时间表示该卷被禁 I/O 用了多长时间。当启用音量时，结束 I/O 时间将添加到事件中。卷状态事件

`Awaiting Action: Enable IO`  
卷数据可能不一致。 I/O 在您明确启用该卷之前，该卷将处于禁用状态。当您明确启用 I/O 后，事件描述变为 **IO Enabled**。

`IO Enabled`  
明确地使能这些卷的 I/O 操作。

`IO Auto-Enabled`  
事件发生后，自动使能这些卷上的 I/O 操作。我们建议您在继续使用数据前，先检查数据的不一致性。

`Normal`  
仅适用于 `io1`、`io2` 和 `gp3` 卷。卷执行其期望性能。

`Degraded`  
仅适用于 `io1`、`io2` 和 `gp3` 卷。卷性能低于期望性能。

`Severely Degraded`  
仅适用于 `io1`、`io2` 和 `gp3` 卷。卷性能大大地低于期望性能。

`Stalled`  
仅适用于 `io1`、`io2` 和 `gp3` 卷。卷的性能受到严重影响。

如果您的卷 I/O 处于禁用状态，请参阅[使用受损的 Amazon EBS 卷](work_volumes_impaired.md)。如果您的卷 I/O 性能低于正常水平，则这可能是由于您采取的操作而导致的临时情况（例如，在使用高峰期创建卷的快照、在无法支持所需 I/O 带宽的实例上运行卷、首次访问卷上的数据等）。

------
#### [ Console ]

**想要查看您的卷事件，需要执行以下操作**

1. 打开位于 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 的 Amazon EC2 控制台。

1. 在导航窗格中，选择 **Events**。列出具有事件的所有实例和卷。

1. 可以按卷进行筛选以便仅查看卷状态。您也可以筛选指定的状态类型。

1. 选择一个卷以查看其特定事件。

------
#### [ AWS CLI ]

**想要查看您的卷事件，需要执行以下操作**  
使用 [describe-volume-status](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-volume-status.html) 命令。

```
aws ec2 describe-volume-status --volume-ids vol-01234567890abcdef
```

------
#### [ PowerShell ]

**想要查看您的卷事件，需要执行以下操作**  
使用 [Get-EC2VolumeStatus](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2VolumeStatus.html) cmdlet。

```
Get-EC2VolumeStatus -VolumeId vol-01234567890abcdef
```

------

# 使用受损的 Amazon EBS 卷
<a name="work_volumes_impaired"></a>

如果卷受损，请使用以下选项，因为卷的数据可能不一致。

**Topics**
+ [选项 1：对附加到其实例的卷执行一致性检查](#work_volumes_impaired_option1)
+ [选项 2：使用其他实例对该卷执行一致性检查](#work_volumes_impaired_option2)
+ [选项 3：如果您不再需要卷，请将其删除](#work_volumes_impaired_option3)

## 选项 1：对附加到其实例的卷执行一致性检查
<a name="work_volumes_impaired_option1"></a>

最简单的选择是在该卷仍连接到其 Amazon EC2 实例的情况下，启用 I/O 该卷并对其执行数据一致性检查。

**想要在一个附加的卷上进行一次一致性检查，需要执行以下操作**

1. 停止所有使用该卷的应用程序。

1. 在音量 I/O 上启用。使用以下方法之一。

------
#### [ Console ]

**I/O 为卷启用**

   1. 打开位于 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 的 Amazon EC2 控制台。

   1. 在导航窗格中，选择 **Events（事件）**。

   1. 选择该卷。

   1. 选择 **Actions**（操作）、**Enable I/O**（启用输入/输出）。

------
#### [ AWS CLI ]

**I/O 为卷启用**  
使用 [enable-volume-io](https://docs.aws.amazon.com/cli/latest/reference/ec2/enable-volume-io.html) 命令。

   ```
   aws ec2 enable-volume-io --volume-id vol-01234567890abcdef
   ```

------
#### [ PowerShell ]

**I/O 为卷启用**  
使用 [Enable-EC2VolumeIO](https://docs.aws.amazon.com/powershell/latest/reference/items/Enable-EC2VolumeIO.html) cmdlet。

   ```
   Enable-EC2VolumeIO -VolumeId vol-01234567890abcdef
   ```

------

1. 检查卷上数据。

   1. 运行 **fsck**（Linux 实例）或 **chkdsk**（Windows 实例）命令。

   1. （可选）查看所有适用的应用程序或系统日志以了解相关错误消息。

   1. 如果音量受损超过 20 分钟，则可以联系 Su AWS pport Center。选择**问题排查**，然后在**状态检查故障排除**对话框上选择**联系客户服务**提交一个支持案例。

## 选项 2：使用其他实例对该卷执行一致性检查
<a name="work_volumes_impaired_option2"></a>

按照以下程序在您的产品环境外检查该卷。

**重要**  
此过程可能会导致禁用音量 I/O 时暂停 I/Os 的写入丢失。

**想要在一个隔离环境中在一个卷上进行一次一致性检查，需要执行以下操作**

1. 停止所有使用该卷的应用程序。

1. 将该卷从实例中分离。有关更多信息，请参阅 [将 Amazon EBS 卷与 Amazon EC2 实例分离](ebs-detaching-volume.md)。

1. 在音量 I/O 上启用。使用以下方法之一。

------
#### [ Console ]

**I/O 为卷启用**

   1. 打开位于 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 的 Amazon EC2 控制台。

   1. 在导航窗格中，选择 **Events（事件）**。

   1. 选择您在之前的步骤中分离的卷。

   1. 选择 **Actions**（操作）、**Enable I/O**（启用输入/输出）。

------
#### [ AWS CLI ]

**I/O 为卷启用**  
使用 [enable-volume-io](https://docs.aws.amazon.com/cli/latest/reference/ec2/enable-volume-io.html) 命令。

   ```
   aws ec2 enable-volume-io --volume-id vol-01234567890abcdef
   ```

------
#### [ PowerShell ]

**I/O 为卷启用**  
使用 [Enable-EC2VolumeIO](https://docs.aws.amazon.com/powershell/latest/reference/items/Enable-EC2VolumeIO.html) cmdlet。

   ```
   Enable-EC2VolumeIO -VolumeId vol-01234567890abcdef
   ```

------

1. 将该卷附加到另一个实例。有关更多信息，请参阅[启动实例](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/LaunchingAndUsingInstances.html)和[将 Amazon EBS 卷挂载到 Amazon EC2 实例](ebs-attaching-volume.md)。

1. 检查卷上数据。

   1. 运行 **fsck**（Linux 实例）或 **chkdsk**（Windows 实例）命令。

   1. （可选）查看所有适用的应用程序或系统日志以了解相关错误消息。

   1. 如果音量受损超过 20 分钟，则可以联系 Su AWS pport Center。选择 **Troubleshoot**，然后在故障排除对话框中选择 **Contact Support** 以提交支持案例。

## 选项 3：如果您不再需要卷，请将其删除
<a name="work_volumes_impaired_option3"></a>

如果您想将该卷从您的环境中去除，只需删除它即可。关于删除一个卷的信息，请查阅[删除 Amazon EBS 卷](ebs-deleting-volume.md)。

如果您有在该卷上备份的近期快照，那么您可以从快照中创建一个新卷。有关更多信息，请参阅 [创建 Amazon EBS 卷](ebs-creating-volume.md)。

# I/O 为受损的 Amazon EBS 卷自动启用
<a name="volumeIO"></a>

当 Amazon EBS 确定某个卷的数据可能不一致时，它会默认禁 I/O 用任何连接的 EC2 实例访问该卷。这将导致卷状态检查故障，并新建一个卷状态事件来指明故障的原因。如果不考虑特定卷的一致性，并且您希望该卷在**受损**时立即可用，则可以通过将该卷配置为自动**启用 I/O 来覆盖默认行为。如果您启用了 “自动启用 I/O** 卷” 属性（`autoEnableIO`在 API 中），则卷和实例 I/O 之间的卷将自动重新启用，并且卷的状态检查将通过。此外，您还会看到一个事件，告知您该卷处于可能不一致的状态，但它 I/O 已自动启用。如果发生此事件，您应该检查该卷的一致性，如有必要，可对其进行更换。有关更多信息，请参阅 [Amazon EBS 卷事件](monitoring-vol-events.md)。

------
#### [ Console ]

**查看卷的“自动启用 IO”属性**

1. 打开位于 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 的 Amazon EC2 控制台。

1. 在导航窗格中，选择 **Volumes**。

1. 选择卷，然后选择 **Status checks**（状态检查）选项卡。

   **Auto-enabled I/O**（自动启用输入/输出）字段为所选择的卷显示当前设置：**已启用**或**已禁用**。

**修改卷的“自动启用 IO”属性**

1. 打开位于 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 的 Amazon EC2 控制台。

1. 在导航窗格中，选择 **Volumes**。

1. 选择所需卷，然后选择 **Actions**（操作）、**Manage auto-enabled I/O**（管理自动启用的输入/输出）。

1. 要 I/O 为受损的音量自动启用，请选中 “**自动启用 I/O 受损音量**” 复选框。想要禁用该功能，请清除复选框。

1. 选择**更新**。

------
#### [ AWS CLI ]

**查看卷的 autoEnableIO 属性**  
使用 [describe-volume-attribute](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-volume-attribute.html) 命令。

```
aws ec2 describe-volume-attribute \
    --attribute autoEnableIO \
    --volume-id vol-01234567890abcdef
```

下面是示例输出。

```
{
    "AutoEnableIO": {
        "Value": true
    },
    "VolumeId": "vol-01234567890abcdef"
}
```

**要修改一个卷的 autoEnableIO 属性**  
使用 [modify-volume-attribute](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-volume-attribute.html) 命令。

```
aws ec2 modify-volume-attribute \
    --auto-enable-io \
    --volume-id vol-01234567890abcdef
```

------
#### [ PowerShell ]

**查看卷的 autoEnableIO 属性**  
使用 [Get-EC2VolumeAttribute](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2VolumeAttribute.html) cmdlet。

```
(Get-EC2VolumeAttribute `
    -Attribute autoEnableIO `
    -VolumeId vol-01234567890abcdef).AutoEnableIO
```

下面是示例输出。

```
True
```

**要修改一个卷的 autoEnableIO 属性**  
使用 [Edit-EC2VolumeAttribute](https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2VolumeAttribute.html) cmdlet。

```
Edit-EC2VolumeAttribute `
    -AutoEnableIO $true `
    -VolumeId vol-01234567890abcdef
```

------