

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

# Amazon EBS 卷
<a name="ebs-volumes"></a>

Amazon EBS 卷是一种耐用的数据块级存储设备，您可以将其附加到您的实例。将卷附加到实例后，您可以像使用其他物理硬盘一样使用它。EBS 卷非常灵活。对于附加到当前一代实例类型的当前一代卷，您可以动态增加大小、修改预配置 IOPS 容量以及更改实际生产卷上的卷类型。

可以将 EBS 卷用作需要频繁更新的数据的主存储（例如实例的系统驱动器或数据库应用程序的存储）。还可以将其用于执行连续磁盘扫描的吞吐量密集型应用程序。EBS 卷始终不受 EC2 实例运行时间的影响。

您可以将多个 EBS 卷附加到单个实例。该卷与实例必须位于同一可用区。根据卷和实例类型，您可以使用[多重挂载](ebs-volumes-multi.md)将卷同时挂载到多个实例。

Amazon EBS 提供以下卷类型：通用型 SSD（`gp2` 和 `gp3`）、预调配 IOPS SSD（`io1` 和 `io2`）、吞吐量优化型 HDD（`st1`）、Cold HDD（`sc1`）以及磁介质卷（`standard`）。它们的性能特点和价格不同，您可根据应用程序要求定制您所需的存储性能和相应费用。有关更多信息，请参阅 [Amazon EBS 卷类型](ebs-volume-types.md)。

您的账户对可用的总存储空间有限制。有关这些限制以及如何请求提高限制的更多信息，请参阅 [Amazon EBS 端点和限额](https://docs.aws.amazon.com/general/latest/gr/ebs-service.html#limits_ebs)。

*托管 EBS 卷*是指由服务提供商（例如 Amazon EKS 自动模式）管理的卷。您不能直接修改托管 EBS 卷的设置。托管 EBS 卷由**托管**字段中的 **true** 值标识。有关更多信息，请参阅 [Amazon EC2 托管式实例](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/amazon-ec2-managed-instances.html)。

有关定价的更多信息，请参阅 [Amazon EBS 定价](https://aws.amazon.com/ebs/pricing/)。

**Topics**
+ [

# Amazon EBS 卷的特性和优势
](EBSFeatures.md)
+ [

# Amazon EBS 卷类型
](ebs-volume-types.md)
+ [

# Amazon EBS 卷限制
](volume_constraints.md)
+ [

# Amazon EBS 卷和 NVMe
](nvme-ebs-volumes.md)
+ [

# Amazon EBS 卷的生命周期
](ebs-volume-lifecycle.md)
+ [

# 使用快照替换 Amazon EBS 卷
](ebs-restoring-volume.md)
+ [

# Amazon EBS 卷状态检查
](monitoring-volume-checks.md)
+ [

# 在 Amazon EBS 上进行故障测试
](ebs-fis.md)

# Amazon EBS 卷的特性和优势
<a name="EBSFeatures"></a>

EBS 卷具有实例存储卷不具备的优势。

**Topics**
+ [

## 数据可用性
](#availability-benefit)
+ [

## 数据持久性
](#persistence-benefit)
+ [

## 数据加密
](#encryption-benefit)
+ [

## 数据安全性
](#security-benefit)
+ [

## 快照
](#backup-benefit)
+ [

## 弹性
](#flexibility-benefit)

## 数据可用性
<a name="availability-benefit"></a>

当您创建 EBS 卷时，系统会在其可用区内自动复制该卷，以防止因任何一个硬件组件出现故障而导致数据丢失。您可以将 EBS 卷附加到同一可用区中的任何 EC2 实例。附加后，该卷显示为类似于硬盘或其他物理设备的本机块储存设备。这时，实例就像与本地驱动器交互一样与该卷交互。您可以连接到实例并使用文件系统 [例如 `Ext4`（Linux 实例）或 `NTFS`（Windows 实例）] 格式化 EBS 卷，然后安装应用程序。

如果您将多个卷连接到您命名的设备，则可以在这些卷之间进行数据条带化以提高 I/O 吞吐量性能。

您可以将 `io1` 和 `io2` EBS 卷挂载到最多 16 个基于 Nitro 的实例。有关更多信息，请参阅 [使用多重挂载将 EBS 卷挂载到多个 EC2 实例](ebs-volumes-multi.md)。或者，也可以将 EBS 卷附加到单个实例。

您可以获取针对 EBS 卷（包括 EBS 支持的实例的根设备卷）的监控数据，而无需额外付费。有关监控指标的更多信息，请参阅[亚马逊 EBS 的亚马逊 CloudWatch 指标](using_cloudwatch_ebs.md)。有关跟踪卷状态的信息，请参阅[亚马逊 EBS 的亚马逊 EventBridge 活动](ebs-cloud-watch-events.md)。

## 数据持久性
<a name="persistence-benefit"></a>

EBS 卷是一种实例外存储，其数据的保存期限不受实例使用寿命的影响。只要数据存在，您就要继续支付卷的使用费用。

如果您在 EC2 控制台中为您的实例配置 EBS 卷时取消选中了**终止时删除**复选框，则在运行的实例终止时，附加到该实例的 EBS 卷会自动从该实例分离，并保持数据完整。然后，可将卷重新附加到新的实例，从而快速恢复数据。如果选中**终止时删除**复选框，则在 EC2 实例终止时删除卷。如果您使用的是 EBS 支持的实例，则可以停止并重启该实例，而不会影响与其附加的卷中保存储的数据。在从停止到启动的整个周期中，该卷均为已附加状态。这使您能够无限期地在卷上处理和存储数据，并只在需要时使用处理和存储资源。数据将一直保存在该卷上，直至将其显式删除。已删除的 EBS 卷所使用的物理块存储将在分配给新卷之前被零或加密伪随机数据覆盖。如果要处理敏感数据，应考虑手动加密数据或将数据存储在由 Amazon EBS 加密 保护的卷上。有关更多信息，请参阅 [Amazon EBS 加密](ebs-encryption.md)。

默认情况下，当一个实例终止时，将删除在启动时创建并附加到该实例的根 EBS 卷。您可以修改此操作，方法是在启动实例时，将此标记的值从 `DeleteOnTermination` 改为 `false`。修改值后，即使实例终止，也可将该卷保留下来并附加到其他实例。

默认情况下，当一个实例终止时，不会删除在启动时创建并附加到该实例的额外 EBS 卷。您可以修改此操作，方法是在启动实例时，将此标记的值从 `DeleteOnTermination` 改为 `true`。此修改的值会导致在实例终止时删除卷。

## 数据加密
<a name="encryption-benefit"></a>

为简化数据加密，您可以使用 Amazon EBS 加密功能创建加密 EBS 卷。所有 EBS 卷类型都支持加密。您可以使用加密的 EBS 卷来满足监管/审计的数据和应用程序的各种 data-at-rest加密要求。Amazon EBS 加密使用 256 位高级加密标准算法（AES-256）和 Amazon 托管密钥基础设施。加密发生在托管 EC2 实例的服务器上，从而提供 data-in-transit从 EC2 实例到 Amazon EBS 存储的加密。有关更多信息，请参阅 [Amazon EBS 加密](ebs-encryption.md)。

 Amazon EBS 加密 AWS KMS keys 在创建加密卷以及从您的加密卷创建的任何快照时使用。首次在区域中创建加密 EBS 卷时，系统会自动为您创建默认的 AWS 托管 KMS 密钥。此密钥用于 Amazon EBS 加密，除非您创建和使用客户自主管理型密钥。创建您自己的客户自主管理型密钥可为您提供更大灵活性，包括创建、轮换、禁用、定义访问控制，以及审核用于保护数据的加密密钥等功能。有关更多信息，请参见[AWS Key Management Service 开发人员指南](https://docs.aws.amazon.com/kms/latest/developerguide/)。

## 数据安全性
<a name="security-benefit"></a>

Amazon EBS 卷作为未格式化的原始块储存设备呈现。这些设备是在 EBS 基础设施上创建的逻辑设备；Amazon EBS 服务可确保在客户使用或重复使用之前，这些设备为逻辑空白（即，原始数据块被归零或包含加密伪随机数据）。

如果您有要求在使用后和/或使用前使用特定方法擦除所有数据的程序，例如 **DoD 5220.22-M**（美国《国家工业安全计划操作手册》）或 **NIST 800-88**（《存储介质清理指南》）中详细说明的程序，您可以在 Amazon EBS 上执行此操作。该数据块级活动将反映到 Amazon EBS 服务的底层存储介质中。

## 快照
<a name="backup-benefit"></a>

Amazon EBS 提供为任何 EBS 卷创建快照（备份）并将卷中数据的副本写入 Amazon S3（其中数据以冗余方式存储在多个可用区中）的功能。不必将该卷附加到运行中的实例，也可以制作快照。因为您不断向卷写入数据，则可定期创建该卷的快照，以用作创建新卷的基准。也可利用这些快照创建多个新的 EBS 卷或在可用区间移动卷的位置。加密 EBS 卷的快照会自动加密。

从快照创建新卷时，新卷是制作快照时的原始卷的精确副本。通过加密快照创建的 EBS 卷会自动加密。通过指定不同的可用区（可选），您可以使用此功能在该区域中创建重复的卷。快照可以与特定 AWS 账户共享或公开。创建快照时，会根据备份数据的大小（而不是源卷的大小）收取 Amazon S3 费用。同一卷的后续快照为增量快照。这些快照仅包含自上次创建快照以来写入卷的已更改数据和新数据，您只需为这些已更改数据和新数据付费。

快照是增量备份，这意味着仅保存卷上在最新快照之后更改的数据块。如果您的卷中有 100 GiB 的数据，但自上次快照以来只更改了 5 GiB 的数据，则只有这 5 GiB 经过修改的数据会写入 Amazon S3。尽管快照是以增量方式保存的，但快照删除过程仅要求保留最新的快照。

为了便于对卷和快照进行分类和管理，您可以使用选择的元数据对它们加以标记。

要自动备份卷，您可以使用 [Amazon Data Lifecycle Manager](snapshot-lifecycle.md) 或 [AWS Backup](https://docs.aws.amazon.com/aws-backup/latest/devguide/)。

## 弹性
<a name="flexibility-benefit"></a>

EBS 卷支持生产期间的实时配置更改。您可以在不中断服务的情况下修改卷类型、卷大小和 IOPS 容量。有关更多信息，请参阅 [使用弹性卷操作修改 Amazon EBS 卷](ebs-modify-volume.md)。

# Amazon EBS 卷类型
<a name="ebs-volume-types"></a>

Amazon EBS 提供以下卷类型，各种类型性能特点和价格不同，因此您可根据应用程序要求定制您所需的存储性能和相应成本。

**重要**  
有几个因素会影响 EBS 卷的性能，例如实例配置、 I/O 特性和工作负载需求。为了充分利用 EBS 卷上预调配的 IOPS，请使用 [EBS 优化实例](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-optimized.html)。有关充分利用 EBS 卷的更多信息，请参阅 [Amazon EBS 卷性能](ebs-performance.md)。

有关定价的更多信息，请参阅 [Amazon EBS 定价](https://aws.amazon.com/ebs/pricing/)。

**卷类型**
+ [固态硬盘（SSD）卷](#vol-type-ssd)
+ [硬盘驱动器（HDD）卷](#vol-type-hdd)
+ [上一代卷](#vol-type-prev)

## 固态硬盘（SSD）卷
<a name="vol-type-ssd"></a>

SSD 支持的卷针对涉及频繁 read/write 操作且 I/O 大小较小的事务性工作负载进行了优化，其中主要的性能属性是 IOPS。由 SSD 支持的卷类型包括**通用型 SSD** 和**预调配 IOPS SSD**。下面是 SSD 支持的卷的使用案例和特征摘要。


|  | [Amazon EBS 通用型 SSD 卷](general-purpose.md) | [Amazon EBS 预调配 IOPS SSD 卷](provisioned-iops.md) | 
| --- | --- | --- | 
| 卷类型 | gp36 | gp2 | io2 Block Express | io1 | 
| 持久性 | 99.8% - 99.9% 耐用性（0.1% - 0.2% 的年故障率） | 99.999% 的耐用性（0.001% 的年故障率） | 99.8% - 99.9% 耐用性（0.1% - 0.2% 的年故障率） | 
| 使用案例 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/ebs/latest/userguide/ebs-volume-types.html)  |  需要以下工作负载： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/ebs/latest/userguide/ebs-volume-types.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/ebs/latest/userguide/ebs-volume-types.html)  | 
| 卷大小 | 1 GiB-64 TiB  | 1 GiB - 16 TiB  | 4 GiB - 64 TiB  | 4 GiB - 16 TiB  | 
| 最大 IOPS | 80,000 3 (64 kiB I/O 4) | 16,000 (16 I/O ki B 4) | 256,000 3 (16 I/O ki B 4)  | 64,000 (16 I/O Ki B 4) | 
| 最大吞吐量 | 2,000 miB/s | 250 MiB/s 1 | 4,000 MiB/s | 1,000 MiB/s 2 | 
| Amazon EBS 多重挂载 | 不支持 | 支持 | 
| NVMe 保留 | 不支持 | 支持 | 不支持 | 
| 引导卷 | 支持 | 

1 吞吐量限制在 128 MiB/s 到 250 MiB/s 之间，具体取决于卷大小。有关更多信息，请参阅 [`gp2` 卷性能](general-purpose.md#gp2-performance)。除非您[修改卷](ebs-modify-volume.md)，否则在 **2018 年 12 月 3 日**之前创建并且自创建以来未经修改的卷可能无法实现完全性能。

2 要实现 1,000 MiB/s 的最大吞吐量，必须为卷预置 64,000 IOPS，并且必须将卷附加到[基于 Nitro 的实例](https://docs.aws.amazon.com/ec2/latest/instancetypes/ec2-nitro-instances.html)。除非[修改卷](ebs-modify-volume.md)，否则在 **2017 年 12 月 6 日**之前创建且自创建以来未经修改的卷可能无法实现完全性能。

3 [基于 Nitro 的实例](https://docs.aws.amazon.com/ec2/latest/instancetypes/ec2-nitro-instances.html)支持预置高达 256,000 IOPS 的卷。其他实例类型可以挂载到预置了最多 64000IOPS 的卷，但可以实现最多 32000IOPS。

4 表示在卷的吞吐量限制内达到最大 IOPS 所需 I/O 的大小。

5 个 `io2` Block Express 卷旨在为 16Ki I/O B 操作提供低于 500 微秒的平均延迟。

6 在 Outposts 上，gp3 卷支持高达 16 TiB 的大小、高达 16,000 的 IOPS 和高达 1,000 MiB/s 的吞吐量。

有关 SSD 支持的卷类型的更多信息，请参阅以下文件：
+ [Amazon EBS 通用型 SSD 卷](general-purpose.md)
+ [Amazon EBS 预调配 IOPS SSD 卷](provisioned-iops.md)

## 硬盘驱动器（HDD）卷
<a name="vol-type-hdd"></a>

HDD 支持的卷针对大型流式处理工作负载进行了优化，其中主要的性能属性是吞吐量。HDD 容量类型包括**吞吐量优化型 HDD** 和**冷 HDD**。下面是 HDD 支持的卷的使用案例和特征摘要。


|  | [吞吐量优化型 HDD 卷](hdd-vols.md#EBSVolumeTypes_st1) | [Cold HDD 卷](hdd-vols.md#EBSVolumeTypes_sc1) | 
| --- | --- | --- | 
| 卷类型 | st1 | sc1 | 
| 持久性 | 99.8% - 99.9% 耐用性（0.1% - 0.2% 的年故障率） | 
| 使用案例 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/ebs/latest/userguide/ebs-volume-types.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/ebs/latest/userguide/ebs-volume-types.html)  | 
| 卷大小 | 125 GiB - 16 TiB | 
| 每个卷的最大 IOPS（1 MiB I/O） | 500 | 250 | 
| 每个卷的最大吞吐量 | 500 MiB/s | 250 MiB/s | 
| Amazon EBS 多重挂载 | 不支持 | 
| 引导卷 | 不支持 | 

有关硬盘驱动器（HDD）卷的更多信息，请参阅 [Amazon EBS 吞吐量优化型 HDD 和冷 HDD 卷](hdd-vols.md)。

## 上一代卷
<a name="vol-type-prev"></a>

磁性（`standard`）卷是采用磁性驱动器的上一代卷。它们适用于具有较小数据集的工作负载，在这些工作负载中，数据访问不频繁，性能不是最重要的。这些卷平均提供大约 100 IOPS，突增能力最大可达数百 IOPS，大小范围是 1 GiB 到 1 TiB。

**提示**  
磁介质卷是上一代卷类型。如果您需要比上一代卷更高的性能或性能一致性，我们建议您使用当前一代的卷类型之一。

下表列出了上一代 EBS 卷类型。


|  | 磁介质 | 
| --- | --- | 
| 卷类型 | standard | 
| 使用案例 | 数据不常访问的工作负载 | 
| 卷大小 | 1 GiB - 1 TiB | 
| 每个卷的最大 IOPS | 40–200 | 
| 每个卷的最大吞吐量 | 40–90 MiB/s | 
| 引导卷 | 支持 | 

# Amazon EBS 通用型 SSD 卷
<a name="general-purpose"></a>

通用固态硬盘（gp2 和 gp3）卷由固态硬盘（）提供支持。SSDs通用型 SSD 卷在各种事务性工作负载的价格和性能之间实现平衡。其中包括虚拟桌面、中型单实例数据库、延迟敏感型交互式应用程序、开发和测试环境以及启动卷。建议为大多数工作负载使用这种卷。

Amazon EBS 提供以下类型的通用型 SSD 卷：

**Topics**
+ [

## 通用型 SSD（gp3）卷
](#gp3-ebs-volume-type)
+ [

## 通用型 SSD（gp2）卷
](#EBSVolumeTypes_gp2)

## 通用型 SSD（gp3）卷
<a name="gp3-ebs-volume-type"></a>

通用型 SSD（gp3）卷是最新一代通用型 SSD 卷，也是 Amazon EBS 提供的成本最低的 SSD 卷。这种卷类型有助于为大多数应用程序提供合理得当的价格和性能。其还可以帮助您独立于卷大小扩展卷的性能。这意味着您可以预置所需性能，而无需预置额外的块存储容量。此外，gp3 卷每 GiB 价格比通用型 SSD（gp2）卷低了 20%。

gp3 卷提供个位数的毫秒延迟和 99.8% 到 99.9% 的卷持久性，年故障率 (AFR) 不高于 0.2%，这意味着在一年内每 1,000 个运行卷中最多有两次卷故障。 AWS 设计 gp3 卷以在 99% 的时间内提供其预配置的性能。

**提示**  
对于延迟敏感的工作负载，我们建议使用 io2 Block Express 卷。`io2`Block Express 卷旨在为 16Ki I/O B 操作提供低于 500 微秒的平均延迟。 `io2`与通用卷相比，Block Express 卷还可以提供更好的异常值延迟，从而将 I/Os 超过 800 微秒的频率降低了 10 倍以上。有关更多信息，请参阅 [预调配 IOPS SSD（`io2`）Block Express 卷](provisioned-iops.md#io2-block-express)。

**Topics**
+ [

### gp3 卷性能
](#gp3-performance)
+ [

### gp3 卷大小
](#gp3-sie)
+ [

### 从 gp2 迁移到 gp3
](#migrate-to-gp3)

### gp3 卷性能
<a name="gp3-performance"></a>

**提示**  
gp3 卷不使用突增性能。其可以无限期地维持其完全预调配 IOPS 和吞吐量性能。

**IOPS 性能**  
gp3 卷提供 3000 IOPS 的一致基准 IOPS 性能，这包含在存储价格中。您可以按每 GiB 卷大小 500 IOPS 的比例预置额外的 IOPS（最大 80,000 IOPS），但需支付额外费用。可为 160 GiB 或更大的卷预置最大 IOPS（每 GiB 500 IOPS × 160 GiB = 80,000 IOPS）。

**吞吐量性能**  
gp3 卷提供一致的基准吞吐量性能（为 125MiB/s, which is included with the price of storage. You can provision additional throughput (up to a maximum of 2,000 MiB/s) for an additional cost at a ratio of 0.25 MiB/s per provisioned IOPS. Maximum throughput can be provisioned at 8,000 IOPS or higher and 16 GiB or larger (8,000 IOPS × 0.25 MiB/s per IOPS = 2,000 MiB/s）。

**注意**  
在 Outposts 上，gp3 卷支持高达 16 TiB 的大小、高达 16,000 的 IOPS 和高达 1,000 MiB/s 的吞吐量。

### gp3 卷大小
<a name="gp3-sie"></a>

gp3 卷的大小可以从 1 GiB 到 64 TiB 不等。

### 从 gp2 迁移到 gp3
<a name="migrate-to-gp3"></a>

如果您当前正在使用 gp2 卷，则可以使用 [使用弹性卷操作修改 Amazon EBS 卷](ebs-modify-volume.md) 操作将卷迁移到 gp3。您可以使用 Amazon EBS 弹性卷操作修改现有卷的卷类型、IOPS 和吞吐量，而不中断 Amazon EC2 实例。当使用控制台创建卷或从快照中创建 AMI 时，卷类型的默认选择是“通用型 SSD `gp3`”。在其他情况下，默认选择是 `gp2`。在这些情况下，可以选择 `gp3` 作为卷类型而不是使用 `gp2`。

若要了解将 gp2 卷迁移到 gp3 可以节省多少费用，请使用 [Amazon EBS gp2 至 gp3 迁移成本节省计算器](https://d1.awsstatic.com/product-marketing/Storage/EBS/gp2_gp3_CostOptimizer.dd5eac2187ef7678f4922fcc3d96982992964ba5.xlsx)。

## 通用型 SSD（gp2）卷
<a name="EBSVolumeTypes_gp2"></a>

这种卷类型可提供经济实惠的存储，是广泛事务性工作负载的理想选择。使用 `gp2` 卷，性能随卷大小而扩展。

**提示**  
`gp3` 卷是最新一代通用型 SSD 卷。其提供更加可预测的性能扩展，而且价格比 `gp2` 卷低 20%。有关更多信息，请参阅 [通用型 SSD（gp3）卷](#gp3-ebs-volume-type)。  
若要了解将 `gp2` 卷迁移到 `gp3` 可以节省多少费用，请使用 [Amazon EBS gp2 至 gp3 迁移成本节省计算器](https://d1.awsstatic.com/product-marketing/Storage/EBS/gp2_gp3_CostOptimizer.dd5eac2187ef7678f4922fcc3d96982992964ba5.xlsx)。

`gp2`卷提供个位数的毫秒延迟和 99.8% 至 99.9% 的卷持久性，年故障率 (AFR) 不高于 0.2%，也就是说，在一年内每 1,000 个运行卷中最多有两次卷故障。 AWS 设计`gp2`卷以在 99% 的时间内提供其预配置的性能。

**Topics**
+ [

### `gp2` 卷性能
](#gp2-performance)
+ [

### `gp2` 卷大小
](#gp2-size)

### `gp2` 卷性能
<a name="gp2-performance"></a>

**IOPS 性能**  
基准 IOPS 性能以每 GiB 卷大小 3 IOPS 的速度，在最小 100 IOPS 和最大 16000 IOPS 之间进行线性扩缩。IOPS 性能预置如下：
+ 33.33 GiB 及更小的卷预置至少 100 IOPS。
+ 大于 33.33GiB 的卷预置每 GiB 卷大小 3IOPS，最高可达 16000IOPS，达到 5334GiB（3 X 5334）。
+ 5334 GiB 及更大的卷预置 16000 IOPS。

小于 1 TiB 的 `gp2` 卷（且预置的 IOPS 低于 3000）可在需要较长时间时**突增**至 3000 IOPS。卷的爆发能力受 I/O 积分控制。当 I/O 需求大于基准性能时，该卷将**花费 I/O 积分**来突破到所需的性能级别（最多 3,000 IOPS）。突破时， I/O 积分不会累积，其使用率高于基准 IOPS 的 IOPS（支出率 = 突发 IOPS-基准 IOPS）。一卷累 I/O 积的积分越多，它维持爆发性能的时间就越长。您可以按如下方式计算**突增持续时间**：

```
                        (I/O credit balance)
Burst duration  =  ------------------------------
                   (Burst IOPS) - (Baseline IOPS)
```

当 I/O 需求降至基准性能水平或更低时，该卷开始以每 GiB 卷大小每秒 3 个 I/O 积分的速度**获得 I/O **积分。卷的 I **/O 积分累积限制**为 540 万个 I/O 积分，足以在至少 30 分钟内保持 3,000 IOPS 的最大突发性能。

**注意**  
每个卷的初始 I/O 积分余额为 540 万个 I/O 积分，这为启动卷提供了快速的初始启动周期，为其他应用程序提供了良好的引导体验。

下表列出了卷大小示例、卷的相关基准性能、爆发持续时间（从 540 万 I/O 个积分开始时）以及充值空 I/O 积分余额所需的时间。


| 卷大小（GiB） | 基准性能（IOPS） | 3000 IOPS 时的最大突增持续时间（秒） | 重填空 I/O 积分余额所需的时间（秒） | 
| --- | --- | --- | --- | 
|  1 至 33.33  |  100  |  1862  | 54000 | 
|  100  |  300  |  2000  | 18000 | 
|  334（最大吞吐量的最小大小）  | 1,002 |  2,703  |  5,389  | 
|  750  |  2250  |  7200  | 2400 | 
|  1000  |  3000  |  不适用\$1  |  不适用\$1  | 
|  5334（最大 IOPS 的最小大小）及更大  |  16000  |  不适用\$1  |  不适用\$1  | 

\$1卷的基准性能超过了最大突发性能。

您可以使用亚马逊中的 Amazon EBS `BurstBalance` 指标监控交易量的 I/O 贷记余额。 CloudWatch此指标显示 `gp2` 剩余的 I/O 积分百分比。有关更多信息，请参阅 [Amazon EBS I/O 特征和监控](ebs-io-characteristics.md)。您可以设置警报，以便在 `BurstBalance` 值降到特定水平时获取通知。有关更多信息，请参阅[创建 CloudWatch 警报](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html)。

**吞吐量性能**  


`gp2`卷提供的吞吐量在 128 MiB/s 到 250 MiB/s 之间，具体取决于卷大小。吞吐量性能预置如下：
+ 170 GiB 或更小的卷提供最大 128 MiB/s 的吞吐量。
+ 大于 170 GiB 但小于 334 GiB 的卷可以突增至 250 MiB/s 的最大吞吐量。
+ 334 GiB 及更大的卷提供 250 MiB/s 的吞吐量。

`gp2` 卷的吞吐量可以使用以下公式计算，吞吐量上限为 250 MiB/s：

```
Throughput in MiB/s = IOPS performance × I/O size in KiB / 1,024
```

### `gp2` 卷大小
<a name="gp2-size"></a>

`gp2` 卷的大小范围为 1 GiB 到 16 TiB。请记住，卷性能随卷大小呈线性扩缩。

# Amazon EBS 预调配 IOPS SSD 卷
<a name="provisioned-iops"></a>

预配置的 IOPS SSD 卷由固态硬盘（）提供支持。SSDs这种卷是性能最高的 Amazon EBS 存储卷，专为需要低延迟的 IOPS 密集型和吞吐量密集型关键工作负载而设计。预调配 IOPS SSD 卷在 99.9% 的时间里可提供预置 IOPS 性能。

**Topics**
+ [

## 预调配 IOPS SSD（`io2`）Block Express 卷
](#io2-block-express)
+ [

## 预调配 IOPS SSD（`io1`）卷
](#EBSVolumeTypes_piops)

## 预调配 IOPS SSD（`io2`）Block Express 卷
<a name="io2-block-express"></a>

`io2` Block Express 卷基于下一代 Amazon EBS 存储服务器架构而构建。它旨在满足在 [Nitro System 上构建的实例上运行的最苛刻的 I/O 密集型应用程序的](https://docs.aws.amazon.com/ec2/latest/instancetypes/ec2-nitro-instances.html)性能要求。Block Express 具有最高耐用性和最低延迟，非常适合运行性能密集、任务关键型工作负载，例如 Oracle、SAP HANA、Microsoft SQL Server 和 SAS Analytics。

Block Express 架构提高了 `io2` 卷的性能和规模。Block Express 服务器使用可扩展的可靠数据报（SRD）网络协议与[基于 Nitrol 的实例](https://docs.aws.amazon.com/ec2/latest/instancetypes/ec2-nitro-instances.html)通信。此接口是在专用于实例主机硬件上的 Amazon I/O EBS 功能的 Nitro Card 中实现的。它最大限度地减少了 I/O 延迟和延迟变化（网络抖动），从而为您的应用程序提供更快、更稳定的性能。

`io2` Block Express 卷可提供 99.999% 的卷耐用性，年故障率（AFR）不超过 0.001%，这意味着在一年时间内，每 10 万个正在运行的卷最多发生一次卷故障。`io2`Block Express 卷非常适合可以从提供一致亚毫秒级延迟的单个卷受益的工作负载，并支持比 gp3 卷更高的 IOPS 和吞吐量。

当连接到[基于 Nitro的实例](https://docs.aws.amazon.com/ec2/latest/instancetypes/ec2-nitro-instances.html)时，`io2`Block Express 卷旨在为 16 I/O KiB 操作提供低于 500 微秒的平均延迟。 `io2`与通用卷相比，Block Express 卷还可以提供更好的异常值延迟，从而将 I/Os 超过 800 微秒的频率降低了 10 倍以上。

**Topics**
+ [

### 注意事项
](#io2-bx-considerations)
+ [

### 性能
](#io2-bx-perf)

### 注意事项
<a name="io2-bx-considerations"></a>
+ `io2`Block Express 卷适用于所有 AWS 区域，包括 AWS GovCloud (US) 地区和中国区域。
+ 截至 **2025 年 4 月 30 日**，所有新增和之前创建的 `io2` 卷均为 `io2` Block Express卷。
+ [基于 Nitro 的实例](https://docs.aws.amazon.com/ec2/latest/instancetypes/ec2-nitro-instances.html)支持预置高达 256,000 IOPS 的卷。其他实例类型可以挂载到预置了最多 64000IOPS 的卷，但可以实现最多 32000IOPS。

### 性能
<a name="io2-bx-perf"></a>

`io2` Block Express 卷具有以下特征：
+ 对于大小为 16Ki I/O B，平均延迟低于 500 微秒。与通用卷相比，异常值延迟更好，将 I/Os 超过 800 微秒的频率降低了 10 倍以上。
+ 存储容量高达 64TiB（65,536 GiB）。
+ 预置 IOPS 高达 256,000，IOPS:GiB 比率为 1,000:1。可以为 256GiB 和更大的卷预置最多 IOPS（1000IOPS x 256GiB = 256000IOPS）。
**注意**  
使用[基于 Nitro 的实例](https://docs.aws.amazon.com/ec2/latest/instancetypes/ec2-nitro-instances.html)可以实现最多 256,000 IOPS。在其他实例中，可以实现最高 32,000 IOPS。
+ MiB/s. Throughput scales proportionally at a rate of 0.256 MiB/s每个预配置 IOPS 的容量吞吐量高达 4,000。最大吞吐量可在 16,000 IOPS 或更高的情况下实现。

![\[io2 Block Express 卷的吞吐量限制\]](http://docs.aws.amazon.com/zh_cn/ebs/latest/userguide/images/io2_bx.png)


## 预调配 IOPS SSD（`io1`）卷
<a name="EBSVolumeTypes_piops"></a>

预调配 IOPS SSD（`io1`）卷旨在满足 I/O 密集型工作负载（尤其是数据库工作负载）的需求，这些工作负载对存储性能和一致性非常敏感。预置 IOPS SSD 卷使用一致的 IOPS 速率（在创建卷时指定），而 Amazon EBS 在 99.9% 的时间里可提供预置性能。

`io1` 卷可提供 99.8% 到 99.9% 的卷耐用性，年故障率（AFR）不超过 0.2%，这意味着在一年时间内，每 1000 个正在运行的卷最多发生两次卷故障。

`io1` 卷可用于所有 Amazon EC2 实例类型。

**性能**  
`io1` 卷的大小介于 4GiB 到 16TiB 不等，可以为每个卷预置 100IOPS 到最多 64000IOPS。预调配 IOPS 与请求的卷大小（以 GiB 为单位）的最大比率为 50:1。例如，可以为一个 100GiB `io1` 卷预置最多 5000IOPS。

可以为 1280GiB 或更大的卷预置最多的 IOPS（50 × 1280GiB = 64000IOPS）。
+ `io1`配置了高达 32,000 IOPS 的卷支持的最 I/O 大大小为 256 KiB，吞吐量高达 500。 MiB/s 如果 I/O 大小为最大值，则在 2,000 IOPS 时达到峰值吞吐量。
+ 预调配超过 32000IOPS（最高可达 64000IOPS）的 `io1` 卷以每个预调配 IOPS 16KiB 的速率线性增大吞吐量。例如，预置了 48,000 IOPS 的卷最多可以支持 750 MiB/s 的吞吐量（每个预配置 IOPS 16 KiB × 48,000 预配置 IOPS = 750 MiB/s）。
+ 达到最大吞吐量MiB/s, a volume must be provisioned with 64,000 IOPS (16 KiB per provisioned IOPS × 64,000 provisioned IOPS = 1,000 MiB/s（1,000）。
+ 只有在[基于 Nitro 的实例](https://docs.aws.amazon.com/ec2/latest/instancetypes/ec2-nitro-instances.html)上才能实现最多 64,000 IOPS。在其他实例中，可以实现最高 32,000 IOPS。

下图说明了这些性能特性：

![\[io1 卷的吞吐量限制\]](http://docs.aws.amazon.com/zh_cn/ebs/latest/userguide/images/io1_throughput.png)


您对工作负载的I/O latency experience depends on the provisioned IOPS and on your workload profile. For the best I/O latency experience, ensure that you provision IOPS to meet the I/O个人概况。

# Amazon EBS 吞吐量优化型 HDD 和冷 HDD 卷
<a name="hdd-vols"></a>

Amazon EBS 提供的 HDD 卷分为以下几个类别：
+ 吞吐量优化型 HDD – 适用于访问频率较高的吞吐量密集型工作负载的低成本 HDD。
+ 冷 HDD – 适用于访问频率较低的工作负载的最低成本 HDD。

**Topics**
+ [

## 每实例吞吐量限制
](#throughput-limitations)
+ [

## 吞吐量优化型 HDD 卷
](#EBSVolumeTypes_st1)
+ [

## Cold HDD 卷
](#EBSVolumeTypes_sc1)
+ [

## 使用 HDD 卷时的性能注意事项
](#EBSVolumeTypes_considerations)
+ [

## 监控卷的突发存储桶余额
](#monitoring_burstbucket-hdd)

## 每实例吞吐量限制
<a name="throughput-limitations"></a>

`st1` 和 `sc1` 卷的吞吐量始终由以下限制中较小的决定：
+ 卷的吞吐量限制
+ 实例的吞吐量限制

对于所有 Amazon EBS 卷，我们建议选择适当的 EBS 优化型 EC2 实例来避免网络瓶颈。

## 吞吐量优化型 HDD 卷
<a name="EBSVolumeTypes_st1"></a>

吞吐量优化型 HDD（`st1`）卷提供低成本的磁性存储，该存储以吞吐量而不是 IOPS 定义性能。该卷类型是大型顺序工作负载（例如 Amazon EMR、ETL、数据仓库和日志处理）的理想之选。不支持可启动的 `st1` 卷。

吞吐量优化型 HDD（`st1`）卷虽然与 Cold HDD（`sc1`）卷类似，但其旨在支持*频繁*访问的数据。

**注意**  
此卷类型针对涉及大规模、连续I/O, and we recommend that customers with workloads performing small, random I/O使用[Amazon EBS 通用型 SSD 卷](general-purpose.md)或的工作负载进行了优化[Amazon EBS 预调配 IOPS SSD 卷](provisioned-iops.md)。有关更多信息，请参阅 [硬盘 read/writes 上的小容量效率低下](#inefficiency)。

附加到 EBS 优化型实例的吞吐量优化型 HDD（`st1`）卷旨在提供一致的性能，在给定年度的 99% 时间内交付至少 90% 的预期吞吐量性能。

### 吞吐量积分和突增性能
<a name="ST1ThroughputBurst"></a>

与 `gp2` 类似，`st1` 使用突增存储桶模型提高性能。卷大小决定卷的基准吞吐量，即卷积累吞吐量积分的速度。卷大小还决定卷的突增吞吐量，即有积分可用时消耗积分的速度。较大的卷有较高的基准吞吐量和突增吞吐量。您的音量拥有的积分越多，它 I/O 在爆发等级下可以行驶的时间就越长。

下图显示 `st1` 的突增存储桶行为。

![\[st1 突增存储桶\]](http://docs.aws.amazon.com/zh_cn/ebs/latest/userguide/images/st1-burst-bucket.png)


`st1` 卷的可用吞吐量受吞吐量和吞吐量积分上限的限制，由以下公式表示：

```
(Volume size) × (Credit accumulation rate per TiB) = Throughput
```

对于 1 TiB 的`st1`卷，突发吞吐量限制为 250MiB/s, the bucket fills with credits at 40 MiB/s，并且最多可以容纳 1 TiB 的积分。

体积越大，这些限制就会线性扩展，吞吐量上限为每 MiB/s. After the bucket is depleted, throughput is limited to the baseline rate of 40 MiB/s TiB 500。

对于介于 0.125 TiB 到 16 TiB 之间的卷大小，基准吞吐量从 MiB/s 5 到 500 MiB/s 不等，在 12.5 TiB 时达到上限，如下所示：

```
            40 MiB/s
12.5 TiB × ---------- = 500 MiB/s
             1 TiB
```

突发吞吐量从 31 MiB/s 到 500 MiB/s 的上限不等，上限为 2 TiB，如下所示：

```
         250 MiB/s
2 TiB × ---------- = 500 MiB/s
          1 TiB
```

下表列出了 `st1` 基准和突增吞吐量值的完整范围。


| 卷大小（TiB） | ST1 基本吞吐量 (MiB/s) | ST1 突发吞吐量 (MiB/s) | 
| --- | --- | --- | 
| 0.125 | 5 | 31 | 
| 0.5 | 20 | 125 | 
| 1 | 40 | 250 | 
| 2 | 80 | 500 | 
| 3 | 120 | 500 | 
| 4 | 160 | 500 | 
| 5 | 200 | 500 | 
| 6 | 240 | 500 | 
| 7 | 280 | 500 | 
| 8 | 320 | 500 | 
| 9 | 360 | 500 | 
| 10 | 400 | 500 | 
| 11 | 440 | 500 | 
| 12 | 480 | 500 | 
| 12.5 | 500 | 500 | 
| 13 | 500 | 500 | 
| 14 | 500 | 500 | 
| 15 | 500 | 500 | 
| 16 | 500 | 500 | 

下图绘制了表值：

![\[比较 st1 基准性能和突增性能\]](http://docs.aws.amazon.com/zh_cn/ebs/latest/userguide/images/st1_base_v_burst.png)


**注意**  
如果创建吞吐量优化型 HDD（`st1`）卷的快照，则在快照处理过程中，性能可能会降低，最坏情况下会降低到卷的基准值。

有关使用 CloudWatch 指标和警报监控突发存储桶余额的信息，请参阅[监控卷的突发存储桶余额](#monitoring_burstbucket-hdd)。

## Cold HDD 卷
<a name="EBSVolumeTypes_sc1"></a>

Cold HDD（`sc1`）卷提供低成本的磁性存储，该存储以吞吐量而不是 IOPS 定义性能。`st1` 的吞吐量限制比 `sc1` 更低，是大型顺序冷数据工作负载的绝佳选择。如果您需要频繁访问数据并且希望节约成本，`sc1` 提供价格低廉的块存储。不支持可启动的 `sc1` 卷。

Cold HDD（`sc1`）卷虽然与吞吐量优化型 HDD（`st1`）卷类似，但其旨在支持*不频繁*访问的数据。

**注意**  
此卷类型针对涉及大规模、连续I/O, and we recommend that customers with workloads performing small, random I/O使用[Amazon EBS 通用型 SSD 卷](general-purpose.md)或的工作负载进行了优化[Amazon EBS 预调配 IOPS SSD 卷](provisioned-iops.md)。有关更多信息，请参阅 [硬盘 read/writes 上的小容量效率低下](#inefficiency)。

附加到 EBS 优化型实例的 Cold HDD（`sc1`）卷旨在提供一致的性能，在给定年度的 99% 时间内交付至少 90% 的预期吞吐量性能。

### 吞吐量积分和突增性能
<a name="SC1ThroughputBurst"></a>

与 `gp2` 类似，`sc1` 使用突增存储桶模型提高性能。卷大小决定卷的基准吞吐量，即卷积累吞吐量积分的速度。卷大小还决定卷的突增吞吐量，即有积分可用时消耗积分的速度。较大的卷有较高的基准吞吐量和突增吞吐量。您的音量拥有的积分越多，它 I/O 在爆发等级下可以行驶的时间就越长。

![\[sc1 突增存储桶\]](http://docs.aws.amazon.com/zh_cn/ebs/latest/userguide/images/sc1-burst-bucket.png)


`sc1` 卷的可用吞吐量受吞吐量和吞吐量积分上限的限制，由以下公式表示：

```
(Volume size) × (Credit accumulation rate per TiB) = Throughput
```

对于 1 TiB 的`sc1`卷，突发吞吐量限制为 80MiB/s, the bucket fills with credits at 12 MiB/s，并且最多可以容纳 1 TiB 的积分。

体积越大，这些限制就会线性扩展，吞吐量上限为每 MiB/s. After the bucket is depleted, throughput is limited to the baseline rate of 12 MiB/s TiB 最大 250。

对于介于 0.125 TiB 到 16 TiB 之间的卷大小，基准吞吐量从 MiB/s 1.5 到最大 192 MiB/s 不等，在 16 TiB 时可达到，如下所示：

```
           12 MiB/s
16 TiB × ---------- = 192 MiB/s
            1 TiB
```

突发吞吐量从 10 MiB/s 到 250 MiB/s 的上限不等，上限为 3.125 TiB，如下所示：

```
             80 MiB/s
3.125 TiB × ----------- = 250 MiB/s
              1 TiB
```

下表列出了 `sc1` 基准和突增吞吐量值的完整范围：


| 卷大小（TiB） | SC1 基本吞吐量 (MiB/s) | SC1 突发吞吐量 (MiB/s) | 
| --- | --- | --- | 
| 0.125 | 1.5 | 10 | 
| 0.5 | 6 | 40 | 
| 1 | 12 | 80 | 
| 2 | 24 | 160 | 
| 3 | 36 | 240 | 
| 3.125 | 37.5 | 250 | 
| 4 | 48 | 250 | 
| 5 | 60 | 250 | 
| 6 | 72 | 250 | 
| 7 | 84 | 250 | 
| 8 | 96 | 250 | 
| 9 | 108 | 250 | 
| 10 | 120 | 250 | 
| 11 | 132 | 250 | 
| 12 | 144 | 250 | 
| 13 | 156 | 250 | 
| 14 | 168 | 250 | 
| 15 | 180 | 250 | 
| 16 | 192 | 250 | 

下图绘制了表值：

![\[比较 sc1 基准性能和突增性能\]](http://docs.aws.amazon.com/zh_cn/ebs/latest/userguide/images/sc1_base_v_burst.png)


**注意**  
如果创建 Cold HDD（`sc1`）卷的快照，则在快照处理过程中，性能可能会降低，最坏情况下会降低到卷的基准值。

有关使用 CloudWatch 指标和警报监控突发存储桶余额的信息，请参阅[监控卷的突发存储桶余额](#monitoring_burstbucket-hdd)。

## 使用 HDD 卷时的性能注意事项
<a name="EBSVolumeTypes_considerations"></a>

为了使用 HDD 卷获得最优的吞吐量结果，请根据以下注意事项计划您的工作负载。

### **比较吞吐量优化型 HDD 和 Cold HDD**
<a name="ST1vSC1"></a>

`st1` 和 `sc1` 存储桶大小因卷大小而异，满的存储桶包含充足的令牌用于完整卷扫描。不过，因为每实例和每卷的吞吐量限制，更大的 `st1` 和 `sc1` 卷需要更长的时间完成卷扫描。附加到较小实例的卷被限制在每实例吞吐量上，而不是 `st1` 或 `sc1` 吞吐量限制。

`st1` 和 `sc1` 专为在 99% 的时间内实现 90% 的突增吞吐量性能一致性而设计。不合规时间段大致均匀分布，目标是达到 99% 的每小时预计总吞吐量。

一般来说，扫描时间可由此公式表示：

```
 Volume size
------------ = Scan time
 Throughput
```

例如，考虑到性能一致性保证和其他优化，拥有 5 TiB 卷的 `st1` 客户预计在 2.91 到 3.27 小时内完成整卷扫描。
+ 最佳扫描时间

  ```
     5 TiB            5 TiB
  ----------- = ------------------ = 10,486 seconds = 2.91 hours 
   500 MiB/s     0.00047684 TiB/s
  ```
+ 最长扫描时间

  ```
    2.91 hours
  -------------- = 3.27 hours
   (0.90)(0.99) <-- From expected performance of 90% of burst 99% of the time
  ```

同样，拥有 5 TiB 卷的 `sc1` 客户预计在 5.83 到 6.54 小时内完成整卷扫描。
+ 最佳扫描时间

  ```
     5 TiB             5 TiB
  ----------- = ------------------- = 20972 seconds = 5.83 hours 
   250 MiB/s     0.000238418 TiB/s
  ```
+ 最长扫描时间

  ```
    5.83 hours
  -------------- = 6.54 hours
   (0.90)(0.99)
  ```

下表列出了不同大小卷的理想扫描时间，假设存储桶是满的并且有充足的实例吞吐量。


| 卷大小（TiB） | ST1 连拍扫描时间（小时）\$1 | SC1 连拍扫描时间（小时）\$1 | 
| --- | --- | --- | 
| 1 | 1.17 | 3.64 | 
| 2 | 1.17 | 3.64 | 
| 3 | 1.75 | 3.64 | 
| 4 | 2.33 | 4.66 | 
| 5 | 2.91 | 5.83 | 
| 6 | 3.50 | 6.99 | 
| 7 | 4.08 | 8.16 | 
| 8 | 4.66 | 9.32 | 
| 9 | 5.24 | 10.49 | 
| 10 | 5.83 | 11.65 | 
| 11 | 6.41 | 12.82 | 
| 12 | 6.99 | 13.98 | 
| 13 | 7.57 | 15.15 | 
| 14 | 8.16 | 16.31 | 
| 15 | 8.74 | 17.48 | 
| 16 | 9.32 | 18.64 | 

 \$1 这些扫描时间在执行 1 MiB 顺序 I/O 时采取平均队列深度（四舍五入到最近的整数）四或更多。

因此，如果您有面向吞吐量的工作负载需要快速完成扫描（最快 500MiB/s）或一天查询几个整卷，请使用 `st1`。如果您正在进行成本优化，您的数据访问频率相对较低，并且不需要超过 250 MiB/s 的扫描性能，则使用。`sc1`

### 硬盘 read/writes 上的小容量效率低下
<a name="inefficiency"></a>

`st1`和`sc1`卷的性能模型针对顺序进行了优化I/Os, favoring high-throughput workloads, offering acceptable performance on workloads with mixed IOPS and throughput, and discouraging workloads with small, random I/O。

例如，1 MiB 或更少的 I/O 请求算作 1 MiB 的积分。 I/O 但是，如果它们 I/Os 是连续的，则它们会合并为1 MiB的 I/O 区块，并且仅计为1 MiB积分。 I/O 

## 监控卷的突发存储桶余额
<a name="monitoring_burstbucket-hdd"></a>

您可以使用亚马逊上提供的 Amazon EBS `BurstBalance` 指标监控`st1`和`sc1`卷的突发存储桶级别。 CloudWatch此指标显示 `st1` 和 `sc1` 在突增存储桶中剩余的吞吐量积分。有关指标和其他与 I/O 相关的指标的更多信息，请参阅[Amazon EBS I/O 特征和监控](ebs-io-characteristics.md)。`BurstBalance` CloudWatch 还允许您设置警报，当该`BurstBalance`值降至一定水平时会通知您。有关更多信息，请参阅[创建 CloudWatch 警报](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html)。

# Amazon EBS 卷限制
<a name="volume_constraints"></a>

Amazon EBS 卷的大小受块数据存储的物理和算术以及操作系统 (OS) 和文件系统设计者的实施决策的限制。 AWS 对卷大小施加了额外的限制，以保障其服务的可靠性。

以下部分介绍了限制 EBS 卷的可用大小并提供配置 EBS 卷的建议的最重要因素。

**Topics**
+ [

## 存储容量
](#ebs-storage-capacity)
+ [

## 服务限制
](#aws_limits)
+ [

## 分区方案
](#partitioning)
+ [

## 数据块大小
](#block_size)

## 存储容量
<a name="ebs-storage-capacity"></a>

下表总结了 Amazon EBS 上的最常用文件系统的理论和实现存储容量（假定 4096 字节块大小）。


| 分区方案 | 最大可寻址块数  | 理论最大大小（块数 x 块大小） | Ext4 实现的最大大小\$1 | XFS 实现的最大大小\$1\$1 | NTFS 实现的最大大小 | EBS 支持的最大大小 | 
| --- | --- | --- | --- | --- | --- | --- | 
| MBR | 232 | 2 TiB | 2 TiB | 2 TiB | 2 TiB | 2 TiB | 
| GPT | 264 |  64 ZiB  | 1 EiB =242 10TiB （已通过 50 TiB 认证） RHEL7 |  500 TiB （已通过认证 RHEL7）  | 256 TiB | 64 TiB † | 

\$1 [Ext4 Howto](https://archive.kernel.org/oldwiki/ext4.wiki.kernel.org/index.php/Ext4_Howto.html) 和 [Red Hat Enterprise Linux 对文件和文件系统的大小有什么限制？](https://access.redhat.com/solutions/1532)

\$1\$1 [Red Hat Enterprise Linux 对文件和文件系统的大小有什么限制？](https://access.redhat.com/solutions/1532)

† `io2` Block Express 卷最高支持 64TiB 的 GPT 分区。有关更多信息，请参阅 [预调配 IOPS SSD（`io2`）Block Express 卷](provisioned-iops.md#io2-block-express)。

## 服务限制
<a name="aws_limits"></a>

Amazon EBS 将数据中心的大规模分布式存储提取到虚拟硬盘中。对安装在 EC2 实例上的操作系统而言，附加的 EBS 卷似乎是包含 512 字节磁盘扇区的物理硬盘驱动器。操作系统通过其存储管理实用程序对数据块（或集群）分配到这些虚拟扇区进行管理。分配与卷分区方案（例如主启动记录 [MBR] 或 GUID 分区表 [GPT]）一致，并且属于已安装文件系统（ext4、NTFS 等）的功能。

EBS 不知道其虚拟磁盘扇区中包含的数据；它只会确保扇区的完整性。这意味着 AWS 操作和操作系统操作是相互独立的。在您选择卷大小时，请注意二者的功能和限制，如以下情况中所示：
+ EBS 当前支持最大卷大小 64 TiB。这意味着您可以创建一个大小为 64 TiB 的 EBS 卷，但操作系统是否能够识别该容量的全部取决于其自身的设计特征以及该卷的分区方式。
+ 启动卷必须使用 MBR 或 GPT 分区方案。您从中启动实例的 AMI 决定了启动模式以及随后用于启动卷的分区方案。

  使用 **MBR** 时，启动卷的大小限制为 2 TiB。

  使用 **GPT**，与 (Linux) 或 UEFI 启动模式 (Windows) GRUB2 一起使用时，启动卷的大小可以高达 64 TiB。

  有关更多信息，请参阅 [使 Amazon EBS 卷可供使用](ebs-using-volumes.md)。
+ 2 TiB（2048 GiB）或更大的非启动卷必须使用 GPT 分区表才能访问整个卷。

## 分区方案
<a name="partitioning"></a>

除其他影响之外，分区方案还确定了可以在单个卷中唯一寻址的逻辑数据块的数量。有关更多信息，请参阅[数据块大小](#block_size)。正在使用的常见分区方案是*主启动记录*（MBR）和 *GUID 分区表*（GPT）。这两个方案之间的重要差别可归纳如下。

### MBR
<a name="mbr-partitioning"></a>

MBR 使用 32 位数据结构来存储块地址。这意味着，每个数据块会映射到 232 个可能整数之一。卷的最大可寻址大小由以下公式给出：

```
232 × Block size
```

MBR 卷的块大小通常限制为 512 字节。因此：

```
232 × 512 bytes = 2 TiB
```

工程解决办法是提高 MBR 卷的这个 2 TiB 限制，但还没有被行业广泛采用。因此，Linux 和 Windows 永远不会检测到 MBR 体积大于 2 TiB， AWS 即使显示其大小更大。

### GPT
<a name="gpt-partitioning"></a>

GPT 使用 64 位数据结构来存储块地址。这意味着，每个数据块会映射到 264 个可能整数之一。卷的最大可寻址大小由以下公式给出：

```
264 × Block size
```

GPT 卷的块大小通常限制为 4,096 字节。因此：

```
264 × 4,096 bytes
   = 264 × 212 bytes
   = 270 × 26 bytes
   = 64 ZiB
```

现实世界中的计算机系统不支持任何接近这个理论最大值的值。实施的文件系统大小目前上限为 50TiB（对于 ext4）和 256TiB（对于 NTFS）。

## 数据块大小
<a name="block_size"></a>

现代硬盘驱动器上的数据存储是通过*逻辑块寻址* 来管理的，逻辑块寻址是一个抽象层，它允许操作系统在逻辑块中读取和写入数据，而无需详细了解底层硬件。操作系统依靠存储设备将块映射到其物理扇区，并使用是扇区大小数倍的数据块将数据读写到磁盘。

Amazon EBS 根据以下因素向操作系统公布 512 字节或 4,096 字节（4 KiB）物理扇区。

1. Amazon EC2 实例类型

1. 操作系统

1.  NVMe 驱动程序版本

仅在所有因素都支持的情况下，Amazon EBS 才会公布 4KiB 物理扇区。如果其中任何一个因素不支持 4 KiB 物理扇区，Amazon EBS 将公布 512 字节物理扇区。

**Amazon EC2 实例类型支持**  
下表显示了 Amazon EBS 针对不同 Amazon EC2 实例类型公布的扇区大小。


| 实例类型 | Linux | Windows | 
| --- | --- | --- | 
| 所有基于 Xen 的实例类型 | Amazon EBS 始终公告 512 字节物理扇区 | 
| A1 \$1 c5 \$1 c5a \$1 c5ad \$1 c5d \$1 c5n \$1 c6g \$1 c6gD \$1 c6gD \$1 \$1 d3 \$1 d3en \$1 g4ad \$1 g4dN \$1 G5 \$1 g5g \$1 i3 DL1 \$1 i3en \$1 Inf1 \$1 m5 \$1 m5a \$1 m5ad \$1 m5d \$1 m5d \$1 m5n \$1 m6gD \$1 m5zn \$1 m6gD \$1 p3dn \$1 p4d \$1 p4de \$1 R5 \$1 r5a \$1 r5ad \$1 r5ad \$1 r5d \$1 r5dn \$1 r5n \$1 r6g \$1 r6gD \$1 t3 \$1 t3a \$1 t4g \$1 u-12tb1 \$1 u-18tb1 \$1 u-3tb1 \$1 u-9tb1 \$1 x2gd \$1 z1d VT1  | Amazon EBS 始终公告 512 字节物理扇区 | Amazon EBS 公告 512 字节或 4 KiB 物理扇区 1 | 
| 所有其他基于 Nitro 的实例 | Amazon EBS 公告 512 字节或 4 KiB 物理扇区 1 | 

1 取决于操作系统支持情况。参阅以下 部分。

**操作系统支持**  
下表提供了示例操作系统以及 Amazon EBS 公告的相应物理扇区大小。这**并非是详尽的列表**。我们建议您在操作系统中验证 Amazon EBS 公布的物理扇区大小。




| 操作系统 | 公布的物理扇区大小 | 
| --- | --- | 
|  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/ebs/latest/userguide/volume_constraints.html)  | 512 字节 | 
|  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/ebs/latest/userguide/volume_constraints.html)  | 4 KiB | 

1 对于 Windows 工作负载，请确保您使用的是最新版本的[AWS NVMe 驱动程序](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/aws-nvme-drivers.html)。Amazon EBS 宣传的 AWS NVMe 驱动程序版本为 1.4.1 及更高版本的 4 KiB 物理扇区。

### 非默认块大小
<a name="block-size-additional"></a>

逻辑数据块的行业默认大小当前为 4 KiB。由于某些工作负载受益于较小或较大的块大小，因此文件系统支持可在格式化期间指定的非默认块大小。应使用非默认块大小的情况（如优化）不在本主题的范围内，但块大小的选择会对卷的存储容量产生影响。下表显示了理论存储容量随不同块大小的变化。但是，请注意，EBS 对卷大小的限制（io2 Block Express 为 64 TiB）当前等于 16 KiB 数据块支持的最大大小。


| 块大小 | 最大卷大小 | 
| --- | --- | 
| 4KiB（默认） | 16 TiB | 
| 8 KiB | 32 TiB | 
| 16 KiB | 64 TiB | 
| 32 KiB | 128 TiB | 
| 64KiB（最大） | 256 TiB | 

# Amazon EBS 卷和 NVMe
<a name="nvme-ebs-volumes"></a>

Amazon EBS 卷在基于 [AWS Nitro 系统](https://docs.aws.amazon.com/ec2/latest/instancetypes/ec2-nitro-instances.html)构建的 Amazon EC2 实例上显示为 NVMe 块设备。要充分利用显示为 NVMe 块设备的 Amazon EBS 卷的性能和功能，EC2 实例必须安装 AWS NVMe 驱动程序。所有当前一代 AWS Windows 和 Linux AMI 都默认安装有 AWS NVMe 驱动程序。

如果您使用的 AMI 没有 AWS NVMe 驱动程序，则可以手动安装它。有关更多信息，请参阅《*Amazon EC2 用户指南*》中的 [AWS NVMe 驱动程序](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/aws-nvme-drivers.html)。

**Linux 实例**  
设备名称为 `/dev/nvme0n1`、`/dev/nvme1n1`，以此类推。您在块设备映射中指定的设备名称将使用 NVMe 设备名称（`/dev/nvme[0-26]n1`）进行重命名。块储存设备驱动程序可以使用不同于您在块储存设备映射中为卷指定的顺序来分配 NVMe 设备名称。

**Windows 实例**  
当您将卷附加到实例时，需要为卷提供设备名称。该设备名称由 Amazon EC2 使用。实例的块设备驱动程序会在挂载卷时分配实际的卷名称，指定的名称可以与 Amazon EC2 使用的名称不同。

**Topics**
+ [

# 将 Amazon EBS 卷映射到 NVMe 设备名称
](identify-nvme-ebs-device.md)
+ [

# Amazon EBS 卷的 NVMe I/O 操作超时
](timeout-nvme-ebs-volumes.md)
+ [

# Amazon EBS 卷的 NVMe Abort 命令
](abort-command.md)

# 将 Amazon EBS 卷映射到 NVMe 设备名称
<a name="identify-nvme-ebs-device"></a>

EBS 使用单一根 I/O 虚拟化（SR-IOV）在使用 NVMe 规范的基于 Nitro 的实例上提供卷附加。这些设备依赖于操作系统上的标准 NVMe 驱动程序。这些驱动程序通常在实例启动期间发现附加的设备，然后根据设备响应的顺序创建设备节点，而不是按照在块设备映射中指定设备的顺序。

## Linux 实例
<a name="ebs-nvme-linux"></a>

在 Linux 中，NVMe 设备名称遵循 `/dev/nvme<x>n<y>` 模式，其中 <x> 是枚举顺序，对于 EBS，<y> 为 1。有时候，在接下来的实例启动时，设备会以不同顺序响应发现过程，这会导致设备名称更改。此外，块储存设备驱动程序分配的设备名称可以不同于块储存设备映射中指定的名称。

建议您在实例中为 EBS 卷使用静态标识符，例如以下之一：
+ 对基于 Nitro 的实例，您在附加 EBS 卷或者在 `AttachVolume` 或 `RunInstances` API 调用期间通过 Amazon EC2 控制台指定的块储存设备映射，将在 NVMe 控制器标识的供应商特定数据字段中捕获。对版本高于 2017.09.01 的 Amazon Linux AMI，我们提供了 `udev` 规则，该规则读取此数据并创建指向块储存设备映射的符号链接。
+ EBS 卷 ID 和挂载点在实例状态更改之间保持稳定。NVMe 设备名称可以根据设备在实例启动期间响应的顺序进行更改。我们建议使用 EBS 卷 ID 和挂载点以实现一致的设备标识。
+ NVMe EBS 卷在设备标识中将 EBS 卷 ID 设置为序列号。使用 `lsblk -o +SERIAL` 命令列出序列号。
+ NVMe 设备名称格式可能会有所不同，具体取决于 EBS 卷是在实例启动期间还是之后附上。实例启动后附上卷的 NVMe 设备名称包括 `/dev/` 前缀，而实例启动期间附上卷的 NVMe 设备名称不包括 `/dev/` 前缀。
  + 对于 Amazon Linux 或 FreeBSD AMI，请使用 `sudo ebsnvme-id /dev/nvme0n1 -u` 命令获得一致的 NVMe 设备名称。
  + 对于其他发布版本，请使用 `sudo nvme id-ctrl -V /dev/nvme0n1` 命令确定 NVMe 设备名称。您可能需要包含 `--vendor-specific` 命令选项。
+ 格式化设备时，将生成在文件系统的使用寿命内保持的 UUID。此时可指定设备标签。有关更多信息，请参阅[使 Amazon EBS 卷可供使用](ebs-using-volumes.md)和[从错误的卷启动](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-booting-from-wrong-volume.html)。

**Amazon Linux AMI**  
利用 Amazon Linux AMI 2017.09.01 或更高版本（包括 Amazon Linux 2），您可以按下面所示运行 **ebsnvme-id** 命令以将 NVMe 设备名称映射到卷 ID 和设备名称：

以下示例显示实例启动期间附上的卷的命令和输出。请注意，NVMe 设备名称不包括 `/dev/` 前缀。

```
[ec2-user ~]$ sudo /sbin/ebsnvme-id /dev/nvme0n1
Volume ID: vol-01324f611e2463981
sda
```

以下示例显示实例启动后附上的卷的命令和输出。请注意，NVMe 设备名称包括 `/dev/` 前缀。

```
[ec2-user ~]$ sudo /sbin/ebsnvme-id /dev/nvme1n1
Volume ID: vol-064784f1011136656
/dev/sdf
```

Amazon Linux 还将创建从块储存设备映射中的设备名称（例如，`/dev/sdf`）到 NVMe 设备名称的符号链接。

**FreeBSD AMI**  
从 FreeBSD 12.2-RELEASE 开始，您可以运行如上所示的 **ebsnvme-id** 命令。传递 NVMe 设备的名称（例如，`nvme0`）或磁盘设备的名称（例如，`nvd0` 或 `nda0`）。FreeBSD 还创建到磁盘设备的符号链接（例如，`/dev/aws/disk/ebs/`*volume\$1id*）。

**其他 Linux AMI**  
利用内核版本 4.2 或更高版本，您可以按下面所示运行 **nvme id-ctrl** 命令以将 NVMe 设备映射到卷 ID。首先，使用您的 Linux 发行版的程序包管理工具安装 NVMe 命令行程序包 `nvme-cli`。有关其他发行版的下载和安装说明，请参阅特定于您的发行版的文档。

以下示例将获取实例启动期间附上的卷的卷 ID 和 NVMe 设备名称。请注意，NVMe 设备名称不包括 `/dev/` 前缀。设备名称通过特定于 NVMe 控制器供应商的扩展（控制器标识的字节 384:4095）提供：

```
[ec2-user ~]$ sudo nvme id-ctrl -V /dev/nvme0n1
NVME Identify Controller:
vid     : 0x1d0f
ssvid   : 0x1d0f
sn      : vol01234567890abcdef
mn      : Amazon Elastic Block Store
...
0000: 2f 64 65 76 2f 73 64 6a 20 20 20 20 20 20 20 20 "sda..."
```

以下示例将获取实例启动后附上的卷的卷 ID 和 NVMe 设备名称。请注意，NVMe 设备名称包括 `/dev/` 前缀。

```
[ec2-user ~]$ sudo nvme id-ctrl -V /dev/nvme1n1
NVME Identify Controller:
vid     : 0x1d0f
ssvid   : 0x1d0f
sn      : volabcdef01234567890
mn      : Amazon Elastic Block Store
...
0000: 2f 64 65 76 2f 73 64 6a 20 20 20 20 20 20 20 20 "/dev/sdf..."
```

**lsblk** 命令可列出可用设备及其挂载点（如果适用）。这有助于确定要使用的正确设备名称。在本示例中，`/dev/nvme0n1p1` 作为根设备挂载，`/dev/nvme1n1` 会附加但不会挂载。

```
[ec2-user ~]$ lsblk
NAME          MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
nvme1n1       259:3   0  100G  0 disk
nvme0n1       259:0   0    8G  0 disk
  nvme0n1p1   259:1   0    8G  0 part /
  nvme0n1p128 259:2   0    1M  0 part
```

## Windows 实例
<a name="ebs-nvme-windows"></a>

您可以运行 **ebsnvme-id** 命令以将 NVMe 设备磁盘编号映射到 EBS 卷 ID 和设备名称。默认情况下，枚举所有 EBS NVMe 设备。您可以传递磁盘编号以枚举特定设备的信息。`ebsnvme-id` 工具包含在 AWS 中的最新 `C:\ProgramData\Amazon\Tools` 提供的 Windows Server AMI。

从 AWS NVMe 驱动程序包 `1.5.0,` 开始，`ebsnvme-id` 工具的最新版本由驱动程序包安装。最新版本仅在驱动程序包中可用。`ebsnvme-id` 工具的独立下载链接将不再接收更新。通过独立链接提供的最新版本是 `1.1.0`，可使用 [ebsnvme-id.zip](https://s3.amazonaws.com/ec2-windows-drivers-downloads/EBSNVMeID/Latest/ebsnvme-id.zip) 链接下载，并将内容提取到 Amazon EC2 实例以访问 `ebsnvme-id.exe`。

```
PS C:\ProgramData\Amazon\Tools> ebsnvme-id.exe
Disk Number: 0
Volume ID: vol-0d6d7ee9f6e471a7f
Device Name: sda1

Disk Number: 1
Volume ID: vol-03a26248ff39b57cf
Device Name: xvdd

Disk Number: 2
Volume ID: vol-038bd1c629aa125e6
Device Name: xvde

Disk Number: 3
Volume ID: vol-034f9d29ec0b64c89
Device Name: xvdb

Disk Number: 4
Volume ID: vol-03e2dbe464b66f0a1
Device Name: xvdc
```

```
PS C:\ProgramData\Amazon\Tools> ebsnvme-id.exe 4
Disk Number: 4
Volume ID: vol-03e2dbe464b66f0a1
Device Name: xvdc
```

# Amazon EBS 卷的 NVMe I/O 操作超时
<a name="timeout-nvme-ebs-volumes"></a>

大多数操作系统为提交到 NVMe 设备的 I/O 操作指定一个超时。

**Linux 实例**  
在 Linux 上，挂载到基于 Nitro 系统的实例的 EBS 卷使用操作系统提供的默认 NVMe 驱动程序。大多数操作系统为提交到 NVMe 设备的 I/O 操作指定一个超时。默认超时为 30 秒，可以使用 `nvme_core.io_timeout` 引导参数更改该超时。对于 4.6 版之前的大多数 Linux 内核版本，此参数为 `nvme.io_timeout`。

如果 I/O 延迟超过了此超时参数的值，则 Linux NVMe 驱动程序会使 I/O 失败，并将错误返回文件系统或应用程序。根据 I/O 操作，您的文件系统或应用程序可以重试错误。在某些情况下，您的文件系统可能会通过只读方式重新挂载。

为了获得与附加到 Xen 实例的 EBS 卷类似的体验，我们建议将 `nvme_core.io_timeout` 设置为可能的最大值。对于当前内核，最大值为 4294967295，而对于较早的内核，最大值为 255。根据 Linux 版本的不同，超时时间可能已设置为支持的最大值。例如，对于 Amazon Linux AMI 2017.09.01 以及更高的版本，超时时间默认设置为 4294967295。

您可以通过将高于建议最大值的值写入 `/sys/module/nvme_core/parameters/io_timeout` 并在尝试保存文件时检查数值结果超出范围错误，以此来验证您的 Linux 发行版的最大值。

**Windows 实例**  
在 Windows 上，默认超时为 60 秒，最大超时为 255 秒。您可以使用 [SCSI 微端口驱动程序的注册表项](https://learn.microsoft.com/en-us/previous-versions/windows/drivers/storage/registry-entries-for-scsi-miniport-drivers)中所述的步骤修改 `TimeoutValue` 磁盘类注册表设置。

# Amazon EBS 卷的 NVMe Abort 命令
<a name="abort-command"></a>

`Abort` 命令是一个 NVMe 管理员命令，用于结束之前提交给控制器的特定命令。此命令通常由设备驱动程序向超过输入/输出操作超时阈值的存储设备发出。

在向挂载的 Amazon EBS 卷发出 `Abort` 命令时，默认支持 `Abort` 命令的 Amazon EC2 实例类型将结束先前提交给控制器的特定命令。在向挂载的 Amazon EBS 卷发出 `Abort` 命令时，不支持 `Abort` 命令的 Amazon EC2 实例不会采取任何措施。

以下对象支持 `Abort` 命令：
+ 具有 NVMe 设备版本 1.4 或更高版本的 Amazon EBS 设备。
+ 所有 Amazon EC2 实例，但基于 Xen 的实例类型和以下基于 Nitro 的实例类型**除外**：
  + 通用型：A1 \$1 M5 \$1 M5a \$1 M5ad \$1 M5d \$1 M5dn \$1 M5n \$1 M5zn \$1 M6g \$1 M6gd \$1 Mac1 \$1 Mac2 \$1 T3 \$1 T3a \$1 T4g
  + 计算优化型：C5 \$1 c5a \$1 C5ad \$1 C5d \$1 C5n \$1 C6g \$1 C6gd
  + 内存优化型：R5 \$1 R5a \$1 R5ad \$1 R5d \$1 R5dn \$1 R5n \$1 R6g \$1 R6gd \$1 U-12tb1 \$1 U-18tb1 \$1 U-24tb1 \$1 U-3tb1 \$1 U-6tb1 \$1 U-9tb1 \$1 X2gd \$1 X2iezn \$1 Z1d
  + 存储优化：D3 \$1 D3en \$1 I3en
  + 加速计算型：DL1 \$1 G4ad \$1 G4dn \$1 G5 \$1 G5g \$1 Inf1 \$1 P3dn \$1 P4d \$1 P4de \$1 VT1

有关更多信息，请参阅 [NVM Express 基本规范](https://nvmexpress.org/wp-content/uploads/NVM-Express-1_4-2019.06.10-Ratified.pdf)的第 **5.1 节 Abort 命令**。

# Amazon EBS 卷的生命周期
<a name="ebs-volume-lifecycle"></a>

Amazon EBS 卷的生命周期始于创建过程。您可以通过 Amazon EBS 快照创建卷，也可以创建空卷。必须先将其挂载到与该卷位于相同可用区中的一个或多个 Amazon EC2 实例。您可以将多个卷挂载到一个实例。如有需要，您也可以将卷从实例中分离，随后将其挂载到另一个实例。如果存储需求发生变化，则可以随时修改卷的大小或性能。您可以通过创建 Amazon EBS 快照来创建卷的 point-in-time备份。如果不再需要卷，则可将其删除，以免产生相关存储成本。

下图显示了可以在卷生命周期中对卷执行的操作。您还可以通过连接到实例并运行操作系统命令来执行某些任务。例如，格式化卷、挂载卷、管理分区和查看可用磁盘空间。

![\[EBS 卷的生命周期。\]](http://docs.aws.amazon.com/zh_cn/ebs/latest/userguide/images/volume-lifecycle.png)


**Topics**
+ [创建卷](ebs-creating-volume.md)
+ [复制卷](ebs-copying-volume.md)
+ [将卷挂载到实例](ebs-attaching-volume.md)
+ [将卷挂载到多个实例](ebs-volumes-multi.md)
+ [使卷可用](ebs-using-volumes.md)
+ [查看卷详细信息](ebs-describing-volumes.md)
+ [修改卷](ebs-modify-volume.md)
+ [从实例分离卷](ebs-detaching-volume.md)
+ [删除卷](ebs-deleting-volume.md)

# 创建 Amazon EBS 卷
<a name="ebs-creating-volume"></a>

您可以创建一个 Amazon EBS 卷，然后将它附加到同一可用区内的任何 EC2 实例。

您可以**创建空卷**，也可以**从 Amazon EBS 快照创建卷**。如果从快照创建卷，则该卷将开始作为用于创建该快照的卷的精确副本。

**卷初始化**  
当您从快照创建卷时，必须从 Amazon S3 下载快照中的存储块并将其写入卷，然后您才能访问它们。此过程称为卷初始化。在此期间，该卷的 I/O 延迟时间将增加。只有在下载所有存储块并将其写入卷后，才能实现卷的全部性能。

默认卷初始化速率在整个初始化过程中会波动，这可能会导致完成时间无法预测。

为了最大限度地减少卷初始化对性能的影响，您可以使用 Amazon EBS 卷初始化预置速率（卷初始化速率）或快速快照还原。有关更多信息，请参阅 [初始化 Amazon EBS 卷](initalize-volume.md)。

**卷加密**  
卷的加密状态取决于您的账户是否[启用了默认加密](encryption-by-default.md)，以及快照的加密状态（如果您选择使用快照）。下表汇总了可能的加密结果。


| 默认加密 | 是否使用了快照？ | 卷加密结果 | 备注 | 
| --- | --- | --- | --- | 
| 已禁用 | 否 | 可选加密 | 如果启用加密，则可以指定要使用的 KMS 密钥。如果您启用加密但未指定 KMS 密钥，则使用 AWS 托管式密钥 (aws/ebs)。 | 
| 已禁用 | 是，未加密 | 可选加密 | 如果启用加密，则可以指定要使用的 KMS 密钥。如果您启用加密但未指定 KMS 密钥，则使用 AWS 托管式密钥 (aws/ebs)。 | 
| 已禁用 | 是，已加密 | 自动加密 | 您可以指定要使用的 KMS 密钥。如果未指定 KMS 密钥，则将使用与源快照相同的 KMS 密钥对卷进行加密。 | 
| 已启用 | 否 | 自动加密 | 您可以指定要使用的 KMS 密钥。如果未指定 KMS 密钥，则默认使用指定用于加密的密钥。 | 
| 已启用 | 是，未加密 | 自动加密 | 您可以指定要使用的 KMS 密钥。如果未指定 KMS 密钥，则默认使用指定用于加密的密钥。 | 
| 已启用 | 是，已加密 | 自动加密 | 您可以指定要使用的 KMS 密钥。如果未指定 KMS 密钥，则使用与源快照（控制台）相同的密钥或默认指定用于加密的密钥（CLI/API）对卷进行加密。 | 

**其他注意事项**
+ 卷必须附加到位于同一个可用区中的实例。
+ 卷只有在进入 `available` 状态后才可以使用。
+ 使用控制台创建卷时，`gp3` 是默认卷类型。对于命令行工具、API 和 SDK，默认卷类型是 `gp2`。
+ 要对在 Outpost 上运行的实例使用某个卷，您必须在与该实例相同的 Outpost 上创建该卷。
+ 如果创建了一个用于 Windows 实例的卷，并且该卷大于 2048 GiB，请确保将该卷配置为使用 GPT 分区表。有关更多信息，请参阅 [Amazon EBS 卷限制](volume_constraints.md) 和 [Windows support for disks larger than 2 TB](https://learn.microsoft.com/en-us/troubleshoot/windows-server/backup-and-storage/support-for-hard-disks-exceeding-2-tb)。
+ 卷也是通过启动 Amazon EC2 实例间接创建的。用于启动实例的 AMI 或实例启动请求本身可以包含 Amazon EBS 卷的块设备映射。有关更多信息，请参阅[块设备映射](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/block-device-mapping-concepts.html)。

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

**创建卷**

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

1. 在导航窗格中，选择**卷**，然后选择**创建卷**。

1. （*仅限 Outpost 客户*）对于 **Outpost ARN**，输入要在其上创建卷的 AWS Outpost 的 ARN。

1. 对于 **Volume Type**（卷类型），选择需要创建的卷类型。有关可用卷类型的更多信息，请参阅 [Amazon EBS 卷类型](ebs-volume-types.md)。

1. 对于**大小**，以 GiB 为单位输入卷的大小。有关更多信息，请参阅 [Amazon EBS 卷限制](volume_constraints.md)。

1. （*`gp3`仅适用于`io1``io2`、和*）对于 **IOPS**，请输入卷应提供的最大每秒 input/output 操作数 (IOPS)。

1. （*仅限于 `gp3`*）对于**吞吐量**，以 MiB/s 为单位输入卷应提供的吞吐量。

1. 对于 **Availability Zone**，选择要在其中创建卷的可用区。

1. 对于**快照 ID**，执行以下任一操作：
   + 要创建空卷，保留默认值（**不要从快照创建卷**）。
   + 要从快照创建卷，请选择要使用的快照。

1. 如果选择了某个快照，则对于**卷初始化速率**，您可以选择指定卷初始化速率（以 MiB/s 为单位），即快照块在创建后从 Amazon S3 下载到卷的速率。有关更多信息，请参阅 [使用 Amazon EBS 卷初始化预置速率](initalize-volume.md#volume-initialization-rate)。要使用默认初始化速率或快速快照还原功能（如果已为所选快照启用此功能），请不要指定速率。

1. （*仅限于 `io1` 和 `io2`*）要为卷启用 Amazon EBS 多重挂载，请选择**启用多重挂载**。有关更多信息，请参阅 [使用多重挂载将 EBS 卷挂载到多个 EC2 实例](ebs-volumes-multi.md)。

1. 设置卷的加密状态。
   + 如果您的账户启用了[默认加密](encryption-by-default.md)，则加密是自动的并且无法禁用。
   + 如果您选择了加密快照，则加密是自动的并且无法禁用。
   + 如果您的账户未启用[默认加密](encryption-by-default.md)，并且您选择未加密的快照或未选择快照，则加密是可选的。

1. （*可选*）要为卷分配自定义标签，请在**标签**部分中选择**添加标签**，然后输入标签键和值对。

1. 选择**创建卷**。

1. 要使用卷，请等待它达到 `available` 状态，然后将其挂载到同一可用区内的 Amazon EC2 实例。有关更多信息，请参阅 [将 Amazon EBS 卷挂载到 Amazon EC2 实例](ebs-attaching-volume.md)。

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

**创建卷**  
使用 [create-volume](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-volume.html) 命令。以下示例在指定的可用区中创建一个大小为 100 GiB 的空 gp3 卷。

```
aws ec2 create-volume \
    --volume-type gp3 \
    --size 100 \
    --availability-zone us-east-1a
```

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

**创建卷**  
使用 [New-EC2Volume](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2Volume.html) cmdlet。以下示例在指定的可用区中创建一个大小为 100 GiB 的空 gp3 卷。

```
New-EC2Volume `
    -VolumeType gp3 `
    -Size 100 `
    -AvailabilityZone us-east-1a
```

------

# 复制 Amazon EBS 卷
<a name="ebs-copying-volume"></a>

您可以在同一可用区内创建 Amazon EBS 卷的即时 point-in-time副本。卷副本开始时是源卷的崩溃一致性时间点副本。它包括卷副本初始化开始时写入源卷的所有数据块。卷副本会获得其唯一的卷 ID。卷副本会立即创建，一旦 Amazon EC2 实例达到 `available` 状态，即可将其附加到该实例。使用卷副本，您可以快速将生产数据复制到测试和开发环境。

## 初始化
<a name="copy-volume-initialization"></a>

卷副本在创建后进行初始化。初始化期间，数据块从源卷复制并在后台写入卷副本。初始化完成之前，卷将保持 `initializing` 状态。

**初始化期间的性能**  
复制操作不影响源卷的性能。复制过程中，您可以继续正常使用源卷。无需等待从源卷复制数据即可立即访问复制的卷。卷副本提供对数据的即时访问，延迟仅为几毫秒，但实际延迟可能因卷类型而异。初始化期间，卷副本提供的**基准性能**等于以下三个值中最低值：
+ 3,000 IOPS 和 125 MiB/s
+ **源**卷的预置性能
+ **卷副本**的预置性能

当满足以下条件时，卷副本可能会超过基准性能：

1. 源卷和卷副本都预置了超过 3,000 IOPS 和 125 MiB/s。

1. 源卷具有未使用的性能容量（驱动的性能低于预置性能）

例如，如果源卷预置了 10,000 IOPS，而您的工作负载当前仅驱动 5,000 IOPS，并且卷副本预置了 10,000 IOPS，则卷副本可以通过使用源卷未利用的 5,000 IOPS，在初始化期间实现高于 3,000 IOPS 基准性能的性能。

**初始化持续时间**  
初始化卷副本所需的时间取决于创建卷副本时写入源卷的块数据的大小。卷副本将按照以下一般准则尽最大努力进行初始化。对于前 1 TiB 数据块，卷初始化最多需要 6 个小时。对于后续每 1 TiB 数据块（最多 16 TiB），初始化每 TiB 需要 1.2 小时。对于大于 16 TiB 的写入数据，初始化需要 24 小时。

**监控初始化进度**  
您可以使用[describe-volume-status](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-volume-status.html) AWS CLI 命令或 Amazon 监控初始化进度 EventBridge。有关更多信息，请参阅[监控 Amazon EBS 卷初始化状态](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-initialize-monitor.html)。

## 加密
<a name="copy-volume-encryption"></a>

加密卷的副本会自动使用与源卷相同的 KMS 密钥进行加密。您无法复制未加密的卷。

## 注意事项
<a name="copy-colume-consids"></a>
+ 您只能从加密的源卷创建副本。您无法从未加密的源卷创建副本。
+ 一次只能从源卷创建一个卷副本。只有当前一个卷副本完全初始化后，才能创建同一源卷的后续副本。
+ 每个区域最多可以有 5 个正在进行中的卷副本。如果超过此配额，您会收到 `CopyVolumesLimitExceeded` 错误。如果需要，您可以[请求增加配额](https://docs.aws.amazon.com/servicequotas/latest/userguide/request-quota-increase.html)。
+ 卷副本必须在与源卷相同的可用区中创建。
+ 卷副本的大小必须等于或大于源卷的大小。
+ 在创建或初始化卷副本期间，无法复制该卷副本。
+ 要创建卷副本，源卷必须处于 `available` 或 `in-use` 状态，卷修改必须处于 `completed` 或 `optimizing` 状态。
+ 卷副本受与常规 Amazon EBS 卷相同的账户、区域存储和 IOPS 配额的约束。有关更多信息，请参阅 [Amazon EBS 配额](https://docs.aws.amazon.com/general/latest/gr/ebs-service.html#limits_ebs)。
+ 如果在复制操作进行期间删除源卷，则复制操作仍会完成。
+ 分配给源卷的标签不会分配给卷副本。
+ 您无法根据 Outposts 或 Wavelength 区域中的卷创建副本。

## 定价
<a name="copy-volume-pricing"></a>

当您启动卷复制操作时，系统会按写入卷副本的每个 GiB 数据块收取一次性费用。创建卷副本后，其收费方式与您账户中的任何其他 Amazon EBS 卷相同。有关更多信息，请参阅 [Amazon EBS 定价](https://aws.amazon.com/ebs/pricing/)。

## 复制卷
<a name="copy-volume-copy"></a>

使用以下方法之一复制 Amazon EBS 卷。

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

**复制卷**

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

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

1. 选择要复制的卷，然后选择**操作**、**复制卷**。

1. 对于**卷类型**，选择副本的卷类型。默认卷类型为 **gp3**。

1. 在 “**大小**” 中，输入卷副本的大小 GiBs。大小必须等于或大于源卷的大小。

1. （*`io1`、`io2`、且`gp3`仅*限）对于 **IOPS**，请输入卷复制的最大每秒 input/output 操作数 (IOPS)。

1. （*仅限 `gp3`*）对于**吞吐量**，以 MiB/s 为单位输入卷副本的吞吐量。

1. （*仅限 `io1` 和 `io2`*）要为卷副本启用 Amazon EBS 多重挂载，请选择**启用多重挂载**。

1. （*可选*）要为卷副本分配自定义标签，请在**标签**部分中选择**添加标签**，然后输入标签键和值对。

1. 选择**复制卷**。

1. 复制的卷进入 `creating` 状态，然后在不久之后过渡到 `available`。然后，您可以将其附加到同一可用区中的 Amazon EC2 实例。

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

**复制卷**  
使用 [copy-volumes](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/copy-volumes.html) 命令。

以下示例会创建卷类型为 `gp3`、大小为 `100` GiB、吞吐量为 `250` MiB/s 的卷副本 `vol-01234567890abcdef`。

```
aws ec2 copy-volumes \
--source-volume-id vol-01234567890abcdef \
--volume-type gp3 \
--size 100 \
--throughput 250
```

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

**复制卷**  
使用 [Copy-EC2Volume](https://docs.aws.amazon.com/powershell/latest/reference/items/Copy-EC2Volume.html) cmdlet。

以下示例会创建卷类型为 `gp3`、大小为 `100` GiB、吞吐量为 `250` MiB/s 的卷副本 `vol-01234567890abcdef`。

```
Copy-EC2Volume `
-SourceVolumeId vol-01234567890abcdef `
-VolumeType gp3 `
-Size 100 `
-Throughput 250
```

------

# 将 Amazon EBS 卷挂载到 Amazon EC2 实例
<a name="ebs-attaching-volume"></a>

您可以将可用的 EBS 卷附加到与该卷处于同一可用区中的一个或多个实例。

有关在启动时向实例添加 EBS 卷的信息，请参阅[实例块设备映射](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/block-device-mapping-concepts.html#instance-block-device-mapping)。

**注意事项**
+ 可附加到实例的 Amazon EBS 卷的最大数量取决于实例类型。如果超过了实例类型的卷附加限制，则附加请求将会失败并显示 `AttachmentLimitExceeded` 错误。有关更多信息，请参阅[实例卷限制](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/volume_limits.html)。
+ 您只能将卷附加到同一可用区中的实例。
+ 启用多重挂载的卷最多可以附加到 16 个实例。有关更多信息，请参阅 [使用多重挂载将 EBS 卷挂载到多个 EC2 实例](ebs-volumes-multi.md)。
+ 如果卷上有 AWS Marketplace 产品代码：
  + 您只能将其附加到已停止的实例。
  + 您必须订阅该卷上的 AWS Marketplace 代码。
  + 实例的配置（例如其类型和操作系统）必须支持该特定 AWS Marketplace 代码。例如，您不能从 Windows 实例取用卷，然后将其附加到 Linux 实例。
  + AWS Marketplace 代码将从卷复制到实例。
+ 您指定的此设备名称将由 Amazon EC2 使用。块设备驱动程序可以使用与您指定的设备名称不同的设备名称来挂载设备。有关更多信息，请参阅 [Amazon EC2 实例上卷的设备名称](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/device_naming.html)。
+ 在某些情况下，除附加到 `/dev/xvda` 或 `/dev/sda` 的卷之外的其他卷可以成为实例的根卷。当您将另一个实例的根卷或从某个根卷的快照创建的卷附加到带有现有根卷的实例时，可能会发生这种情况。有关详细信息，请参阅[从错误的卷启动](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-booting-from-wrong-volume.html)。
+ 某些实例类型支持多个 EBS 卡。您可以通过指定 EBS 卡索引来选择要附加的卷的 EBS 卡。有关支持多张 EBS 卡的实例，请参阅 [EBS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs_cards.html) 卡。
  + 您的根卷必须连接到 EBS 卡索引`0`。
  + 对于支持多张 EBS 卡的实例，如果您未指定 EBS 卡索引，则您的卷将附加到 EBS 卡索引。`0`
  + 在为高性能工作负载配置 EC2 实例时，必须根据性能要求在 EBS 卡上平衡 EBS 卷，以避免在任何 EBS 卡上遇到性能限制。
  + 实例类型的卷连接限制在每张 EBS 卡上平均分配。例如，在支持带有 2 个 EBS 卡的`128`卷附件的 EC2 实例上，每张 EBS 卡最多可以支持`64`卷附件。如果您超出了 EBS 卡的附件限制，则请求将失败并`CardAttachmentLimitExceeded`显示错误。

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

**将 EBS 卷附加到实例**

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

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

1. 选择需要附加的卷，然后选择 **Actions**（操作）、**Attach volume**（附加卷）。

1. 对于 **Instance**（实例），输入实例的 ID 或从选项列表中选择实例。

1. 对于**设备名称**，执行以下操作之一：
   + 对于根卷，从列表的**为根卷预留**部分选择所需的设备名称。对于 Linux 实例通常为 `/dev/sda1` 或 `/dev/xvda`（具体取决于 AMI），或者对于 Windows 实例 为 `/dev/sda1`。
   + 对于数据卷，请从列表的**建议用于数据卷**部分中选择一个可用的设备名称。
   + 要使用自定义设备名称，请选择**指定自定义设备名称**，然后输入要使用的设备名称。

1. 选择**附加卷**。

1. 连接到实例并挂载卷。有关更多信息，请参阅 [使 Amazon EBS 卷可供使用](ebs-using-volumes.md)。

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

**将 EBS 卷附加到实例**  
使用 [attach-volume](https://docs.aws.amazon.com/cli/latest/reference/ec2/attach-volume.html) 命令。以下示例使用指定的设备名称将指定的卷附加到指定的实例。

```
aws ec2 attach-volume \
    --volume-id vol-01234567890abcdef \
    --instance-id i-1234567890abcdef0 \
    --device /dev/sdf
```

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

**将 EBS 卷附加到实例**  
使用 [Add-EC2Volume](https://docs.aws.amazon.com/powershell/latest/reference/items/Add-EC2Volume.html) cmdlet。以下示例使用指定的设备名称将指定的卷附加到指定的实例。

```
Add-EC2Volume `
    -VolumeId vol-01234567890abcdef `
    -InstanceId i-1234567890abcdef0 `
    -Device /dev/sdf
```

------

# 使用多重挂载将 EBS 卷挂载到多个 EC2 实例
<a name="ebs-volumes-multi"></a>

通过 Amazon EBS 多重挂载，您可以将单个预置 IOPS SSD（`io1` 或 `io2`）卷挂载到位于同一可用区中的多个实例。您可以将多个启用多重挂载的卷附加到一个实例或一组实例。卷附加到的每个实例都对共享卷拥有完全读取和写入权限。通过多重挂载，您可以更轻松地在管理并发写入操作的应用程序中实现更高的应用程序可用性。

**定价和计费**  
使用 Amazon EBS 多重挂载不会产生额外费用。您需要按照适用于预置 IOPS SSD（`io1` 和 `io2`）卷的标准计费。有关更多信息，请参阅 [Amazon EBS 定价](https://aws.amazon.com/ebs/pricing/)。

**Topics**
+ [

## 注意事项和限制
](#considerations)
+ [多重挂载卷的性能](ebs-multi-attach-perf.md)
+ [启用多重挂载](working-with-multi-attach.md)
+ [禁用多重挂载](disable-multi-attach.md)
+ [NVMe 预留](nvme-reservations.md)

## 注意事项和限制
<a name="considerations"></a>
+ 启用多重挂载的卷最多可以挂载到位于相同可用区内的基于 [Nitro 系统](https://docs.aws.amazon.com/ec2/latest/instancetypes/ec2-nitro-instances.html)构建的 16 个实例。
+ **Linux 实例**支持启用多重挂载的 `io1` 和 `io2` 卷。**Windows 实例**仅支持启用多重挂载的 `io2` 卷。
+ 您可以挂载到实例的最大 Amazon EBS 卷数取决于实例类型和实例规模。有关更多信息，请参阅[实例卷限制](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/volume_limits.html)。
+ 仅在[预调配 IOPS SSD（`io1` 和 `io2`）卷](provisioned-iops.md#EBSVolumeTypes_piops)上才支持多重挂载。
+ `io1` 卷的多重挂载仅在以下区域可用：美国东部（弗吉尼亚州北部）、美国西部（俄勒冈州）和亚太地区（首尔）。

  适用于 `io2` 的多重挂载功能已在所有支持 `io2` 的区域中提供。
**注意**  
为了以更低的成本获得更好的性能、一致性和耐用性，我们建议您使用 `io2` 卷。
+ 当[基于 Nitro System 而构建的实例](https://docs.aws.amazon.com/ec2/latest/instancetypes/ec2-nitro-instances.html)仅支持可扩展的可靠数据报（SRD）网络协议时，将不支持启用了多重挂载的 `io1` 卷。要将多重挂载与这些实例类型结合使用，必须使用 `io2`。
+ 标准文件系统（例如 XFS 和 EXT4）不能被多个服务器（例如 EC2 实例）同时访问。您应使用集群文件系统来确保生产工作负载的数据恢复能力和可靠性。
+ 启用多重挂载的 `io2` 卷支持 I/O 隔离栏。I/O 隔离栏协议控制共享存储环境中的写入访问，以保持数据一致性。您的应用程序必须为附加的实例提供写入顺序，以保持数据一致性。有关更多信息，请参阅 [将 NVMe 预留与启用了多重挂载的 Amazon EBS 卷结合使用](nvme-reservations.md)。

  启用多重挂载的 `io1` 卷不支持 I/O 隔离栏。
+ 无法将启用多重挂载的卷创建为引导卷。
+ 可以将启用多重挂载的卷附加到每个实例的一个块储存设备映射。
+ 无法在实例启动过程中使用 Amazon EC2 控制台或 RunInstances API 启用多重挂载。
+ 在 Amazon EBS 基础结构层存在问题的启用多重挂载的卷对于所有附加的实例都不可用。Amazon EC2 或网络层的问题可能仅影响某些挂载的实例。
+ 下表显示了创建后对启用多重挂载的 `io1` 和 `io2` 卷的卷修改支持。    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/ebs/latest/userguide/ebs-volumes-multi.html)

  \$1当卷挂载到实例时，您无法启用或禁用多重挂载。
+ 如果最后一个附加的实例终止，并且该实例配置为在终止时删除卷，则启用多重挂载的卷将在实例终止时被删除。如果卷附加到多个实例，而这些实例在其卷块储存设备映射中具有不同的终止时删除设置，则最后一个附加的实例的块储存设备映射设置决定终止时删除行为。

  要确保对终止行为进行可预测删除，为卷挂载到的所有实例启用或禁用“终止时删除”。有关更多信息，请参阅[实例终止时保留数据](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/preserving-volumes-on-termination.html)。
+ 您可以使用 Amazon EBS 卷的 CloudWatch 指标监控启用了多重挂载的卷。在所有附加的实例之间聚合数据。您无法监控单个附加的实例的指标。有关更多信息，请参阅 [亚马逊 EBS 的亚马逊 CloudWatch 指标](using_cloudwatch_ebs.md)。

# 多重挂载 Amazon EBS 卷的性能
<a name="ebs-multi-attach-perf"></a>

每个附加的实例都能够将其最大 IOPS 性能提升到卷的最大预置性能。但是，所有附加的实例的总体性能不能超过卷的最大预置性能。如果附加实例的 IOPS 需求高于卷的预置 IOPS，则卷不会超过其预置性能。

例如，假设您使用 `io2` 预置 IOPS 创建 `80,000` 启用了多重挂载的卷，然后将其挂载到最高支持 `40,000` IOPS 的 `m7g.large` 实例和最高支持 `60,000` IOPS 的 ` r7g.12xlarge` 实例。每个实例都可以提升其最大 IOPS，因为它小于卷的预置 IOPS `80,000`。但是，如果两个实例同时提升对卷的 I/O，则其组合 IOPS 不能超过卷的预置性能 `80,000` IOPS。

为了实现一致的性能，最佳做法是在启用多重挂载的卷的扇区间平衡由附加实例提升的 I/O。

有关 Amazon EC2 实例类型的 IOPS 性能的更多信息，请参阅《*Amazon EC2 用户指南*》中的 [Amazon EBS 优化的实例类型](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-optimized.html)。

# 为 Amazon EBS 卷启用多重挂载
<a name="working-with-multi-attach"></a>

启用了多重挂载的卷的管理方式与管理任何其他 Amazon EBS 卷的方式大致相同。但是，为了使用多重挂载功能，您必须为卷启用它。

当您创建新卷时，默认情况下，多重挂载处于禁用状态。您可以在创建卷时启用多重挂载。

您还可以在创建 `io2` 卷之后，仅在这些卷没有挂载到任何实例的情况下，为其启用多重挂载。在创建之后，您不能为 `io1` 卷启用多重挂载。

为卷启用多重挂载后，您可以按照与附加任何其他 EBS 卷相同的方式将卷附加到实例。有关更多信息，请参阅 [将 Amazon EBS 卷挂载到 Amazon EC2 实例](ebs-attaching-volume.md)。

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

**在卷创建过程中启用多重挂载**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

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

1. 选择**创建卷**。

1. 对于**卷类型**，选择**预调配 IOPS SSD (`io1`)** 或**预调配 IOPS SSD (`io2`)**。

1. 对于**大小**和 **IOPS**，选择所需的卷大小和要预置的 IOPS 数。

1. 对于**可用区**，请选择实例所在的相同可用区。

1. 对于 **Amazon EBS Multi-Attach**（Amazon EBS 多重挂载），选择 **Enable Multi-Attach**（启用多重挂载）。

1. （可选）对于**快照 ID**，选择快照并从中创建卷。

1. 设置卷的加密状态。

   如果选定的快照已加密，或者您的账户已启用[默认加密](encryption-by-default.md)，则加密会自动启用，而且您无法禁用它。您可以选择用于加密卷的 KMS 密钥。

   如果选定的快照未加密，且默认情况下账户未启用加密，则加密是可选的。要加密卷，请为 **Encryption**（加密）选择 **Encrypt this volume**（加密此卷），然后选择要用于加密卷的 KMS 密钥。

   加密卷只能附加到支持 Amazon EBS 加密的实例上。有关更多信息，请参阅 [Amazon EBS 加密](ebs-encryption.md)。

1. （可选）要为卷分配自定义标签，请在**标签**部分中选择**添加标签**，然后输入标签键和值对。

1. 选择**创建卷**。

**在创建后启用多重挂载**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

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

1. 选择所需卷，然后选择 **Actions**（操作）、**Modify Volume**（修改卷）。

1. 对于 **Amazon EBS Multi-Attach**（Amazon EBS 多重挂载），选择 **Enable Multi-Attach**（启用多重挂载）。

1. 选择 **Modify**(修改)。

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

**在卷创建过程中启用多重挂载**  
将 [create-volume](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-volume.html) 命令与 `--multi-attach-enabled` 选项结合使用。

```
aws ec2 create-volume \
    --volume-type io2 \
    --multi-attach-enabled \
    --size 100 \
    --iops 2000 \
    --region us-west-2 \
    --availability-zone us-west-2b
```

**在创建后启用多重挂载**  
将 [modify-volume](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-volume.html) 命令与 `--multi-attach-enabled` 选项结合使用。

```
aws ec2 modify-volume \
    --volume-id vol-01234567890abcdef \
    --multi-attach-enabled
```

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

**在卷创建过程中启用多重挂载**  
将 [New-EC2Volum](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2Volume.html) cmdlet 与 `-MultiAttachEnabled` 参数结合使用。

```
New-EC2Volume `
    -VolumeType io2 `
    -MultiAttachEnabled $true `
    -Size 100 `
    -Iops 2000 `
    -Region us-west-2 `
    -AvailabilityZone us-west-2b
```

**在创建后启用多重挂载**  
将 [Edit-EC2Volume](https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2Volume.html) cmdlet 与 `-MultiAttachEnabled` 参数结合使用。

```
Edit-EC2Volume `
    -VolumeId vol-01234567890abcdef `
    -MultiAttachEnabled $true
```

------

# 为 Amazon EBS 卷禁用多重挂载
<a name="disable-multi-attach"></a>

只有当 `io2` 卷挂载到不超过一个实例时，您才能对其禁用多重挂载。

在创建之后，您不能为 `io1` 卷禁用多重挂载。

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

**在创建后禁用多重挂载**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

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

1. 选择所需卷，然后选择 **Actions**（操作）、**Modify Volume**（修改卷）。

1. 对于 **Amazon EBS 多重挂载**，清除 **Enable Multi-Attach**（启用多重挂载）。

1. 选择**修改**。

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

**在创建后禁用多重挂载**  
将 [modify-volume](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-volume.html) 命令与 `-no-multi-attach-enabled` 选项结合使用。

```
aws ec2 modify-volume \
    --volume-id vol-01234567890abcdef \
    --no-multi-attach-enabled
```

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

**在创建后禁用多重挂载**  
将 [Edit-EC2Volume](https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2Volume.html) cmdlet 与 `-MultiAttachEnabled` 参数结合使用。

```
Edit-EC2Volume `
    -VolumeId vol-01234567890abcdef `
    -MultiAttachEnabled $false
```

------

# 将 NVMe 预留与启用了多重挂载的 Amazon EBS 卷结合使用
<a name="nvme-reservations"></a>

启用多重挂载的 `io2` 卷支持 NVMe 预留，这是一组行业标准的存储隔离栏协议。这些协议可让您创建和管理预留，以控制和协调多个实例对共享卷的访问。共享存储应用程序使用预留来确保数据一致性。

**Topics**
+ [

## 要求
](#nvme-reservations-reqs)
+ [

## 启用对 NVMe 预留的支持
](#nvme-reservations-enable)
+ [

## 支持的 NVMe 预留命令
](#nvme-reservations-commands)
+ [

## 定价
](#nvme-reservations-cost)

## 要求
<a name="nvme-reservations-reqs"></a>

仅启用多重挂载功能的 `io2` 卷支持 NVMe 预留。启用多重挂载的卷仅可以连接到基于 Nitro 系统构建的实例。

以下操作系统上支持 NVMe 预留：
+ SUSE Linux Enterprise 12 SP3 和更高版本
+ RHEL 8.3 和更高版本
+ Amazon Linux 2 和更高版本
+ Windows Server 2016 及更高版本

**注意**  
对于日期为 2023.09.13 及之后的受支持 Windows Server AMI，包括所需的 NVMe 驱动程序。对于早期的 AMI，您必须更新到 NVMe 驱动程序版本 1.5.0 或更高版本。有关更多信息，请参阅 [AWS NVMe 驱动程序](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/aws-nvme-drivers.html)。

如果您使用 EC2Launch v2 初始化磁盘，则必须升级到版本 **2.0.1521** 或更高版本。有关更多信息，请参阅[使用 EC2Launch v2 代理](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2launch-v2.html)。

## 启用对 NVMe 预留的支持
<a name="nvme-reservations-enable"></a>

**2023 年 9 月 18 日**之后创建的所有启用多重挂载的 `io2` 卷均默认启用对 NVMe 预留的支持。

要为 2023 年 9 月 18 日之前创建的现有 `io2` 卷启用对 NVMe 预留的支持，您必须将所有实例与该卷分离，然后重新连接所需的实例。在分离所有实例后创建的所有附件都将启用 NVMe 预留。

## 支持的 NVMe 预留命令
<a name="nvme-reservations-commands"></a>

Amazon EBS 支持以下 NVMe 预留命令：

**Reservation Register**  
注册、取消注册或替换预留密钥。注册密钥用于识别和验证实例。向卷注册预留密钥会在实例和卷之间建立关联。您必须先向卷注册实例，然后该实例才能获得预留。

**Reservation Acquire**  
获取卷上的预留，抢占命名空间上保存的预留，以及中止在卷上保存的预留。可以获取以下预留类型：  
+ 写专属预留
+ 专属访问预留
+ 写专属 - 仅限注册者预留
+ 专属访问 - 仅限注册者预留
+ 写专属 - 所有注册者预留
+ 专属访问 - 所有注册者预留

**Reservation Release**  
释放或清除卷上保存的预留。

**Reservation Report**  
描述卷的注册和预留状态。

## 定价
<a name="nvme-reservations-cost"></a>

启用和使用多重挂载不会产生额外费用。

# 使 Amazon EBS 卷可供使用
<a name="ebs-using-volumes"></a>

将某个 Amazon EBS 卷挂载到实例后，该卷将显示为块设备。您可以使用任何文件系统将卷格式化，然后进行挂载。在使 EBS 卷可供使用后，您可以像访问其他所有卷一样访问该卷。任何写入此文件系统的数据均写入 EBS 卷，并且对使用该设备的应用程序是透明的。

您可以制作 EBS 卷的快照以进行备份或在您创建其他卷时作为基准。有关更多信息，请参阅 [Amazon EBS 快照](ebs-snapshots.md)。

如果您准备使用的 EBS 卷大于 2TiB，则必须使用 GPT 分区方案才能访问整个卷。有关更多信息，请参阅 [Amazon EBS 卷限制](volume_constraints.md)。

## Linux 实例
<a name="ebs-use-linux"></a>

### 格式化并挂载附加的卷
<a name="ebs-format-mount-volume"></a>

假设您的根设备 `/dev/xvda` 拥有一个具有 EBS 卷的 EC2 实例，并且您已使用 `/dev/sdf` 将一个空的 EBS 卷添加到了该实例。按照以下过程使新附加的卷可用。

**在 Linux 上格式化并挂载 EBS 卷**

1. 使用 SSH 连接到实例。有关更多信息，请参阅[连接到您的 Linux 实例](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connect-to-linux-instance.html)。

1. 设备可附加到设备名称与您在块储存设备映射中指定的设备名称不同的实例。有关更多信息，请参阅 [Linux 实例上的设备名称](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/device_naming.html)。使用 **lsblk** 命令可查看可用磁盘设备及其挂载点（如果适用），以帮助您确定要使用的正确设备名称。**lsblk** 的输出从完整的设备路径中去掉了 `/dev/` 前缀。

   以下是基于 [Nitro System 构建的实例的输出示例，该系统](https://docs.aws.amazon.com/ec2/latest/instancetypes/ec2-nitro-instances.html)将 EBS 卷作为 NVMe区块设备公开。根设备为 `/dev/nvme0n1`，它有两个名为 `nvme0n1p1` 和 `nvme0n1p128`。如果没有分区且尚未附加，则附加卷为 `/dev/nvme1n1`。

   ```
   [ec2-user ~]$ lsblk
   NAME          MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
   nvme1n1       259:0    0  10G  0 disk
   nvme0n1       259:1    0   8G  0 disk
   -nvme0n1p1    259:2    0   8G  0 part /
   -nvme0n1p128  259:3    0   1M  0 part
   ```

   以下是 T2 实例的示例输出。根设备为 `/dev/xvda`，它有名为 `xvda1` 的一个分区。如果没有分区且尚未附加，则附加卷为 `/dev/xvdf`。

   ```
   [ec2-user ~]$ lsblk
   NAME    MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
   xvda    202:0    0    8G  0 disk
   -xvda1  202:1    0    8G  0 part /
   xvdf    202:80   0   10G  0 disk
   ```

1. 确定卷上是否存在文件系统。新卷为原始的块储存设备，您必须先在这种设备上创建文件系统，然后才能够挂载并使用它们。从快照创建的卷可能已经含有文件系统；如果您在现有的文件系统上创建新的文件系统，则该操作将覆盖您的数据。

   使用以下一种或两种方法来确定卷上是否有文件系统：
   + 使用 **file -s** 命令获取有关特定设备的信息，例如其文件系统类型。如果输出仅显示 `data`（如以下示例输出所示），则说明设备上没有文件系统。

     ```
     [ec2-user ~]$ sudo file -s /dev/xvdf
     /dev/xvdf: data
     ```

     如果设备有文件系统，该命令会显示有关文件系统类型的信息。例如，以下示例输出显示具有 XFS 文件系统的根设备。

     ```
     [ec2-user ~]$ sudo file -s /dev/xvda1
     /dev/xvda1: SGI XFS filesystem data (blksz 4096, inosz 512, v2 dirs)
     ```
   + 使用 **lsblk -f** 命令获取有关连接到实例的所有设备的信息。

     ```
     [ec2-user ~]$ sudo lsblk -f
     ```

     例如，以下输出显示有三个设备连接到实例 – `nvme1n1`、`nvme0n1` 和 `nvme2n1`。第一列列出了设备及其分区。`FSTYPE` 列显示每个设备的文件系统类型。如果该列对于特定设备为空，则表示该设备没有文件系统。在这种情况下，设备 `nvme1n1` 和设备 `nvme0n1` 上的分区 `nvme0n1p1` 都使用 XFS 文件系统进行格式化，而设备 `nvme2n1` 和设备 `nvme0n1` 上的分区 `nvme0n1p128` 没有文件系统。

     ```
     NAME		FSTYPE	LABEL	UUID						MOUNTPOINT
     nvme1n1	        xfs		7f939f28-6dcc-4315-8c42-6806080b94dd
     nvme0n1
     ├─nvme0n1p1	xfs	    /	90e29211-2de8-4967-b0fb-16f51a6e464c	        /
     └─nvme0n1p128
     nvme2n1
     ```

   如果这些命令的输出显示设备上没有文件系统，则必须创建一个文件系统。

1. <a name="create_file_system_step"></a>（有条件）如果您在上一步中发现设备上存在文件系统，请跳过此步骤。如果您有一个空卷，请使用 **mkfs -t** 命令在该卷上创建一个文件系统。
**警告**  
如果要挂载已具有数据的卷（例如，从快照创建的卷），请勿使用此命令。否则，您会格式化卷并删除现有数据。

   ```
   [ec2-user ~]$ sudo mkfs -t xfs /dev/xvdf
   ```

   如果出现“找不到 `mkfs.xfs`”错误，请使用以下命令安装 XFS 工具，然后重复上一命令：

   ```
   [ec2-user ~]$ sudo yum install xfsprogs
   ```

1. 使用 **mkdir** 命令创建卷的挂载点目录。挂载点是卷在文件系统树中的位置，以及您在安装卷之后读写文件的位置。下面的示例创建一个名为 `/data` 的目录。

   ```
   [ec2-user ~]$ sudo mkdir /data
   ```

1. 在您于上一步创建的挂载点目录中挂载卷或分区。

   如果该卷没有分区，请使用以下命令并指定设备名称来挂载完整的卷。

   ```
   [ec2-user ~]$ sudo mount /dev/xvdf /data
   ```

   如果该卷有分区，请使用以下命令并指定分区名称来挂载分区。

   ```
   [ec2-user ~]$ sudo mount /dev/xvdf1 /data
   ```

1. 检查新卷挂载的文件权限，确保您的用户和应用程序可以向该卷写入数据。有关文件权限的更多信息，请参阅 *Linux 文档项目* [文件安全性](https://tldp.org/LDP/intro-linux/html/sect_03_04.html)。

1. 重启实例后，挂载点不会自动保留。要在重启后自动挂载此 EBS 卷，请按照下一个过程进行操作。

### 重启后自动挂载附加的卷
<a name="ebs-mount-after-reboot"></a>

要在每次系统重启时附加附加的 EBS 卷，可在 `/etc/fstab` 文件中为该设备添加一个条目。

您可以在 `/dev/xvdf` 中使用设备名称（例如 `/etc/fstab`），但建议改为使用设备的 128 位通用唯一标识符（UUID）。设备名称可以更改，但 UUID 会在整个分区的使用寿命期间保留。通过使用 UUID，您可以减少系统在硬件重新配置后无法启动的机会。有关更多信息，请参阅[将 Amazon EBS 卷映射到 NVMe 设备名称](identify-nvme-ebs-device.md)。

**重启后自动附加附加卷**

1. （可选）创建 `/etc/fstab` 文件的备份，以便在编辑时误损坏或删除此文件时使用。

   ```
   [ec2-user ~]$ sudo cp /etc/fstab /etc/fstab.orig
   ```

1. 使用 **blkid** 命令查找设备的 UUID。记下要在重新启动后挂载的设备的 UUID。在下一步中您将需要用到它。

   例如，以下命令显示实例上装载了两台设备，并显示了这两台设备 UUIDs 的。

   ```
   [ec2-user ~]$ sudo blkid
   /dev/xvda1: LABEL="/" UUID="ca774df7-756d-4261-a3f1-76038323e572" TYPE="xfs" PARTLABEL="Linux" PARTUUID="02dcd367-e87c-4f2e-9a72-a3cf8f299c10"
   /dev/xvdf: UUID="aebf131c-6957-451e-8d34-ec978d9581ae" TYPE="xfs"
   ```

   对于 Ubuntu 18.04，请使用 lsblk 命令。

   ```
   [ec2-user ~]$ sudo lsblk -o +UUID
   ```

1. 使用任何文本编辑器（如 `/etc/fstab` 和 **nano**）打开 **vim** 文件。

   ```
   [ec2-user ~]$ sudo vim /etc/fstab
   ```

1. 将以下条目添加到 `/etc/fstab` 以在指定的挂载点挂载设备。这些字段是 **blkid**（或用于 Ubuntu 18.04 的 **lsblk**）返回的 UUID 值、挂载点、文件系统以及建议的文件系统挂载选项。有关必填字段的更多信息，请运行 `man fstab` 以打开 **fstab** 手册。

   在以下示例中，我们将 UUID 为 `aebf131c-6957-451e-8d34-ec978d9581ae` 的设备挂载到挂载点 `/data`，然后我们使用 `xfs` 文件系统。我们还使用 `defaults` 和 `nofail` 标志。我们指定 `0` 以防止文件系统被转储，并且我们指定 `2` 以指示它是非根设备。

   ```
   UUID=aebf131c-6957-451e-8d34-ec978d9581ae  /data  xfs  defaults,nofail  0  2
   ```
**注意**  
如果您要在未附加此卷的情况下启动实例（例如，将卷移动到另一个实例之后），`nofail` 附加选项允许该实例即使在卷附加过程中出现错误时也可启动。Debian 衍生物（包括早于 16.04 的 Ubuntu 版本）还必须添加 `nobootwait` 挂载选项。

1. 要检查条目是否有效，请在 `/etc/fstab` 中运行以下命令以卸载设备，然后挂载所有文件系统。如果未产生错误，则说明 `/etc/fstab` 文件正常，您的文件系统会在重启后自动挂载。

   ```
   [ec2-user ~]$ sudo umount /data
   [ec2-user ~]$ sudo mount -a
   ```

   如果收到错误消息，请解决文件中的错误。
**警告**  
`/etc/fstab` 文件中的错误可能显示系统无法启动。请勿关闭 `/etc/fstab` 文件中有错误的系统。

   如果您无法确定如何更正 `/etc/fstab` 中的错误并且您在此过程的第一步中创建了一个备份文件，则可以使用以下命令从您的备份文件还原。

   ```
   [ec2-user ~]$ sudo mv /etc/fstab.orig /etc/fstab
   ```

## Windows 实例
<a name="ebs-use-win"></a>

使用以下任一方法在 Windows 实例上启用卷。

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

**使所有带有原始分区的 EBS 卷都可用于 Windows PowerShell**

1. 使用远程桌面登录 Windows 实例。有关更多信息，请参阅[连接到 Windows 实例](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connecting_to_windows_instance.html)。

1. 在任务栏上，打开 “开始” 菜单，然后选择 “**Windows PowerShell**”。

1. 在打开的 PowerShell 提示符下使用提供的一系列 Windows PowerShell 命令。此脚本会默认执行以下操作：

   1. 停止命令行管理程序HWDetection 服务。

   1. 枚举分区样式为原始的磁盘。

   1. 创建一个涵盖磁盘和分区类型将支持的最大大小的新分区。

   1. 分配一个可用的驱动器盘符。

   1. 使用指定的文件系统标注将文件系统格式化为 NTFS。

   1. 再次启动命令行管理程序HWDetection 服务。

   ```
   Stop-Service -Name ShellHWDetection
   Get-Disk | Where PartitionStyle -eq 'raw' | Initialize-Disk -PartitionStyle MBR -PassThru | New-Partition -AssignDriveLetter -UseMaximumSize | Format-Volume -FileSystem NTFS -NewFileSystemLabel "Volume Label" -Confirm:$false
   Start-Service -Name ShellHWDetection
   ```

------
#### [ DiskPart command line tool ]

**使 EBS 卷可用于 DiskPart 命令行工具**

1. 使用远程桌面登录 Windows 实例。有关更多信息，请参阅[连接到 Windows 实例](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connecting_to_windows_instance.html)。

1. 确定要开放使用的磁盘编号：

   1. 打开 “开始” 菜单，然后选择 “窗口” PowerShell。

   1. 使用 `Get-Disk` Cmdlet 来检索可用磁盘列表。

   1. 在命令输出中，记下您开放使用的磁盘对应的 **Number**（编号）。

1. 创建脚本文件来执行 DiskPart 命令：

   1. 打开 Start（开始）菜单，然后选择 **File Explorer**（文件管理器）。

   1. 导航到某个目录（例如 C:\$1）以存储脚本文件。

   1. 选择或右键单击文件夹中的空白区域以打开对话框，将光标置于 **New**（新建）上方以访问上下文菜单，然后选择 **Text Document**（文本文档）。

   1. 命名文本文件 `diskpart.txt`。

1. 将下列命令添加到脚本文件中。您可能需要修改磁盘编号、分区类型、卷标和驱动器盘符。此脚本会默认执行以下操作：

   1. 选择磁盘 1 进行修改。

   1. 将卷配置为使用主引导记录（MBR）分区结构。

   1. 将卷格式化为 NTFS 卷。

   1. 设置卷标。

   1. 为卷分配一个驱动器盘符。
**警告**  
如果您挂载其中已有数据的卷，请不要格式化卷，否则会删除现有数据。

   ```
   select disk 1 
   attributes disk clear readonly 
   online disk noerr
   convert mbr 
   create partition primary 
   format quick fs=ntfs label="volume_label" 
   assign letter="drive_letter"
   ```

   有关更多信息，请参阅[DiskPart 语法和参数](https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-vista/cc766465(v=ws.10)#diskpart-syntax-and-parameters)。

1. 打开命令提示符，导航到脚本所在的文件夹，然后运行以下命令以使该卷可用于指定的磁盘：

   ```
   C:\> diskpart /s diskpart.txt
   ```

------
#### [ Disk Management utility ]

**借助磁盘管理实用工具使 EBS 卷可供使用**

1. 使用远程桌面登录 Windows 实例。有关更多信息，请参阅[连接到 Windows 实例](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connecting_to_windows_instance.html)。

1. 开启磁盘管理实用工具。在任务栏上，打开 Windows 徽标的上下文（右键单击）菜单，然后选择**磁盘管理**。
**注意**  
在 Windows Server 2008 中，依次选择 **Start**（开始）、**Administrative Tools**（管理工具）、**Computer Management**（计算机管理）和 **Disk Management**（磁盘管理）。

1. 将卷联机。在下面的窗格中，在左侧面板中打开 EBS 卷磁盘的上下文（右键单击）菜单。选择**联机**。  
![\[将卷联机。\]](http://docs.aws.amazon.com/zh_cn/ebs/latest/userguide/images/windows-2016-volume-online.png)

1. （视情况而定）若未初始化磁盘，您必须初始化磁盘然后才能使用。如果磁盘已初始化，请跳过此步骤。
**警告**  
如果在挂载的卷上已包含数据（例如，公用数据集或通过快照创建的卷），请不要重新格式化卷，否则，将删除现有的数据。

   如果未初始化磁盘，请按以下方式将其初始化：

   1. 在左侧面板中打开磁盘的上下文（右键单击）菜单，然后选择**初始化磁盘**。  
![\[初始化卷。\]](http://docs.aws.amazon.com/zh_cn/ebs/latest/userguide/images/windows-2016-volume-initialize.png)

   1. 在 **Initialize Disk**（初始化磁盘）对话框中，选择一种分区格式，然后选择 **OK**（确定）。  
![\[初始化卷设置。\]](http://docs.aws.amazon.com/zh_cn/ebs/latest/userguide/images/windows-2016-volume-initialize-settings.png)

1. 在右侧面板中打开磁盘的上下文（右键单击）菜单，然后选择**新建简单卷**。  
![\[挂载简单卷。\]](http://docs.aws.amazon.com/zh_cn/ebs/latest/userguide/images/windows-2016-new-simple-volume.png)

1. 在 **New Simple Volume Wizard**（新建简单卷向导）中，选择 **Next**（下一步）。  
![\[开始执行新建简单卷向导。\]](http://docs.aws.amazon.com/zh_cn/ebs/latest/userguide/images/windows-2016-new-simple-volume-wizard-welcome.png)

1. 如果要原定设置的最大值，请指定**Simple volume size in MB** [简单卷大小（MB）]，然后选择 **Next**（下一步）。  
![\[指定卷大小。\]](http://docs.aws.amazon.com/zh_cn/ebs/latest/userguide/images/windows-2016-new-simple-volume-wizard-size.png)

1. 如有必要，在 **Assign the following drive letter**（分配以下驱动器盘符）下拉菜单中指定一个您偏好的驱动器盘符，然后选择 **Next**（下一步）。  
![\[指定驱动器盘符。\]](http://docs.aws.amazon.com/zh_cn/ebs/latest/userguide/images/windows-2016-new-simple-volume-wizard-letter.png)

1. 指定 **Volume Label**（卷标）并根据需要调整原定设置，然后选择 **Next**（下一步）。  
![\[指定设置以格式化卷。\]](http://docs.aws.amazon.com/zh_cn/ebs/latest/userguide/images/windows-2016-new-simple-volume-wizard-format.png)

1. 检查设置，然后选择 **Finish**（完成）以应用修改并关闭新建简单卷向导。  
![\[检查设置，然后完成向导。\]](http://docs.aws.amazon.com/zh_cn/ebs/latest/userguide/images/windows-2016-new-simple-volume-wizard-finish.png)

------

# 查看关于 Amazon EBS 卷的信息
<a name="ebs-describing-volumes"></a>

您可以查看有关您的 EBS 卷的描述信息。例如，您可以查看有关特定区域中所有卷的信息，或者查看有关单个卷的详细信息，包括其大小、卷类型、卷是否加密、加密卷所用的 KMS 密钥以及卷附加到的特定实例。

您可以获得有关您的 EBS 卷的其他信息，例如该实例的操作系统上有多少空间磁盘可用。

**Topics**
+ [

## 查看卷信息
](#ebs-view-information-console)
+ [

## 卷状态
](#volume-state)
+ [

## 查看卷指标
](#ebs-view-volume-metrics)
+ [

## 查看可用磁盘空间
](#ebs-view-free-disk-space-lin)

## 查看卷信息
<a name="ebs-view-information-console"></a>

您可以查看有关您的 EBS 卷的信息。

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

**查看有关卷的信息**

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

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

1. 要减少列表，您可以使用标签和卷属性来筛选卷。选择筛选条件字段，选择标签或卷属性，然后选择筛选条件值。

1. 要查看有关卷的更多信息，请选择其 ID。

**查看已附加到实例的 EBS 卷**

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

1. 在导航窗格中，选择 **Instances (实例)**。

1. 选择实例。

1. 在 **Storage**（存储）选项卡上，**Block devices**（块储存设备）部分列出了已附加到实例的卷。要查看有关特定卷的信息，请在 **Volume ID**（卷 ID）列中选择卷 ID。

------
#### [ Amazon EC2 Global View ]

您可以使用 [Amazon EC2 全球视图](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/global-view.html)查看您的 AWS 账户已启用的所有区域的交易量。

**查看所有区域的 EBS 卷总览**

1. 在[https://console.aws.amazon.com/ec2globalview/家](https://console.aws.amazon.com/ec2globalview/home)中打开 Amazon EC2 全球视图控制台。

1. 在**区域资源管理器**选项卡的**摘要**下，检查**卷**的资源计数，包括卷数量和区域数量。单击带下划线的文本，查看卷计数的跨区域分布情况。

1. 在**全局搜索**选项卡上，选择客户端筛选条件**资源类型 = 卷**。可以通过指定区域或标签来进一步筛选结果。

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

**查看有关 EBS 卷的信息**  
使用 [describe-volumes](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-volumes.html) 命令。以下示例统计当前区域的卷数量。

```
aws ec2 describe-volumes --query "length(Volumes[*])"
```

以下示例列出附加到指定实例的卷。

```
aws ec2 describe-volumes \
    --filters "Name=attachment.instance-id,Values=i-1234567890abcdef0" \
    --query Volumes[*].VolumeId \
    --output text
```

以下示例描述指定的卷。

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

下面是示例输出。

```
{
    "Volumes": [
        {
            "Iops": 3000,
            "VolumeType": "gp3",
            "MultiAttachEnabled": false,
            "Throughput": 125,
            "Operator": {
                "Managed": false
            },
            "VolumeId": "vol-01234567890abcdef",
            "Size": 8,
            "SnapshotId": "snap-0abcdef1234567890",
            "AvailabilityZone": "us-west-2b",
            "State": "in-use",
            "CreateTime": "2024-05-17T23:23:00.400000+00:00",
            "Attachments": [
                {
                    "DeleteOnTermination": true,
                    "VolumeId": "vol-01234567890abcdef",
                    "InstanceId": "i-1234567890abcdef0",
                    "Device": "/dev/xvda",
                    "State": "attached",
                    "AttachTime": "2024-05-17T23:23:00+00:00"
                }
            ],
            "Encrypted": false
        }
    ]
}
```

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

**查看有关 EBS 卷的信息**  
使用 [Get-EC2Volume](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Volume.html) cmdlet。以下示例统计当前区域的卷数量。

```
(Get-EC2Volume).Count
```

以下示例列出附加到指定实例的卷。

```
(Get-EC2Volume `
    -Filters @{Name="attachment.instance-id";Values="i-1234567890abcdef0"}).VolumeId
```

以下示例描述指定的卷。

```
Get-EC2Volume -VolumeId vol-01234567890abcdef
```

下面是示例输出。

```
Attachments        : {i-1234567890abcdef0}
AvailabilityZone   : us-west-2b
CreateTime         : 5/17/2024 11:23:00 PM
Encrypted          : False
FastRestored       : False
Iops               : 3000
KmsKeyId           : 
MultiAttachEnabled : False
Operator           : Amazon.EC2.Model.OperatorResponse
OutpostArn         : 
Size               : 8
SnapshotId         : snap-0abcdef1234567890
SseType            : 
State              : in-use
Tags               : {}
Throughput         : 125
VolumeId           : vol-01234567890abcdef
VolumeType         : gp3
```

------

## 卷状态
<a name="volume-state"></a>

卷状态描述 Amazon EBS 卷的可用性。您可以在控制台的 “卷” 页面上的 “**状态**” 列中查看**卷**状态，也可以使用 desc [ribe-](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-volumes.html) AWS CLI volumes 命令查看卷状态。

从创建直至删除，Amazon EBS 卷会历经不同状态的转换。

下图阐释了卷状态之间的转换。您可以通过 Amazon EBS 快照创建卷，也可以创建空卷。创建卷时，其进入 `creating` 状态。当卷准备就绪后，其进入 `available` 状态。您可以将可用的卷挂载到与该卷位于相同可用区中的实例。必须先分离该卷，才能将其删除或挂载到其他实例。如果您不再需要某个卷，可以将其删除。

![\[EBS 卷的生命周期。\]](http://docs.aws.amazon.com/zh_cn/ebs/latest/userguide/images/volume-states.png)


下表汇总了卷状态。


| 州 | 说明 | 
| --- | --- | 
| creating | 正在创建卷。 | 
| available | 卷未连接到实例。 | 
| in-use | 卷已连接到实例。 | 
| deleting | 正在删除卷。 | 
| deleted | 卷被删除。 | 
| error | 与 EBS 卷有关的底层硬件出现故障，与卷关联的数据不可恢复。有关如何还原卷或恢复卷上的数据的信息，请参阅[为什么我的 EBS 卷状态为“错误”？](https://repost.aws/knowledge-center/ebs-error-status)。 | 

## 查看卷指标
<a name="ebs-view-volume-metrics"></a>

您可以从 Amazon CloudWatch 获取有关您的 EBS 卷的更多信息。有关更多信息，请参阅 [亚马逊 EBS 的亚马逊 CloudWatch 指标](using_cloudwatch_ebs.md)。

## 查看可用磁盘空间
<a name="ebs-view-free-disk-space-lin"></a>

您可以获得有关您的 EBS 卷的其他信息，例如该实例的操作系统上有多少空间磁盘可用。

### Linux 实例
<a name="ebs-view-free-disk-space-linux"></a>

使用 **df -hT** 命令并指定设备名称：

```
[ec2-user ~]$ df -hT /dev/xvda1
Filesystem     Type      Size  Used Avail Use% Mounted on
/dev/xvda1     xfs       8.0G  1.2G  6.9G  15% /
```

### Windows 实例
<a name="ebs-view-free-disk-space-windows"></a>

您可以通过打开文件资源管理器并选择**这台电脑**来查看可用磁盘空间。

您还可以使用以下 `dir` 命令并检查输出的最后一行来查看可用磁盘空间：

```
C:\> dir C:
 Volume in drive C has no label.
 Volume Serial Number is 68C3-8081

 Directory of C:\

03/25/2018  02:10 AM    <DIR>          .
03/25/2018  02:10 AM    <DIR>          ..
03/25/2018  03:47 AM    <DIR>          Contacts
03/25/2018  03:47 AM    <DIR>          Desktop
03/25/2018  03:47 AM    <DIR>          Documents
03/25/2018  03:47 AM    <DIR>          Downloads
03/25/2018  03:47 AM    <DIR>          Favorites
03/25/2018  03:47 AM    <DIR>          Links
03/25/2018  03:47 AM    <DIR>          Music
03/25/2018  03:47 AM    <DIR>          Pictures
03/25/2018  03:47 AM    <DIR>          Saved Games
03/25/2018  03:47 AM    <DIR>          Searches
03/25/2018  03:47 AM    <DIR>          Videos
               0 File(s)              0 bytes
              13 Dir(s)  18,113,662,976 bytes free
```

您还可以使用以下 `fsutil` 命令查看可用磁盘空间：

```
C:\> fsutil volume diskfree C:
Total # of free bytes        : 18113204224
Total # of bytes             : 32210153472
Total # of avail free bytes  : 18113204224
```

**提示**  
您也可以使用 CloudWatch 代理从 Amazon EC2 实例收集磁盘空间使用率指标，而无需连接到该实例。有关更多信息，请参阅 *Amazon CloudWatch 用户指南*中的[创建 CloudWatch CloudWatch 代理配置文件](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/create-cloudwatch-agent-configuration-file.html)[和安装](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/install-CloudWatch-Agent-on-EC2-Instance.html)代理。如果您需要监控多个实例的磁盘空间使用情况，则可以使用 Systems Manager 在这些实例上安装和配置 CloudWatch 代理。有关更多信息，请参阅[使用 Systems Manager 安装 CloudWatch 代理](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/installing-cloudwatch-agent-ssm.html)。

# 使用弹性卷操作修改 Amazon EBS 卷
<a name="ebs-modify-volume"></a>

通过使用 Amazon EBS 弹性卷，您可以增加卷大小，更改卷类型或调整 EBS 卷的性能。如果您的实例支持弹性卷，您可以执行这些操作，而无需分离卷或重新启动实例。这样，您就可以在更改生效时继续使用应用程序。

修改卷配置是免费的。卷修改开始后，您需要支付新卷配置的费用。有关更多信息，请参阅[Amazon EBS 定价](https://aws.amazon.com/ebs/pricing/)页面。

**Topics**
+ [

## 注意事项
](#elastic-volumes-considerations)
+ [

## 限制
](#elastic-volumes-limitations)
+ [

# Amazon EBS 卷修改要求
](modify-volume-requirements.md)
+ [

# 申请 Amazon EBS 卷修改
](requesting-ebs-volume-modifications.md)
+ [

# 监控 Amazon EBS 卷修改的进度
](monitoring-volume-modifications.md)
+ [

# 调整 Amazon EBS 卷大小后扩展文件系统
](recognize-expanded-volume-linux.md)

## 注意事项
<a name="elastic-volumes-considerations"></a>
+ 启动卷修改后，必须等待修改达到该`completed`状态，然后才能对同一个卷启动另一次修改。只要该卷处于`in-use`或`available`状态，并且之前对该卷的所有修改均为，则您最多可以在 24 小时内修改该卷四次`completed`。如果超过此限制，则会收到一条错误消息，指示何时可以执行下一次修改。
+ 卷修改是在尽力而为的基础上进行的，可能需要几分钟到几小时才能完成，具体取决于所需的卷配置。通常，1 TiB 的音量可能需要长达六个小时才能进行修改。但是，时间并不总是与卷大小成线性缩放——较大的音量可能需要更少的时间，而较小的音量可能需要更多的时间。
+ 音量修改达到`optimizing`状态后，大小增加就会生效，这通常需要几秒钟。
+ 尚未完全初始化的卷的修改时间会增加。有关更多信息，请参阅[创建后手动初始化卷](initalize-volume.md#ebs-initialize)。
+ 如果您将卷类型从 `gp2` 更改为 `gp3`，并且您未指定 IOPS 或吞吐量性能，则 Amazon EBS 将自动预调配与源 `gp2` 卷的性能或基准 `gp3` 性能相当的性能（以二者中较高者为准）。

  例如，如果您将吞吐量为 250 和 1500 IOPS 的 500 GiB `gp2` 卷修改为`gp3`不指定 IOPS 或 MiB/s 吞吐量性能，Amazon EBS 会自动为该`gp3`卷配置 3000 IOPS（基准 `gp3` IOPS）和 250 MiB/s （以匹配源卷吞吐量）。`gp2`
+ 如果在尝试修改 EBS 卷时遇到错误消息，或者要修改附加到上一代实例类型的 EBS 卷，请执行以下步骤之一：
  + 对于非根卷，将卷与实例分离，应用修改，然后重新附加卷。
  + 对于根卷，停止实例，应用修改，然后重新启动实例。

## 限制
<a name="elastic-volumes-limitations"></a>
+ 提交卷修改请求后，您将无法取消该请求。
+ 您必须增加卷大小。您无法减小卷的大小。但是，您可以创建较小的卷，然后使用应用程序级工具 [如 **rsync**（Linux 实例）或 **robocopy**（Windows 实例）] 将数据迁移到该卷。
+ 卷修改过程中可以请求的最大聚合存储空间存在限制。有关更多信息，请参阅 *Amazon Web Services 一般参考* 中 [Amazon EBS 服务限额](https://docs.aws.amazon.com/general/latest/gr/ebs-service.html#limits_ebs)。
+ 新卷大小不能超过其文件系统和分区方案所支持的容量。有关更多信息，请参阅 [Amazon EBS 卷限制](volume_constraints.md)。
+ 如果您没有修改卷类型，则卷的大小和性能修改必须在当前卷类型的限制范围内。如果您修改卷类型，则卷的大小和性能修改必须在目标卷类型的限制范围内。有关更多信息，请参阅 [Amazon EBS 卷类型](ebs-volume-types.md)。
+ [基于 Nitro 的实例](https://docs.aws.amazon.com/ec2/latest/instancetypes/ec2-nitro-instances.html)支持预置高达 256,000 IOPS 的卷。其他实例类型可以挂载到预置了最多 64000IOPS 的卷，但可以实现最多 32000IOPS。
+ 您不能修改启用了多重挂载的 `io2` 卷的卷类型。
+ 您无法修改启用了多重挂载的 `io1` 卷的卷类型、大小或预置 IOPS。
+ 无法将类型 `io1`、`io2`、`gp2`、`gp3` 或 `standard` 的根卷修改为 `st1` 或 `sc1` 卷，即使已将它与实例分离也是如此。
+ 如果卷是在 UTC 时间 2016 年 11 月 3 日 23:40 之前附加的，您必须初始化弹性卷支持。有关更多信息，请参阅[初始化弹性卷支持](requesting-ebs-volume-modifications.md#initialize-modification-support)。
+ 虽然 `m3.medium` 实例完全支持卷修改，但 `m3.large`、`m3.xlarge` 和 `m3.2xlarge` 实例可能不支持所有卷修改功能。

# Amazon EBS 卷修改要求
<a name="modify-volume-requirements"></a>

您修改 Amazon EBS 卷时存在以下要求和限制。若要了解有关 EBS 卷的常规要求的更多信息，请参阅 [Amazon EBS 卷限制](volume_constraints.md)。

**Topics**
+ [

## 支持的实例类型
](#instance-support)
+ [

## 操作系统
](#operating-system)

## 支持的实例类型
<a name="instance-support"></a>

以下实例上支持弹性卷：
+ 所有[当前一代实例](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#current-gen-instances)
+ 下面这些上一代的实例：C1、C3、C4、G2、I2、M1、M3、M4、R3 和 R4

如果您的实例类型不支持弹性卷，请参阅[在不支持弹性卷的情况下修改 EBS 卷](requesting-ebs-volume-modifications.md#modify-volume-stop-start)。

## 操作系统
<a name="operating-system"></a>

以下操作系统要求适用：

### Linux
<a name="operating-system-linux"></a>

对于大于 2 TiB（2,048 GiB）的启动卷，Linux AMIs 需要 GUID 分区表 (GPT) 和 GRUB 2。 AMIs 如今，许多 Linux 仍在使用 MBR 分区方案，该方案仅支持最大 2 TiB 的启动卷大小。如果您的实例不通过大于 2 TiB 的引导卷启动，您要使用的 AMI 可能限制为小于 2 TiB 的引导卷大小。非引导卷对 Linux 实例没有这种限制。

在尝试调整超过 2 TiB 的引导卷大小之前，您可以通过在您的实例上运行以下命令来决定该卷是使用 MBR 分区还是使用 GPT 分区：

```
[ec2-user ~]$ sudo gdisk -l /dev/xvda
```

使用 GPT 分区的 Amazon Linux 实例返回以下信息：

```
GPT fdisk (gdisk) version 0.8.10
  
  Partition table scan:
    MBR: protective
    BSD: not present
    APM: not present
    GPT: present
  
  Found valid GPT with protective MBR; using GPT.
```

使用 MBR 分区的 SUSE 实例返回以下信息：

```
GPT fdisk (gdisk) version 0.8.8
  
  Partition table scan:
    MBR: MBR only
    BSD: not present
    APM: not present
    GPT: not present
```

### Windows
<a name="operating-system-windows"></a>

默认情况下，Windows 使用主启动记录（MBR）分区表来初始化卷。由于 MBR 只支持小于 2TiB（2048GiB）的卷，Windows 会阻止您将 MBR 卷大小调整为超过此限制。在这种情况下，Windows **磁盘管理**实用程序中的**磁盘管理**选项会禁用。如果您使用 AWS 管理控制台 或 AWS CLI 创建超出大小限制的 MBR 分区卷，Windows 将无法检测或使用额外的空间。

要克服此限制，您可以使用 GUID 分区表（GPT）创建新的较大的卷并从原始 MBR 卷复制数据。

**创建 GPT 卷**

1. 在 EC2 实例的可用区中创建新的具有所需大小的空卷，并将其附加到您的实例上。
**注意**  
新卷不能是从快照恢复的卷。

1. 登录到您的 Windows 系统并打开**磁盘管理**（**diskmgmt.exe**）。

1. 打开新磁盘的上下文（右键单击）菜单并选择**在线**。

1. 在**初始化磁盘**窗口中，选择新磁盘，并依次选择 **GPT（GUID 分区表）**、**确定**。

1. 初始化完成后，使用 robocopy 或 teracopy 等工具将数据从原始卷复制到新卷。

1. 在 **Disk Management** 中，将盘符更改为适当的值，并使旧卷脱机。

1. 在 Amazon EC2 控制台中，从实例上分离旧卷，重启实例以验证它是否正常工作，然后删除旧卷。

# 申请 Amazon EBS 卷修改
<a name="requesting-ebs-volume-modifications"></a>

对于弹性卷，您可以在不分离 Amazon EBS 卷的情况下动态增加卷的大小或降低其性能，以及修改卷类型。

**过程概述**

1. （可选）在修改包含有用数据的卷之前，最佳实践是创建卷的快照（如果您需要回滚您的更改）。有关更多信息，请参阅[创建 Amazon EBS 快照](ebs-creating-snapshot.md)。

1. 请求卷修改。

1. 监控卷修改进度。有关更多信息，请参阅[监控 Amazon EBS 卷修改的进度](monitoring-volume-modifications.md)。

1. 如果修改了卷的大小，请扩展卷的文件系统以利用增加的存储容量。有关更多信息，请参阅 [调整 Amazon EBS 卷大小后扩展文件系统](recognize-expanded-volume-linux.md)。

**Topics**
+ [

## 使用弹性卷修改 EBS 卷
](#modify-ebs-volume)
+ [

## 在不支持弹性卷的情况下修改 EBS 卷
](#modify-volume-stop-start)
+ [

## 初始化弹性卷支持（如果需要）
](#initialize-modification-support)

## 使用弹性卷修改 EBS 卷
<a name="modify-ebs-volume"></a>

开始之前，请先查看以下内容：
+ [注意事项](ebs-modify-volume.md#elastic-volumes-considerations)
+ [限制](ebs-modify-volume.md#elastic-volumes-limitations)
+ [要求](modify-volume-requirements.md)

------
#### [ Console ]<a name="console-modify-size"></a>

**修改 EBS 卷**

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

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

1. 选择要修改的卷，然后选择 **Actions**（操作）、**Modify Volume**（修改卷）。

1. **Modify Volume**（修改卷）窗口显示卷 ID 和卷的当前配置，包括类型、大小、IOPS 和吞吐量。设置新的配置值，如下所述：
   + 要修改类型，请为 **Volume type**（卷类型）选择一个值。
   + 要修改大小，请为**大小**输入新值。
   + （仅限于 `gp3`、`io1` 和 `io2`）要修改 IOPS，为 **IOPS** 输入新值。
   + （仅限于 `gp3`）要修改吞吐量，为 **Throughput**（吞吐量）输入新值。

1. 完成更改卷设置后，请选择**修改**。当系统提示您确认时，选择 **Modify**（修改）。

1. 如果您增加了卷的大小，则还必须扩展卷的分区来使用额外的存储容量。有关更多信息，请参阅 [调整 Amazon EBS 卷大小后扩展文件系统](recognize-expanded-volume-linux.md)。

1. （*仅限 Windows 实例*）如果您在没有 AWS NVMe 驱动程序的实例上增加 NVMe 卷的大小，则必须重启该实例才能让 Windows 看到新的卷大小。有关安装 AWS NVMe 驱动程序的更多信息，请参阅[AWS NVMe 驱动程序](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/aws-nvme-drivers.html)。

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

**修改 EBS 卷**  
使用 [modify-volume](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-volume.html) 命令。如果您有一个类型为 `gp2` 且大小为 100 GiB 的卷，以下示例会将其配置更改为类型为 `io1`、包含 10,000 IOPS 且大小为 200 GiB 的卷。

```
aws ec2 modify-volume \
    --volume-id vol-01234567890abcdef \
    --volume-type io1 \
    --iops 10000 \
    --size 200
```

下面是示例输出。

```
{
    "VolumeModification": {
        "TargetSize": 200,
        "TargetVolumeType": "io1",
        "ModificationState": "modifying",
        "VolumeId": "vol-01234567890abcdef",
        "TargetIops": 10000,
        "StartTime": "2022-01-19T22:21:02.959Z",
        "Progress": 0,
        "OriginalVolumeType": "gp2",
        "OriginalIops": 300,
        "OriginalSize": 100
    }
}
```

如果您增加了卷的大小，则还必须扩展卷的分区来使用额外的存储容量。有关更多信息，请参阅 [调整 Amazon EBS 卷大小后扩展文件系统](recognize-expanded-volume-linux.md)。

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

**修改 EBS 卷**  
使用 [Edit-EC2Volume](https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2Volume.html) cmdlet。如果您有一个类型为 `gp2` 且大小为 100 GiB 的卷，以下示例会将其配置更改为类型为 `io1`、包含 10,000 IOPS 且大小为 200 GiB 的卷。

```
Edit-EC2Volume `
    -VolumeId vol-01234567890abcdef `
    -VolumeType io1 `
    -Iops 10000 `
    -Size 200
```

如果您增加了卷的大小，则还必须扩展卷的分区来使用额外的存储容量。有关更多信息，请参阅 [调整 Amazon EBS 卷大小后扩展文件系统](recognize-expanded-volume-linux.md)。

------

## 在不支持弹性卷的情况下修改 EBS 卷
<a name="modify-volume-stop-start"></a>

如果您使用的是支持的实例类型，则可以使用弹性卷来在不分离 Amazon EBS 卷的情况下动态修改卷的大小、性能和卷类型。

如果您无法使用弹性卷但需要修改根（启动）卷，则必须停止实例，修改卷，然后重新启动实例。

实例启动之后，可以检查文件系统大小，看实例是否识别这个更大的卷空间。在 Linux 上，请使用 **df -h** 命令检查文件系统大小。

```
[ec2-user ~]$ df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/xvda1            7.9G  943M  6.9G  12% /
tmpfs                 1.9G     0  1.9G   0% /dev/shm
```

如果大小没有反映新扩展的卷，则必须扩展设备的文件系统，以便实例可以使用新的空间。有关更多信息，请参阅 [调整 Amazon EBS 卷大小后扩展文件系统](recognize-expanded-volume-linux.md)。

您可能需要将卷联机才能使用 Windows 实例。有关更多信息，请参阅 [使 Amazon EBS 卷可供使用](ebs-using-volumes.md)。您无需重新格式化卷。

## 初始化弹性卷支持（如果需要）
<a name="initialize-modification-support"></a>

您必须先使用以下操作之一初始化卷修改支持，然后才能修改在 UTC 时间 2016 年 11 月 3 日 23:40 前附加到实例的卷：
+ 分离和附加卷
+ 停止和启动实例

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

**确定您的实例是否已准备就绪**

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

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

1. 选择**显示/隐藏列**图标（齿轮）。选择**启动时间**属性列，然后选择**确认**。

1. 按 **Launch Time** 列对实例列表进行排序。对于在截止日期之前启动的每个实例，选择**存储**选项卡，并检查**连接时间**列以查看其卷附加的时间。

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

**确定您的实例是否已准备就绪**  
使用以下 [describe-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html) 命令确定卷是否是在 UTC 时间 2016 年 11 月 3 日 23:40 之前附加的。

```
aws ec2 describe-instances \
    --query "Reservations[*].Instances[*].[InstanceId,LaunchTime<='2016-11-01',BlockDeviceMappings[*][Ebs.AttachTime<='2016-11-01']]" \
    --output text
```

每个实例的输出的第一行都将显示其 ID，无论实例是否在截止日期前启动（True 或 False）。第一行后跟一行或多行，以显示是否在截止日期前已附加每个 EBS 卷（True 或 False）。在以下示例输出中，您必须为第一个实例初始化卷修改，因为该实例是在截止日期前启动的，并且其根卷是在截止日期前附加的。其他实例已准备就绪，因为它们是在截止日期后启动的。

```
i-e905622e              True
True
i-719f99a8              False
True
i-006b02c1b78381e57     False
False
False
i-e3d172ed              False
True
```

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

**确定实例是否已准备就绪**  
使用 [Get-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Instance.html)cmdlet 来确定是否在世界标准时间 2016 年 11 月 3 日 23:40 之前附加了卷。

```
(Get-EC2Instance `
    -InstanceId i-1234567890abcdef0).Instances.BlockDeviceMappings | `
     Format-Table @{Name="VolumeId";Expression={$_.Ebs.VolumeId}}, `
                  @{Name="AttachTime";Expression={$_.Ebs.AttachTime}}
```

下面是示例输出。

```
VolumeId              AttachTime
--------              ----------
vol-0b243c8d927752d2b 3/23/2020 12:21:14 AM
vol-043eadbeb4a8387c3 9/5/2020 7:39:22 PM
vol-0c3f0c4e55c082753 4/23/2019 4:07:40 PM
```

------

# 监控 Amazon EBS 卷修改的进度
<a name="monitoring-volume-modifications"></a>

当您修改 EBS 卷时，它将经历一系列状态。卷将依次进入 `modifying` 状态、`optimizing` 状态和 `completed` 状态。此时，卷已准备好做进一步的修改。

当卷处于 `optimizing` 状态时，卷性能介于源配置规范和目标配置规范之间。过渡卷的性能将不会低于源卷的性能。如果您降级 IOPS，则过渡卷的性能不会低于目标卷的性能。

卷修改更改将生效，如下所示：
+ 音量修改达到`optimizing`状态后，大小增加就会生效，这通常需要几秒钟。
+ 性能（IOPS 和吞吐量）更改可能需要几分钟到几小时才能完成，具体取决于请求的卷配置。通常，完全使用的 1 TiB 卷可能需要大约 6 小时才能迁移到新的性能配置。在某些情况下，新的性能配置可能需要超过 24 小时才能生效，例如卷尚未完全初始化时。

可能的卷状态包括 `creating`、`available`、`in-use`、`deleting`、`deleted` 和 `error`。

可能的修改状态为 `modifying`、`optimizing` 和 `completed`。

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

**监控修改进度**

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

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

1. 选择该卷。

1. **“**详细信息**” 选项卡中的 “**卷状态**” 列和 “卷状态” 字段包含以下格式的信息：*Volume state*-*Modification state* (*Modification progress*%)。**下图显示了卷和卷修改状态。  
![\[卷和卷修改状态\]](http://docs.aws.amazon.com/zh_cn/ebs/latest/userguide/images/volume_state.png)

   修改完成后，仅显示卷状态。不再显示修改状态和进度。

   或者，您可以使用 Amazon EventBridge 为批量修改事件创建通知规则。有关更多信息，请参阅 [Amazon 入门 EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-get-started.html)。

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

**监控修改进度**  
使用[describe-volumes-modifications](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-volumes-modifications.html)命令查看一个或多个卷修改的进度。以下示例描述了两个卷的卷修改。

```
aws ec2 describe-volumes-modifications \
    --volume-ids vol-11111111111111111 vol-22222222222222222
```

在以下示例输出中，卷修改仍处于 `modifying` 状态。以百分比形式报告进展情况。

```
{
    "VolumesModifications": [
        {
            "TargetSize": 200,
            "TargetVolumeType": "io1",
            "ModificationState": "modifying",
            "VolumeId": "vol-11111111111111111",
            "TargetIops": 10000,
            "StartTime": "2017-01-19T22:21:02.959Z",
            "Progress": 0,
            "OriginalVolumeType": "gp2",
            "OriginalIops": 300,
            "OriginalSize": 100
        },
        {
            "TargetSize": 2000,
            "TargetVolumeType": "sc1",
            "ModificationState": "modifying",
            "VolumeId": "vol-22222222222222222",
            "StartTime": "2017-01-19T22:23:22.158Z",
            "Progress": 0,
            "OriginalVolumeType": "gp2",
            "OriginalIops": 300,
            "OriginalSize": 1000
        }
    ]
}
```

下一个示例描述了修改状态为 `optimizing` 或 `completed` 的所有卷，然后筛选和格式化结果以只显示于 2017 年 2 月 1 日及之后做出的修改：

```
aws ec2 describe-volumes-modifications \
    --filters Name=modification-state,Values="optimizing","completed" \
    --query "VolumesModifications[?StartTime>='2017-02-01'].{ID:VolumeId,STATE:ModificationState}"
```

以下是包含有关两个卷的信息的示例输出：

```
[
    {
        "STATE": "optimizing",
        "ID": "vol-06397e7a0eEXAMPLE"
    },
    {
        "STATE": "completed",
        "ID": "vol-ba74e18c2aEXAMPLE"
    }
]
```

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

**监控修改进度**  
使用 [Get-EC2VolumeModification](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2VolumeModification.html) cmdlet。以下示例描述了两个卷的卷修改。

```
Get-EC2VolumeModification `
    -VolumeId vol-11111111111111111 vol-22222222222222222
```

------

**注意**  
在极少数情况下，瞬态 AWS 故障会导致`failed`状态。这并不指示卷的运行状况；它仅指示卷修改失败。如果发生这种情况，请重试卷修改。

# 调整 Amazon EBS 卷大小后扩展文件系统
<a name="recognize-expanded-volume-linux"></a>

[增加 EBS 卷的大小后](requesting-ebs-volume-modifications.md)，您必须将分区和文件系统扩展到新的较大大小。您可以在卷进入 `optimizing` 状态后立即执行此操作。

## 开始前的准备工作
<a name="extend-file-system"></a>
+ 如果需要回滚更改，则创建卷的快照。有关更多信息，请参阅 [创建 Amazon EBS 快照](ebs-creating-snapshot.md)。
+ 确认卷修改成功并且其处于 `optimizing` 或 `completed` 状态。有关更多信息，请参阅 [监控 Amazon EBS 卷修改的进度](monitoring-volume-modifications.md)。
+ 确保卷已附加到实例，并且已格式化和挂载。有关更多信息，请参阅 [格式化并挂载附加的卷](ebs-using-volumes.md#ebs-format-mount-volume)。
+ （*仅限 Linux 实例*）如果在 Amazon EBS 卷上使用逻辑卷，则必须使用逻辑卷管理器（LVM）来扩展逻辑卷。有关如何执行此操作的说明，请参阅[如何使用 LVM 在 EBS 卷的分区上创建逻辑卷？](https://repost.aws/knowledge-center/create-lv-on-ebs-partition)一文中的**扩展 LV** 部分。

## Linux 实例
<a name="extend-linux"></a>

**注意**  
以下说明将引导您完成为 Linux 扩展 **XFS** 和 **Ext4** 文件系统的过程。有关扩展其他文件系统的信息，请参阅相关文档。

如果卷有分区，则必须先扩展分区，才能在 Linux 上扩展文件系统。

### 扩展 EBS 卷的文件系统
<a name="extend-file-system"></a>

按照以下过程扩展调整大小后的卷的文件系统。

请注意，Xen 实例和基于 Nitro 系统构建的实例的设备和分区命名有所不同。要确定您的实例是基于 Xen 还是基于 Nitro，请参阅 [Amazon EC2 hypervisor type](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#instance-hypervisor-type)。

**扩展 EBS 卷的文件系统**

1. [连接到您的 实例](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connect-to-linux-instance.html)。

1. 如果需要，调整分区的大小。为此，请执行以下操作：

   1. 检查卷是否有分区。使用 **lsblk** 命令。

------
#### [ Nitro instance example ]

      在以下示例输出中，根卷（`nvme0n1`）有两个分区（`nvme0n1p1` 和 `nvme0n1p128`），而额外的卷（`nvme1n1`）没有分区。

      ```
      [ec2-user ~]$ sudo lsblk
      NAME          MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
      nvme1n1       259:0    0  30G  0 disk /data
      nvme0n1       259:1    0  16G  0 disk
      └─nvme0n1p1   259:2    0   8G  0 part /
      └─nvme0n1p128 259:3    0   1M  0 part
      ```

------
#### [ Xen instance example ]

      在以下示例输出中，根卷（`xvda`）有一个分区（`xvda1`），而额外的卷（`xvdf`）没有分区。

      ```
      [ec2-user ~]$ sudo lsblk                
      NAME    MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
      xvda    202:0    0  16G  0 disk
      └─xvda1 202:1    0   8G  0 part /
      xvdf    202:80   0  24G  0 disk
      ```

------
      + 如果卷具有分区，则继续执行下一步（2b）。
      + 如果卷没有分区，请跳过步骤 2b、2c 和 2d，然后继续执行步骤 3。
**故障排除技巧**  
如果没有在命令输出中看到该卷，请确保该卷已[附加到实例](ebs-attaching-volume.md)并且[已格式化和挂载](ebs-using-volumes.md#ebs-format-mount-volume)。

   1. 检查是否需要扩展分区。在上一步的 **lsblk** 命令输出中，比较分区大小和卷大小。
      + 如果分区大小小于卷大小，则继续执行下一步（2c）。
      + 如果分区大小等于卷大小，则无需扩展分区，请跳过步骤 2c 和 2d，继续执行步骤 3。
**故障排除技巧**  
如果卷仍然反映原始大小，则请[确认卷修改成功](monitoring-volume-modifications.md)。

   1. 扩展分区。使用 **growpart** 命令并指定设备名称和分区编号。

------
#### [ Nitro instance example ]

      分区编号是 `p` 后面的数字。例如，对于 `nvme0n1p1`，分区编号为 `1`。对于 `nvme0n1p128`，分区编号为 `128`。

      要扩展名为 `nvme0n1p1` 的分区，请使用以下命令。

**重要**  
请注意，设备名称（`nvme0n1`）和分区编号（`1`）之间有空格。

      ```
      [ec2-user ~]$ sudo growpart /dev/nvme0n1 1
      ```

------
#### [ Xen instance example ]

      分区编号是设备名称后面的数字。例如，对于 `xvda1`，分区编号为 `1`。对于 `xvda128`，分区编号为 `128`。

      要扩展名为 `xvda1` 的分区，请使用以下命令。

**重要**  
请注意，设备名称（`xvda`）和分区编号（`1`）之间有空格。

      ```
      [ec2-user ~]$ sudo growpart /dev/xvda 1
      ```

------
**问题排查技巧**  
`mkdir: cannot create directory ‘/tmp/growpart.31171’: No space left on device FAILED: failed to make temp dir`：表示卷上没有足够的可用磁盘空间供 growpart 创建执行调整大小所需的临时目录。请释放一些磁盘空间并重试。
`must supply partition-number`：表示您指定的分区不正确。使用 **lsblk** 命令以确认分区名称，并确保在设备名称和分区编号之间输入空格。
`NOCHANGE: partition 1 is size 16773087. it cannot be grown`：表示分区已经扩展了整个卷，无法再扩展。[确认卷修改成功](monitoring-volume-modifications.md)。

   1. 验证是否已扩展分区。使用 **lsblk** 命令。分区大小现在应等于卷大小。

------
#### [ Nitro instance example ]

      以下示例输出显示卷（`nvme0n1`）和分区（`nvme0n1p1`）的大小相同（`16 GB`）。

      ```
      [ec2-user ~]$ sudo lsblk
      NAME          MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
      nvme1n1       259:0    0  30G  0 disk /data
      nvme0n1       259:1    0  16G  0 disk
      └─nvme0n1p1   259:2    0  16G  0 part /
      └─nvme0n1p128 259:3    0   1M  0 part
      ```

------
#### [ Xen instance example ]

      以下示例输出显示卷（`xvda`）和分区（`xvda1`）的大小相同（`16 GB`）。

      ```
      [ec2-user ~]$ sudo lsblk               
      NAME    MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
      xvda    202:0    0  16G  0 disk
      └─xvda1 202:1    0  16G  0 part /
      xvdf    202:80   0  24G  0 disk
      ```

------

1. 扩展文件系统。

   1. 获取需要扩展的文件系统的名称、大小、类型和挂载点。使用 **df -hT** 或 **lsblk -f** 命令。

------
#### [ Nitro instance example ]

      **df -hT** 命令的以下示例输出显示了 `/dev/nvme0n1p1` 文件系统的大小为 8 GB，其类型为 `xfs`，其挂载点是 `/`。

      ```
      [ec2-user ~]$ df -hT
      Filesystem      Type  Size  Used Avail Use% Mounted on
      /dev/nvme0n1p1  xfs   8.0G  1.6G  6.5G  20% /
      /dev/nvme1n1    xfs   8.0G   33M  8.0G   1% /data
      ...
      ```

------
#### [ Xen instance example ]

      **df -hT** 命令的以下示例输出显示了 `/dev/xvda1` 文件系统的大小为 8 GB，其类型为 `ext4`，其挂载点是 `/`。

      ```
      [ec2-user ~]$ df -hT
      Filesystem      Type   Size    Used   Avail   Use%   Mounted on
      /dev/xvda1      ext4   8.0G    1.9G   6.2G    24%    /
      /dev/xvdf1      xfs    24.0G   45M    8.0G    1%     /data
      ...
      ```

------
      + 如果文件系统大小小于卷大小，则继续执行下一步（3b）。
      + 如果文件系统大小等于卷大小，则无需扩展。在这种情况下，请跳过剩余步骤：分区和文件系统已扩展到新的卷大小。

       

   1. 扩展文件系统的命令因文件系统类型而异。根据您在上一步中记录的文件系统类型选择以下正确命令。
      + **[XFS 文件系统]** 使用 **xfs\$1growfs** 命令并指定您在上一步中记录的文件系统的挂载点。

------
#### [ Nitro and Xen instance example ]

        例如，若要扩展挂载在 `/` 上的文件系统，请使用以下命令。

        ```
        [ec2-user ~]$ sudo xfs_growfs -d /
        ```

------
**问题排查技巧**  
`xfs_growfs: /data is not a mounted XFS filesystem`：表示指定的挂载点不正确，或者文件系统不是 XFS。若要验证挂载点和文件系统类型，请使用 **df -hT** 命令。
`data size unchanged, skipping`：表示文件系统已经扩展了整个卷。如果卷没有分区，则请[确认卷修改成功](monitoring-volume-modifications.md)。如果卷有分区，则请确保该分区已按照步骤 2 中的说明进行扩展。
      + **[Ext4 文件系统]** 使用 **resize2fs** 命令并指定您在上一步中记录的文件系统的名称。

------
#### [ Nitro instance example ]

        例如，若要扩展名为 `/dev/nvme0n1p1` 的挂载文件系统，请使用以下命令。

        ```
        [ec2-user ~]$ sudo resize2fs /dev/nvme0n1p1
        ```

------
#### [ Xen instance example ]

        例如，若要扩展名为 `/dev/xvda1` 的挂载文件系统，请使用以下命令。

        ```
        [ec2-user ~]$ sudo resize2fs /dev/xvda1
        ```

------
**问题排查技巧**  
`resize2fs: Bad magic number in super-block while trying to open /dev/xvda1`：表示文件系统不是 Ext4。若要验证文件系统类型，请使用 **df -hT** 命令。
`open: No such file or directory while opening /dev/xvdb1`：表示您指定的分区不正确。若要验证分区，请使用 **df -hT** 命令。
`The filesystem is already 3932160 blocks long. Nothing to do!`：表示文件系统已经扩展了整个卷。如果卷没有分区，则请[确认卷修改成功](monitoring-volume-modifications.md)。如果卷有分区，则请确保该分区已按照步骤 2 中的说明进行扩展。
      + **[其他文件系统]**，请参阅文件系统的文档，了解相关说明。

   1. 验证是否已扩展文件系统。使用 **df -hT** 命令并确认文件系统大小等于卷大小。

## Windows 实例
<a name="extend-windows"></a>

使用以下任一方法在 Windows 实例上扩展文件系统。

------
#### [ Disk Management utility ]

**使用磁盘管理扩展文件系统**

1. 在扩展包含有用数据的文件系统之前，最佳实践是创建包含它的卷的快照（如果您需要回滚您的更改）。有关更多信息，请参阅[创建 Amazon EBS 快照](ebs-creating-snapshot.md)。

1. 使用远程桌面登录 Windows 实例。

1. 在**运行**对话框中，输入 **diskmgmt.msc** 并按 Enter。然后，磁盘管理实例程序随之打开。  
![\[Windows Server 磁盘管理实用工具\]](http://docs.aws.amazon.com/zh_cn/ebs/latest/userguide/images/Expand-Volume-Win2008-before.png)

1. 在 **Disk Management** 菜单上，选择 **Action**、**Rescan Disks**。

1. 打开扩展驱动器的上下文（右键单击）菜单，然后选择**扩展卷**。
**注意**  
如果出现以下情况，说明**扩展卷**可能已被禁用（灰显）：  
未分配的空间不在驱动器旁边。未分配的空间必须与要扩展的驱动器的右侧相邻。
卷使用主引导记录（MBR）分区样式，大小已经为 2TB。使用 MBR 的卷的大小不能超过 2TB。  
![\[Windows Server 磁盘管理实用工具\]](http://docs.aws.amazon.com/zh_cn/ebs/latest/userguide/images/Expand-Volume-Win2008-before-menu.png)

1. 在**扩展卷**向导中，选择**下一步**。对于 **Select the amount of space in MB**，输入扩展卷的兆字节数。通常，您可指定最大可用空间。**Selected** 下突出显示的文本是将添加的空间量，而不是卷最终将具有的大小。完成向导。  
![\[Windows Server 扩展卷向导\]](http://docs.aws.amazon.com/zh_cn/ebs/latest/userguide/images/Extend-Volume-Wizard-Win2008.png)

1. 如果您在没有 AWS NVMe 驱动程序的实例上增加 NVMe 卷的大小，则必须重启该实例才能让 Windows 看到新的卷大小。有关安装 AWS NVMe 驱动程序的更多信息，请参阅[AWS NVMe 驱动程序](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/aws-nvme-drivers.html)。

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

使用以下步骤使用扩展 Windows 文件系统 PowerShell。

**使用扩展文件系统 PowerShell**

1. 在扩展包含有用数据的文件系统之前，最佳实践是创建包含它的卷的快照（如果您需要回滚您的更改）。有关更多信息，请参阅[创建 Amazon EBS 快照](ebs-creating-snapshot.md)。

1. 使用远程桌面登录 Windows 实例。

1. 以管理员 PowerShell 身份运行。

1. 运行`Get-Partition`命令。 PowerShell 返回每个分区的相应分区号、驱动器号、偏移量、大小和类型。请注意要扩展的分区的盘符。

1. 运行以下命令重新扫描磁盘。

   ```
   "rescan" | diskpart
   ```

1. 运行以下命令，使用您在步骤 4 中记下的驱动器号代替**<drive-letter>**。 PowerShell 返回允许的分区的最小和最大大小（以字节为单位）。

   ```
   Get-PartitionSupportedSize -DriveLetter <drive-letter>
   ```

1. 要将分区扩展到指定的量，请运行以下命令，并在 **<size>** 的位置输入卷的新大小。您可以输入以 `KB`、`MB` 和 `GB` 为单位的大小，例如 `50GB`。

   ```
   Resize-Partition -DriveLetter <drive-letter> -Size <size>
   ```

   要将分区扩展到最大可用大小，请运行以下命令。

   ```
   Resize-Partition -DriveLetter <drive-letter> -Size $(Get-PartitionSupportedSize -DriveLetter <drive-letter>).SizeMax
   ```

   以下 PowerShell 命令显示了将文件系统扩展到特定大小的完整命令和响应流。  
![\[使用 PowerShell -spectional扩展分区\]](http://docs.aws.amazon.com/zh_cn/ebs/latest/userguide/images/ebs-extend-powershell-v3-specific.png)

   以下 PowerShell 命令显示了将文件系统扩展到最大可用大小的完整命令和响应流。  
![\[使用 PowerShell -max 扩展分区\]](http://docs.aws.amazon.com/zh_cn/ebs/latest/userguide/images/ebs-extend-powershell-v3-max.png)

------

# 将 Amazon EBS 卷与 Amazon EC2 实例分离
<a name="ebs-detaching-volume"></a>

您需要将 Amazon Elastic Block Store（Amazon EBS）卷与实例分离，然后才能将其挂载到其他实例或删除该卷。分离卷不会影响卷上的数据。

**Topics**
+ [

## 注意事项
](#considerations)
+ [

## 卸载并分离卷
](#umount-detach-volume)
+ [

## 故障排除
](#detach-troubleshoot)

## 注意事项
<a name="considerations"></a>
+ 您可以明确地将 Amazon EBS 卷与实例分离，或终止实例。但是，如果实例正在运行，您首先必须从实例卸载卷。
+ 如果 EBS 卷是实例的根设备，则在分离卷之前必须停止该实例。
+ 您可以重新附加分离的卷（无需卸载），但可能不能获得相同挂载点。如果分离时正在写入卷，那么卷上的数据可能不同步。
+ 分离卷后，只要存储量超过 AWS 免费套餐的限制，您仍需要支付卷存储费用。您必须删除卷以避免产生更多费用。有关更多信息，请参阅[删除 Amazon EBS 卷](ebs-deleting-volume.md)。

## 卸载并分离卷
<a name="umount-detach-volume"></a>

使用以下程序从实例卸载并分离卷。当您需要将卷挂载到不同实例时或当您需要删除卷时，此操作非常有用。

**Topics**
+ [

### 第 1 步：卸载卷
](#unmount)
+ [

### 第 2 步：从实例分离卷
](#detach)
+ [

### 第 3 步：（*仅限 Windows 实例*）卸载离线设备位置
](#uninstall)

### 第 1 步：卸载卷
<a name="unmount"></a>

#### Linux 实例
<a name="unmount-linux"></a>

从 Linux 实例中，使用以下命令卸载 `/dev/sdh` 设备。

```
[ec2-user ~]$ sudo umount -d /dev/sdh
```

#### Windows 实例
<a name="unmount-windows"></a>

按照以下步骤从 Windows 实例中卸载卷。

1. 启动磁盘管理实用工具。
   + （Windows Server 2012 及更高版本）在任务栏上，右键单击 Windows 徽标，然后选择**磁盘管理**。
   + （Windows Server 2008）依次选择**开始**、**管理工具**、**计算机管理**和**磁盘管理**。

1. 右键单击磁盘（例如，右键单击**磁盘 1**），然后选择**脱机**。等待磁盘状态变为**脱机**，然后再打开 Amazon EC2 控制台。

### 第 2 步：从实例分离卷
<a name="detach"></a>

要将卷与实例分离，请使用以下方法之一：

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

**分离 EBS 卷**

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

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

1. 选择该卷。

1. 选择**操作**、**分离卷**。

1. 当系统提示进行确认时，选择**分离**。

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

**将 EBS 卷与实例分离**  
卸载卷之后，使用 [detach-volume](https://docs.aws.amazon.com/cli/latest/reference/ec2/detach-volume.html) 命令。

```
aws ec2 detach-volume --volume-id vol-01234567890abcdef
```

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

**将 EBS 卷与实例分离**  
卸载卷后，使用 [Dismount-EC2Volume](https://docs.aws.amazon.com/powershell/latest/reference/items/Dismount-EC2Volume.html)cmdlet。

```
Dismount-EC2Volume -VolumeId vol-01234567890abcdef
```

------

### 第 3 步：（*仅限 Windows 实例*）卸载离线设备位置
<a name="uninstall"></a>

从实例卸载和分离卷时，Windows 会将该设备位置标记为脱机。重新启动后以及停止并重新启动实例后，设备位置将保持脱机状态。重启实例时，Windows 可能会将其余卷之一挂载到脱机设备位置。这会导致卷在 Windows 中不可用。为了防止这种情况发生，并确保下次启动 Windows 时所有卷都附加到在线设备位置，请执行以下步骤：

1. 在实例上，打开设备管理器。

1. 在设备管理器中，依次选择**查看**、**显示隐藏的设备**。

1. 在设备列表中，展开**存储控制器**节点。

   已分离卷挂载到的设备位置命名为 `AWS NVMe Elastic Block Storage Adapter`，且应显示为灰色。

1. 右键单击每个命名为 `AWS NVMe Elastic Block Storage Adapter` 的灰显设备位置，选择 **Uninstall device**（卸载设备），然后选择 **Uninstall**（卸载）。
**重要**  
不要选中**删除此设备的驱动程序软件**复选框。

## 故障排除
<a name="detach-troubleshoot"></a>

以下内容介绍在分离卷时遇到的常见问题并以及如何解决这些问题。

**注意**  
要防止出现数据丢失的可能性，请在尝试卸载之前为您的卷制作快照。强制分离一个状态卡住的卷可能对文件系统或其中包含的数据造成破环，或者除非重启实例，否则无法使用同样的设备名称附加新卷。
+ 如果在通过 Amazon EC2 控制台分离卷时遇到问题，您可使用 **describe-volumes** CLI 命令来诊断问题。有关更多信息，请参阅 [describe-volumes](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-volumes.html)。
+ 如果您的卷处于 `detaching` 状态，您可以通过选择 **Force Detach** 强制执行分离操作。请将该选项仅用作在不得已的情况下从故障实例分离卷的方法，或是在要删除卷的情况下分离卷时使用。此实例没有机会来冲击文件系统缓存或文件系统元数据。如果您使用该选项，则必须执行文件系统检查和修复流程。
+ 如果在几分钟内多次尝试强制分离卷，并且该卷处于 `detaching` 状态，则可以向 [AWS re:Post](https://repost.aws/) 发布帮助请求。为了帮助加快解决问题，请提供卷 ID 并描述已采取的步骤。
+ 如果尝试分离仍挂载的卷，该卷可能在尝试分离时卡在 `busy` 状态。**describe-volumes** 的以下输出说明了这种情况：

  ```
  "Volumes": [
      {
          "AvailabilityZone": "us-west-2b",
          "Attachments": [
              {
                  "AttachTime": "2022-07-21T23:44:52.000Z",
                  "InstanceId": "i-1234567890abcdef0",
                  "VolumeId": "vol-01234567890abcdef",
                  "State": "busy",
                  "DeleteOnTermination": false,
                  "Device": "/dev/sdf"
              }
          ...
      }
  ]
  ```

  如果遇到这种状态，可能无限期延迟分离，直到您卸载卷，强制分离，重启实例，或者执行前述全部三项操作。

# 删除 Amazon EBS 卷
<a name="ebs-deleting-volume"></a>

如果您不再需要某个 Amazon EBS 卷，可以将其删除。删除后，卷上的数据都不复存在，并且再也不能附加到任何实例。然而，您可在删除之前保存卷的快照，以便以后可以使用该快照重新创建卷。

无法删除连接到实例的卷。要删除卷，必须先将其与实例分离。有关更多信息，请参阅 [将 Amazon EBS 卷与 Amazon EC2 实例分离](ebs-detaching-volume.md)。

如果您删除的卷符合回收站保留规则，则该卷将保留在回收站中，而不是立即删除。有关更多信息，请参阅[回收站](recycle-bin.md)。

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

**删除 EBS 卷**

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

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

1. 选择该卷。验证卷是否处于**可用**状态。

1. 选择**操作**、**删除卷**。

   如果禁用此选项，则卷将附加到实例，无法删除。

1. 提示进行确认时，输入 **delete**，然后选择 **Delete（删除）**。

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

**检查 EBS 卷是否正在使用中**  
使用 [describe-volumes](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-volumes.html) 命令。如果卷正在使用中，则状态为 `in-use`。否则为 `available`。

```
aws ec2 describe-volumes \
    --volume-id vol-01234567890abcdef \
    --query Volumes[*].State \
    --output text
```

**删除 EBS 卷**  
使用 [delete-volume](https://docs.aws.amazon.com/cli/latest/reference/ec2/delete-volume.html) 命令。

```
aws ec2 delete-volume --volume-id vol-01234567890abcdef
```

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

**检查 EBS 卷是否正在使用中**  
使用 [Get-EC2Volume](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Volume.html) cmdlet。如果卷正在使用中，则状态为 `in-use`。否则为 `available`。

```
(Get-EC2Volume `
    -VolumeId vol-01234567890abcdef).State.Value
```

**删除 EBS 卷**  
使用 [Remove-EC2Volume](https://docs.aws.amazon.com/powershell/latest/reference/items/Remove-EC2Volume.html) cmdlet。

```
Remove-EC2Volume -VolumeId vol-01234567890abcdef
```

------

# 使用快照替换 Amazon EBS 卷
<a name="ebs-restoring-volume"></a>

由于速度、便利性和成本，Amazon EBS 快照是 Amazon EC2 上的首选备份工具。当从快照中创建卷时，您重新创建了它在过去特定时间点的状态，并且所有数据完整无缺。通过将从快照中创建的卷附加到实例，您可以在不同的区域之间复制数据，创建测试环境，完全替换受损或损坏的生产卷，或检索特定文件和目录并将其传输到另一个附加的卷。有关更多信息，请参阅 [Amazon EBS 快照](ebs-snapshots.md)。

可以使用以下过程之一将 Amazon EBS 卷替换为从此卷的上一个快照创建的另一个卷。

**要求**  
您必须在实例所在的可用区中创建卷。卷必须附加到位于同一个可用区中的实例。

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

**替换卷**

1. 从快照中创建一个卷，并记下新卷的 ID。有关更多信息，请参阅 [创建 Amazon EBS 卷](ebs-creating-volume.md)。

1. 在 Instances（实例）页面上，选择要替换卷的实例，然后记下实例 ID。

   在实例处于选中状态时，选择 **Storage**（存储）选项卡。在 **Block devices**（块储存设备）部分中，找到要替换的卷并记下该卷的设备名称，例如 `/dev/sda1`。

1. 在**存储**选项卡上，选择卷 ID，然后[卸载卷并将其与实例分离](ebs-detaching-volume.md#umount-detach-volume)。

1. 选择在步骤 1 中创建的新卷，然后选择 **Actions**（操作）、**Attach volume**（附加卷）。

   对于 **Instance**（实例）和 **Device name**（设备名称），输入您在步骤 2 中记下的实例 ID 和设备名称，然后选择 **Attach volume**（附加卷）。

1. 连接到您的实例并安装卷。有关更多信息，请参阅 [使 Amazon EBS 卷可供使用](ebs-using-volumes.md)。

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

**替换卷**

1. 从快照创建一个新卷。将 [create-volume](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-volume.html) 命令与 `--snapshot-id` 选项结合使用。对于 `--availability-zone`，指定与实例相同的可用区。记下输出中新卷的 ID。

   ```
   aws ec2 create-volume \
       --volume-type gp3 \
       --snapshot-id snap-0abcdef1234567890 \
       --availability-zone us-east-1a
   ```

1. 获取要替换的卷的设备名称。可以使用 [describe-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html) 命令。对于 `--instance-ids`，指定要在其上替换卷的实例的 ID。记下要替换的卷的设备名称和卷 ID。

   ```
   aws ec2 describe-instances \
       --instance-ids i-1234567890abcdef0 \
       --query Reservations[].Instances[].BlockDeviceMappings
   ```

1. 从实例中分离要替换的卷。使用 [detach-volume](https://docs.aws.amazon.com/cli/latest/reference/ec2/detach-volume.html) 命令。

   ```
   aws ec2 detach-volume --volume-id vol-xxxxxxxxxxxxxxxxx
   ```

1. 将替换卷挂载到实例。使用 [attach-volume](https://docs.aws.amazon.com/cli/latest/reference/ec2/attach-volume.html) 命令。对于 `--volume-id`，指定替换卷的 ID。对于 `--instance-id`，指定要为其附加卷的实例的 ID。对于 `--device`，指定此前记下的设备名称。

   ```
   aws ec2 attach-volume \
       --volume-id vol-01234567890abcdef \
       --instance-id i-1234567890abcdef0 \
       --device /dev/sdf
   ```

1. 连接到您的实例并安装卷。有关更多信息，请参阅 [使 Amazon EBS 卷可供使用](ebs-using-volumes.md)。

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

**替换卷**

1. 从快照创建一个新卷。使用带有选项的 [New-EC2Volume](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2Volume.html)cmdlet。`-SnapshotId`对于 `-AvailabilityZone`，指定与实例相同的可用区。记下输出中新卷的 ID。

   ```
   New-EC2Volume `
       -VolumeType gp3 `
       -SnapshotId snap-0abcdef1234567890 `
       -AvailabilityZone us-east-1a
   ```

1. 获取要替换的卷的设备名称。使用 [Get-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Instance.html) cmdlet。对于 `-InstanceId`，指定要在其上替换卷的实例的 ID。记下要替换的卷的设备名称和卷 ID。

   ```
   (Get-EC2Instance `
       -InstanceId i-1234567890abcdef0).Instances.BlockDeviceMappings | `
        Format-Table DeviceName, @{Name="VolumeId";Expression={$_.Ebs.VolumeId}}
   ```

1. 从实例中分离要替换的卷。使用 [Dismount-EC2Volume](https://docs.aws.amazon.com/powershell/latest/reference/items/Dismount-EC2Volume.html) cmdlet。

   ```
   DismountEC2Volume -VolumeId vol-xxxxxxxxxxxxxxxxx
   ```

1. 将替换卷挂载到实例。使用 [Add-EC2Volume](https://docs.aws.amazon.com/powershell/latest/reference/items/Add-EC2Volume.html) cmdlet。对于 `-VolumeId`，指定替换卷的 ID。对于 `-InstanceId`，指定要为其附加卷的实例的 ID。对于 `-Device`，指定此前记下的设备名称。

   ```
   Add-EC2Volume`
       -VolumeId vol-01234567890abcdef `
       -InstanceId i-1234567890abcdef0 `
       -Device /dev/sdf
   ```

1. 连接到您的实例并安装卷。有关更多信息，请参阅 [使 Amazon EBS 卷可供使用](ebs-using-volumes.md)。

------

# 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
```

------

# 在 Amazon EBS 上进行故障测试
<a name="ebs-fis"></a>

AWS Fault Injection Service (AWS FIS) 是一项完全托管的服务，可帮助您对 AWS 工作负载执行故障注入实验。启用 EBS 操作后 AWS FIS，您可以测试应用程序如何应对可能导致卷中 I/O 断和性能下降的存储故障。这种受控的测试环境使您能够观察应用程序如何应对中断，从而发现架构中的弱点并提高应用程序的整体弹性。使用暂停 I/O 操作和延迟注入操作，您可以测试您的监控和恢复机制，例如 Amazon CloudWatch 警报和故障转移工作流程，并提高任务关键型应用程序应对存储故障的弹性。有关的更多信息 AWS FIS，请参阅《[AWS Fault Injection Service 用户指南》](https://docs.aws.amazon.com/fis/latest/userguide/what-is.html)。

## 可用实验
<a name="ebs-fis-experiments"></a>

Amazon EBS 目前支持两种 AWS FIS 故障注入：
+ [暂停 I/O 故障注入](ebs-fis-pause-io.md)
+ [延迟注入](ebs-fis-latency-injection.md)

## 注意事项
<a name="ebs-fis-consids"></a>

请注意以下事项：
+ 所有 Amazon EBS 卷类型均受支持。根卷和数据卷均受支持。不支持实例存储卷。
+ 卷必须附加到[基于 Nitro 的 EC2 实例](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#instance-hypervisor-type)。
+ 实验完成后，您的音量将根据持续时间恢复其原始 I/O 性能。您也可以在正在运行的实验完成之前停止该试验。或者，您可以创建一个停止条件，以便在实验达到您在 CloudWatch 警报中定义的阈值时停止实验。
+ 您可以与启用多重连接的卷 AWS FIS 一起使用。所有附加的实例都受影响。您无法为实验选择特定卷-实例附加。
+ FIS 目前在本地区域、Outposts 或 Wavelength 区域中不可用。
+ 在控制台中指定卷时，您最多可以在同一个可用区 ARNs 中同时测试 5 个卷。
+ 您不能 AWS FIS 与在Outpost、区域或本地 AWS Wavelength 区域中创建的卷一起使用。

# 暂停 I/O 故障注入
<a name="ebs-fis-pause-io"></a>

使用 AWS Fault Injection Service 和 Pause I/O 操作在 Amazon EBS 卷与其连接的实例 I/O 之间暂时停止，以测试您的工作负载如何处理 I/O 中断。

有关的更多信息 AWS FIS，请参阅《[https://docs.aws.amazon.com/fis/latest/userguide/what-is.html](https://docs.aws.amazon.com/fis/latest/userguide/what-is.html)。

**注意事项**

暂停卷 I/O 时请注意以下事项：
+ 所有[基于 Nit I/O ro 的实例类型](https://docs.aws.amazon.com/ec2/latest/instancetypes/ec2-nitro-instances.html)都支持暂停。
+ 要测试操作系统超时配置，请将实验持续时间设置为等于或大于为 `nvme_core.io_timeout` 指定的值。有关更多信息，请参阅 [Amazon EBS 卷的 NVMe I/O 操作超时](timeout-nvme-ebs-volumes.md)。
+ 如果您开车 I/O 到已 I/O 暂停的音量，则会发生以下情况：
  + 卷的状态将在 120 秒内转换为 `impaired`。有关更多信息，请参阅 [Amazon EBS 卷状态检查](monitoring-volume-checks.md)。
  + 的 CloudWatch 衡量标准`VolumeStalledIOCheck`将 I/O 是音量`1`是否暂停超过 60 秒。有关更多信息，请参阅 [Amazon EBS 卷的指标](using_cloudwatch_ebs.md#ebs-volume-metrics)。
  + 队列长度 (`VolumeQueueLength`) 的 CloudWatch 指标将为非零。任何告警或监控都应监控非零队列深度。
  + `VolumeReadOps`或的 CloudWatch 指标`VolumeWriteOps`将是`0`，这表示该卷不再处理 I/O。

您可以从 Amazon EC2 控制台执行基本实验，也可以使用控制 AWS FIS 台进行更高级的实验。有关使用 AWS FIS 控制台执行高级实验的更多信息，请参阅《*AWS Fault Injection Service 用户指南*》 AWS FIS中的[教程](https://docs.aws.amazon.com/fis/latest/userguide/fis-tutorials.html)。

**使用 Amazon EC2 控制台执行基础实验**

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

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

1. 选择要暂停的音量， I/O 然后选择 “**操作**”、“**故障注入**”、“**暂停音量 I/O**”。

1. 在 “**持续时间**” 中，输入要在卷和实例 I/O 之间暂停的持续时间。“持续时间”下拉列表旁边的字段将以 ISO 8601 格式显示持续时间。

1. 在**服务访问权限**部分，选择要代入的 IAM 服务角色 AWS FIS 来执行实验。您可以使用默认角色，也可以使用您创建的现有角色。有关更多信息，请参阅[为 AWS FIS 创建 IAM 角色](https://docs.aws.amazon.com/fis/latest/userguide/getting-started-iam-service-role.html)。

1. 选择**暂停卷 I/O**。系统提示时，在确认字段中输入 `start` 并选择**开始实验**。

1. 监控实验的进度和影响。有关更多信息，请参阅《AWS FIS 用户指南**》中的[监控 AWS FIS](https://docs.aws.amazon.com/fis/latest/userguide/monitoring-experiments.html)。

# 延迟注入
<a name="ebs-fis-latency-injection"></a>

使用中的延迟注入操作 (`aws:ebs:volume-io-latency`) AWS FIS 来模拟 Amazon EBS 卷上 I/O 延迟升高的情况，以测试您的应用程序如何应对存储性能下降的情况。此操作允许您指定要注入的延迟值以及该值将对 I/O 目标卷产生影响的百分比。使用 AWS FIS，您可以使用预先配置的延迟实验模板开始测试在存储故障期间可能观察到的不同 I/O 延迟模式。这些模板设计为一组初始场景，您可以使用它们来向应用程序引入中断以测试弹性。它们并非旨在涵盖您的应用程序在现实世界中可能遇到的所有类型的影响。我们建议您根据应用程序的性能需求调整它们以运行多个不同的测试。您可以自定义可用模板或创建新的实验模板，以测试您的应用程序的特定需求。

**预配置的延迟实验模板**  
Amazon EBS 通过 EBS 控制台和 [AWS FIS 场景库](https://docs.aws.amazon.com/fis/latest/userguide/scenario-library-scenarios.html)提供以下延迟实验模板。您可以直接在目标卷上使用这些模板来运行延迟注入实验。
+ **持续延迟**：模拟恒定延迟。该实验使用一个延迟注入操作，总持续时间为 15 分钟。本实验模拟 50% 的读取 I/O 和 100% 的写入 I/O 的持续延迟：500 毫秒，持续 15 分钟。
+ **延迟增加**：模拟逐渐增加的延迟。此实验使用五个延迟注入操作，总持续时间为 15 分钟。本实验将模拟 10% 的读取 I/O 和 25% 的写入 I/O 时延逐渐增加：3 分钟 50 毫秒，3 分钟 200 毫秒，3 分钟 700 毫秒，3 分钟 700 毫秒，3 分钟 1 秒，3 分钟 1 秒，3 分钟 15 秒。
+ **间歇性延迟**：模拟急剧的间歇性延迟峰值，中间有恢复期。此实验使用三个延迟注入操作，总持续时间为 15 分钟。此实验将模拟 0.1% 读取和写入 I/O 的三个延迟峰值：持续 1 分钟的 30 秒峰值、持续 2 分钟的 10 秒峰值和持续 2 分钟的 20 秒峰值。每次延迟峰值之间会有 5 分钟的恢复期。
+ **减少延迟**：模拟逐渐减少的延迟。此实验使用五个延迟注入操作，总持续时间为 15 分钟。本实验将模拟10％的读 I/O 写I/O延迟逐渐降低：3分钟为20秒，3分钟为5秒，3分钟为900毫秒，3分钟为300毫秒，3分钟为300毫秒，3分钟为40毫秒。

**自定义预配置场景**

您可以自定义上述预配置模板，也可以使用以下可自定义参数创建自己的新实验模板。
+ `readIOPercentage`— 将注入延迟的读取 I/O 操作的百分比。这是卷上所有读取 I/O 操作中将受该操作影响的百分比。

  范围：最小值 0.1%，最大值 100%
+ `readIOLatencyMilliseconds`— 读取 I/O 操作注入的延迟量。这是实验 I/O 期间在读取的指定百分比上观察到的延迟值。

  范围：最小 1 毫秒（io2）/10 毫秒（非 io2），最大 60 秒
+ `writeIOPercentage`— 将注入延迟的写入 I/O 操作的百分比。这是卷上所有写入 I/O 操作中将受该操作影响的百分比。

  范围：最小值 0.1%，最大值 100%
+ `writeIOLatencyMilliseconds`— 写入 I/O 操作注入的延迟量。这是实验 I/O 期间在指定的写入百分比上观察到的延迟值。

  范围：最短 1 毫秒（io2）/10 毫秒（非 io2），最长 60 秒
+ `duration`— 根据所 I/O 选百分比注入延迟的持续时间。

  范围：最短 1 秒，最长 12 小时

**监控延迟注入**  
您可以通过以下方式监控对卷的性能影响：
+ 使用中的平均延迟指标 CloudWatch 来获取每分钟的平均 I/O 延迟。有关更多信息，请参阅[使用 CloudWatch监控您的 EBS 卷](https://docs.aws.amazon.com/ebs/latest/userguide/using_cloudwatch_ebs.html)。
+ 使用 NVMe-CLI、 CloudWatch 代理和 Prometheus 提供的 EBS 详细性能统计数据来获取每秒的平均延迟。 I/O 详细指标还提供了 I/O 延迟直方图，您可以使用这些直方图来分析交易量的延迟差异。有关更多信息，请参阅[ NVMe 详细的性能统计](https://docs.aws.amazon.com/ebs/latest/userguide/nvme-detailed-performance-stats.html)信息。
+ 使用 [Amazon EBS 卷状态检查](monitoring-volume-checks.md)。当你注入 I/O 延迟时，卷的状态会转换到`warning`状态。

**注意事项**  
使用 EBS 延迟注入时，请考虑以下事项：
+ 延迟注入在所有[基于 Nitro 的实例类型](https://docs.aws.amazon.com/ec2/latest/instancetypes/ec2-nitro-instances.html)上均受支持，但以下类型除外：P4d、P5、P5e、Trn2u、G6、G6f、Gr6、Gr6f、M8i、M8i-flex、C8i-flex、R8i、R8i-flex、I8ge、Mac-m4pro 和 Mac-m4。
+ 实验中指定的延迟值与观察到的结果延迟值之间可能会出现高达 5% 的偏差。
+ 如果您推动的 I/O 操作数量很少，则操作参数中 I/O 指定的百分比可能与受操作 I/O 影响的实际百分比不匹配。

**在 Amazon EBS 卷上运行延迟注入实验**

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

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

1. 选择要运行实验的卷，然后选择**操作**、**弹性测试**、**注入卷 I/O 延迟**。

   控制 AWS Fault Injection Service 台打开。

1. 在**创建实验**窗口中，选择要运行的实验类型：**间歇性**、**增加**、**持续**或**减少**。

1. 要**选择 IAM 角色****，请选择创建**新角色以 AWS FIS 创建用于代表您进行实验的新角色。或者，如果您之前创建了具有所需权限的 IAM 角色，请选择**使用现有 IAM 角色**。

1. **定价估算**部分提供运行实验的成本估算值。使用 AWS FIS，根据实验的目标账户数量，从头到尾每分钟向你收取操作的费用。

1. 请选择**开始实验**。