Düzenle

Aracılığıyla paylaş


NVMe - Uzak NVMe Diskleri hakkında SSS

Bu makalede, Azure'da oluşturulan sanal makinelerde Uzak NVMe Diskleri desteğiyle ilgili bazı yaygın sorular ele alınmıştır.

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

VM yapılandırmasına, müşterilerin tercih ettikleri denetleyici türünü NVMe veya SCSI olarak seçmesini sağlayan DiskControllerType adlı bir özellik eklendi. Müşteri bir DiskControllerType değeri belirtmezse, 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, NVMe DiskControllerType'a güncelleştirilmediği sürece SCSI kullanılır. NVMe arabirimini etkinleştirmek için aşağıdaki önkoşulların karşılanması gerekir:

  • NVMe'yi destekleyen bir VM ailesi seçin.
  • NVMe desteğiyle etiketlenmiş işletim sistemi görüntüsünü seçin.
  • Azure portalında veya ARM/CLI/Power Shell şablonunda NVMe disk denetleyicisi türünü seçerek NVMe'yi kabul edin. Adım adım yönergeler için buraya bakın.
  • Yalnızca 2. Nesil görüntüleri desteklenir. Yukarıdaki dört koşulu karşılayarak, desteklenen VM ailesinde NVMe'yi hemen etkinleştirebileceksiniz. Herhangi bir sorun yaşamadan NVMe ile vm'yi başarıyla oluşturmak veya yeniden boyutlandırmak için lütfen yukarıdaki koşulları izleyin.

VM ailesinde uzak NVMe disk Nasıl yaparım? etkinleştirilir?

Uzak disk için NVMe'yi etkinleştirmek için aşağıdaki beş koşulun karşılandığından emin olun:

  • NVMe'yi destekleyen bir VM ailesi seçin. Intel v5 nesil VM'lerde yalnızca Ebsv5 ve Ebdsv5 VM boyutlarının NVMe ile donatıldığını unutmayın. Serilerden biri olan Ebsv5 veya Ebdsv5 VM'yi seçtiğinizden emin olun.

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

    NVMe disk denetleyicisi türünü seçme isteminin ekran görüntüsü.

  • Azure portalında veya ARM/CLI/PowerShell şablonunda NVMe disk denetleyicisi türünü seçerek NVMe'yi kabul edin. Adım adım yönergeler için buraya bakın.

  • Yalnızca 2. Nesil görüntüleri desteklenir.

  • NVMe'nin etkinleştirildiği Azure bölgelerinden birini seçin. Beş koşulu karşılayarak, desteklenen VM ailesinde NVMe'yi kısa sürede etkinleştirebilirsiniz. Özelliğin başarıyla başlatıldığından emin olmak için NVMe ile vm oluştururken ve yeniden boyutlandırırken yukarıdaki koşulları izleyin.

Uzak NVMe disklerimi şifreleyebilir miyim?

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

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

Aşağıdaki işlemlerden herhangi biri için kullanılabilir:

  • Etiketlenmemiş bir görüntü kullanılarak oluşturulan SCSI 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 VM'sini 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ü
  • VM'yi yeniden boyutlandırmak için NVMe etiketli bir işletim sistemi görüntüsü:
  • VM'nin hedef discontrollertype değerini NVMe olarak ayarlayın.
  • Bunu yapmak için aşağıdaki PowerShell betiğini kullanın: SAP-on-Azure-Scripts-and-Utilities/NVMe-Preflight-Check at main · Azure/SAP-on-Azure-Scripts-and-Utilities · Github
`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>]`

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

Belirli bir görüntünün NVMe olarak etiketlenip etiketli olmadığını denetlemek için lütfen aşağıdaki komutu kullanın:

az vm image show --urn URN_OF_IMAGE

Uzak disk 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 aşağıdaki dört adımı izleyin:

  1. NVMe destekli vhd'yi depolama hesabınıza yükleyin. AzCopy hızlı bir yoldur, ancak karşıya yüklemek için portalı da kullanabilirsiniz.
  • AzCopy Başvurusu: [https://docs.microsoft.com/azure/storage/common/storage-use-azcopy-v10]
`azcopy copy <local path to your vhd> <container in your storage account>`
  1. PowerShell/portal/cli kullanarak görüntü galerinizi oluşturun: [https://docs.microsoft.com/azure/virtual-machines/create-gallery]
  2. Görüntü tanımını oluşturun: [https://docs.microsoft.com/azure/virtual-machines/image-version] Lütfen --feature DiskControllerTypes=SCSI,NVMe eklemeyi unutmayın

CLI Örneği:

`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`
  1. NVMe tarafından desteklenen vhd ile NVMe etiketli galeri altında görüntü sürümünü oluşturun: [https://docs.microsoft.com/azure/virtual-machines/image-version]

CLI Örneği:

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

İlk VM başlatmam için bir ARM şablonu Nasıl yaparım? yapılandırdım?

Azure Özel Betik Uzantısı'nı Azure Resource Manager şablonlarıyla birlikte kullanabilirsiniz. Bu, Azure sanal makinelerinde betikleri indirip yürütmenizi sağlar 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. Windows örneklerine buradan ulaşabilirsiniz.

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 Y için desteklenen disk denetleyicisi türlerinden biri olup olmadığını denetleyin. Vm boyutu Kaynak SKU'ları - Liste - REST API (Azure İşlem)" için desteklenen disk denetleyicisi türlerini belirlemek için lütfen [https://docs.microsoft.com/rest/api/compute/resource-skus/list] konumundan SKU API'sini sorgulayın. Bu nedenle, NVMe arabirimini destekleyen bir VM ailesi seçtiğinizden emin olun.

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

NVMe boyutları Premium SSD v1, Premium SSD v2 ve Ultra disklerle birleştirilebilir. Azure disk teklifleri hakkında ek bilgi için bkz . Azure Yönetilen diskler.

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

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

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

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

Linux VM'sinde 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österilir:

Azure PowerShell komutuna yanıt örneğinin ekran görüntüsü.

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

PowerShell'i başlatın ve şu komutu kullanın: wmic diskdrive get model,scsilogicalunit

Windows'da NVMe'yi başlatmak için powershell komut örneği örneğinin ekran görüntüsü.

ASAP ekli diskler konukta "Virtual_Disk NVME Premium" model dizesiyle sunulur ve SCSI Mantıksal Biriminin değer portalı görünür LUN kimliği 1 artırılır. 
NVMe özellikli Windows VM'de NVMe disklerinin nasıl göründüğüne yönelik bir anlık görüntü aşağıdadır:

Windows VM'sinde NVMe diskini tanımlamak için PowerShell komutunun örneğini gösteren diyagram.

Aşağıdaki anlık görüntü, LUN 0 ve LUN 4'e (CRP) eklenen veri diskleri için konuk çıktısında gösterilir. LUN Kimliği, AD ALANI KIMLIĞI ile eşdeğerdir.

NVMe özellikli Windows VM'de NVMe disklerinin nasıl görüldüğünü gösteren diyagram.

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

Bu senaryo yalnızca Linux işletim sistemleri tarafından desteklenir ve Windows işletim sistemleri tarafından desteklenmez.

Uzak disklerdeki paylaşılan diskler NVMe VM'leri ile destekleniyor mu?

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

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

Şu anda mümkün değildir. Ancak REST API'yi temel alan aşağıdaki geçici çözüm kullanılabilir:

# This is the workaround using REST-API
# to create a VM with an OS disk from an existing BLOB with NVMe enabled 

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