Uzak NVMe diskleri hakkında SSS

Bu makalede, Azure'da oluşturulan sanal makinelerde (VM) uzak NVM Express (NVMe) diskleri için destekle ilgili bazı yaygın sorular ele alınmıştır.

SANAL makinemde uzak NVMe arabirimini etkinleştirme önkoşulları nelerdir?

VM yapılandırması sırasında tercih ettiğiniz denetleyici türünü NVMe veya Küçük Bilgisayar Sistemi Arabirimi (SCSI) olarak seçmek için kullanabilirsiniz DiskControllerType . Bir DiskControllerType değer belirtmezseniz, platform VM boyutu yapılandırmasına göre varsayılan denetleyiciyi otomatik olarak seçer. VM boyutu varsayılan olarak SCSI için yapılandırılmışsa ve NVMe'yi destekliyorsa, değeri NVMe olarak güncelleştirmediğiniz DiskControllerType sürece VM SCSI kullanır.

VM'nizde NVMe arabirimini etkinleştirmek için aşağıdaki önkoşulları karşılamanız gerekir:

  • NVMe'yi destekleyen bir VM ailesi seçin. Intel v5 nesil VM'lerde yalnızca Ebsv5 ve Ebdsv5 VM boyutları NVMe ile donatılmıştır.

  • NVMe desteğiyle etiketlenmiş işletim sistemi görüntüsünü seçin. Desteklenen bir VM ailesi ve işletim sistemi görüntü değeri seçtikten sonra NVMe disk denetleyicisi türünü seçmeniz istenir.

    Disk denetleyicisi türü seçme isteminin ekran görüntüsü.

  • Azure portalında veya Azure Resource Manager, Azure CLI veya Azure PowerShell şablonunda NVMe disk denetleyicisi türünü seçerek NVMe'yi kabul edin. Adım adım yönergeler için genel NVMe SSS bölümüne bakın.

  • NVMe yalnızca 2. Nesil görüntüleri desteklediği için 2. Nesil VM kullandığınızdan emin olun.

  • NVMe'nin etkinleştirildiği Azure bölgelerinden birini seçin.

Uzak NVMe disklerimi şifreleyebilir miyim?

Azure'da bu diskleri şifrelemenin yerel bir yolu yoktur. Bunları işletim sistemi içinde şifreleyebilirsiniz, ancak başlangıçta bağlandıktan sonra yeniden şifrelemeniz gerekir.

SCSI tabanlı bir VM'yi farklı boyuttaki uzak NVMe özellikli bir VM'ye nasıl yeniden boyutlandırabilirim?

Şunlardan birini yapmak için aşağıdaki işlemi kullanabilirsiniz:

  • Etiketsiz bir görüntü kullanılarak oluşturulan SCSI tabanlı bir VM'yi, VM yapılandırmalarını yeniden oluşturmadan ve görüntüyü etiketlemeden farklı boyuttaki NVMe özellikli bir VM'ye yeniden boyutlandırın.
  • VM yapılandırmalarını yeniden oluşturmadan SCSI tabanlı bir VM'yi farklı boyuttaki NVMe özellikli bir VM'ye yeniden boyutlandırın.

Kaynak VM aşağıdakilerden biri olabilir:

  • NVMe'yi destekleyen etiketsiz bir işletim sistemi görüntüsü.
  • NVMe etiketli işletim sistemi görüntüsü.

VM'yi yeniden boyutlandırmak için aşağıdaki komutu kullanarak VM'nin hedef discontrollertype değerini NVMe olarak ayarlayan bir Azure PowerShell betiği çalıştırın:

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

Bir görüntünün NVMe olarak etiketlenip etiketli olmadığını nasıl denetleyebilirim?

Görüntünün NVMe olarak etiketlenip etiketli olmadığını denetlemek için aşağıdaki komutu kullanın:

az vm image show --urn URN_OF_IMAGE

Uzak diskler için NVMe'yi destekleyen bir görüntüyü Nasıl yaparım? etiketleyin?

NVMe'yi destekleyen bir görüntüyü etiketlemek için şu adımları izleyin:

  1. NVMe tarafından desteklenen bir sanal sabit diski (VHD) depolama hesabınıza yükleyin. AzCopy hızlı bir yoldur, ancak karşıya yüklemek için portalı da kullanabilirsiniz.

    azcopy copy <local path to your VHD> <container in your storage account>
    
  2. Azure PowerShell, portal veya Azure CLI kullanarak bir görüntü galerisi oluşturun.

  3. Görüntü tanımı oluşturun. eklemeyi --feature DiskControllerTypes=SCSI,NVMeunutmayın.

    Aşağıda bir Azure CLI örneği verilmişti:

    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. NVMe tarafından desteklenen VHD ile NVMe etiketli galeri altında görüntü sürümünü oluşturun.

    Aşağıda bir Azure CLI örneği verilmişti:

    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>
    

VM oluşturmak için arm şablonu Nasıl yaparım? yapılandırılır?

Azure Özel Betik Uzantısı'nı Azure Resource Manager şablonları (ARM şablonları) ile birlikte kullanabilirsiniz. Bu çözüm, Azure sanal makinelerinde betik indirip çalıştırmanıza olanak tanır ve hem Windows hem de Linux ile uyumludur. Ayrıntılı yönergeler için Windows ve Linux için Azure Özel Betik Uzantısı belgelerine bakın.

Uzak NVMe disklerini desteklemeyen başka bir VM ailesi kullanmak istersem ne olur?

Desteklenmeyen bir VM ailesi seçerseniz şu hata iletisini alırsınız: "Seçilen VM boyutu DiskControllerType ile önyüklenemez. Sağlanan disk denetleyicisi türünün VM boyutu için desteklenen disk denetleyicisi türlerinden biri olup olmadığını denetleyin."

NVMe arabirimini destekleyen bir VM ailesi seçtiğinizden emin olun. VM boyutu için hangi disk denetleyicisi türlerinin destekleneceğini belirlemek için REST API'deki kaynak SKU'ları listesine bakın.

Hangi Azure disk depolama seçenekleri uzak NVMe diskleriyle uyumludur?

NVMe boyutları Azure Premium SSD v1, Premium SSD v2 ve Ultra Disk Depolama ile birleştirilebilir. Azure disk teklifleri hakkında daha fazla bilgi için bkz . Azure yönetilen disk türleri.

AZURE DESTEĞI NVMe VM boyutlarına sahip disklerde yeniden boyutlandırma yaşıyor mu?

NVMe'nin canlı olarak yeniden boyutlandırılmış olması Azure Premium SSD v1 disklerinde, Standart SSD disklerinde ve Standart HDD disklerde desteklenir. VM'yi yeniden başlatmadan NVMe diskleri de ekleyebilirsiniz.

Linux VM'sinde uzak NVMe disklerini nasıl tanımlayabilirim?

  1. nvme-cli Paketi alın:

    sudo apt install nvme-cli
    
  2. NVMe list disk ayrıntılarını getirmek için NVMe komutunu çalıştırın:

    sudo nvme list
    

    Linux sanal makinesindeki NVMe disklerini tanımlama yönergelerinin ekran görüntüsü.

    Linux portalında ad alanı kimliği seçme yönergelerinin ekran görüntüsü.

    Azure PowerShell komutlarına yanıt olarak veriler şu şekilde görünür:

    Azure PowerShell komutuna örnek yanıtın ekran görüntüsü.

Windows VM'sinde NVMe disklerini nasıl tanımlayabilirim?

Azure PowerShell'i açın ve aşağıdaki komutu kullanın:

wmic diskdrive get model,scsilogicalunit

Windows'da NVMe kullanmak için örnek bir PowerShell komutunun ekran görüntüsü.

ASAP ekli diskler, konukta model dizesiyle Virtual_Disk NVME Premiumsunulur. SCSI mantıksal birimi, portal tarafından görünen LUN kimliğinin değerini 1 artırmıştır.

NVMe disklerinin NVMe özellikli bir Windows VM'de nasıl göründüğüne yönelik bir anlık görüntü aşağıdadır:

Windows VM'sinde NVMe diskini tanımlamaya yönelik bir Azure PowerShell komutunun örneğini gösteren ekran görüntüsü.

Aşağıdaki anlık görüntü, LUN 0 ve LUN 4'e (CRP) eklenen veri diskleri için konuk çıkışını gösterir. LUN kimliği ad alanı kimliğine eşdeğerdir.

NVMe disklerinin NVMe özellikli bir Windows VM'de nasıl göründüğüne dair bir örnek gösteren ekran görüntüsü.

NVMe etiketli işletim sistemi görüntüsüyle aynı VM vCPU boyutunu korurken SCSI tabanlı bir VM'yi NVMe özellikline dönüştürebilir miyim?

Bu senaryo yalnızca Linux işletim sistemlerinde desteklenir ve Windows işletim sistemlerinde desteklenmez.

Uzak disklerdeki paylaşılan diskler NVMe özellikli VM'lerde destekleniyor mu?

Paylaşılan disk özelliği Premium SSD, Premium SSD v2 ve Ultra Disk Depolama diskleri için desteklenir.

NVMe'nin etkin olduğu mevcut bir blobdan işletim sistemi diskine sahip bir VM oluşturmak için Azure PowerShell veya Azure CLI kullanabilir miyim?

Şu anda mümkün değil. Bunun yerine, NVMe'nin etkin olduğu mevcut bir blobdan işletim sistemi diskine sahip bir VM oluşturmak için aşağıdaki REST API geçici çözümünü kullanabilirsiniz:

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