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.
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:
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>
Vytvořte galerii imagí pomocí Azure PowerShellu, portálu nebo Azure CLI.
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
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?
nvme-cli
Získejte balíček:sudo apt install nvme-cli
Spuštěním příkazu NVMe
list
načtěte podrobnosti o disku NVMe:sudo nvme list
Takto se data zobrazují v reakci na příkazy 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
Připojené disky ASAP jsou uvedeny v hostu s řetězcem Virtual_Disk NVME Premium
modelu . 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:
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ů.
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)