Upravit

Sdílet prostřednictvím


Nejčastější dotazy ke vzdáleným diskům NVMe

Tento článek se zabývá některými běžnými dotazy týkajícími se podpory vzdálených disků NVM Express (NVMe) na virtuálních počítačích vytvořených v Azure.

Jaké jsou požadavky na povolení vzdáleného rozhraní NVMe na mém virtuálním počítači?

Během konfigurace virtuálního počítače můžete vybrat DiskControllerTypes upřednostňovaný typ kontroleru jako NVMe nebo rozhraní SCSI (Small Computer System Interface). Pokud nezadáte DiskControllerTypes hodnotu, platforma automaticky zvolí výchozí kontroler na základě konfigurace velikosti virtuálního počítače. Pokud je velikost virtuálního počítače nakonfigurovaná pro rozhraní SCSI jako výchozí a podporuje NVMe, použije virtuální počítač SCSI, pokud hodnotu neaktualizujete DiskControllerTypes na NVMe.

Pokud chcete na virtuálním počítači povolit rozhraní NVMe, musíte splnit následující požadavky:

  • Vyberte řadu virtuálních počítačů, která podporuje NVMe. Ve virtuálních počítačích intel v5 generace jsou vybaveny nvMe pouze velikosti virtuálních počítačů Ebsv5 a Ebdsv5.

  • Vyberte image operačního systému, která je označená podporou NVMe. Po výběru podporované řady virtuálních počítačů a hodnoty image operačního systému se zobrazí výzva k výběru typu řadiče disku NVMe.

    Snímek obrazovky s výzvou k výběru typu řadiče disku

  • Přihlaste se k NVMe výběrem typu řadiče disku NVMe na webu Azure Portal nebo v šabloně Azure Resource Manageru, Azure CLI nebo Azure PowerShellu. Podrobné pokyny najdete v obecných nejčastějších dotazech k NVMe.

  • Ujistěte se, že používáte virtuální počítač generace 2, protože NVMe podporuje pouze image generace 2.

  • Zvolte jednu z oblastí Azure, ve kterých je povolené NVMe.

Můžu zašifrovat vzdálené disky NVMe?

V Azure neexistuje žádný nativní způsob šifrování těchto disků. Můžete je zašifrovat v rámci operačního systému, ale po připojení při spuštění je budete muset znovu zašifrovat.

Jak můžu změnit velikost virtuálního počítače založeného na rozhraní SCSI na vzdálený virtuální počítač s podporou NVMe s jinou velikostí?

Následující postup můžete použít k následujícímu postupu:

  • Změna velikosti virtuálního počítače založeného na rozhraní SCSI vytvořeném pomocí neoznačené image na virtuální počítač s podporou NVMe s jinou velikostí bez opětovného vytvoření konfigurací virtuálních počítačů a bez označování image
  • Změňte velikost virtuálního počítače založeného na rozhraní SCSI na virtuální počítač s podporou NVMe s jinou velikostí bez opětovného vytvoření konfigurací virtuálních počítačů.

Zdrojový virtuální počítač může být následující:

  • Neoznačené image operačního systému, která podporuje NVMe.
  • Image operačního systému se značkou NVMe.

Pokud chcete změnit velikost virtuálního počítače, spusťte pomocí následujícího příkazu skript Azure PowerShellu, který nastaví cílovou discontrollertype hodnotu virtuálního počítače jako 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>]

Jak zjistím, jestli je obrázek označený jako NVMe?

Pokud chcete zkontrolovat, jestli je image označená jako NVMe, použijte následující příkaz:

az vm image show --urn URN_OF_IMAGE

Návody označit image, která podporuje NVMe pro vzdálené disky?

Pokud chcete označit image, která podporuje NVMe, postupujte takto:

  1. Nahrajte virtuální pevný disk (VHD) s podporou NVMe do svého účtu úložiště. AzCopy je rychlý způsob, ale k nahrání můžete použít také portál.

    azcopy copy <local path to your VHD> <container in your storage account>
    
  2. Vytvořte galerii imagí pomocí Azure PowerShellu, portálu nebo Azure CLI.

  3. Vytvořte definici obrázku. Nezapomeňte zahrnout --feature DiskControllerTypes=SCSI,NVMe.

    Tady je příklad Azure CLI:

    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. Vytvořte verzi image v galerii s označením NVMe pomocí virtuálního pevného disku s podporou NVMe.

    Tady je příklad Azure CLI:

    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>
    

Návody nakonfigurovat šablonu ARM pro vytvoření virtuálního počítače?

Rozšíření vlastních skriptů Azure můžete použít společně s šablonami Azure Resource Manageru (šablony ARM). Toto řešení umožňuje stahovat a spouštět skripty na virtuálních počítačích Azure a je kompatibilní s Windows i Linuxem. Podrobné pokyny najdete v dokumentaci k rozšíření vlastních skriptů Azure pro Windows a Linux.

Co se stane, když chci použít jinou řadu virtuálních počítačů, která nepodporuje vzdálené disky NVMe?

Pokud vyberete nepodporovanou řadu virtuálních počítačů, zobrazí se tato chybová zpráva: Vybraná velikost virtuálního počítače se nedá spustit s diskControllerTypes. Zkontrolujte, že zadaný typ řadiče disku je jedním z podporovaných typů řadiče disku pro velikost virtuálního počítače.

Nezapomeňte vybrat řadu virtuálních počítačů, která podporuje rozhraní NVMe. Pokud chcete zjistit, které typy řadiče disku jsou pro velikost virtuálního počítače podporované, projděte si seznam skladových položek prostředků v rozhraní REST API.

Které možnosti diskových úložišť Azure jsou kompatibilní se vzdálenými disky NVMe?

Velikosti NVMe je možné kombinovat s disky SSD úrovně Azure Premium v1, SSD úrovně Premium v2 a Disk Storage úrovně Ultra. Další informace o nabídkách disků Azure najdete v tématu Typy spravovaných disků Azure.

Mění podpora Azure změny velikosti disků s velikostmi virtuálních počítačů NVMe?

Změna velikosti NVMe za provozu se podporuje na discích Azure Premium SSD v1, discích SSD úrovně Standard a discích HDD úrovně Standard. Můžete také přidat disky NVMe bez restartování virtuálního počítače.

Jak na virtuálním počítači s Linuxem identifikovat vzdálené disky NVMe?

  1. nvme-cli Získejte balíček:

    sudo apt install nvme-cli
    
  2. Spuštěním příkazu NVMe list načtěte podrobnosti o disku NVMe:

    sudo nvme list
    

    Snímek obrazovky s pokyny k identifikaci disků NVMe na virtuálním počítači s Linuxem

    Snímek obrazovky s pokyny pro výběr ID oboru názvů na portálu Linux

    Takto se data zobrazují v reakci na příkazy Azure PowerShellu:

    Snímek obrazovky s ukázkovou odpovědí na příkaz Azure PowerShellu

Jak můžu identifikovat disky NVMe na virtuálním počítači s Windows?

Otevřete Azure PowerShell a použijte následující příkaz:

wmic diskdrive get model,scsilogicalunit

Snímek obrazovky s ukázkovým příkazem PowerShellu pro použití NVMe ve Windows

Připojené disky ASAP jsou uvedeny v hostu s řetězcem Virtual_Disk NVME Premiummodelu . Logická jednotka SCSI má hodnotu id logické jednotky viditelné na portálu, které se zvýší o 1.

Tady je snímek toho, jak se disky NVMe zobrazují na virtuálním počítači s Windows s podporou NVMe:

Snímek obrazovky znázorňující příklad příkazu Azure PowerShellu k identifikaci disku NVMe na virtuálním počítači s Windows

Následující snímek ukazuje výstup hosta pro datové disky připojené k logické jednotce LUN 0 a LUN 4 (CRP). ID logické jednotky je ekvivalentní ID oboru názvů.

Snímek obrazovky znázorňující příklad, jak se disky NVMe zobrazují na virtuálním počítači s Windows s podporou NVMe

Můžu převést virtuální počítač založený na rozhraní SCSI na nvMe a zachovat stejnou velikost virtuálního počítače s imagí operačního systému se značkou NVMe?

Tento scénář je podporován pouze v operačních systémech Linux a není podporován v operačních systémech Windows.

Podporují se u virtuálních počítačů s podporou NVMe sdílené disky ve vzdálených discích?

Funkce sdíleného disku je podporovaná pro disky SSD úrovně Premium, SSD úrovně Premium v2 a Disk Storage úrovně Ultra.

Můžu pomocí Azure PowerShellu nebo Azure CLI vytvořit virtuální počítač s diskem s operačním systémem z existujícího objektu blob s povoleným NVMe?

V současné době není možné. Místo toho můžete použít následující alternativní řešení rest API k vytvoření virtuálního počítače s diskem s operačním systémem z existujícího objektu blob s povoleným nvMe:

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