

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

# 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 支援。