

# 适用于 EC2 实例的实例存储临时块存储
<a name="InstanceStorage"></a>

*实例存储*为您的 EC2 实例提供临时块级存储。此存储由已物理附加到主机的磁盘提供。实例存储非常适合临时存储频繁更改的信息，例如缓冲区、缓存、Scratch 数据和其他临时内容。它还可用于存储您在一组实例中复制的临时数据，例如负载均衡的 Web 服务器池。

实例存储由一个或多个显示为块储存设备的实例存储卷组成。实例存储的大小以及可用设备的数量因实例类型和实例大小而异。例如，并非每种实例类型都提供实例存储卷。有关更多信息，请参阅 [EC2 实例的实例存储卷限制](instance-store-volumes.md)。

实例存储卷的虚拟设备按从 `ephemeral0` 到 `ephemeral23` 的顺序指定虚拟设备名称。例如，对于支持一个实例存储卷的实例类型，该卷的虚拟设备名称为 `ephemeral0`。对于支持四个实例存储卷的实例类型，四个卷的虚拟设备名称如下所示：`ephemeral0`、`ephemeral1`、`ephemeral2` 和 `ephemeral3`。

![\[Amazon EC2实例存储\]](http://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/images/instance_storage.png)


**实例存储定价**  
使用为您的实例提供的实例存储卷无需支付额外费用。实例存储卷包含在实例使用成本中。

**Topics**
+ [

# Amazon EC2 实例存储卷的数据持久性
](instance-store-lifetime.md)
+ [

# EC2 实例的实例存储卷限制
](instance-store-volumes.md)
+ [

# 适用于 EC2 实例的 SSD 实例存储卷
](ssd-instance-store.md)
+ [

# 将实例存储卷添加到 EC2 实例
](add-instance-store-volumes.md)
+ [

# 为 M1 和 C1 EC2 实例启用实例存储交换卷
](instance-store-swap-volumes.md)
+ [

# 在 EC2 实例上初始化实例存储卷
](disk-performance.md)
+ [

# Amazon EC2 实例存储卷的详细性能统计数据
](nvme-detailed-performance-stats.md)

# Amazon EC2 实例存储卷的数据持久性
<a name="instance-store-lifetime"></a>

只有在实例启动时才会附加实例存储卷。无法在启动实例后附加实例存储卷。您无法将实例存储卷与一个实例分离并将该卷附加到另一个实例。

实例存储卷仅在其连接的实例的生命周期内存在。您无法将实例存储卷的生命周期配置为在其关联实例的生命周期之后保留。

即使实例重启，实例存储卷上的数据仍会保留。但是，如果实例停止、休眠或终止，则数据不会保留。当实例停止、休眠或终止后，实例存储卷的每个块都会通过加密方式删除。

因此，切勿依赖实例存储卷来存储珍贵且需要长期保存的数据。如果您需要在实例的生命周期之后保留存储在实例存储卷上的数据，需要手动将该数据复制到更持久的存储中，例如 Amazon EBS 卷、Amazon S3 存储桶或 Amazon EFS 文件系统。

有些事件可能导致数据无法在实例的整个生命周期内持续存在。下表显示了虚拟化实例和裸机实例的实例存储卷上的数据在特定事件期间是否会永久保存。


| 事件 | 您的数据会如何处理？ | 
| --- |--- |
| **用户启动的实例生命周期事件** | 
| --- |
| [实例重启](ec2-instance-reboot.md) | The data persists | 
| [实例停止](Stop_Start.md) | The data does not persist | 
| [实例休眠](Hibernate.md) | The data does not persist | 
| [实例终止](terminating-instances.md) | The data does not persist | 
| [实例类型更改](ec2-instance-resize.md) | The data does not persist \$1 | 
| [从实例创建 EBS 支持的 AMI](creating-an-ami-ebs.md) | The data does not persist in the created AMI \$1\$1 | 
| [从实例创建 Amazon S3 支持的 AMI](creating-an-ami-instance-store.md) (Linux instances) | The data persists in the AMI bundle uploaded to Amazon S3 \$1\$1\$1 | 
| **用户启动的操作系统事件** | 
| --- |
| A shutdown is initiated | The data does not persist † | 
| A restart is initiated | The data persists | 
| **AWS 计划的事件** | 
| --- |
| [实例停止](schedevents_actions_retire.md) | The data does not persist | 
| [实例重启](schedevents_actions_reboot.md) | The data persists | 
| [系统重启](schedevents_actions_reboot.md) | The data persists | 
| [实例指令引退](schedevents_actions_retire.md) | The data does not persist | 
| **计划外事件** | 
| --- |
| [简化的自动恢复](instance-configuration-recovery.md) | The data does not persist | 
| [CloudWatch 基于操作的恢复](cloudwatch-recovery.md) | The data does not persist | 
| The underlying disk fails | The data on the failed disk does not persist | 
| Power failure | The data persists upon reboot | 

\$1 如果新实例类型支持实例存储，该实例将获得新实例类型支持的实例存储卷数，但数据不会传输到新实例。如果新的实例类型不支持实例存储，实例将无法获得实例存储卷。

\$1\$1 数据不包含在 EBS 支持的 AMI 中，也不包含在连接到从该 AMI 启动的实例的实例存储卷中。

\$1\$1\$1 数据会包含在上传至 Amazon S3 的 AMI 捆绑包中。当您从该 AMI 启动实例时，该实例会将实例存储卷与创建 AMI 时它们所包含的数据捆绑在 AMI 中。

† 终止保护和停止保护不能让实例避免因实例上操作系统启动的关机引起的实例停止或终止。存储在实例存储卷上的数据不会在实例停止和终止事件中持续存在。

# EC2 实例的实例存储卷限制
<a name="instance-store-volumes"></a>

实例存储卷的数量、大小和类型由实例类型决定。某些实例类型（例如，C8i、M8i 和 R8i）不支持实例存储卷，而其他实例类型（例如，C8id、M8id 和 R8id）可支持实例存储卷。您向实例附加的实例存储卷不能超过其实例类型所支持的数量。对于支持实例存储卷的实例类型，实例存储卷的数量和大小因实例大小而异。例如，`r8id.large` 支持 1 x 118 GB 的实例存储卷，而 `r8id.32xlarge` 支持 2 x 3800GB 的实例存储卷。

对于具有 **NVMe 实例存储卷**的实例类型，所有支持的实例存储卷都会在启动时自动连接到实例。对于具有**非 NVMe 实例存储卷**的实例类型（例如，C1、C3、M1、M2、M3、R3、D2、H1、I2、X1 和 X1e），您必须在启动时为要连接的实例存储卷手动指定块设备映射。然后，在实例启动后，必须先[格式化并装载连接的实例存储卷](making-instance-stores-available-on-your-instances.md)，然后才能使用它们。无法在启动实例后附加实例存储卷。

某些实例类型使用基于 NVMe 或 SATA 的固态硬盘（SSD），而其他实例类型使用基于 SATA 的硬盘驱动器（HDD）。SSD 提供高随机 I/O 性能，且延迟非常低；但实例终止时不需要保留数据，或者可以利用容错架构。有关更多信息，请参阅 [适用于 EC2 实例的 SSD 实例存储卷](ssd-instance-store.md)。

NVMe 实例存储卷和某些 HDD 实例存储卷上的数据采用静态加密。有关更多信息，请参阅 [Amazon EC2 中的数据保护](data-protection.md)。

## 可用的实例存储卷
<a name="available-instance-store-volumes"></a>

《Amazon EC2 实例类型指南》**提供每种支持的实例类型可以使用的实例存储卷的数量、大小、类型和性能优化。有关更多信息，请参阅下列内容：
+ [实例存储规格 – 通用型](https://docs.aws.amazon.com/ec2/latest/instancetypes/gp.html#gp_instance-store)
+ [实例存储规格 – 计算优化型](https://docs.aws.amazon.com/ec2/latest/instancetypes/co.html#co_instance-store)
+ [实例存储规格 – 内存优化型](https://docs.aws.amazon.com/ec2/latest/instancetypes/mo.html#mo_instance-store)
+ [实例存储规格 – 存储优化型](https://docs.aws.amazon.com/ec2/latest/instancetypes/so.html#so_instance-store)
+ [实例存储规格 – 加速计算型](https://docs.aws.amazon.com/ec2/latest/instancetypes/ac.html#ac_instance-store)
+ [实例存储规格 – 高性能计算型](https://docs.aws.amazon.com/ec2/latest/instancetypes/hpc.html#hpc_instance-store)
+ [实例存储规格 – 上一代](https://docs.aws.amazon.com/ec2/latest/instancetypes/pg.html#pg_instance-store)

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

**检索实例存储卷信息**

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

1. 在导航窗格中，选择 **Instance Types (实例类型)**。

1. 添加筛选条件**本地实例存储 = true**。**存储**列指示该实例类型的实例存储总大小。

1. （可选）单击**首选项**图标，然后打开**存储磁盘计数**。此列指示实例存储卷的数量。

1. （可选）添加筛选条件以进一步筛选相关的特定实例类型。

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

**检索实例存储卷信息**  
请使用 [describe-instance-types](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instance-types.html) 命令。以下示例显示了在具有实例存储卷的 R8i 实例系列中，每种实例类型的实例存储总大小。

```
aws ec2 describe-instance-types \
    --filters "Name=instance-type,Values=r8i*" "Name=instance-storage-supported,Values=true" \
    --query 'sort_by(InstanceTypes, &InstanceStorageInfo.TotalSizeInGB)[].{InstanceType:InstanceType,TotalSizeInGB:InstanceStorageInfo.TotalSizeInGB}' \
    --output table
```

下面是示例输出。

```
--------------------------------------
|        DescribeInstanceTypes       |
+------------------+-----------------+
|   InstanceType   |  TotalSizeInGB  |
+------------------+-----------------+
|  r8id.large      |  118            |
|  r8id.xlarge     |  237            |
|  r8id.2xlarge    |  474            |
|  r8id.4xlarge    |  950            |
|  r8id.8xlarge    |  1900           |
|  r8id.12xlarge   |  2850           |
|  r8id.16xlarge   |  3800           |
|  r8id.24xlarge   |  5700           |
|  r8id.32xlarge   |  7600           |
|  r8id.48xlarge   |  11400          |
|  r8id.metal-48xl |  11400          |
|  r8id.96xlarge   |  22800          |
|  r8id.metal-96xl |  22800          |
+------------------+-----------------+
```

**获取实例类型的完整实例存储详细信息**  
请使用 [describe-instance-types](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instance-types.html) 命令。

```
aws ec2 describe-instance-types \
    --filters "Name=instance-type,Values=r8id.32xlarge" \
    --query 'InstanceTypes[0].InstanceStorageInfo' \
    --output json
```

示例输出显示，此实例类型有两个 3800 GB 的 NVMe SSD 卷，总共 7600 GB 的实例存储空间。

```
{
    "TotalSizeInGB": 7600,
    "Disks": [
        {
            "SizeInGB": 3800,
            "Count": 2,
            "Type": "ssd"
        }
    ],
    "NvmeSupport": "required",
    "EncryptionSupport": "required"
}
```

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

**检索实例存储卷信息**  
使用 [Get-EC2InstanceType](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2InstanceType.html) cmdlet。以下示例显示了在具有实例存储卷的 R8i 实例系列中，每种实例类型的实例存储总大小。

```
(Get-EC2InstanceType -Filter `
    @{Name="instance-type"; Values="r8i*"},
    @{Name="instance-storage-supported"; Values="true"}) |
    Sort-Object {$_.InstanceStorageInfo.TotalSizeInGB} |
    Format-Table InstanceType,
        @{Name="Disks.SizeInGB";Expression={$_.InstanceStorageInfo.Disks[0].SizeInGB}},
        @{Name="Disks.Count";Expression={$_.InstanceStorageInfo.Disks[0].Count}},
        @{Name="TotalSizeInGB";Expression={$_.InstanceStorageInfo.TotalSizeInGB}}
```

下面是示例输出。

```
InstanceType    Disks.SizeInGB Disks.Count TotalSizeInGB
------------    -------------- ----------- -------------
r8id.large                 118           1           118
r8id.xlarge                237           1           237
r8id.2xlarge               474           1           474
r8id.4xlarge               950           1           950
r8id.8xlarge              1900           1          1900
r8id.12xlarge             2850           1          2850
r8id.16xlarge             3800           1          3800
r8id.24xlarge             2850           2          5700
r8id.32xlarge             3800           2          7600
r8id.48xlarge             3800           3         11400
r8id.metal-48xl           3800           3         11400
r8id.96xlarge             3800           6         22800
r8id.metal-96xl           3800           6         22800
```

**获取实例类型的完整实例存储详细信息**  
使用 [Get-EC2InstanceType](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2InstanceType.html) cmdlet。

```
(Get-EC2InstanceType `
    -Filter @{Name="instance-type"; Values="r8id.32xlarge"}).InstanceStorageInfo |
    Format-List *,
        @{Name="Disks.Count";Expression={$_.Disks[0].Count}},
        @{Name="Disks.SizeInGB";Expression={$_.Disks[0].SizeInGB}},
        @{Name="Disks.Type";Expression={$_.Disks[0].Type.Value}}
```

示例输出显示，此实例类型有两个 3800 GB 的 NVMe SSD 卷，总共 7600 GB 的实例存储空间。

```
Disks             : {Amazon.EC2.Model.DiskInfo}
EncryptionSupport : required
NvmeSupport       : required
TotalSizeInGB     : 7600
Disks.Count       : 2
Disks.SizeInGB    : 3800
Disks.Type        : ssd
```

------

# 适用于 EC2 实例的 SSD 实例存储卷
<a name="ssd-instance-store"></a>

像其他实例存储卷一样，您必须在启动实例时为其映射 SSD 实例存储卷。SSD 实例卷上的数据仅在其关联实例的生命周期内保留。有关更多信息，请参阅[将实例存储卷添加到 EC2 实例](add-instance-store-volumes.md)。

## NVMe SSD 卷
<a name="nvme-ssd-volumes"></a>

有些实例提供符合非易失性存储器规范（NVMe）的固态硬盘（SSD）实例存储卷。有关每种实例类型支持的实例存储卷类型的更多信息，请参阅[EC2 实例的实例存储卷限制](instance-store-volumes.md)。

NVMe 实例存储上的数据是使用在实例上的硬件模块中实施的 XTS-AES-256 数据块密码加密的。加密密钥是使用硬件模块生成的，并且对每台 NVMe 实例存储设备都是唯一的。当实例停止或终止并且无法恢复时，将销毁所有加密密钥。无法禁用此加密，并且无法提供自己的加密密钥。

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

要访问 NVMe 卷，必须安装 NVMe 驱动程序。以下 AMI 满足此要求：
+ AL2023
+ Amazon Linux 2
+ Amazon Linux AMI 2018.03 和更高版本
+ Ubuntu 14.04 或更高版本（采用 `linux-aws` 内核）
**注意**  
AWS 基于 Graviton 的实例类型需要 Ubuntu 18.04 或更高版本（采用 `linux-aws` 内核）
+ Red Hat Enterprise Linux 7.4 或更高版本
+ SUSE Linux Enterprise Server 12 SP2 或更高版本
+ CentOS 7.4.1708 或更高版本
+ FreeBSD 11.1 或更高版本
+ Debian GNU/Linux 9 或更高版本
+ Bottlerocket

连接到实例后，您可以使用 **lspci** 命令列出 NVMe 设备。以下是支持 4 台 NVMe 设备的 `i3.8xlarge` 实例的示例输出。

```
[ec2-user ~]$ lspci
00:00.0 Host bridge: Intel Corporation 440FX - 82441FX PMC [Natoma] (rev 02)
00:01.0 ISA bridge: Intel Corporation 82371SB PIIX3 ISA [Natoma/Triton II]
00:01.1 IDE interface: Intel Corporation 82371SB PIIX3 IDE [Natoma/Triton II]
00:01.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 01)
00:02.0 VGA compatible controller: Cirrus Logic GD 5446
00:03.0 Ethernet controller: Device 1d0f:ec20
00:17.0 Non-Volatile memory controller: Device 1d0f:cd01
00:18.0 Non-Volatile memory controller: Device 1d0f:cd01
00:19.0 Non-Volatile memory controller: Device 1d0f:cd01
00:1a.0 Non-Volatile memory controller: Device 1d0f:cd01
00:1f.0 Unassigned class [ff80]: XenSource, Inc. Xen Platform Device (rev 01)
```

如果您使用了受支持的操作系统但未看到 NVMe 设备，请使用以下命令验证是否已加载 NVMe 模块。
+ Amazon Linux、Amazon Linux 2、Ubuntu 14/16、Red Hat Enterprise Linux、SUSE Linux Enterprise Server、CentOS 7

  ```
  $ lsmod | grep nvme
  nvme          48813  0
  ```
+ Ubuntu 18

  ```
  $ cat /lib/modules/$(uname -r)/modules.builtin | grep nvme
  s/nvme/host/nvme-core.ko
  kernel/drivers/nvme/host/nvme.ko
  kernel/drivers/nvmem/nvmem_core.ko
  ```

NVMe 卷符合 NVMe 1.0e 规范。您可以对 NVMe 卷使用 NVMe 命令。利用 Amazon Linux，您可以使用 `nvme-cli` 命令从存储库安装 **yum install** 程序包。利用其他受支持的 Linux 版本，您可以下载 `nvme-cli` 包（如果包在映像中不可用）。

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

以下操作系统的最新 AWS Windows AMI 包含用于与显示为 NVMe 块储存设备的 SSD 实例存储卷进行交互的 AWS NVMe 驱动程序，以提高性能：
+ Windows Server 2025
+ Windows Server 2022
+ Windows Server 2019
+ Windows Server 2016
+ Windows Server 2012 R2

连接到实例后，您可以验证 Disk Manager 中是否显示了 NVMe 卷。在任务栏上，打开 Windows 徽标的上下文（右键单击）菜单，然后选择**磁盘管理**。

由 Amazon 提供的 AWS Windows AMI 包含 AWS NVMe 驱动程序。如果您使用的不是最新 AWS Windows AMI，则可以[安装最新的 AWS NVMe 驱动程序](aws-nvme-drivers.md)。

## 非 NVMe SSD 卷
<a name="ssd-volumes"></a>

以下实例支持使用非 NVMe SSD 来提供高随机 /O 性能的实例存储卷：C3、I2、M3、R3 和 X1。有关每种实例类型支持的实例存储卷的更多信息，请参阅[EC2 实例的实例存储卷限制](instance-store-volumes.md)。

## 基于 SSD 的实例存储卷的 I/O 性能
<a name="ssd-volume-perf"></a>

随着您不断在您的实例的基于 SSD 的实例存储卷中填充数据，您可以达到的写入 IOPS 将不断减少。这是因为，SSD 控制器必须执行额外的工作，即查找可用空间、重写现有数据，以及擦除未使用的空间以使之可供重写。这一垃圾回收过程将导致对 SSD 的内部写入放大影响，这以 SSD 写入操作数相对于用户写入操作数的比率形式来表示。如果写入操作数并非 4096 字节的倍数，或不在 4096 字节这一边界上，则性能的降低会更明显。如果您写入的字节数较少或不在边界上，则 SSD 控制器必须读取周围的数据并在新位置存储结果。这种模式会大大增加写入放大的影响，加长延迟，并显著降低 I/O 性能。

SSD 控制器可以使用多种策略来减少写入放大的影响。其中的一个策略是在 SSD 实例存储中预订空间，以便控制器更高效地管理可用于写入操作的空间。这称为*超额配置*。为实例提供的基于 SSD 的实例存储卷不会为超额预置预保留任何空间。要减少写入放大问题造成的影响，建议您留出 10% 的卷空间不进行分区，以便 SSD 控制器使用这部分空间进行超额预置。虽然这会减少您可使用的存储空间，但可提高性能，即使磁盘容量快用完也是如此。

对于支持 TRIM 的实例存储卷，可在不再需要已写入的数据时，使用 TRIM 命令告知 SSD 控制器此情况。这将为控制器提供更多可用空间，从而可以减少写入放大的影响并提高性能。有关更多信息，请参阅 [实例存储卷 TRIM 支持](#InstanceStoreTrimSupport)。

## 实例存储卷 TRIM 支持
<a name="InstanceStoreTrimSupport"></a>

某些实例类型支持带有 TRIM 的 SSD 卷。有关更多信息，请参阅 [EC2 实例的实例存储卷限制](instance-store-volumes.md)。

**注意**  
（仅限 Windows 实例）从 AWS PV 驱动程序版本 7.3.0 起，运行 Windows Server 2012 R2 的实例支持 TRIM。运行更低版本的 Windows Server 的实例不支持 TRIM。

支持 TRIM 的实例存储卷先经全面删减，然后再分配到您的实例。这些卷在实例启动时未经过文件系统的格式化处理，因此，您必须先进行格式化，而后才能挂载和使用。为了更快地访问这些卷，您在格式化它们时应跳过 TRIM 操作。

（Windows 实例）要在初始格式化过程中暂时禁用 TRIM 支持，请使用 `fsutil behavior set DisableDeleteNotify 1` 命令。完成格式化后，使用 `fsutil behavior set DisableDeleteNotify 0` 重新启用 TRIM 支持。

利用支持 TRIM 的实例存储卷，您可在不再需要已写入的数据时使用 TRIM 命令告知 SSD 控制器此情况。这将为控制器提供更多可用空间，从而可以减少写入放大的影响并提高性能。在 **Linux 实例**上，使用 `fstrim` 命令启用定期 TRIM。在 **Windows 实例**上，使用 `fsutil behavior set DisableDeleteNotify 0` 命令确保在正常操作期间启用 TRIM 支持。

# 将实例存储卷添加到 EC2 实例
<a name="add-instance-store-volumes"></a>

对于具有 **NVMe 实例存储卷**的实例类型，所有支持的实例存储卷都会在启动时自动连接到实例。将在实例启动时自动枚举 NVMe 实例存储卷，并为其分配设备名称。

对于具有**非 NVMe 实例存储卷**的实例类型（例如，C1、C3、M1、M2、M3、R3、D2、H1、I2、X1 和 X1e），您必须在启动时为要连接的实例存储卷手动指定块设备映射。可以在实例启动请求中指定块设备映射，也可以在用于启动实例的 AMI 中指定。块设备映射包括设备名称和映射到其上的卷。有关更多信息，请参阅 [Amazon EC2 实例上卷的块设备映射](block-device-mapping-concepts.md)。

**重要**  
只能在启动实例时附加实例的实例存储卷。无法在启动实例后将实例存储卷附加到该实例。

在启动实例后，您必须先确保已格式化和挂载实例的实例存储卷，然后才能使用这些存储卷。将自动挂载实例存储根卷。

**根卷注意事项**  
块储存设备映射始终指定实例的根卷。根卷始终自动挂载。

**Linux 实例**：根卷是一个 Amazon EBS 卷或实例存储卷。对于根卷的具有实例存储卷的实例，该卷的大小因 AMI 而异，但最大大小为 10 GB。有关更多信息，请参阅 [根卷类型](ComponentsAMIs.md#storage-for-the-root-device)。

**Windows 实例**：根卷必须是 Amazon EBS 卷。根卷不支持实例存储。

**Topics**
+ [

# 将实例存储卷添加到 Amazon EC2 AMI
](adding-instance-storage-ami.md)
+ [

# 启动期间将实例存储卷添加到 EC2 实例
](adding-instance-storage-instance.md)
+ [

# 使实例存储卷可供 EC2 实例使用
](making-instance-stores-available-on-your-instances.md)

# 将实例存储卷添加到 Amazon EC2 AMI
<a name="adding-instance-storage-ami"></a>

您可创建带包括实例存储卷的块储存设备映射的 AMI。

如果使用指定实例存储卷块设备映射的 AMI 启动支持**非 NVMe 实例存储卷**的实例，该实例将包括实例存储卷。如果 AMI 中实例存储卷块设备映射的数量超过实例可用的实例存储卷的数量，则会忽略其他实例存储卷块设备映像。

如果使用指定实例存储卷块设备映射的 AMI 启动支持 **NVMe 实例存储卷**的实例，则会忽略实例存储卷块设备映射。无论在实例启动请求和 AMI 中指定的块设备映射如何，支持 NVMe 实例存储卷的实例都会获得其支持的所有实例存储卷。此类卷的设备映射取决于操作系统枚举这些卷的顺序。

**注意事项**
+ 可用的实例存储卷数量取决于实例类型。有关更多信息，请参阅 [可用的实例存储卷](instance-store-volumes.md#available-instance-store-volumes)。
+ 必须为每个块设备指定一个设备名称。有关更多信息，请参阅 [Amazon EC2 实例上卷的设备名称](device_naming.md)。
+ 启动实例时，可忽略 AMI 块储存设备映射中指定的非 NVMe 实例存储卷，或添加实例存储卷。
+ 对于 M3 实例，请在实例的块储存设备映射中指定实例存储卷，而非 AMI。Amazon EC2 可能会忽略 AMI 中的实例存储卷块设备映射。

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

**向 Amazon EBS-backed AMI 添加实例存储卷**

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

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

1. 依次选择**操作**、**映像和模板**和**创建映像**。

1. 在**创建映像**页面上，为您的映像添加一个有意义的名称和描述。

1. 对于要添加的每个实例存储卷，选择**添加新卷**，从**卷类型**中选择实例存储卷，并从**设备**中选择设备名称。

1. 选择**创建映像**。

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

**将实例存储卷添加到 AMI**  
使用 [create-image](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-image.html) 命令和 `--block-device-mappings` 选项，为 EBS-backed AMI 指定块设备映射。使用 [register-image](https://docs.aws.amazon.com/cli/latest/reference/ec2/register-image.html) 命令和 `--block-device-mappings` 选项，为 iAmazon S3 支持的 AMI 指定块设备映射。

```
--block-device-mappings file://mapping.json
```

以下块设备映射会添加两个实例存储卷。

```
[
    {
        "DeviceName": "/dev/sdc",
        "VirtualName": "ephemeral0"
    },
    {
        "DeviceName": "/dev/sdd",
        "VirtualName": "ephemeral1"
    }
]
```

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

**将实例存储卷添加到 AMI**  
使用 [New-EC2Image](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2Image.html) cmdlet 和 `-BlockDeviceMapping` 参数，为 EBS-backed AMI 指定块设备映射。使用 [Register-EC2Image](https://docs.aws.amazon.com/powershell/latest/reference/items/Register-EC2Image.html) cmdlet 和 `-BlockDeviceMapping` 参数，为 Amazon S3 支持的 AMI 指定块设备映射。

```
-BlockDeviceMapping $bdm
```

以下块设备映射会添加两个实例存储卷。

```
$bdm = @()

$sdc = New-Object -TypeName Amazon.EC2.Model.BlockDeviceMapping
$sdc.DeviceName = "/dev/sdc"
$sdc.VirtualName = "ephemeral0"
$bdm += $sdc

$sdd = New-Object -TypeName Amazon.EC2.Model.BlockDeviceMapping
$sdd.DeviceName = "/dev/sdd"
$sdd.VirtualName = "ephemeral1"
$bdm += $sdd
```

------

# 启动期间将实例存储卷添加到 EC2 实例
<a name="adding-instance-storage-instance"></a>

启动具有**非 NVMe 实例存储卷**的实例类型（例如，C1、C3、M1、M2、M3、R3、D2、H1、I2、X1 和 X1e）时，您必须在启动时为要附加的实例存储卷指定块设备映射。必须在实例启动请求中指定块设备映射，或者在用于启动实例的 AMI 中指定。

如果 AMI 包含实例存储卷的块设备映射，则无需在实例启动请求中指定块设备映射，除非您需要的实例存储卷超过 AMI 中包含的容量。

如果 AMI 不包含实例存储卷的块设备映射，则必须在实例启动请求中指定块设备映射。

对于具有 NVMe 实例存储卷的实例类型，所有支持的实例存储卷都会在启动时自动连接到实例。

**注意事项**
+ 可用的实例存储卷数量取决于实例类型。有关更多信息，请参阅 [可用的实例存储卷](instance-store-volumes.md#available-instance-store-volumes)。
+ 必须为每个块设备指定一个设备名称。有关更多信息，请参阅 [Amazon EC2 实例上卷的设备名称](device_naming.md)。
+ 对于 M3 实例，即使您未在实例的块储存设备映射中指定实例存储卷，您也可能收到这些卷。

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

**在实例启动请求中指定块设备映射**

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

1. 在控制面板中，选择**启动实例**。

1. 在 **Application and OS Images**（应用程序和操作系统映像）部分中，请选择要使用的 AMI。

1. 在**配置存储**部分中，**实例存储卷**部分列出了可附加到实例的实例存储卷。

1. 对于要附加的每个实例存储卷，对于**设备名称**，选择要使用的设备名称。

1. 根据需要配置剩余的实例设置，然后选择**启动实例**。

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

**在实例启动请求中指定块设备映射**  
使用 [run-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/run-instances.html) 命令和 `--block-device-mappings` 选项。

```
--block-device-mappings file://mapping.json
```

以下块设备映射会添加两个实例存储卷。

```
[
    {
        "DeviceName": "/dev/sdc",
        "VirtualName": "ephemeral0"
    },
    {
        "DeviceName": "/dev/sdd",
        "VirtualName": "ephemeral1"
    }
]
```

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

**在实例启动请求中指定块设备映射**  
使用 [New-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2Instance.html) cmdlet 和 `-BlockDeviceMapping` 选项。

```
-BlockDeviceMapping $bdm
```

以下块设备映射会添加两个实例存储卷。

```
$bdm = @()

$sdc = New-Object -TypeName Amazon.EC2.Model.BlockDeviceMapping
$sdc.DeviceName = "/dev/sdc"
$sdc.VirtualName = "ephemeral0"
$bdm += $sdc

$sdd = New-Object -TypeName Amazon.EC2.Model.BlockDeviceMapping
$sdd.DeviceName = "/dev/sdd"
$sdd.VirtualName = "ephemeral1"
$bdm += $sdd
```

------

# 使实例存储卷可供 EC2 实例使用
<a name="making-instance-stores-available-on-your-instances"></a>

启动带有附加实例存储卷的实例后，必须先挂载这些卷，然后才能访问它们。

## Linux 实例
<a name="view-instance-store-linux"></a>

您可以在启动实例后，使用您选择的文件系统将卷格式化。

**使实例存储卷在 Linux 上可用**

1. 使用 SSH 客户端连接到实例。有关更多信息，请参阅 [使用 SSH 连接到 Linux 实例](connect-to-linux-instance.md)。

1. 使用 `df -h` 命令查看已格式化并挂载的卷。

   ```
   $ df -h
   Filesystem      Size  Used Avail Use% Mounted on
   devtmpfs        3.8G   72K  3.8G   1% /dev
   tmpfs           3.8G     0  3.8G   0% /dev/shm
   /dev/nvme0n1p1  7.9G  1.2G  6.6G  15% /
   ```

1. 使用 `lsblk` 查看在启动时已映射但未格式化和装载的所有卷。

   ```
   $ lsblk
   NAME          MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
   nvme0n1       259:1    0    8G  0 disk
   ├─nvme0n1p1   259:2    0    8G  0 part /
   └─nvme0n1p128 259:3    0    1M  0 part
   nvme1n1       259:0    0 69.9G  0 disk
   ```

1. 要格式化并挂载仅映射的实例存储卷，请执行以下操作：

   1. 使用 `mkfs` 命令在设备上创建文件系统。

      ```
      $ sudo mkfs -t xfs /dev/nvme1n1
      ```

   1. 使用 `mkdir` 命令创建要将设备挂载到的目录。

      ```
      $ sudo mkdir /data
      ```

   1. 使用 `mount` 命令在新建目录上挂载设备。

      ```
      $ sudo mount /dev/nvme1n1 /data
      ```

## Windows 实例
<a name="view-instance-store-windows"></a>

对于 Windows 实例，我们利用 NTFS 文件系统重新格式化实例存储卷。

您可以使用 Windows 磁盘管理来查看实例存储卷。有关更多信息，请参阅 [列出非 NVMe 磁盘](windows-list-disks.md#windows-disks)。

**手动挂载实例存储卷**

1. 选择**开始**，输入**计算机管理**，然后按 **Enter**。

1. 在左侧面板中，选择**磁盘管理**。

1. 如果系统提示您初始化卷，请选择要初始化的卷，根据使用场景选择所需的分区类型，然后选择**确定**。

1. 在卷列表中，右键单击要挂载的卷，然后选择**新建简单卷**。

1. 在向导中，选择**下一步**。

1. 在“指定卷大小”页面上，选择**下一步**，以使用最大卷大小。或者，也可以选择介于最小磁盘空间和最大磁盘空间之间的卷大小。

1. 在“分配驱动器号或路径”页面上，执行以下某项操作，然后选择**下一步**。
   + 要使用驱动器号挂载卷，请选择**分配以下驱动器号**，然后选择要使用的驱动器号。
   + 要将卷挂载为文件夹，请选择**装入以下空白 NTFS 文件夹中**，然后选择**浏览**，以创建或选择要使用的文件夹。
   + 要想不使用驱动器号或路径挂载卷，请选择**不分配驱动器号或驱动器路径**。

1. 在“格式化分区”页面上，请指定是否格式化卷。如果选择格式化卷，请选择所需的文件系统和单位大小，然后指定卷标。

1. 选择**下一步**、**完成**。

# 为 M1 和 C1 EC2 实例启用实例存储交换卷
<a name="instance-store-swap-volumes"></a>

**注意**  
本主题仅适用于 `c1.medium` 和 `m1.small` Linux 实例。

`c1.medium` 和 `m1.small` 实例类型的物理内存量有限。因此，启动时作为 Linux 系统虚拟内存的是 900 MiB 交换卷或*交换空间*。当系统所需内存超过实际分配内存时，可以在 Linux 中使用交换空间。启用交换空间后，Linux 系统可以将很少使用的内存页面从物理内存交换至交换空间（现有文件系统中的专用分区或交换文件），并为需要高速访问的内存页面释放空间。

**注意**  
使用交换空间进行内存分页并不像使用 RAM 那样快速高效。如果您的工作负载定期将内存分页为交换空间，您应考虑迁移到具有更多 RAM 的较大实例类型。有关更多信息，请参阅 [Amazon EC2 实例类型更改](ec2-instance-resize.md)。
尽管 Linux 内核将此交换空间看作根卷的一部分，但是它实际上是一个独立的实例存储卷，与根卷类型无关。

Amazon Linux 可以自动启用和使用此交换空间，但是您的 AMI 可能需要一些额外的步骤来识别和使用此交换空间。要查看您的实例是否正在使用交换空间，可以使用 **swapon -s** 命令。

```
[ec2-user ~]$ swapon -s
Filename                                Type            Size    Used    Priority
/dev/xvda3                              partition       917500  0       -1
```

上述实例拥有一个已附加并启用的 900 MiB 交换卷。如果您没有通过该命令看到列出的交换卷，则可能需要启用该设备的交换空间。使用 **lsblk** 命令检查您的可用磁盘。

```
[ec2-user ~]$ lsblk
NAME  MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
xvda1 202:1    0    8G  0 disk /
xvda3 202:3    0  896M  0 disk
```

在这里，交换卷 `xvda3` 对该实例可用，但是尚未启用（请注意 `MOUNTPOINT` 字段为空）。您可以使用 **swapon** 命令启用交换卷。

**注意**  
您必须在 `/dev/` 列出的设备名称前加上 **lsblk**。设备的命名可以不同，例如 `sda3`、`sde3` 或 `xvde3`。在以下命令中使用系统的设备名称。

```
[ec2-user ~]$ sudo swapon /dev/xvda3
```

现在交换空间应该显示在 **lsblk** 和 **swapon -s** 输出中。

```
[ec2-user ~]$ lsblk
NAME  MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
xvda1 202:1    0    8G  0 disk /
xvda3 202:3    0  896M  0 disk [SWAP]
[ec2-user ~]$ swapon -s
Filename                                Type            Size    Used    Priority
/dev/xvda3                              partition       917500  0       -1
```

您还需要编辑您的 `/etc/fstab` 文件，以便在每次系统启动时自动启用此交换空间。

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

将以下行附加到您的 `/etc/fstab` 文件中（使用系统的交换设备名称）：

```
/dev/xvda3       none    swap    sw  0       0
```

**使用实例存储卷作为交换空间**

所有实例存储卷都可用作交换空间。例如，`m3.medium` 实例类型包含一个适用于交换空间的 4 GB SSD 实例存储卷。如果您的实例存储卷大很多（例如 350GB），则可以考虑将卷分区为一个较小的 4-8GB 交换分区，其余部分用作数据卷。
**注意**  
此过程仅适用于支持实例存储的实例类型。有关受支持实例类型的列表，请参阅[EC2 实例的实例存储卷限制](instance-store-volumes.md)。

1. <a name="step_swap_start"></a>列出附加到您的实例的块储存设备以获取实例存储卷的设备名称。

   ```
   [ec2-user ~]$ lsblk -p
   NAME       MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
   /dev/xvdb  202:16   0   4G  0 disk /media/ephemeral0
   /dev/xvda1 202:1    0   8G  0 disk /
   ```

   在此示例中，实例存储卷为 `/dev/xvdb`。因为这是 Amazon Linux 实例，所以实例存储卷在 `/media/ephemeral0` 处格式化并挂载；并不是所有 Linux 操作系统都自动执行这一操作。

1. （可选）如果您挂载了实例存储卷（它将在 `MOUNTPOINT` 命令输出中列出 **lsblk**），您需要使用以下命令卸载它。

   ```
   [ec2-user ~]$ sudo umount /dev/xvdb
   ```

1. <a name="step_mkswap"></a>使用 **mkswap** 命令在设备上设置一个 Linux 交换区域。

   ```
   [ec2-user ~]$ sudo mkswap /dev/xvdb
   mkswap: /dev/xvdb: warning: wiping old ext3 signature.
   Setting up swapspace version 1, size = 4188668 KiB
   no label, UUID=b4f63d28-67ed-46f0-b5e5-6928319e620b
   ```

1. 启用新的交换空间。

   ```
   [ec2-user ~]$ sudo swapon /dev/xvdb
   ```

1. <a name="step_swap_enable"></a>验证所使用的新交换空间。

   ```
   [ec2-user ~]$ swapon -s
   Filename				Type		Size	Used	Priority
   /dev/xvdb                              	partition	4188668	0	-1
   ```

1. 编辑您的 `/etc/fstab` 文件，以在每次系统启动时自动启用此交换空间。

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

   如果您的 `/etc/fstab` 文件拥有 `/dev/xvdb`（或 `/dev/sdb`）条目，请将其更改为与下面的行匹配；如果没有针对此设备的条目，请将以下行附加到您的 `/etc/fstab` 文件（使用您系统的交换设备名称）：

   ```
   /dev/xvdb       none    swap    sw  0       0
   ```
**重要**  
当实例停止或休眠后，实例存储卷数据将丢失；这包括在[Step 3](#step_mkswap)中创建的实例存储交换空间格式设置。如果您停止并重新启动已配置为使用实例存储交换空间的实例，则必须在新的实例存储卷上重复 [Step 1](#step_swap_start) 到 [Step 5](#step_swap_enable)。

# 在 EC2 实例上初始化实例存储卷
<a name="disk-performance"></a>

由于 Amazon EC2 采用特殊方式将磁盘虚拟化，所以第一次在部分实例存储卷上执行写入操作的速度会比之后的写入操作慢。对于大部分应用程序，可将此成本分摊到实例的整个使用期限。然而，如果您需要较高的磁盘性能，我们建议您在生产使用之前对每个磁盘位置执行一次性写入操作，以此来实现硬盘初始化。

**注意**  
使用直接附加的固态硬盘（SSD）且支持 TRIM 的实例类型，可以在启动时提供最大性能，无需初始化。有关每种实例类型的实例存储的信息，请参阅[EC2 实例的实例存储卷限制](instance-store-volumes.md)。

如果您需要在延迟或吞吐量方面具有更大灵活性，我们建议您使用 Amazon EBS。

要初始化实例存储卷，请使用以下 `dd` 命令，具体取决于要初始化的存储（例如 `/dev/sdb` 或 `/dev/nvme1n1`）。

**注意**  
请确保先卸载硬盘，然后再执行该命令。  
初始化可能需要很长一段时间（对于超大型实例，约为 8 小时）。

要将实例存储卷初始化，可使用 `m1.large`、`m1.xlarge`、`c1.xlarge`、`m2.xlarge`、`m2.2xlarge` 和 `m2.4xlarge` 实例类型上的以下命令：

```
dd if=/dev/zero of=/dev/sdb bs=1M          
dd if=/dev/zero of=/dev/sdc bs=1M          
dd if=/dev/zero of=/dev/sdd bs=1M          
dd if=/dev/zero of=/dev/sde bs=1M
```

要同时对所有实例存储卷执行初始化，可使用以下命令：

```
dd if=/dev/zero bs=1M|tee /dev/sdb|tee /dev/sdc|tee /dev/sde > /dev/sdd
```

配置硬盘以便通过对每个硬盘位置执行写入操作对其执行 RAID 初始化。当配置基于软件的 RAID 时，请务必更改最低重建速度：

```
echo $((30*1024)) > /proc/sys/dev/raid/speed_limit_min
```

# Amazon EC2 实例存储卷的详细性能统计数据
<a name="nvme-detailed-performance-stats"></a>

Amazon EC2 为连接到基于 Nitro 的 Amazon EC2 实例的 NVMe 实例存储卷提供实时、高分辨率的性能统计数据。这些统计数据以聚合计数器的形式显示，将在实例的生命周期内保留。统计数据提供有关累积操作数、发送和接收的字节数、读取和写入 I/O 操作所花费的时间以及读取和写入 I/O 操作直方图的详细信息。这些统计数据与 [Amazon EBS 详细性能统计数据](https://docs.aws.amazon.com/ebs/latest/userguide/nvme-detailed-performance-stats.html)保持一致，同时还包含按 I/O 大小细分的详细延迟直方图，可以更精细地洞察您的存储性能模式。这种增强的可见性使您能够精确识别哪些特定的 I/O 大小遇到了延迟问题，从而可以优化应用程序性能并更有效地解决问题。

您可以按最高 1 秒的间隔收集这些统计数据。如果发出请求的频率超过 1 秒的间隔，NVMe 驱动程序可能会将这些请求与其他管理命令一起排队，以便稍后处理。

**注意事项**
+ 仅挂载到基于 Nitro 的实例的 NVMe 实例存储卷支持这些统计数据。
+ 在实例停止和重启期间，计数器不会保留。
+ 这些统计数据无需额外费用即可使用。

## 统计信息
<a name="nvme-stats"></a>

NVMe 块设备提供以下统计信息：


| 统计数据名称 | 全名 | Type | 说明 | 
| --- | --- | --- | --- | 
| total\$1read\$1ops | 总读取操作数 | 计数器 | 已完成的读取操作总数。 | 
| total\$1write\$1ops | 总写入操作数 | 计数器 | 已完成的写入操作总数。 | 
| total\$1read\$1bytes | 总读取字节数 | 计数器 | 传输的读取字节总数。 | 
| total\$1write\$1bytes | 总写入字节数 | 计数器 | 传输的写入字节总数。 | 
| total\$1read\$1time | 总读取时间 | 计数器 | 所有已完成读取操作的总耗时（单位：微秒）。 | 
| total\$1write\$1time | 总写入时间 | 计数器 | 所有已完成写入操作的总耗时（单位：微秒）。 | 
| instance\$1store\$1volume\$1performance\$1exceeded\$1iops | 总需求时间超出卷的最大 IOPS | 计数器 | IOPS 请求超出卷最大 IOPS 的总时间（单位：微秒）。大于 0 的任何值都表明您的工作负载需要的 IOPS 超出卷的交付能力。理想情况下，该指标的增量计数在两次快照时间之间应最少。 | 
| instance\$1store\$1volume\$1performance\$1exceeded\$1tp | 总需求时间超出卷的最大吞吐量 | 计数器 | 吞吐量请求超出卷最大吞吐量的总时间（单位：微秒）。大于 0 的任何值都表明您的工作负载需要的吞吐量超出卷的交付能力。理想情况下，该指标的增量计数在两次快照时间之间应最少。 | 
| volume\$1queue\$1length | 卷队列长度 | 时间点 | 待完成的读取与写入操作的数量。 | 
| read\$1io\$1latency\$1histogram | 读取 I/O 直方图 | 直方图\$1 | 每个延迟区间内完成的读取操作数（单位：微秒）。 | 
| write\$1io\$1latency\$1histogram | 写入 I/O 直方图 | 直方图\$1 | 每个延迟区间内完成的写入操作数（单位：微秒）。 | 

**注意**  
\$1 直方图统计数据仅表示成功完成的 I/O 操作数。停滞或受损的 I/O 操作不包括在内，但将在 `volume_queue_length` 统计数据中显示，以时间点统计数据的形式呈现。

## 访问统计数据
<a name="nvme-stat-access"></a>

必须直接从实例存储卷所挂载的实例访问统计数据。您可以使用以下方法之一访问统计数据。

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

------
#### [ Amazon CloudWatch ]

您可以将 Amazon CloudWatch 代理配置为从实例收集统计数据，然后将其作为自定义指标提供给 CloudWatch。然后，您可以使用 CloudWatch 中的指标来分析 I/O 模式、跟踪性能趋势、创建自定义控制面板以及根据性能阈值设置自动警报。

有关配置 CloudWatch 代理的更多信息，请参阅[收集 Amazon EC2 实例存储卷指标](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Container-Insights-metrics-instance-store-Collect.html)。

------
#### [ nvme-cli tool ]

**访问统计数据**

1. 连接到卷所挂载的实例。

1. 2025 年 9 月 15 日之后发布的 Amazon Linux 2023 AMI 包含最新版本的 `nvme-cli` 工具。如果您使用的是较旧的 Amazon Linux AMI，请更新 `nvme-cli` 工具。

   ```
   sudo yum install nvme-cli
   ```

1. 运行以下命令并指定卷的设备名称。

   ```
   sudo nvme amzn stats /dev/nvme0n1
   ```

统计数据还提供了按 I/O 大小细分的详细延迟直方图。要查看按 I/O 大小细分的统计数据，请包含 `--details` 选项。例如：

```
sudo nvme amzn stats --details /dev/nvme0n1
```

通过指定 `--help` 选项，您可以获得有关如何使用该工具的更多信息。例如：

```
sudo nvme amzn stats --help
```

------

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

------
#### [ nvme\$1amzn.exe tool ]

**访问统计数据**

1. 连接到卷所挂载的实例。

1. 确保您使用的是 AWSNVMe 驱动程序版本 `1.7.0` 或更高版本。有关更新 AWSNVMe 驱动程序的更多信息，请参阅 [AWS NVMe 驱动程序](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/aws-nvme-drivers.html)。

1. 获取卷的磁盘编号。有关更多信息，请参阅[将 Amazon EC2 Windows 实例上的 NVMe 磁盘映射到卷](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/windows-list-disks-nvme.html)。

1. 以管理员身份运行以下命令，并指定卷的磁盘编号。

   ```
   .\nvme_amzn.exe stats disk_number
   ```

统计数据还提供了按 I/O 大小细分的详细延迟直方图。要查看按 I/O 大小细分的统计数据，请包含 `--details` 选项。例如：

```
.\nvme_amzn.exe stats --details disk_number
```

------