將 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 執行個體。如需詳細資訊,請參閱 使用 連線至 Windows 執行個體 RDP

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

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

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

    磁碟管理具有根磁碟區、兩個執行個體存放磁碟區和兩個EBS磁碟區。
PowerShell

下列 PowerShell 指令碼會列出每個磁碟及其對應的裝置名稱和磁碟區。它適用於使用 NVMeEBS和 執行個體存放磁碟區的 Nitro 型執行個體

連線至 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 執行個體 PowerShell 上為 Tools for Windows 設定憑證,則指令碼無法取得EBS磁碟區 ID,並在 EbsVolumeId欄中使用 N/A。

將NVMe磁碟對應至磁碟區

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

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磁碟區IDs和裝置名稱。

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