將 Amazon EC2 Windows 執行個體上的 NVMe 磁碟映射至磁碟區 - Amazon Elastic Compute Cloud

將 Amazon EC2 Windows 執行個體上的 NVMe 磁碟映射至磁碟區

若使用 Nitro 型執行個體,EBS 磁碟區會公開為 NVMe 裝置。本主題會說明如何檢視執行個體上 Windows 作業系統可用的 NVMe 磁碟。其也會顯示如何將這些 NVMe 磁碟映射至基礎 Amazon EBS 磁碟區,以及為 Amazon EC2 使用的區塊型儲存設備映射指定的裝置名稱。

列出 NVMe 磁碟

您可以使用磁碟管理公用程式或 Powershell,來搜尋 Windows 執行個體上的磁碟。

Disk Management
搜尋 Windows 執行個體上的磁碟
  1. 使用遠端桌面登入 Windows 執行個體。如需詳細資訊,請參閱 使用 RDP 連線至您的 Windows 執行個體

  2. 啟動磁碟管理公用程式。

  3. 檢閱磁碟。根磁碟區是掛載為 C:\ 的 EBS 磁碟區。如果沒有顯示其他的磁碟,表示當您建立 AMI 或啟動執行個體時,並未指定其他的磁碟區。

    下列範例顯示當您啟動具有兩個額外 EBS 磁碟區的 r5d.4xlarge 執行個體時,可以使用的磁碟。

    磁碟管理,包含根磁碟區、兩個執行個體存放區磁碟區和兩個 EBS 磁碟區。
PowerShell

下列的 PowerShell 指令碼,會列出每個磁碟及其對應的裝置名稱和磁碟區。此指令碼適用於與 Nitro 型執行個體一起使用,其會使用 NVMe EBS 和執行個體儲存體磁碟區。

連線到您的 Windows 執行個體並執行下列命令,讓 PowerShell 指令碼可執行。

Set-ExecutionPolicy RemoteSigned

複製下列指令碼,並在您的 Windows 執行個體上將其儲存為 mapping.ps1

# List the disks for NVMe volumes function Get-EC2InstanceMetadata { param([string]$Path) (Invoke-WebRequest -Uri "http://169.254.169.254/latest/$Path").Content } function GetEBSVolumeId { param($Path) $SerialNumber = (Get-Disk -Path $Path).SerialNumber if($SerialNumber -clike 'vol*'){ $EbsVolumeId = $SerialNumber.Substring(0,20).Replace("vol","vol-") } else { $EbsVolumeId = $SerialNumber.Substring(0,20).Replace("AWS","AWS-") } return $EbsVolumeId } function GetDeviceName{ param($EbsVolumeId) if($EbsVolumeId -clike 'vol*'){ $Device = ((Get-EC2Volume -VolumeId $EbsVolumeId ).Attachment).Device $VolumeName = "" } else { $Device = "Ephemeral" $VolumeName = "Temporary Storage" } Return $Device,$VolumeName } function GetDriveLetter{ param($Path) $DiskNumber = (Get-Disk -Path $Path).Number if($DiskNumber -eq 0){ $VirtualDevice = "root" $DriveLetter = "C" $PartitionNumber = (Get-Partition -DriveLetter C).PartitionNumber } else { $VirtualDevice = "N/A" $DriveLetter = (Get-Partition -DiskNumber $DiskNumber).DriveLetter if(!$DriveLetter) { $DriveLetter = ((Get-Partition -DiskId $Path).AccessPaths).Split(",")[0] } $PartitionNumber = (Get-Partition -DiskId $Path).PartitionNumber } return $DriveLetter,$VirtualDevice,$PartitionNumber } $Report = @() foreach($Path in (Get-Disk).Path) { $Disk_ID = ( Get-Partition -DiskId $Path).DiskId $Disk = ( Get-Disk -Path $Path).Number $EbsVolumeId = GetEBSVolumeId($Path) $Size =(Get-Disk -Path $Path).Size $DriveLetter,$VirtualDevice, $Partition = (GetDriveLetter($Path)) $Device,$VolumeName = GetDeviceName($EbsVolumeId) $Disk = New-Object PSObject -Property @{ Disk = $Disk Partitions = $Partition DriveLetter = $DriveLetter EbsVolumeId = $EbsVolumeId Device = $Device VirtualDevice = $VirtualDevice VolumeName= $VolumeName } $Report += $Disk } $Report | Sort-Object Disk | Format-Table -AutoSize -Property Disk, Partitions, DriveLetter, EbsVolumeId, Device, VirtualDevice, VolumeName

執行指令碼,如下所示:

PS C:\> .\mapping.ps1

以下是具有根磁碟區、兩個 EBS 磁碟區和兩個執行個體存放區磁碟區之執行個體的範例輸出。

Disk Partitions DriveLetter EbsVolumeId Device VirtualDevice VolumeName ---- ---------- ----------- ----------- ------ ------------- ---------- 0 1 C vol-03683f1d861744bc7 /dev/sda1 root 1 1 D vol-082b07051043174b9 xvdb N/A 2 1 E vol-0a4064b39e5f534a2 xvdc N/A 3 1 F AWS-6AAD8C2AEEE1193F0 Ephemeral N/A Temporary Storage 4 1 G AWS-13E7299C2BD031A28 Ephemeral N/A Temporary Storage

如果您沒有在 Windows 執行個體上設定適用於 Windows PowerShell 的 工具,指令碼就無法取得 EBS 磁碟區 ID,且會在 EbsVolumeId 欄中使用 N/A。

將 NVMe 磁碟映射至磁碟區

您可以使用 Get-Disk 命令,將 Windows 磁碟編號映射到 EBS 磁碟區 ID。

PS C:\> Get-Disk Number Friendly Name Serial Number HealthStatus OperationalStatus Total Size Partition Style ------ ------------- ------------- ------------ ----------------- ---------- ---------- 3 NVMe Amazo... AWS6AAD8C2AEEE1193F0_00000001. Healthy Online 279.4 GB MBR 4 NVMe Amazo... AWS13E7299C2BD031A28_00000001. Healthy Online 279.4 GB MBR 2 NVMe Amazo... vol0a4064b39e5f534a2_00000001. Healthy Online 8 GB MBR 0 NVMe Amazo... vol03683f1d861744bc7_00000001. Healthy Online 30 GB MBR 1 NVMe Amazo... vol082b07051043174b9_00000001. Healthy Online 8 GB MBR

您也可以執行 ebsnvme-id 命令,將 NVMe 磁碟編號映射至 EBS 磁碟區 ID 和裝置名稱。

PS C:\> C:\PROGRAMDATA\Amazon\Tools\ebsnvme-id.exe Disk Number: 0 Volume ID: vol-03683f1d861744bc7 Device Name: sda1 Disk Number: 1 Volume ID: vol-082b07051043174b9 Device Name: xvdb Disk Number: 2 Volume ID: vol-0a4064b39e5f534a2 Device Name: xvdc