Mapear discos NVMe em uma instância Amazon EC2 Windows para volumes
Com instâncias baseadas em Nitro, os volumes do EBS são expostos como dispositivos NVMe. Este tópico explica como visualizar os discos NVMe que estão disponíveis para o sistema operacional Windows na sua instância. Também mostra como mapear esses discos NVMe para os volumes subjacentes do Amazon EBS e os nomes de dispositivos especificados para os mapeamentos de dispositivos de blocos usados pelo Amazon EC2.
            Listar discos NVMe
            É possível encontrar os discos na instância do Windows usando Gerenciamento de disco ou Powershell.
            
            
                
                - Disk Management
- 
                        Para localizar os discos em sua instância do Windows- 
                                Execute a sessão da sua instância do Windows usando o Desktop Remoto. Para obter mais informações, consulte Conectar-se à instância do Windows no  usando RDP. 
- 
                                Inicie o utilitário de Gerenciamento de Disco. 
- 
                                Revise os discos. O volume raiz é um volume do EBS montado como C:\. Se não houver nenhum outro disco mostrado, você não especificou volumes adicionais quando criou a AMI ou executou a instância.
 Veja a seguir um exemplo que mostra os discos disponíveis se você executar uma instância r5d.4xlargecom dois volumes adicionais do EBS.
 
 
- PowerShell
- 
                        O script do PowerShell a seguir lista cada disco e seu nome de dispositivo e volume correspondentes. Destina-se ao uso com instâncias baseadas em Nitro, que usam volumes de armazenamento de instância e do EBS de NVMe. Conecte-se à sua instância do Windows e execute o seguinte comando para habilitar a execução de script do PowerShell. Set-ExecutionPolicy RemoteSigned
 Copie o script a seguir e salve-o como mapping.ps1na instância do 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
 Execute o script da seguinte forma: PS C:\> .\mapping.ps1
 Veja a seguir um exemplo de saída para uma instância com um volume raiz, dois volumes do EBS e dois volumes de armazenamento de instâncias. 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
 Se você não tiver fornecido suas credenciais do Tools for Windows PowerShell na instância do Windows, o script não poderá obter o ID de volume do EBS e usará N/A na coluna EbsVolumeId.
 
Mapear discos NVMe para volumes
            Você pode usar o comando Get-Disk para mapear os números de disco do Windows para volumes do Amazon EBS e volumes de armazenamento de instância do 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
            Também é possível executar o comando ebsnvme-id para mapear números de disco do NVMe para IDs de volume do EBS e nomes de dispositivos.
            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