FAQ untuk disk NVMe jarak jauh

Artikel ini membahas beberapa pertanyaan umum tentang dukungan untuk disk NVM Express (NVMe) jarak jauh pada komputer virtual (VM) yang dibuat di Azure.

Apa saja prasyarat untuk mengaktifkan antarmuka NVMe jarak jauh pada VM saya?

Anda dapat menggunakan DiskControllerType selama konfigurasi VM untuk memilih jenis pengontrol pilihan Anda sebagai NVMe atau Small Computer System Interface (SCSI). Jika Anda tidak menentukan DiskControllerType nilai, platform secara otomatis memilih pengontrol default berdasarkan konfigurasi ukuran VM. Jika ukuran VM dikonfigurasi untuk SCSI sebagai default dan mendukung NVMe, VM menggunakan SCSI kecuali Anda memperbarui nilai ke DiskControllerType NVMe.

Untuk mengaktifkan antarmuka NVMe pada VM, Anda harus memenuhi prasyarat berikut:

  • Pilih keluarga VM yang mendukung NVMe. Hanya ukuran VM Ebsv5 dan Ebdsv5 yang dilengkapi dengan NVMe di VM generasi Intel v5.

  • Pilih gambar sistem operasi yang ditandai dengan dukungan NVMe. Setelah Anda memilih keluarga VM dan nilai gambar OS yang didukung, Anda diminta untuk memilih jenis pengontrol disk NVMe.

    Cuplikan layar permintaan untuk memilih jenis pengontrol disk.

  • Ikut serta ke NVMe dengan memilih jenis pengontrol disk NVMe di portal Azure atau di templat Azure Resource Manager, Azure CLI, atau Azure PowerShell. Untuk instruksi langkah demi langkah, lihat FAQ NVMe umum.

  • Pastikan Anda menggunakan VM Generasi 2, karena NVMe hanya mendukung gambar Generasi 2.

  • Pilih salah satu wilayah Azure tempat NVMe diaktifkan.

Dapatkah saya mengenkripsi disk NVMe jarak jauh saya?

Tidak ada cara asli dalam Azure untuk mengenkripsi disk ini. Anda dapat mengenkripsinya dalam OS, tetapi Anda harus mengenkripsi ulang setelah pemasangan pada startup.

Bagaimana cara mengubah ukuran VM berbasis SCSI ke VM jarak jauh yang mendukung NVMe dengan ukuran yang berbeda?

Anda dapat menggunakan proses berikut untuk:

  • Mengubah ukuran VM berbasis SCSI yang dibuat menggunakan gambar yang tidak diberi tag ke VM berkemampuan NVMe dengan ukuran yang berbeda tanpa membuat ulang konfigurasi VM dan tanpa menandai gambar.
  • Mengubah ukuran VM berbasis SCSI ke VM berkemampuan NVMe dengan ukuran yang berbeda tanpa membuat ulang konfigurasi VM.

VM sumber dapat berupa:

  • Gambar OS yang tidak diberi tag yang mendukung NVMe.
  • Gambar OS yang ditandai NVMe.

Untuk mengubah ukuran VM, gunakan perintah berikut untuk menjalankan skrip Azure PowerShell yang mengatur nilai tujuan discontrollertype VM sebagai 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>]

Bagaimana cara memeriksa apakah gambar ditandai sebagai NVMe?

Untuk memeriksa apakah gambar ditandai sebagai NVMe, gunakan perintah berikut:

az vm image show --urn URN_OF_IMAGE

Bagaimana cara menandai gambar yang mendukung NVMe untuk disk jarak jauh?

Untuk menandai gambar yang mendukung NVMe, ikuti langkah-langkah berikut:

  1. Unggah hard disk virtual (VHD) yang didukung NVMe ke akun penyimpanan Anda. AzCopy adalah cara cepat, tetapi Anda juga dapat menggunakan portal untuk mengunggah.

    azcopy copy <local path to your VHD> <container in your storage account>
    
  2. Buat galeri gambar dengan menggunakan Azure PowerShell, portal, atau Azure CLI.

  3. Buat definisi gambar. Pastikan untuk menyertakan --feature DiskControllerTypes=SCSI,NVMe.

    Berikut adalah contoh 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. Buat versi gambar di bawah galeri bertag NVMe dengan VHD yang didukung NVMe.

    Berikut adalah contoh 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>
    

Bagaimana cara mengonfigurasi templat ARM untuk pembuatan VM?

Anda dapat menggunakan Ekstensi Skrip Kustom Azure bersama dengan templat Azure Resource Manager (templat ARM). Solusi ini memungkinkan Anda mengunduh dan menjalankan skrip di komputer virtual Azure dan kompatibel dengan Windows dan Linux. Untuk panduan terperinci, lihat dokumentasi Ekstensi Skrip Kustom Azure untuk Windows dan Linux.

Apa yang terjadi jika saya ingin menggunakan keluarga VM lain yang tidak mendukung disk NVMe jarak jauh?

Jika Anda memilih keluarga VM yang tidak didukung, Anda akan mendapatkan pesan kesalahan ini: "Ukuran VM yang dipilih tidak dapat melakukan booting dengan DiskControllerType. Periksa apakah jenis pengontrol disk yang disediakan adalah salah satu jenis pengontrol disk yang didukung untuk ukuran VM."

Pastikan untuk memilih keluarga VM yang mendukung antarmuka NVMe. Untuk menentukan jenis pengontrol disk mana yang didukung untuk ukuran VM, lihat daftar SKU sumber daya di REST API.

Opsi penyimpanan disk Azure mana yang kompatibel dengan disk NVMe jarak jauh?

Ukuran NVMe dapat dikombinasikan dengan Azure Premium SSD v1, Premium SSD v2, dan Ultra Disk Storage. Untuk informasi selengkapnya tentang penawaran disk Azure, lihat Jenis disk terkelola Azure.

Apakah Azure mendukung pengubahan ukuran langsung pada disk dengan ukuran VM NVMe?

Pengubahan ukuran langsung NVMe didukung pada disk Azure Premium SSD v1, disk SSD Standar, dan disk HDD Standar. Anda juga dapat menambahkan disk NVMe tanpa memulai ulang VM.

Bagaimana cara mengidentifikasi disk NVMe jarak jauh pada VM Linux?

  1. nvme-cli Dapatkan paket:

    sudo apt install nvme-cli
    
  2. Jalankan perintah NVMe list untuk mengambil detail disk NVMe:

    sudo nvme list
    

    Cuplikan layar instruksi untuk mengidentifikasi disk NVMe pada komputer virtual Linux.

    Cuplikan layar instruksi untuk memilih ID namespace layanan di portal Linux.

    Berikut adalah cara data muncul sebagai respons terhadap perintah Azure PowerShell:

    Cuplikan layar contoh respons terhadap perintah Azure PowerShell.

Bagaimana cara mengidentifikasi disk NVMe pada VM Windows?

Buka Azure PowerShell dan gunakan perintah berikut:

wmic diskdrive get model,scsilogicalunit

Cuplikan layar contoh perintah PowerShell untuk menggunakan NVMe di Windows.

Disk terlampir ASAP disajikan di tamu dengan string Virtual_Disk NVME Premiummodel . Unit logis SCSI memiliki nilai untuk ID LUN yang terlihat portal yang bertambah 1.

Berikut adalah rekam jepret tentang bagaimana disk NVMe muncul di VM Windows berkemampuan NVMe:

Cuplikan layar yang memperlihatkan contoh perintah Azure PowerShell untuk mengidentifikasi disk NVMe pada VM Windows.

Rekam jepret berikut menunjukkan output tamu untuk disk data yang terpasang di LUN 0 dan LUN 4 (CRP). ID LUN setara dengan ID namespace layanan.

Cuplikan layar yang memperlihatkan contoh bagaimana disk NVMe muncul di VM Windows berkemampuan NVMe.

Dapatkah saya mengonversi VM berbasis SCSI ke berkemampuan NVMe sambil mempertahankan ukuran vCPU VM yang sama dengan gambar OS bertag NVMe?

Skenario ini hanya didukung pada sistem operasi Linux dan tidak didukung pada sistem operasi Windows.

Apakah disk bersama di disk jarak jauh didukung dengan VM yang mendukung NVMe?

Fitur disk bersama didukung untuk disk Premium SSD, Premium SSD v2, dan Ultra Disk Storage.

Bisakah saya menggunakan Azure PowerShell atau Azure CLI untuk membuat VM dengan disk OS dari blob yang ada dengan NVMe diaktifkan?

Saat ini tidak mungkin. Sebagai gantinya, Anda dapat menggunakan solusi REST API berikut untuk membuat VM dengan disk OS dari blob yang ada dengan NVMe diaktifkan:

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