Bewerken

Delen via


Veelgestelde vragen over NVMe - Externe NVMe-schijven

In dit artikel vindt u enkele veelgestelde vragen over ondersteuning voor externe NVMe-schijven op virtuele machines die in Azure zijn gemaakt.

Wat zijn de vereisten voor het inschakelen van de externe NVMe-interface op mijn VM?

Er is een functie toegevoegd aan de VM-configuratie, DiskControllerType genaamd, waarmee klanten hun voorkeurscontrollertype kunnen selecteren als NVMe of SCSI. Als de klant geen DiskControllerType-waarde opgeeft, kiest het platform automatisch de standaardcontroller op basis van de configuratie van de VM-grootte. Als de VM-grootte is geconfigureerd voor SCSI als standaard en NVMe ondersteunt, wordt SCSI gebruikt, tenzij deze is bijgewerkt naar het NVMe DiskControllerType. Als u de NVMe-interface wilt inschakelen, moet aan de volgende vereisten worden voldaan:

  • Kies een VM-familie die ONDERSTEUNING biedt voor NVMe.
  • Selecteer de installatiekopieën van het besturingssysteem die is gelabeld met NVMe-ondersteuning.
  • Meld u aan voor NVMe door het type NVMe-schijfcontroller te selecteren in Azure Portal of arm/CLI/Power Shell-sjabloon. Raadpleeg hier voor stapsgewijze instructies.
  • Alleen Gen2-installatiekopieën worden ondersteund. Als u voldoet aan de bovenstaande vier voorwaarden, kunt u NVMe inschakelen op de ondersteunde VM-serie zonder tijd. Volg de bovenstaande voorwaarden om een virtuele machine zonder complicaties te maken of het formaat ervan te wijzigen met NVMe.

Hoe kan ik een externe NVMe-schijf inschakelen op een VM-serie?

Als u de NVMe voor externe schijf wilt inschakelen, moet u ervoor zorgen dat aan de volgende vijf voorwaarden wordt voldaan:

  • Kies een VM-familie die ONDERSTEUNING biedt voor NVMe. Het is belangrijk te weten dat alleen Ebsv5- en Ebdsv5-VM-grootten zijn uitgerust met NVMe in de Virtuele Machines van de Intel v5-generatie. Zorg ervoor dat u een van de reeksen Ebsv5 of Ebdsv5-VM selecteert.

  • Selecteer de installatiekopieën van het besturingssysteem die is gelabeld met NVMe-ondersteuning. Zodra de ondersteunde VM-familie en installatiekopie van het besturingssysteem is geselecteerd, wordt u gevraagd het type NVMe-schijfcontroller te selecteren.

    Schermopname van de prompt om het type NVMe-schijfcontroller te selecteren.

  • Meld u aan voor NVMe door het type NVMe-schijfcontroller te selecteren in Azure Portal of arm/CLI/PowerShell-sjabloon. Raadpleeg hier voor stapsgewijze instructies.

  • Alleen Gen2-installatiekopieën worden ondersteund.

  • Kies een van de Azure-regio's waarvoor NVMe is ingeschakeld. Door te voldoen aan de vijf voorwaarden, kunt u NVMe inschakelen op de ondersteunde VM-familie in een handomom. Volg de bovenstaande voorwaarden tijdens het maken en wijzigen van het formaat van een VIRTUELE machine met NVMe om ervoor te zorgen dat de functie is gestart.

Kan ik mijn externe NVMe-schijven versleutelen?

Er is geen systeemeigen manier in Azure om deze schijven te versleutelen. U bent welkom om ze te versleutelen binnen het besturingssysteem, maar u moet opnieuw versleutelen na het koppelen bij het opstarten.

Hoe kan ik het formaat van een SCSI-VM wijzigen in een externe VM met NVMe-functionaliteit van een andere grootte?

Het volgende proces kan worden gebruikt om een van de volgende handelingen uit te voeren:

  • Wijzig het formaat van een SCSI-VM die is gemaakt met behulp van een niet-gemarkeerde installatiekopieën naar een VM met NVMe-functionaliteit van een andere grootte zonder de VM-configuraties opnieuw te maken en zonder de installatiekopieën te taggen.
  • Wijzig de grootte van een SCSI-VM in een VM met NVMe van een andere grootte zonder de VM-configuraties opnieuw te maken. De bron-VM kan het volgende zijn:
  • Een installatiekopieën van het besturingssysteem zonder vlag die ONDERSTEUNING bieden voor NVMe
  • Een met NVMe getagde installatiekopieën van het besturingssysteem om het formaat van de VIRTUELE machine te wijzigen:
  • Stel het doelontcontrollertype van de VIRTUELE machine in als NVMe.
  • Gebruik het volgende PowerShell-script om dit te doen: SAP-on-Azure-Scripts-and-Utilities/NVMe-Preflight-Check at main · Azure/SAP-on-Azure-Scripts-and-Utilities · GitHub
`azure-nvme-VM-update.ps1 [-subscription_id] <String> [-resource_group_name] <String> [-vm_name] <String> [[-disk_controller_change_to] <String>] [-vm_size_change_to] <String> [[-start_vm_after_update] <Boolean>] [[-write_logfile] <Boolean>]`

Hoe kan ik controleren of een bepaalde installatiekopieën zijn gelabeld als NVMe?

Als u wilt controleren of een bepaalde installatiekopieën als NVMe zijn gelabeld, gebruikt u de volgende opdracht:

az vm image show --urn URN_OF_IMAGE

Hoe kan ik een installatiekopieën taggen die ONDERSTEUNING bieden voor NVMe voor externe schijf?

Volg de vier onderstaande stappen om een afbeelding te taggen die NVMe ondersteunt:

  1. Upload VHD die door NVMe wordt ondersteund naar uw opslagaccount. AzCopy is een snelle manier, maar u kunt ook de portal gebruiken om te uploaden.
  • AzCopy-verwijzing: [https://docs.microsoft.com/azure/storage/common/storage-use-azcopy-v10]
`azcopy copy <local path to your vhd> <container in your storage account>`
  1. Maak uw installatiekopieëngalerie met powershell/portal/cli: [https://docs.microsoft.com/azure/virtual-machines/create-gallery]
  2. Maak de definitie van de installatiekopieën: [https://docs.microsoft.com/azure/virtual-machines/image-version] Zorg ervoor dat u DiskControllerTypes=SCSI, NVMe opneemt

CLI-voorbeeld:

`az sig image-definition create --resource-group <resourceGroupName> --gallery-name <galleryName> --gallery-image-definition <imageName> --publisher <publisher> --offer <offerName> --sku <skuName> --os-type <osType> --os-state <osState> --feature DiskControllerTypes=SCSI,NVMe`
  1. Maak de versie van de installatiekopieën in de galerie met NVMe-tags met de door NVMe ondersteunde vhd: [https://docs.microsoft.com/azure/virtual-machines/image-version]

CLI-voorbeeld:

`az sig image-version create --resource-group <resourceGroupName> --gallery-name <galleryName> --gallery-image-definition <imageName> --gallery-image-version <version> --target-regions <region1> <region2> --replica-count <replicaCount> --os-vhd-uri <NVMe-supported vhd uri> --os-vhd-storage-account <storageAccount>`

Hoe kan ik een ARM-sjabloon configureren voor het starten van mijn eerste VM?

U kunt de aangepaste Scriptextensie van Azure gebruiken in combinatie met Azure Resource Manager-sjablonen. Hiermee kunt u scripts downloaden en uitvoeren op virtuele Azure-machines en compatibel is met zowel Windows als Linux. Raadpleeg de documentatie voor de aangepaste Scriptextensie van Azure voor Windows en Linux voor gedetailleerde richtlijnen. Voorbeelden voor Windows vindt u hier.

Wat gebeurt er als ik een andere VM-familie wil gebruiken die geen externe NVMe-schijf ondersteunt?

Als u een niet-ondersteunde VM-familie selecteert, krijgt u een foutbericht met de volgende strekking: 'De geselecteerde VM-grootte kan niet worden opgestart met DiskControllerType. Controleer of het opgegeven schijfcontrollertype een van de ondersteunde schijfcontrollertypen is voor de VM-grootte Y. Voer een query uit op de SKU-API van [https://docs.microsoft.com/rest/api/compute/resource-skus/list] om ondersteunde schijfcontrollertypen te bepalen voor de RESOURCE-SKU's van de VM-grootte - List - REST API (Azure Compute)'. Zorg er daarom voor dat u een VM-serie selecteert die ondersteuning biedt voor de NVMe-interface.

Welke azure-schijfopslagopties zijn compatibel met externe NVMe-schijven?

NVMe-grootten kunnen worden gecombineerd met Premium SSD v1, Premium SSD v2 en Ultra-schijven. Raadpleeg Azure Managed Disks voor meer informatie over Azure-schijfaanbiedingen.

Wordt het formaat van ondersteuning voor Azure live gewijzigd op schijven met NVMe-VM-grootten?

Live formaat van NVMe wordt ondersteund op Premium SSD v1-schijven, Standard SSD en Standard HDD-schijven. U kunt ook NVMe-schijven toevoegen zonder de virtuele machine opnieuw op te starten. Daarnaast wordt livegrootte wijzigen ook ondersteund op Premium SSD v1, Standard SSD en Standard HDD-schijven.

Hoe kan ik externe NVMe-schijven identificeren op een Virtuele Linux-machine?

  1. Nvme-cli-pakket ophalen
`sudo apt install nvme-cli`
  1. Voer de nvMe-lijstopdracht uit om de details van de NVMe-schijf op te halen:
`sudo nvme list`

Schermopname van instructies voor het identificeren van NVMe-schijven op een Linux-VM.

Schermopname van instructies voor het kiezen van naamruimte-id in de Linux-portal.

De gegevens worden als reactie op Azure PowerShell-opdrachten als volgt weergegeven:

Schermopname van een voorbeeld van een reactie op de Azure PowerShell-opdracht.

Hoe kan ik NVMe-schijven identificeren op windows-VM's?

Start PowerShell en gebruik de volgende opdracht: wmic diskdrive get model, scsilogicalunit

Schermopname van een voorbeeld van een PowerShell-opdrachtvoorbeeld om NVMe in Windows te starten.

De gekoppelde ASAP-schijven worden weergegeven in de gast met modeltekenreeks 'Virtual_Disk NVME Premium' en de logische SCSI-eenheid heeft waardeportal zichtbare LUN-id verhoogd met 1. 
Hier volgt een momentopname van de wijze waarop NVMe-schijven worden weergegeven in een virtuele Windows-machine met NVMe:

Diagram met een voorbeeld van de PowerShell-opdracht om de NVMe-schijf op windows-VM te identificeren.

De volgende momentopname wordt weergegeven in de gastuitvoer voor gegevensschijven die zijn gekoppeld aan LUN 0 en LUN 4 (CRP). De LUN-id is gelijk aan naamruimte-id.

Diagram met het voorbeeld van hoe NVMe-schijven worden weergegeven in een VIRTUELE Windows-machine met NVMe-functionaliteit.

Kan ik een SCSI-VM converteren naar NVMe-ingeschakeld terwijl ik dezelfde VM vCPU-grootte behoudt met een met NVMe getagde installatiekopieën van het besturingssysteem?

Dit scenario wordt alleen ondersteund door Linux-besturingssystemen en wordt niet ondersteund door Windows-besturingssystemen.

Worden gedeelde schijven in externe schijven ondersteund met NVMe-VM's?

De functie voor gedeelde schijven wordt ondersteund voor schijven Premium SSD, Premium SSD v2 en Ultra.

Kan ik Azure PowerShell/CLI gebruiken om een virtuele machine te maken met een besturingssysteemschijf van een bestaande BLOB waarvoor NVMe is ingeschakeld?

Het is momenteel niet mogelijk. De volgende tijdelijke oplossing op basis van de REST API kan echter worden gebruikt:

# This is the workaround using REST-API
# to create a VM with an OS disk from an existing BLOB with NVMe enabled 

$subscriptionID = '<Your Subscription ID>'
$resourceGroupName = '<Your Resource Group Name>'
$storageAccountName = '<Your Account Name>'
$storageAccountContainer = '<Your Account Container>'
$blobName = 'blob-nvme_OsDisk_1.vhd'

$diskName = 'test'
$diskSkuName = 'Standard_LRS'
$diskSizeGB = 30
$osType = 'Linux' 
$hyperVGeneration = 'V2'
$location = 'eastus'

$azContext = Get-AzContext
$azProfile = [Microsoft.Azure.Commands.Common.Authentication.Abstractions.AzureRmProfileProvider]::Instance.Profile
$profileClient = New-Object -TypeName Microsoft.Azure.Commands.ResourceManager.Common.RMProfileClient -ArgumentList ($azProfile)
$token = ($profileClient.AcquireAccessToken($azContext.Subscription.TenantId)).AccessToken

$body = @{
    location = $location
    sku = @{ name = $diskSkuName }
    properties = @{
        osType                  = $osType
        hyperVGeneration        = $hyperVGeneration
        supportedCapabilities   = @{diskControllerTypes = 'SCSI, NVMe'}
        diskSizeGB              = $diskSizeGB
        creationData = @{
            storageAccountId	= "/subscriptions/$subscriptionID/resourceGroups/$resourceGroupName/providers/Microsoft.Storage/storageAccounts/$storageAccountName"

            sourceUri           = "https://$storageAccountName.blob.core.windows.net/$storageAccountContainer/$blobName"
            createOption		= 'Import'
        }
    }
}

$apiVersion='2023-10-02'
$restUri = "https://management.azure.com/subscriptions/$subscriptionID/resourceGroups/$resourceGroupName/providers/Microsoft.Compute/disks/$diskName`?api-version=$apiVersion"
$authHeader = @{
    'Content-Type'='application/json'
    'Authorization'='Bearer ' + $token
}

Invoke-RestMethod `
    -Uri $restUri `
    -Method 'Put' `
    -Headers $authHeader `
    -Body ($body | ConvertTo-Json)