Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Mapper les disques NVMe de l’instance Amazon EC2 Windows vers des volumes
Avec les instances basées sur Nitro, les volumes EBS sont présentés comme des périphériques NVMe. Cette rubrique explique comment afficher les disques NVMe disponibles pour le système d’exploitation Windows sur votre instance. Il explique également comment mapper ces disques NVMe aux volumes Amazon EBS sous-jacents et aux noms de périphériques spécifiés pour les mappages de périphériques en mode bloc utilisés par Amazon EC2.
Référencer les disques NVMe
Vous pouvez utiliser la gestion de disques ou Powershell pour rechercher les disques sur votre instance Windows.
- Disk Management
-
Pour rechercher les disques sur votre instance Windows
-
Connectez-vous à votre instance Windows en utilisant les services Bureau à distance. Pour plus d’informations, consultez Se connecter à votre instance Windows à l’aide de RDP.
-
Démarrez l’utilitaire Gestion des disques.
-
Examinez les disques. Le volume racine est un volume EBS monté comme C:\. Si aucun autre disque n’est affiché, vous n’avez pas spécifié de volume additionnel lors de la création de l’AMI ou du lancement de l’instance.
L’exemple suivant illustre les disques disponibles si vous lancez une instance r5d.4xlarge avec deux volumes EBS supplémentaires.
- PowerShell
-
Le script PowerShell répertorie chaque disque et ses nom de périphérique et volume correspondants. Il est destiné à être utilisé avec des instances basées sur Nitro, qui utilisent des volumes NVMe EBS et de stockage d’instance.
Connectez-vous à votre instance Windows et exécutez la commande suivante pour activer l’exécution du script PowerShell.
Set-ExecutionPolicy RemoteSigned
Copiez le script suivant et enregistrez-le en tant que mapping.ps1 sur votre instance Windows.
# 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
Exécutez le script comme suit :
PS C:\> .\mapping.ps1
Voici un exemple de sortie pour une instance avec un volume racine, deux volumes EBS et deux volumes de stockage d’instance.
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
Si vous n’avez pas configuré vos informations d’identification pour les Outils pour Windows PowerShell sur l’instance Windows, le script ne peut pas obtenir l’ID de volume EBS et indique N/A dans la colonne EbsVolumeId.
Mapper des disques NVMe à des volumes
Vous pouvez utiliser la commande Get-Disk pour mapper des numéros de disques Windows à des volumes Amazon EBS et à des volumes de stockage d’instance Amazon EC2.
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
Vous pouvez également exécuter la commande ebsnvme-id pour mapper les numéros de disque NVMe aux ID de volume EBS et aux noms de périphériques.
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