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.
NVMeMappez les disques d'une instance Amazon EC2 Windows à des volumes
Avec les instances basées sur Nitro, les EBS volumes sont exposés en tant que NVMe périphériques. Cette rubrique explique comment afficher les NVMedisques disponibles pour le système d'exploitation Windows sur votre instance. Il explique également comment mapper ces NVMe disques aux EBS volumes Amazon sous-jacents et aux noms d'appareils spécifiés pour les mappages de périphériques en mode bloc utilisés par AmazonEC2.
Lister NVMe les disques
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 Connectez-vous à votre instance Windows à l'aide de RDP.
-
Démarrez l’utilitaire Gestion des disques.
-
Examinez les disques. Le volume racine est un EBS volume monté en tant queC:\
. Si aucun autre disque n'est affiché, cela signifie que vous n'avez pas spécifié de volumes supplémentaires lors de la création AMI ou du lancement de l'instance.
L'exemple suivant montre les disques disponibles si vous lancez une r5d.4xlarge
instance avec deux EBS volumes supplémentaires.
- PowerShell
-
Le PowerShell script suivant répertorie chaque disque ainsi que le nom de périphérique et le volume correspondants. Il est destiné à être utilisé avec des instances basées sur Nitro, qui utilisent NVMe EBS et stockent des volumes.
Connectez-vous à votre instance Windows et exécutez la commande suivante pour activer l'exécution du PowerShell script.
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 EBS volumes 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 Tools for Windows PowerShell sur l'instance Windows, le script ne peut pas obtenir l'ID du EBS volume et utilise N/A dans la EbsVolumeId
colonne.
Mappez NVMe des disques à des volumes
Vous pouvez utiliser la commande Get-Disk pour mapper les numéros de disque Windows au EBS volume. 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
Vous pouvez également exécuter la ebsnvme-id commande pour mapper les numéros de NVMe disque aux noms de EBS volumes IDs et 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