EC2 執行個體的 SSD 執行個體儲存體磁碟區 - Amazon Elastic Compute Cloud

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

EC2 執行個體的 SSD 執行個體儲存體磁碟區

如同其他的執行個體存放磁碟區,您必須在啟動執行個體時,對應執行個體的 SSD 執行個體存放磁碟區。SSD 執行個體磁碟區上的資料,只會存在於其相關執行個體的生命週期期間。如需詳細資訊,請參閱 將執行個體儲存體磁碟區新增至 EC2 執行個體

NVMe SSD 磁碟區

某些執行個體提供非揮發性記憶體儲存裝置 (NVMe) 固態硬碟 (SSD) 執行個體存放區磁碟區。關於每種執行個體類型所支援的執行個體存放磁碟區類型,詳細資訊請參閱EC2 執行個體的執行個體儲存體磁碟區限制

NVMe 執行個體儲存體上的資料會以執行個體上的硬體模組中實作的 XTS-AES-256 區塊編碼器來加密。加密金鑰是以硬體模組來產生,且對每個 NVMe 執行個體儲存體設備而言是唯一的。所有加密金鑰會在執行個體停止或終止時銷毀,且無法復原。您無法停用此加密,也無法提供您自己的加密金鑰。

若要存取 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 裝置。下列是 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 套件。

下列作業系統的最新 AWS Windows AMI 包含了 AWS NVMe 驅動程式,用於和作為 NVMe 區塊裝置的 SSD 執行個體存放區磁碟區進行互動,以實現更理想的效能:

  • 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 AMI,包含了 AWS NVMe 驅動程式。若您使用的並非是最新的 AWS Windows AMI,可以安裝目前的 AWS NVMe 驅動程式

非 NVMe SSD 磁碟區

下列執行個體支援使用非 NVMe SSD 的執行個體儲存體磁碟區,以提供高度的隨機 I/O 效能:C3、I2、M3、R3 和 X1。關於每種執行個體類型所支援的執行個體存放磁碟區,詳細資訊請參閱EC2 執行個體的執行個體儲存體磁碟區限制

SSD 型執行個體儲存體磁碟區 I/O 效能

隨著執行個體的 SSD 執行個體存放區磁碟區越來越滿,可達到的寫入 IOPS 次數將下降。這是因為 SSD 控制器必須執行額外的工作,去尋找可用的空間、重寫現有資料,以及清除未使用的空間以供重寫。這個收集廢棄項目的程序會造成 SSD 的內部寫入放大,也就是 SSD 寫入操作與使用者寫入操作的比例放大。假如寫入操作不是 4,096 位元組的倍數或未符合 4,096 位元組的邊界,效能下降的幅度會更明顯。因為當您寫入少量位元組或未符合的位元組時,SSD 控制器必須讀取週圍的資料並將結果存放到新的位置,此模式會造成寫入放大大幅增加,提高延遲,因而使 I/O 效能巨幅下降。

SSD 控制器利用多項策略來減少寫入放大的影響。其中一項策略,就是在 SSD 執行個體儲存體內保留空間,讓控制器能更有效管理寫入操作可用的空間。此策略稱為過度佈建。提供給執行個體的 SSD 執行個體儲存體磁碟區不會保留任何過度佈建的空間。為了減少寫入放大,建議讓 10% 的磁碟區保留為未分割,如此 SSD 控制器便不會將其用於過度佈建。這樣做雖然會減少可用的儲存空間,但可提高效能,即使磁碟即將用完所有容量。

使用支援 TRIM 的執行個體儲存體磁碟區時,當不再需要已寫入的資料時,可以利用 TRIM 指令來通知 SSD 控制器。這會讓控制器有更多的可用空間能夠使用,可減少寫入放大現象,並提升效能。如需更多詳細資訊,請參閱 執行個體存放區磁碟區 TRIM 支援

執行個體存放區磁碟區 TRIM 支援

某些執行個體類型支援具有 TRIM 的 SSD 磁碟區。如需更多詳細資訊,請參閱 EC2 執行個體的執行個體儲存體磁碟區限制

注意

(僅限 Windows 執行個體) 從 AWS PV 驅動程式 7.3.0 版開始,執行 Windows Server 2012 R2 的執行個體支援 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 支援。