Ordnen Sie auf Amazon EC2 Windows-Instances, die keine NVMe Festplatten sind, Volumes zu - Amazon Elastic Compute Cloud

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Ordnen Sie auf Amazon EC2 Windows-Instances, die keine NVMe Festplatten sind, Volumes zu

Bei Instances, die von einem Windows aus gestartet werden, AMI das AWS PV- oder Citrix PV-Treiber verwendet, können Sie die auf dieser Seite beschriebenen Beziehungen verwenden, um Ihre Windows-Festplatten Ihrem Instance-Speicher und Ihren EBS Volumes zuzuordnen. In diesem Thema wird erklärt, wie Sie die NVMeNicht-Festplatten anzeigen, die für das Windows-Betriebssystem auf Ihrer Instanz verfügbar sind. Außerdem wird gezeigt, wie diese NVMe Nicht-Festplatten den zugrunde liegenden EBS Amazon-Volumes und den Gerätenamen zugeordnet werden, die für die von Amazon verwendeten Blockgerätezuordnungen angegeben wurden. EC2

Anmerkung

Wenn Sie eine Instance starten Wenn Ihr Windows Red Hat PV-Treiber AMI verwendet, können Sie Ihre Instance so aktualisieren, dass sie die Citrix-Treiber verwendet. Weitere Informationen finden Sie unter Aktualisieren Sie die PV-Treiber auf Windows-Instances EC2.

Listet NVMe Nichtfestplatten auf

Sie können die Festplatten auf Ihrer Windows-Instanz mithilfe der Datenträgerverwaltung oder finden PowerShell.

Disk Management
So zeigen Sie die Datenträger in Ihrer Windows-Instance an
  1. Melden Sie sich per Remotedesktop an Ihrer Windows-Instance an. Weitere Informationen finden Sie unter Connect zu Ihrer Windows-Instanz her mit RDP.

  2. Starten Sie das Dienstprogramm für die Datenträgerverwaltung.

    Klicken Sie in der Taskleiste mit der rechten Maustaste auf das Windows-Logo und wählen Sie dann Disk Management.

  3. Überprüfen Sie die Datenträger. Das Root-Volume ist ein EBS Volume, das als C:\ bereitgestellt wird. Wenn keine anderen Festplatten angezeigt werden, haben Sie beim Erstellen AMI oder Starten der Instance keine zusätzlichen Volumes angegeben.

    Das folgende Beispiel zeigt die Festplatten, die verfügbar sind, wenn Sie eine m3.medium Instance mit einem Instance-Speicher-Volume (Disk 2) und einem zusätzlichen EBS Volume (Disk 1) starten.

    Festplattenverwaltung mit einem Root-Volume, einem Instance-Speicher-Volume und einem EBS Volume.
  4. Klicken Sie mit der rechten Maustaste auf den grauen Bereich mit der Bezeichnung "Datenträger 1" und wählen Sie dann die Option Eigenschaften. Notieren Sie sich den Wert unter Location (Speicherort) und schlagen Sie ihn in den Tabellen unter Ordnen Sie Volumes, die keine NVMe Festplatten sind, zu nach. Die folgende Festplatte hat beispielsweise den Standort Bus Nummer 0, Ziel-ID 9, LUN 0. Gemäß der Tabelle für EBS Volumes lautet der Gerätename für diesen Standortxvdj.

    Der Standort eines EBS Volumes.
PowerShell

Das folgende PowerShell Skript listet jede Festplatte sowie den zugehörigen Gerätenamen und das entsprechende Volume auf.

Anforderungen und Einschränkungen
  • Erfordert Windows Server 2012 oder höher.

  • Zum Abrufen der EBS Volume-ID sind Anmeldeinformationen erforderlich. Sie können ein Profil mit den Tools für PowerShell konfigurieren oder der Instanz eine IAM Rolle zuweisen.

  • Unterstützt keine NVMe Volumes.

  • Unterstützt keine dynamischen Festplatten.

Connect zu Ihrer Windows-Instanz her und führen Sie den folgenden Befehl aus, um die PowerShell Skriptausführung zu aktivieren.

Set-ExecutionPolicy RemoteSigned

Kopieren Sie das folgende Skript und speichern Sie es unter Ihrer Windows-Instance als mapping.ps1.

# List the disks function Convert-SCSITargetIdToDeviceName { param([int]$SCSITargetId) If ($SCSITargetId -eq 0) { return "sda1" } $deviceName = "xvd" If ($SCSITargetId -gt 25) { $deviceName += [char](0x60 + [int]($SCSITargetId / 26)) } $deviceName += [char](0x61 + $SCSITargetId % 26) return $deviceName } [string[]]$array1 = @() [string[]]$array2 = @() [string[]]$array3 = @() [string[]]$array4 = @() Get-WmiObject Win32_Volume | Select-Object Name, DeviceID | ForEach-Object { $array1 += $_.Name $array2 += $_.DeviceID } $i = 0 While ($i -ne ($array2.Count)) { $array3 += ((Get-Volume -Path $array2[$i] | Get-Partition | Get-Disk).SerialNumber) -replace "_[^ ]*$" -replace "vol", "vol-" $array4 += ((Get-Volume -Path $array2[$i] | Get-Partition | Get-Disk).FriendlyName) $i ++ } [array[]]$array = $array1, $array2, $array3, $array4 Try { $InstanceId = Get-EC2InstanceMetadata -Category "InstanceId" $Region = Get-EC2InstanceMetadata -Category "Region" | Select-Object -ExpandProperty SystemName } Catch { Write-Host "Could not access the instance Metadata using AWS Get-EC2InstanceMetadata CMDLet. Verify you have AWSPowershell SDK version '3.1.73.0' or greater installed and Metadata is enabled for this instance." -ForegroundColor Yellow } Try { $BlockDeviceMappings = (Get-EC2Instance -Region $Region -Instance $InstanceId).Instances.BlockDeviceMappings $VirtualDeviceMap = (Get-EC2InstanceMetadata -Category "BlockDeviceMapping").GetEnumerator() | Where-Object { $_.Key -ne "ami" } } Catch { Write-Host "Could not access the AWS API, therefore, VolumeId is not available. Verify that you provided your access keys or assigned an IAM role with adequate permissions." -ForegroundColor Yellow } Get-disk | ForEach-Object { $DriveLetter = $null $VolumeName = $null $VirtualDevice = $null $DeviceName = $_.FriendlyName $DiskDrive = $_ $Disk = $_.Number $Partitions = $_.NumberOfPartitions $EbsVolumeID = $_.SerialNumber -replace "_[^ ]*$" -replace "vol", "vol-" if ($Partitions -ge 1) { $PartitionsData = Get-Partition -DiskId $_.Path $DriveLetter = $PartitionsData.DriveLetter | Where-object { $_ -notin @("", $null) } $VolumeName = (Get-PSDrive | Where-Object { $_.Name -in @($DriveLetter) }).Description | Where-object { $_ -notin @("", $null) } } If ($DiskDrive.path -like "*PROD_PVDISK*") { $BlockDeviceName = Convert-SCSITargetIdToDeviceName((Get-WmiObject -Class Win32_Diskdrive | Where-Object { $_.DeviceID -eq ("\\.\PHYSICALDRIVE" + $DiskDrive.Number) }).SCSITargetId) $BlockDeviceName = "/dev/" + $BlockDeviceName $BlockDevice = $BlockDeviceMappings | Where-Object { $BlockDeviceName -like "*" + $_.DeviceName + "*" } $EbsVolumeID = $BlockDevice.Ebs.VolumeId $VirtualDevice = ($VirtualDeviceMap.GetEnumerator() | Where-Object { $_.Value -eq $BlockDeviceName }).Key | Select-Object -First 1 } ElseIf ($DiskDrive.path -like "*PROD_AMAZON_EC2_NVME*") { $BlockDeviceName = (Get-EC2InstanceMetadata -Category "BlockDeviceMapping")."ephemeral$((Get-WmiObject -Class Win32_Diskdrive | Where-Object { $_.DeviceID -eq ("\\.\PHYSICALDRIVE" + $DiskDrive.Number) }).SCSIPort - 2)" $BlockDevice = $null $VirtualDevice = ($VirtualDeviceMap.GetEnumerator() | Where-Object { $_.Value -eq $BlockDeviceName }).Key | Select-Object -First 1 } ElseIf ($DiskDrive.path -like "*PROD_AMAZON*") { if ($DriveLetter -match '[^a-zA-Z0-9]') { $i = 0 While ($i -ne ($array3.Count)) { if ($array[2][$i] -eq $EbsVolumeID) { $DriveLetter = $array[0][$i] $DeviceName = $array[3][$i] } $i ++ } } $BlockDevice = "" $BlockDeviceName = ($BlockDeviceMappings | Where-Object { $_.ebs.VolumeId -eq $EbsVolumeID }).DeviceName } ElseIf ($DiskDrive.path -like "*NETAPP*") { if ($DriveLetter -match '[^a-zA-Z0-9]') { $i = 0 While ($i -ne ($array3.Count)) { if ($array[2][$i] -eq $EbsVolumeID) { $DriveLetter = $array[0][$i] $DeviceName = $array[3][$i] } $i ++ } } $EbsVolumeID = "FSxN Volume" $BlockDevice = "" $BlockDeviceName = ($BlockDeviceMappings | Where-Object { $_.ebs.VolumeId -eq $EbsVolumeID }).DeviceName } Else { $BlockDeviceName = $null $BlockDevice = $null } New-Object PSObject -Property @{ Disk = $Disk; Partitions = $Partitions; DriveLetter = If ($DriveLetter -eq $null) { "N/A" } Else { $DriveLetter }; EbsVolumeId = If ($EbsVolumeID -eq $null) { "N/A" } Else { $EbsVolumeID }; Device = If ($BlockDeviceName -eq $null) { "N/A" } Else { $BlockDeviceName }; VirtualDevice = If ($VirtualDevice -eq $null) { "N/A" } Else { $VirtualDevice }; VolumeName = If ($VolumeName -eq $null) { "N/A" } Else { $VolumeName }; DeviceName = If ($DeviceName -eq $null) { "N/A" } Else { $DeviceName }; } } | Sort-Object Disk | Format-Table -AutoSize -Property Disk, Partitions, DriveLetter, EbsVolumeId, Device, VirtualDevice, DeviceName, VolumeName

Führen Sie das Skript wie folgt aus:

PS C:\> .\mapping.ps1

Es folgt eine Beispielausgabe.

Disk Partitions DriveLetter EbsVolumeId Device VirtualDevice DeviceName VolumeName ---- ---------- ----------- ----------- ------ ------------- ---------- ---------- 0 1 C vol-0561f1783298efedd /dev/sda1 N/A NVMe Amazon Elastic B N/A 1 1 D vol-002a9488504c5e35a xvdb N/A NVMe Amazon Elastic B N/A 2 1 E vol-0de9d46fcc907925d xvdc N/A NVMe Amazon Elastic B N/A

Wenn Sie Ihre Anmeldeinformationen für die Windows-Instanz nicht angegeben haben, kann das Skript die EBS Volume-ID nicht abrufen und verwendet N/A in der EbsVolumeId Spalte.

Ordnen Sie Volumes, die keine NVMe Festplatten sind, zu

Der Blockgerät-Treiber für die Instance weist die tatsächlichen Volume-Namen beim Aufspielen der Volumes zu.

Instance-Speicher-Volumes

In der folgenden Tabelle wird beschrieben, wie die Citrix PV- und AWS PV-Treiber Windows-Volumes, die keine NVMe Instanzspeicher sind, zuordnen. Die Anzahl der verfügbaren Instance-Speicher-Volumes wird von dem jeweiligen Instance-Typ bestimmt. Weitere Informationen finden Sie unter Volumenlimits für Instance-Speicher für EC2 Instances.

Ort Gerätename

Bus Nummer 0, Ziel-ID 78, LUN 0

xvdca

Bus Nummer 0, Ziel-ID 79, LUN 0

xvdcb

Bus Nummer 0, Ziel-ID 80, LUN 0

xvdcc

Bus Nummer 0, Ziel-ID 81, LUN 0

xvdcd

Bus Nummer 0, Ziel-ID 82, LUN 0

xvdce

Bus Nummer 0, Ziel-ID 83, LUN 0

xvdcf

Bus Nummer 0, Ziel-ID 84, LUN 0

xvdcg

Bus Nummer 0, Ziel-ID 85, LUN 0

xvdch

Bus Nummer 0, Ziel-ID 86, LUN 0

xvdci

Bus Nummer 0, Ziel-ID 87, LUN 0

xvdcj

Bus Nummer 0, Ziel-ID 88, LUN 0

xvdck

Bus Nummer 0, Ziel-ID 89, LUN 0

xvdcl

EBSBände

In der folgenden Tabelle wird beschrieben, wie die Citrix PV- und AWS PV-Treiber NVME EBS Windows-Volumes Nicht-Volumes zuordnen.

Ort Gerätename

Busnummer 0, Ziel-ID 0, LUN 0

/dev/sda1

Busnummer 0, Ziel-ID 1, LUN 0

xvdb

Busnummer 0, Ziel-ID 2, LUN 0

xvdc

Busnummer 0, Ziel-ID 3, LUN 0

xvdd

Busnummer 0, Ziel-ID 4, LUN 0

xvde

Busnummer 0, Ziel-ID 5, LUN 0

xvdf

Busnummer 0, Ziel-ID 6, LUN 0

xvdg

Busnummer 0, Ziel-ID 7, LUN 0

xvdh

Busnummer 0, Ziel-ID 8, LUN 0

xvdi

Busnummer 0, Ziel-ID 9, LUN 0

xvdj

Busnummer 0, Ziel-ID 10, LUN 0

xvdk

Busnummer 0, Ziel-ID 11, LUN 0

xvdl

Busnummer 0, Ziel-ID 12, LUN 0

xvdm

Busnummer 0, Ziel-ID 13, LUN 0

xvdn

Bus Nummer 0, Ziel-ID 14, LUN 0

xvdo

Busnummer 0, Ziel-ID 15, LUN 0

xvdp

Busnummer 0, Ziel-ID 16, LUN 0

xvdq

Busnummer 0, Ziel-ID 17, LUN 0

xvdr

Bus Nummer 0, Ziel-ID 18, LUN 0

xvds

Bus Nummer 0, Ziel-ID 19, LUN 0

xvdt

Bus Nummer 0, Ziel-ID 20, LUN 0

xvdu

Busnummer 0, Ziel-ID 21, LUN 0

xvdv

Busnummer 0, Ziel-ID 22, LUN 0

xvdw

Busnummer 0, Ziel-ID 23, LUN 0

xvdx

Busnummer 0, Ziel-ID 24, LUN 0

xvdy

Busnummer 0, Ziel-ID 25, LUN 0

xvdz