

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# EC 2 執行個體的執行個體儲存體暫時區塊儲存
<a name="InstanceStorage"></a>

*執行個體儲存體*為 EC2 執行個體提供暫時的區塊層級儲存空間。這個儲存空間是由實際連接到主機電腦之磁碟所提供。執行個體儲存體非常適合暫時儲存不斷變更的資訊，例如緩衝區、快取、臨時資料及其他暫存的內容。也可用來存放複製到整個執行個體機群的暫時性資料，例如網頁伺服器的負載平衡集區。

執行個體存放區包含顯示為區塊型儲存設備的一個或多個執行個體存放磁碟區。執行個體儲存體的大小和可用裝置的數量，會隨執行個體類型和執行個體大小而有不同。例如，並非所有執行個體類型都會提供執行個體儲存體磁碟區。如需詳細資訊，請參閱[EC2 執行個體的執行個體儲存體磁碟區限制](instance-store-volumes.md)。

將根據從 `ephemeral0` 至 `ephemeral23` 的順序，針對執行個體儲存體磁碟區的虛擬裝置給予虛擬裝置名稱。例如，針對支援一個執行個體儲存體磁碟區的執行個體類型，一個磁碟區的虛擬裝置名稱為 `ephemeral0`。針對支援四個執行個體儲存體磁碟區的執行個體類型，四個磁碟區的虛擬裝置名稱如下所示：`ephemeral0`、`ephemeral1`、`ephemeral2` 和 `ephemeral3`。

![\[Amazon EC2 執行個體儲存體\]](http://docs.aws.amazon.com/zh_tw/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 3800 GB 執行個體存放區磁碟區。

對於具有 **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. 前往 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

1. 在導覽窗格中，選擇 **Instance Types (執行個體類型)**。

1. 新增篩選條件 **Local instance storage = 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 型執行個體類型需要具有核心`linux-aws`的 Ubuntu 18.04 或更新版本
+ 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 裝置。下列是 `i3.8xlarge` 執行個體的輸出範例，此執行個體支援四種 NVMe 裝置。

```
[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 AMIs 包含 AWS 用來與公開為 NVMe 區塊型儲存設備之 SSD 執行個體存放磁碟區互動的 NVMe 驅動程式，以提供更好的效能：
+ Windows Server 2025
+ Windows Server 2022
+ Windows Server 2019
+ Windows Server 2016
+ Windows Server 2012 R2

連線到執行個體之後，您可以在 Disk Manager 中，確認是否顯示 NVMe 磁碟區。在任務列上開啟 Windows 標誌的內容 (按右鍵) 選單，然後選擇 **Disk Management (磁碟管理)**。

Amazon 提供的 AWS Windows AMIs 包含 AWS NVMe 驅動程式。如果您不是使用最新的 AWS Windows AMIs，則可以[安裝 current AWS NVMe 驅動程式](aws-nvme-drivers.md)。

## 非 NVMe SSD 磁碟區
<a name="ssd-volumes"></a>

下列執行個體支援使用非 NVMe SSD 的執行個體儲存體磁碟區，以提供高度的隨機 I/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 寫入操作與使用者寫入操作的比例放大。假如寫入操作不是 4,096 位元組的倍數或未符合 4,096 位元組的邊界，效能下降的幅度會更明顯。因為當您寫入少量位元組或未符合的位元組時，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 執行個體） 執行 Windows Server 2012 R2 的執行個體支援自 AWS PV 驅動程式 7.3.0 版起的 TRIM。執行較早版本 Windows Server 的執行個體不支援 TRIM。

支援 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 執行個體儲存體磁碟區**的執行個體類型 (如 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 具備包含執行個體存放磁碟區的區塊型設備映射。

如果您啟動執行個體，其使用指定執行個體儲存體磁碟區區塊型裝置映射的 AMI，支援**非 NVMe 執行個體儲存體磁碟區**，則執行個體包含這些執行個體儲存體磁碟區。如果 AMI 中執行個體儲存體磁碟區區塊型裝置映射的數量，超過執行個體可用的執行個體儲存體磁碟區數量，請忽略額外的執行個體儲存體磁碟區區塊型裝置映射。

如果您啟動執行個體，其使用指定執行個體儲存體磁碟區區塊型裝置映射的 AMI，支援 **NVMe 執行個體儲存體磁碟區**，則會忽略執行個體儲存體磁碟區區塊型裝置映射。支援 NVMe 執行個體儲存體磁碟區的執行個體會取得所有支援的執行個體儲存體磁碟區，無論執行個體啟動要求和 AMI 中指定的區塊型裝置映射為何。這些磁碟區的裝置映射取決於作業系統列舉這些磁碟區的順序。

**考量事項**
+ 可用執行個體存放磁碟區的數量，會視執行個體類型而定。如需詳細資訊，請參閱[可用執行個體儲存體磁碟區](instance-store-volumes.md#available-instance-store-volumes)。
+ 必須為每個區塊型儲存設備指定設備名稱。如需詳細資訊，請參閱[Amazon EC2 執行個體上磁碟區的裝置名稱](device_naming.md)。
+ 啟動執行個體時，您可以略過在 AMI 區塊型設備映射中指定的非 NVMe 執行個體存放磁碟區，或新增執行個體存放磁碟區。
+ 如果是 M3 執行個體，在執行個體的區塊型設備映射中指定執行個體存放區，而非 AMI。Amazon EC2 可能會忽略 AMI 中的執行個體儲存體磁碟區區塊型裝置映射。

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

**若要將執行個體儲存體磁碟區新增至基於 Amazon EBS 的 AMI**

1. 前往 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

1. 在導覽窗格中，選取 **Instances (執行個體)**，然後選取該執行個體。

1. 選擇 **Actions (動作)**、**Image and templates (映像和範本)**、**Create image (建立映像)**。

1. 在 **建立影像** 頁面，為您的影像輸入有意義的名稱和說明。

1. 針對每個要新增的執行個體存放區的磁碟區，選取 **Add New Volume (新增新磁碟區)**、從 **Volume Type (磁碟區類型)** 選取一個執行個體存放區的磁碟區，並從 **Device (裝置)** 選取一個裝置名稱。

1. 選擇 **Create image** (建立映像)。

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

**若要將執行個體儲存體磁碟區新增至 AMI**  
使用具有 `--block-device-mappings` 選項的 [create-image](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-image.html) 命令，指定基於 EBS 的 AMI 的區塊型儲存設備映射。使用具有 `--block-device-mappings` 選項的 [register-image](https://docs.aws.amazon.com/cli/latest/reference/ec2/register-image.html) 命令，指定基於 iAmazon S3 的 AMI 的區塊型儲存設備映射。

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

下列區塊型儲存設備映射會新增兩個執行個體儲存體磁碟區。

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

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

**若要將執行個體儲存體磁碟區新增至 AMI**  
使用具有 `-BlockDeviceMapping` 參數的 [New-EC2Image](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2Image.html) cmdlet 來指定基於 EBS 的 AMI 的區塊型儲存設備映射。使用具有 `-BlockDeviceMapping` 參數的 [Register-EC2Image](https://docs.aws.amazon.com/powershell/latest/reference/items/Register-EC2Image.html) cmdlet 來指定基於 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. 前往 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

1. 在儀表板中，選擇**啟動執行個體**。

1. 在 **Application and OS Images** (應用程式和 OS 映像) 區段中，選取要使用的 AMI。

1. 在**設定儲存體**區段中，**執行個體儲存體磁碟區**區段會列出可連結至該執行個體的執行個體儲存體磁碟區。

1. 對於要連接的每個執行個體儲存體磁碟區，針對**裝置名稱**，請選取要使用的裝置名稱。

1. 根據需要進行剩餘的執行個體設定，然後選擇**啟動執行個體**。

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

**若要在執行個體啟動請求中指定區塊型儲存設備映射**  
請使用 `--block-device-mappings` 選項並搭配 [run-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/run-instances.html) 命令。

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

下列區塊型儲存設備映射會新增兩個執行個體儲存體磁碟區。

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

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

**若要在執行個體啟動請求中指定區塊型儲存設備映射**  
使用 [‭New-EC2Instance‭‬ cmdlet](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2Instance.html) 搭配 ‭`-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` 執行個體類型的實體記憶體數量有限。因此，其會在啟動時被授予 900 MiB 交換磁碟區，作為 Linux 系統的虛擬記憶體或*交換空間*。當系統需要比實體配置更多的記憶體時，可以使用 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 執行個體存放磁碟區。如果執行個體存放磁碟區的容量大上許多 (例如 350 GB)，您可以考慮將磁碟區分割出一個較小的 4 到 8 GB 置換磁區，其他的部分則做為資料磁碟區。
**注意**  
此程序僅適用於支援執行個體儲存體的執行個體類型。如需支援的執行個體類型清單，請參閱 [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
```

------