

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

# 申请 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
```

------