Ez a cikk az Azure-ban létrehozott virtuális gépeken (VM-en) futó távoli NVM Express(NVMe)-lemezek támogatásával kapcsolatos gyakori kérdéseket ismerteti.
Milyen előfeltételek szükségesek a távoli NVMe-felület engedélyezéséhez a virtuális gépen?
DiskControllerType
A virtuális gép konfigurációja során kiválaszthatja az előnyben részesített vezérlőtípust NVMe vagy Small Computer System Interface (SCSI) néven. Ha nem ad meg DiskControllerType
értéket, a platform automatikusan kiválasztja az alapértelmezett vezérlőt a virtuális gép méretkonfigurációja alapján. Ha a virtuális gép mérete alapértelmezettként van konfigurálva az SCSI-hez, és támogatja az NVMe-t, a virtuális gép SCSI-t használ, hacsak nem frissíti az DiskControllerType
értéket NVMe-re.
Az NVMe-felület virtuális gépen való engedélyezéséhez meg kell felelnie az alábbi előfeltételeknek:
Válasszon egy NVMe-t támogató virtuálisgép-családot. Csak az Ebsv5 és az Ebdsv5 virtuálisgép-méretek rendelkeznek NVMe-vel az Intel v5-ös generációs virtuális gépeken.
Válassza ki az NVMe-támogatással címkézett operációsrendszer-lemezképet . Miután kiválasztott egy támogatott virtuálisgép-családot és operációsrendszer-rendszerképet , a rendszer kérni fogja, hogy válassza ki az NVMe lemezvezérlő típusát.
Az NVMe-t az NVMe lemezvezérlő típusának kiválasztásával választhatja ki az Azure Portalon vagy az Azure Resource Managerben, az Azure CLI-ben vagy az Azure PowerShell-sablonban. Részletes útmutatásért tekintse meg az általános NVMe gyiket.
Győződjön meg arról, hogy 2. generációs virtuális gépet használ, mert az NVMe csak a 2. generációs lemezképeket támogatja.
Válassza ki az egyik Azure-régiót, ahol az NVMe engedélyezve van.
Titkosíthatom a távoli NVMe-lemezeimet?
Az Azure-ban nem lehet natív módon titkosítani ezeket a lemezeket. Az operációs rendszeren belül titkosíthatja őket, de újra kell titkosítania őket, miután csatlakoztatta őket az indításhoz.
Hogyan méretezhetek át egy SCSI-alapú virtuális gépet egy másik méretű távoli NVMe-kompatibilis virtuális gépre?
A következő folyamatokat használhatja a következőkre:
- Méretezze át a címkézetlen képpel létrehozott SCSI-alapú virtuális gépet egy másik méretű, NVMe-kompatibilis virtuális gépre anélkül, hogy újra létrehozták a virtuálisgép-konfigurációkat, és nem címkézték fel a lemezképet.
- SCSI-alapú virtuális gép átméretezése más méretű NVMe-kompatibilis virtuális gépre a virtuálisgép-konfigurációk újbóli létrehozása nélkül.
A forrás virtuális gép a következő lehet:
- Nem megjelölt operációsrendszer-rendszerkép, amely támogatja az NVMe-t.
- NVMe-címkével ellátott operációsrendszer-rendszerkép.
A virtuális gép átméretezéséhez az alábbi paranccsal futtasson egy Azure PowerShell-szkriptet , amely A virtuális gép célértékét discontrollertype
állítja be NVMe-ként:
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>]
Hogyan ellenőrizhetim, hogy egy kép NVMe-ként van-e megjelölve?
Ha ellenőrizni szeretné, hogy egy kép NVMe-ként van-e megjelölve, használja a következő parancsot:
az vm image show --urn URN_OF_IMAGE
Hogyan címkézni egy olyan lemezképet, amely támogatja az NVMe-t távoli lemezekhez?
Az NVMe-t támogató rendszerkép címkézéséhez kövesse az alábbi lépéseket:
Töltsön fel egy NVMe által támogatott virtuális merevlemezt (VHD) a tárfiókba. Az AzCopy gyors megoldás, de a portál használatával is feltöltheti.
azcopy copy <local path to your VHD> <container in your storage account>
Képgyűjtemény létrehozása az Azure PowerShell, a portál vagy az Azure CLI használatával.
Hozzon létre egy képdefiníciót. Ügyeljen arra, hogy belefoglalja a következőt
--feature DiskControllerTypes=SCSI,NVMe
: .Íme egy Azure CLI-példa:
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
Hozza létre a képverziót az NVMe címkével ellátott katalógusban az NVMe által támogatott VHD-vel.
Íme egy Azure CLI-példa:
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>
Hogyan konfiguráljon egy ARM-sablont a virtuális gépek létrehozásához?
Az Azure Custom Script Bővítményt az Azure Resource Manager-sablonokkal (ARM-sablonokkal) együtt használhatja. Ez a megoldás lehetővé teszi szkriptek letöltését és futtatását Azure-beli virtuális gépeken, és kompatibilis a Windows és a Linux rendszerrel is. Részletes útmutatásért tekintse meg a Windowshoz és Linuxhoz készült Azure Custom Script Extension dokumentációját.
Mi történik, ha olyan virtuálisgép-családot szeretnék használni, amely nem támogatja a távoli NVMe-lemezeket?
Ha nem támogatott virtuálisgép-családot választ, a következő hibaüzenet jelenik meg: "A kiválasztott virtuálisgép-méret nem indítható el a DiskControllerType használatával. Ellenőrizze, hogy a megadott lemezvezérlőtípus a virtuális gép méretének egyik támogatott lemezvezérlő-típusa-e."
Mindenképpen válasszon ki egy olyan virtuálisgép-családot, amely támogatja az NVMe-felületet. A virtuális gép méretéhez támogatott lemezvezérlő-típusok meghatározásához tekintse meg a REST API erőforrás-termékváltozatainak listáját.
Mely Azure-lemeztárolási lehetőségek kompatibilisek a távoli NVMe-lemezekkel?
Az NVMe-méretek kombinálhatók az Azure Premium SSD v1, a Premium SSD v2 és az Ultra Disk Storage használatával. Az Azure-lemezajánlatokról további információt az Azure által felügyelt lemeztípusokban talál.
NVMe virtuálisgép-mérettel rendelkező lemezeken Azure-támogatás élő átméretezést?
Az NVMe élő átméretezése az Azure Premium SSD v1-lemezeken, a Standard SSD-lemezeken és a Standard HDD-lemezeken támogatott. NVMe-lemezeket is hozzáadhat a virtuális gép újraindítása nélkül.
Hogyan azonosíthatom a távoli NVMe-lemezeket Linux rendszerű virtuális gépeken?
A csomag lekérése
nvme-cli
:sudo apt install nvme-cli
Futtassa az NVMe
list
parancsot az NVMe-lemez részleteinek lekéréséhez:sudo nvme list
Az adatok így jelennek meg az Azure PowerShell-parancsok válaszában:
Hogyan azonosíthatom az NVMe-lemezeket Egy Windows rendszerű virtuális gépen?
Nyissa meg az Azure PowerShellt, és használja a következő parancsot:
wmic diskdrive get model,scsilogicalunit
Az ASAP-hez csatolt lemezek a modell sztringjével Virtual_Disk NVME Premium
jelennek meg a vendégben. Az SCSI logikai egység a portálon látható LUN-azonosító értékét 1-zel növeli.
Íme egy pillanatkép arról, hogyan jelennek meg az NVMe-lemezek egy NVMe-kompatibilis Windows rendszerű virtuális gépen:
Az alábbi pillanatkép a LUN 0 és LUN 4 (CRP) időpontban csatlakoztatott adatlemezek vendégkimenetét mutatja be. A LUN-azonosító egyenértékű a névtér azonosítójával.
Konvertálhatok SCSI-alapú virtuális gépeket NVMe-kompatibilissé, miközben megtarthatom ugyanazt a virtuálisgép-vCPU-méretet egy NVMe címkével ellátott operációsrendszer-lemezképpel?
Ez a forgatókönyv csak Linux operációs rendszereken támogatott, és Windows operációs rendszereken nem támogatott.
A távoli lemezek megosztott lemezei NVMe-kompatibilis virtuális gépeken támogatottak?
A megosztott lemez funkció a Prémium SSD, a Prémium SSD v2 és az Ultra Disk Storage lemezek esetében támogatott.
Létrehozhatok olyan virtuális gépet az Azure PowerShell vagy az Azure CLI használatával, amely operációsrendszer-lemezzel rendelkezik egy meglévő blobból, amelyen engedélyezve van az NVMe?
Ez jelenleg nem lehetséges. Ehelyett az alábbi REST API-kerülő megoldással hozhat létre operációsrendszer-lemezzel rendelkező virtuális gépet egy meglévő blobból, amelyen engedélyezve van az 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)