Redigera

Dela via


Vanliga frågor och svar om fjärr-NVMe-diskar

Den här artikeln tar upp några vanliga frågor om stöd för NVM Express-diskar (NVMe) på virtuella datorer som skapats i Azure.

Vilka är kraven för att aktivera det fjärranslutna NVMe-gränssnittet på min virtuella dator?

Du kan använda DiskControllerTypes under vm-konfigurationen för att välja önskad styrenhetstyp som NVMe eller SCSI (Small Computer System Interface). Om du inte anger något DiskControllerTypes värde väljer plattformen automatiskt standardstyrenheten baserat på vm-storlekskonfigurationen. Om storleken på den virtuella datorn har konfigurerats för SCSI som standard och stöder NVMe använder den virtuella datorn SCSI om du inte uppdaterar DiskControllerTypes värdet till NVMe.

Om du vill aktivera NVMe-gränssnittet på den virtuella datorn måste du uppfylla följande krav:

  • Välj en VM-familj som stöder NVMe. Endast vm-storlekar för Ebsv5 och Ebdsv5 är utrustade med NVMe på intel v5-generationens virtuella datorer.

  • Välj den operativsystemavbildning som har taggats med NVMe-stöd. När du har valt en vm-familj och os-avbildningsvärde som stöds uppmanas du att välja diskkontrollanttypen NVMe.

    Skärmbild av en uppmaning om att välja en typ av diskkontrollant.

  • Välj NVMe genom att välja NVMe-diskstyrenhetstypen i Azure Portal eller i Mallen Azure Resource Manager, Azure CLI eller Azure PowerShell. Stegvisa instruktioner finns i vanliga frågor och svar om NVMe.

  • Kontrollera att du använder en virtuell dator i generation 2 eftersom NVMe endast stöder generation 2-avbildningar.

  • Välj en av de Azure-regioner där NVMe är aktiverat.

Kan jag kryptera mina fjärr-NVMe-diskar?

Det finns inget internt sätt i Azure att kryptera dessa diskar. Du kan kryptera dem i operativsystemet, men du måste kryptera om dem efter montering vid start.

Hur ändrar jag storlek på en SCSI-baserad virtuell dator till en fjärr-NVMe-aktiverad virtuell dator med en annan storlek?

Du kan använda följande process för att antingen:

  • Ändra storlek på en SCSI-baserad virtuell dator som skapats med en avbildning som inte är taggad till en NVMe-aktiverad virtuell dator med en annan storlek utan att återskapa vm-konfigurationerna och utan att tagga avbildningen.
  • Ändra storlek på en SCSI-baserad virtuell dator till en NVMe-aktiverad virtuell dator med en annan storlek utan att skapa de virtuella datorkonfigurationerna igen.

Den virtuella källdatorn kan vara antingen:

  • En os-avbildning utan taggning som stöder NVMe.
  • En NVMe-taggad OS-avbildning.

Om du vill ändra storlek på den virtuella datorn använder du följande kommando för att köra ett Azure PowerShell-skript som anger målvärdet discontrollertype för den virtuella datorn som NVMe:

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>]

Hur kan jag kontrollera om en bild har taggats som NVMe?

Om du vill kontrollera om en avbildning har taggats som NVMe använder du följande kommando:

az vm image show --urn URN_OF_IMAGE

Hur gör jag för att tagga en avbildning som stöder NVMe för fjärrdiskar?

Följ dessa steg för att tagga en avbildning som stöder NVMe:

  1. Ladda upp en virtuell hårddisk (VHD) som stöds av NVMe till ditt lagringskonto. AzCopy är ett snabbt sätt, men du kan också använda portalen för att ladda upp.

    azcopy copy <local path to your VHD> <container in your storage account>
    
  2. Skapa ett bildgalleri med hjälp av Azure PowerShell, portalen eller Azure CLI.

  3. Skapa en bilddefinition. Se till att inkludera --feature DiskControllerTypes=SCSI,NVMe.

    Här är ett Azure CLI-exempel:

    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
    
  4. Skapa avbildningsversionen under det NVMe-taggade galleriet med den virtuella hårddisk som stöds av NVMe.

    Här är ett Azure CLI-exempel:

    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>
    

Hur gör jag för att konfigurera en ARM-mall för att skapa virtuella datorer?

Du kan använda Azure Custom Script Extension tillsammans med Azure Resource Manager-mallar (ARM-mallar). Med den här lösningen kan du ladda ned och köra skript på virtuella Azure-datorer och är kompatibel med både Windows och Linux. Detaljerad vägledning finns i dokumentationen för Azure Custom Script Extension för Windows och Linux.

Vad händer om jag vill använda en annan VM-familj som inte stöder fjärr-NVMe-diskar?

Om du väljer en virtuell datorfamilj som inte stöds får du följande felmeddelande: "Den valda VM-storleken kan inte starta med DiskControllerTypes. Kontrollera att den angivna diskkontrollanttypen är en av de diskstyrenhetstyper som stöds för VM-storleken."

Se till att välja en VM-familj som stöder NVMe-gränssnittet. Information om vilka typer av diskkontrollanter som stöds för VM-storleken finns i listan över resurs-SKU:er i REST-API:et.

Vilka Lagringsalternativ för Azure-diskar är kompatibla med fjärr-NVMe-diskar?

NVMe-storlekar kan kombineras med Azure Premium SSD v1, Premium SSD v2 och Ultra Disk Storage. Mer information om Azure-diskerbjudanden finns i Azure-hanterade disktyper.

Ändrar Azure Support live storleksändring på diskar med VM-storlekar för NVMe?

Direkt storleksändring av NVMe stöds på Azure Premium SSD v1-diskar, Standard SSD-diskar och Standard HDD-diskar. Du kan också lägga till NVMe-diskar utan att starta om den virtuella datorn.

Hur kan jag identifiera fjärr-NVMe-diskar på en virtuell Linux-dator?

  1. nvme-cli Hämta paketet:

    sudo apt install nvme-cli
    
  2. Kör NVMe-kommandot list för att hämta NVMe-diskinformation:

    sudo nvme list
    

    Skärmbild av instruktioner för att identifiera NVMe-diskar på en virtuell Linux-dator.

    Skärmbild av instruktioner för att välja ett namnområdes-ID i Linux-portalen.

    Så här visas data som svar på Azure PowerShell-kommandon:

    Skärmbild av ett exempelsvar på ett Azure PowerShell-kommando.

Hur identifierar jag NVMe-diskar på en virtuell Windows-dator?

Öppna Azure PowerShell och använd följande kommando:

wmic diskdrive get model,scsilogicalunit

Skärmbild av ett exempel på ett PowerShell-kommando för att använda NVMe i Windows.

De ASAP-anslutna diskarna visas i gästen med modellsträngen Virtual_Disk NVME Premium. Den logiska SCSI-enheten har värdet för det portal-synliga LUN-ID:t som ökas med 1.

Här är en ögonblicksbild av hur NVMe-diskar visas i en NVMe-aktiverad virtuell Windows-dator:

Skärmbild som visar ett exempel på ett Azure PowerShell-kommando för att identifiera NVMe-disken på en virtuell Windows-dator.

Följande ögonblicksbild visar gästutdata för datadiskar som är anslutna till LUN 0 och LUN 4 (CRP). LUN-ID:t motsvarar namnområdes-ID:t.

Skärmbild som visar ett exempel på hur NVMe-diskar visas i en NVMe-aktiverad virtuell Windows-dator.

Kan jag konvertera en SCSI-baserad virtuell dator till NVMe-aktiverad samtidigt som jag behåller samma vm vCPU-storlek med en NVMe-taggad OS-avbildning?

Det här scenariot stöds endast på Linux-operativsystem och stöds inte på Windows-operativsystem.

Stöds delade diskar på fjärrdiskar med NVMe-aktiverade virtuella datorer?

Den delade diskfunktionen stöds för Premium SSD, Premium SSD v2 och Ultra Disk Storage-diskar. Delade diskar med NVME stöds inte med operativsystemet Windows Server 2019.

Kan jag använda Azure PowerShell eller Azure CLI för att skapa en virtuell dator med en OS-disk från en befintlig blob med NVMe aktiverat?

Det är för närvarande inte möjligt. I stället kan du använda följande REST API-lösning för att skapa en virtuell dator med en OS-disk från en befintlig blob med NVMe aktiverat:

$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)