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.
Zuweisen von Datenträgern zu Volumes in Ihrer Windows-Instance
Anmerkung
Dieses Thema bezieht sich nur auf Windows-Instanzen.
Ihre Windows-Instance verfügt über ein EBS-Volume, das als Root-Volume dient. Wenn Ihre Windows-Instanz AWS PV- oder Citrix PV-Treiber verwendet, können Sie optional bis zu 25 Volumes hinzufügen, was insgesamt 26 Volumes ergibt. Weitere Informationen finden Sie unter Volume-Limits für Instances.
Je nach dem vorliegenden Instance-Typ können Sie Ihrer Instance zwischen 0 und 24 Instance-Speicher-Volumes zuordnen. Sie können die in einer Instance verfügbaren Instance-Speicher-Volumes verwenden, wenn Sie sie bei der Erstellung des entsprechenden AMIs oder beim Start der Instance angeben. Außerdem können Sie bei der Erstellung des entsprechenden AMIs oder beim Start der Instance weitere EBS-Volumes hinzufügen oder Sie ordnen sie zu, während die Instance ausgeführt wird.
Wenn Sie einer Instance ein Volume hinzufügen, geben Sie den Gerätenamen an, den Amazon EC2 verwendet. Weitere Informationen finden Sie unter Gerätenamen auf Amazon EC2 EC2-Instances. AWS Windows Amazon Machine Images (AMIs) enthalten eine Reihe von Treibern, mit denen Amazon EC2 dem Instance-Speicher und den EBS-Volumes Windows-Datenträger und -Laufwerkbuchstaben zuweist. Wenn Sie eine Instance von einem Windows-AMI aus starten, 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. Wenn das Windows-AMI Red Hat PV-Treiber verwendet, können Sie ein Upgrade Ihrer Instance auf Citrix-Treiber durchführen. Weitere Informationen finden Sie unter Upgraden von PV-Treibern auf Windows-Instances.
Auflisten von NVMe-Volumes
Sie können die Datenträger in Ihrer Windows-Instances auch mithilfe der Datenträgerverwaltung oder Powershell anzeigen.
Auflisten von NVMe-Festplatten mit Datenträgerverwaltung
Sie können die Datenträger in Ihrer Windows-Instances auch mithilfe der Datenträgerverwaltung anzeigen.
So zeigen Sie die Datenträger in Ihrer Windows-Instance an
-
Melden Sie sich per Remotedesktop an Ihrer Windows-Instance an. Weitere Informationen finden Sie unter Herstellen einer Verbindung mit Ihrer -Windows-Instance.
-
Starten Sie das Dienstprogramm für die Datenträgerverwaltung.
-
Überprüfen Sie die Datenträger. Das Root-Volume ist ein EBS-Volume, das unter
C:\
gemountet ist. Wenn keine weiteren Datenträger angezeigt werden, haben Sie keine zusätzlichen Volumes angegeben, als Sie das AMI erstellt bzw. die Instance gestartet haben.Das folgende Beispiel zeigt die verfügbaren Datenträger beim Start einer
r5d.4xlarge
-Instance mit zwei zusätzlichen EBS-Volumes.
NVMe-Festplatten auflisten mit PowerShell
Das folgende PowerShell Skript listet jede Festplatte sowie den entsprechenden Gerätenamen und das entsprechende Volume auf. Es ist für die Verwendung mit Instances vorgesehen, die auf dem AWS Nitro-System basieren und NVMe EBS und Instance-Speicher-Volumes verwenden.
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 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
Führen Sie das Skript wie folgt aus:
PS C:\>
.\mapping.ps1
Im Folgenden finden Sie eine Beispielausgabe für eine Instance mit einem Root-Volume, zwei EBS-Volumes und zwei Instance-Speicher-Volumes.
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
Wenn Sie Ihre Anmeldeinformationen für Tools für Windows PowerShell auf der Windows-Instance nicht konfiguriert haben, kann das Skript die EBS-Volume-ID nicht abrufen und verwendet N/A in der EbsVolumeId
Spalte.
Zuordnen von NVMe-EBS-Volumes
Bei Instances, die auf dem AWS Nitro-System basieren, werden EBS-Volumes als NVMe-Geräte bereitgestellt. Mit dem Befehl Get-Disk
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
Sie können auch den Befehl ebsnvme-id ausführen, um die NVMe-Datenträgernummern EBS-Volume-IDs und Gerätenamen zuzuordnen.
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
Auflisten von Volumes
Sie können die Datenträger in Ihrer Windows-Instances auch mithilfe der Datenträgerverwaltung oder Powershell anzeigen.
Auflisten von Festplatten mit Datenträgerverwaltung
Sie können die Datenträger in Ihrer Windows-Instances auch mithilfe der Datenträgerverwaltung anzeigen.
So zeigen Sie die Datenträger in Ihrer Windows-Instance an
-
Melden Sie sich per Remotedesktop an Ihrer Windows-Instance an. Weitere Informationen finden Sie unter Herstellen einer Verbindung mit Ihrer -Windows-Instance.
-
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.
-
Überprüfen Sie die Datenträger. Das Root-Volume ist ein EBS-Volume, das unter
C:\
gemountet ist. Wenn keine weiteren Datenträger angezeigt werden, haben Sie keine zusätzlichen Volumes angegeben, als Sie das AMI erstellt bzw. die Instance gestartet haben.Das folgende Beispiel zeigt die verfügbaren Datenträger beim Start einer
m3.medium
-Instance mit einem Instance-Speicher-Volume (Disk 2) und einem zusätzlichen EBS Volume (Disk 1). -
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 Zuordnen von Datenträgergeräten an Gerätenamen nach. Für den folgenden Datenträger wird als Speicherort z. B. der Wert„Bus Number 0, Target Id 9, LUN 0” angezeigt. Laut der Tabelle für EBS-Volumes lautet der Gerätename für diesen Speicherort
xvdj
.
Zuordnen von Datenträgergeräten an Gerätenamen
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 Instance-Speicher-Volumes.
Ort | Gerätename |
---|---|
Bus Number 0, Target ID 78, LUN 0 |
xvdca |
Bus Number 0, Target ID 79, LUN 0 |
xvdcb |
Bus Number 0, Target ID 80, LUN 0 |
xvdcc |
Bus Number 0, Target ID 81, LUN 0 |
xvdcd |
Bus Number 0, Target ID 82, LUN 0 |
xvdce |
Bus Number 0, Target ID 83, LUN 0 |
xvdcf |
Bus Number 0, Target ID 84, LUN 0 |
xvdcg |
Bus Number 0, Target ID 85, LUN 0 |
xvdch |
Bus Number 0, Target ID 86, LUN 0 |
xvdci |
Bus Number 0, Target ID 87, LUN 0 |
xvdcj |
Bus Number 0, Target ID 88, LUN 0 |
xvdck |
Bus Number 0, Target ID 89, LUN 0 |
xvdcl |
EBS-Datenträger
In der folgenden Tabelle wird beschrieben, wie die Citrix PV- und AWS PV-Treiber Nicht-NVMe-EBS-Volumes Windows-Volumes zuordnen.
Ort | Gerätename |
---|---|
Bus Number 0, Target ID 0, LUN 0 |
/dev/sda1 |
Bus Number 0, Target ID 1, LUN 0 |
xvdb |
Bus Number 0, Target ID 2, LUN 0 |
xvdc |
Bus Number 0, Target ID 3, LUN 0 |
xvdd |
Bus Number 0, Target ID 4, LUN 0 |
xvde |
Bus Number 0, Target ID 5, LUN 0 |
xvdf |
Bus Number 0, Target ID 6, LUN 0 |
xvdg |
Bus Number 0, Target ID 7, LUN 0 |
xvdh |
Bus Number 0, Target ID 8, LUN 0 |
xvdi |
Bus Number 0, Target ID 9, LUN 0 |
xvdj |
Bus Number 0, Target ID 10, LUN 0 |
xvdk |
Bus Number 0, Target ID 11, LUN 0 |
xvdl |
Bus Number 0, Target ID 12, LUN 0 |
xvdm |
Bus Number 0, Target ID 13, LUN 0 |
xvdn |
Bus Number 0, Target ID 14, LUN 0 |
xvdo |
Bus Number 0, Target ID 15, LUN 0 |
xvdp |
Bus Number 0, Target ID 16, LUN 0 |
xvdq |
Bus Number 0, Target ID 17, LUN 0 |
xvdr |
Bus Number 0, Target ID 18, LUN 0 |
xvds |
Bus Number 0, Target ID 19, LUN 0 |
xvdt |
Bus Number 0, Target ID 20, LUN 0 |
xvdu |
Bus Number 0, Target ID 21, LUN 0 |
xvdv |
Bus Number 0, Target ID 22, LUN 0 |
xvdw |
Bus Number 0, Target ID 23, LUN 0 |
xvdx |
Bus Number 0, Target ID 24, LUN 0 |
xvdy |
Bus Number 0, Target ID 25, LUN 0 |
xvdz |
Listet Festplatten auf mit PowerShell
Das folgende PowerShell Skript listet alle Festplatten sowie den zugehörigen Gerätenamen und das entsprechende Volume auf.
Anforderungen und Einschränkungen
-
Erfordert Windows Server 2012 oder höher.
-
Erfordert Anmeldedaten, um die EBS-Volume-ID zu erhalten 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-Instance nicht angegeben haben, kann das Skript die EBS-Volume-ID nicht erhalten und verwendet N/A in der EbsVolumeId
-Spalte.