Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Azure komputer virtual (VM) mendukung dua jenis antarmuka penyimpanan: Small Computer System Interface (SCSI) dan NVM Express (NVMe). Antarmuka SCSI adalah standar warisan yang menyediakan konektivitas fisik dan transfer data antara komputer dan perangkat periferal. NVMe mirip dengan SCSI karena menyediakan konektivitas dan transfer data, tetapi NVMe adalah antarmuka yang lebih cepat dan lebih efisien untuk transfer data antara server dan sistem penyimpanan.
Dalam artikel ini, Anda mempelajari cara mengonversi VM Azure yang menjalankan Linux atau Windows dari pengontrol disk SCSI ke NVMe dengan menggunakan Azure Boost dan skrip Konversi NVMe Azure.
Azure terus mendukung antarmuka SCSI pada versi penawaran VM yang menyediakan penyimpanan SCSI. Namun, tidak semua seri VM baru memiliki penyimpanan SCSI sebagai opsi ke depannya.
Apa yang berubah untuk VM Anda?
Mengubah antarmuka host dari SCSI ke NVMe tidak mengubah penyimpanan jarak jauh (disk OS atau disk data), tetapi mengubah cara sistem operasi menggunakan disk.
| Disk | VM berkemampuan SCSI | VM NVMe dengan disk sementara SCSI (misalnya, Ebds_v5) | VM NVMe dengan disk temporer NVMe |
|---|---|---|---|
| Disk sistem operasi | /dev/sda |
/dev/nvme0n1 |
/dev/nvme0n1 |
| Disk sementara | /dev/sdb |
/dev/sda |
/dev/nvme1n1 |
| Disk data pertama | /dev/sdc |
/dev/nvme0n2 |
/dev/nvme0n2 |
Petunjuk / Saran
Beberapa jenis VM memiliki lebih dari satu disk sementara (misalnya, E64ds_v6).
Mengonversi VM Azure Anda dari SCSI ke NVMe dengan menggunakan Azure Boost dapat membantu Anda memanfaatkan sepenuhnya peningkatan performa ini dan mempertahankan tepi kompetitif di lanskap komputasi cloud.
Memigrasikan VM Linux dari SCSI ke NVMe
Untuk bermigrasi dari SCSI ke NVMe, Anda perlu mengikuti langkah-langkah tingkat tinggi ini:
- Periksa apakah seri komputer virtual Anda mendukung NVMe.
- Periksa sistem operasi Anda untuk kesiapan NVMe.
- Konversikan komputer virtual Anda ke NVMe.
- Periksa sistem operasi Anda.
1. Periksa apakah seri komputer virtual Anda mendukung NVMe
Tabel ketersediaan Azure Boost mencantumkan komputer virtual yang didukung untuk disk terpasang NVMe.
2. Periksa sistem operasi Anda untuk kesiapan NVMe
Sistem operasi perlu mendukung perangkat NVMe. Misalnya, Anda perlu menyiapkan driver perangkat dan initrd, sistem file sementara yang digunakan selama startup. Anda juga perlu memvalidasi titik pemasangan sistem file, karena mereka memeriksa apakah Anda menggunakan nama perangkat SCSI (/dev/sdX).
Skrip migrasi dapat secara otomatis mengurus pemeriksaan kesiapan ini untuk Anda saat Anda menggunakan -FixOperatingSystemSettings.
2.1 Periksa jenis pengontrol VM
Periksa jenis pengontrol dengan menggunakan PowerShell
PS C:\Users\user1> $vm = Get-AzVM -name [your-vm-name]
PS C:\Users\user1> $vm.StorageProfile.DiskControllerType
SCSI
PS C:\Users\user1>
Periksa jenis pengontrol dengan menggunakan Azure CLI
$ az vm show --name [your-vm-name] --resource-group [your-resource-group-name]
{
"additionalCapabilities": {
...
"storageProfile": {
...
"diskControllerType": "SCSI",
...
Periksa jenis pengontrol dengan menggunakan portal Azure
2.2 Mempersiapkan migrasi
Skrip migrasi dapat secara otomatis mengurus prasyarat saat Anda menggunakan -FixOperatingSystemSettings parameter .
Jika Anda ingin membuat perubahan yang diperlukan secara manual, validasi bahwa:
- Modul NVMe dipasang dan merupakan bagian dari
initrd/initramfs. - Konfigurasi GRUB mencakup parameter
nvme_core.io_timeout=240. -
/etc/fstabmemeriksa perangkat.
Tanyakan kepada vendor OS Anda untuk mencakup semua perintah yang diperlukan untuk memperbarui initrd/initramfs.
2.2.1 Menyiapkan PowerShell
Petunjuk / Saran
Langkah ini tidak diperlukan saat Anda menjalankan skrip di Azure Cloud Shell.
Instal PowerShell dengan menggunakan dokumentasi PowerShell.
Sambungkan ke Azure dengan menggunakan
Connect-AzAccount.Pilih langganan yang benar dengan menggunakan
Select-AzSubscription -Subscription [your-subscription-id].Atur kebijakan eksekusi dengan menggunakan
Set-ExecutionPolicy -ExecutionPolicy Unrestricted.
2.2.2 Unduh skrip
Anda dapat mengunduh skrip dengan menggunakan perintah PowerShell:
Invoke-WebRequest -Uri "https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/refs/heads/main/Azure-NVMe-Utils/Azure-NVMe-Conversion.ps1" -OutFile ".\Azure-NVMe-Conversion.ps1"
2.3 Menjalankan migrasi
Skrip memiliki beberapa parameter yang tersedia:
| Pengaturan | Deskripsi | Diperlukan |
|---|---|---|
-ResourceGroupName |
Nama grup sumber daya untuk VM Anda. | Ya |
-VMName |
Nama VM Anda di Azure. | Ya |
-NewControllerType |
Jenis pengontrol penyimpanan yang harus dikonversi VM ke (NVMe atau SCSI). | Ya |
-VMSize |
SKU Azure VM yang ingin Anda gunakan untuk mengonversi VM menjadi SKU tersebut. | Ya |
-StartVM |
Mulai VM setelah konversi. | Tidak. |
-IgnoreSKUCheck |
Abaikan pemeriksaan SKU VM. | Tidak. |
-IgnoreWindowsVersionCheck |
Abaikan pemeriksaan versi Windows. | Tidak. |
-FixOperatingSystemSettings |
Perbaiki pengaturan OS secara otomatis dengan menggunakan perintah Azure jalankan. | Tidak. |
-WriteLogfile |
Buat berkas log. | Tidak. |
-IgnoreAzureModuleCheck |
Jangan jalankan pemeriksaan untuk modul Azure yang terinstal. | Tidak. |
-IgnoreOSCheck |
Jangan periksa kesiapan OS. Harapannya adalah bahwa OS siap. | Tidak. |
-SleepSeconds |
Waktu bagi Azure untuk menyelesaikan perubahan sebelum memulai VM. | Tidak. |
Berikut adalah contoh perintah:
# Example usage
.\Azure-NVMe-Conversion.ps1 -ResourceGroupName <your-RG> -VMName <your-VMname> -NewControllerType <NVMe/SCSI> -VMSize <new-VM-SKU> -StartVM -FixOperatingSystemSettings
Petunjuk / Saran
Anda selalu dapat kembali ke SCSI. Skrip menyediakan perintah untuk langsung kembali ke konfigurasi asli Anda.
2.3.1 Contoh output
PS /home/philipp> ./NVMe-Conversion.ps1 -ResourceGroupName testrg -VMName testvm -NewControllerType NVMe -VMSize Standard_E4bds_v5 -StartVM -FixOperatingSystemSettings
00:00 - INFO - Starting script Azure-NVMe-Conversion.ps1
00:00 - INFO - Script started at 06/27/2025 15:41:39
00:00 - INFO - Script version: 2025062704
00:00 - INFO - Script parameters:
00:00 - INFO - ResourceGroupName -> testrg
00:00 - INFO - VMName -> testvm
00:00 - INFO - NewControllerType -> NVMe
00:00 - INFO - VMSize -> Standard_E4bds_v5
00:00 - INFO - StartVM -> True
00:00 - INFO - FixOperatingSystemSettings -> True
00:00 - INFO - Script Version 2025062704
00:00 - INFO - Module Az.Compute is installed and the version is correct.
00:00 - INFO - Module Az.Accounts is installed and the version is correct.
00:00 - INFO - Module Az.Resources is installed and the version is correct.
00:00 - INFO - Connected to Azure subscription name: AG-GE-CE-PHLEITEN
00:00 - INFO - Connected to Azure subscription ID: aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e
00:00 - INFO - VM testvm found in Resource Group testrg
00:01 - INFO - VM testvm is running
00:01 - INFO - VM testvm is running Linux
00:01 - INFO - VM testvm is running SCSI
00:02 - INFO - Running in Azure Cloud Shell
00:02 - INFO - Authentication token is a SecureString
00:02 - INFO - Authentication token received
00:02 - INFO - Getting available SKU resources
00:02 - INFO - This might take a while ...
00:06 - INFO - VM SKU Standard_E4bds_v5 is available in zone 1
00:06 - INFO - Resource disk support matches between original VM size and new VM size.
00:06 - INFO - Found VM SKU - Checking for Capabilities
00:06 - INFO - VM SKU has supported capabilities
00:06 - INFO - VM supports NVMe
00:06 - INFO - Pre-Checks completed
00:06 - INFO - Entering Linux OS section
00:37 - INFO - Script output: Enable succeeded:
00:37 - INFO - Script output: [stdout]
00:37 - INFO - Script output: [INFO] Operating system detected: sles
00:37 - INFO - Script output: [INFO] Checking if NVMe driver is included in initrd/initramfs...
00:37 - INFO - Script output: [INFO] NVMe driver found in initrd/initramfs.
00:37 - INFO - Script output: [INFO] Checking nvme_core.io_timeout parameter...
00:37 - INFO - Script output: [INFO] nvme_core.io_timeout is set to 240.
00:37 - INFO - Script output: [INFO] Checking /etc/fstab for deprecated device names...
00:37 - INFO - Script output: [INFO] /etc/fstab does not contain deprecated device names.
00:37 - INFO - Script output:
00:37 - INFO - Script output: [stderr]
00:37 - INFO - Script output:
00:37 - INFO - Errors: 0 - Warnings: 0 - Info: 7
00:37 - INFO - Shutting down VM testvm
01:18 - INFO - VM testvm stopped
01:18 - INFO - Checking if VM is stopped and deallocated
01:19 - INFO - Setting OS Disk capabilities for testvm_OsDisk_1_165411276cbe459097929b981eb9b3e2 to new Disk Controller Type to NVMe
01:19 - INFO - generated URL for OS disk update:
01:19 - INFO - https://management.azure.com/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/testrg/providers/Microsoft.Compute/disks/testvm_OsDisk_1_165411276cbe459097929b981eb9b3e2?api-version=2023-04-02
01:19 - INFO - OS Disk updated
01:19 - INFO - Setting new VM Size from Standard_E4s_v3 to Standard_E4bds_v5 and Controller to NVMe
01:19 - INFO - Updating VM testvm
01:54 - INFO - VM testvm updated
01:54 - INFO - Start after update enabled for VM testvm
01:54 - INFO - Waiting for 15 seconds before starting the VM
02:09 - INFO - Starting VM testvm
03:31 - INFO - VM testvm started
03:31 - INFO - As the virtual machine got started using the script you can check the operating system now
03:31 - INFO - If you have any issues after the conversion you can revert the changes by running the script with the old settings
03:31 - IMPORTANT - Here is the command to revert the changes:
03:31 - INFO - .\Azure-NVMe-Conversion.ps1 -ResourceGroupName testrg -VMName testvm -NewControllerType SCSI -VMSize Standard_E4s_v3 -StartVM
03:31 - INFO - Script ended at 06/27/2025 15:45:11
03:31 - INFO - Exiting
PS /home/philipp>
Jika Anda tidak dapat mengakses sistem operasi setelahnya, periksa:
- Konsol serial untuk sistem operasi Linux.
- Cuplikan layar dari sistem operasi di portal Azure.
Jika perlu, Anda selalu dapat kembali ke SCSI dengan menggunakan perintah yang ditunjukkan di akhir skrip:
.\Azure-NVMe-Conversion.ps1 -ResourceGroupName testrg -VMName testvm -NewControllerType SCSI -VMSize Standard_E4s_v3 -StartVM
2.4 Periksa hasilnya
Periksa hasilnya di portal Azure
Periksa hasilnya di PowerShell
PS C:\Users> $vm = Get-AzVM -name [your-vm-name]
PS C:\Users> $vm.StorageProfile.DiskControllerType
NVMe
PS C:\Users>
3. Periksa sistem operasi Anda
3.1 Memeriksa perangkat
Anda dapat memeriksa perangkat dengan menggunakan nvme perintah . Jika perintah nvme tidak tersedia, instal paket nvme-cli menggunakan nvme list.
Output harus menampilkan disk OS dan disk data.
3.2 Dapatkan file udev untuk NVMe (opsional)
Pada komputer virtual SCSI, aturan udev yang diintegrasikan ke dalam agen waagent Azure membuat tautan di /dev/disk/azure/scsi1/lunX untuk mengidentifikasi disk data. Karena SCSI tidak digunakan lagi, aturan tidak berlaku.
Dengan memilih salah satu dari dua opsi yang tersedia untuk menerapkan aturan udev yang mendukung NVMe, Anda akan melihat tautan simbolis baru dalam direktori /dev/disk/azure/data/by-lun. Direktori ini adalah pengganti untuk /dev/disk/azure/scsi1.
nvme-conversion-vm:/usr/lib/udev/rules.d # ls -l /dev/disk/azure/data/by-lun/
total 0
lrwxrwxrwx 1 root root 19 Jun 7 13:52 0 -> ../../../../nvme0n2
lrwxrwxrwx 1 root root 19 Jun 7 13:52 1 -> ../../../../nvme0n3
nvme-conversion-vm:/usr/lib/udev/rules.d #
Pengunduhan manual file udev
Untuk mengunduh file aturan udev baru, gunakan perintah ini: curl https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/refs/heads/main/Azure-NVMe-Utils/88-azure-nvme-data-disk.rules. Kemudian, jalankan udevadm control --reload-rules && udevadm trigger untuk memuat ulang aturan udev.
Paket siap pasang dari GitHub
Paket yang telah dikompilasi sebelumnya dari kumpulan utilitas dan aturan udev GitHub untuk VM Azure tersedia pada Index dari /results/cjp256/azure-vm-utils/ untuk beberapa distribusi.
Beberapa distribusi sudah mulai mengintegrasikan paket. Anda dapat langsung menginstalnya dari repositori mereka.
| Distribusi | Versi minimum |
|---|---|
| SUSE | SLES 15 SP5 atau yang lebih baru |
| Red Hat | RHEL 9.6 atau yang lebih baru |
| Ubuntu | Ubuntu 25.04 atau yang lebih baru |
Memigrasikan VM Windows dari SCSI ke NVMe
Bagian ini menjelaskan cara mengonversi VM Windows dari SCSI ke NVMe dengan menggunakan skrip Konversi NVMe Azure. Skrip secara otomatis menangani persiapan OS, dealokasi VM, pembaruan pengontrol disk, pengubahan ukuran opsional, dan mulai ulang VM.
Prasyarat
Sebelum memulai, pastikan hal berikut:
VM menggunakan Generasi 2 (Gen2). Anda tidak dapat mengonversi VM Gen1 ke NVMe.
VM berjalan Server Windows 2019 atau yang lebih baru. Server Windows 2016 dan yang lebih lama tidak didukung kecuali Anda menggunakan
-IgnoreWindowsVersionCheckdan memverifikasi kompatibilitas driver secara manual.SKU VM target mendukung NVMe. Untuk mengonfirmasi, lihat tabel ketersediaan Azure Boost.
Anda tidak menggunakan Peluncuran Tepercaya untuk mengonfigurasi VM Anda. Anda tidak dapat mengonversi VM yang dikonfigurasi dengan Peluncuran Tepercaya dari SCSI ke NVMe.
Konversi dari VM dengan disk sementara (misalnya, Standard_D4ds_v5) ke SKU v6 (misalnya, Standard_D4ds_v6) tidak didukung melalui skrip ini. Gunakan rekam jepret disk untuk jalur migrasi tersebut.
Konversi dari VM tanpa disk sementara (misalnya, Standard_D4s_v5) ke SKU v6 didukung.
Perangkat lunak antivirus atau keamanan non-Microsoft dapat mengganggu perubahan driver yang dilakukan selama konversi. Nonaktifkan sementara sebelum Anda menjalankan skrip.
Jika VM menampilkan layar biru setelah konversi, kembali ke SCSI dan coba lagi setelah menonaktifkan solusi keamanan Anda.
PowerShell dengan versi modul Az berikut diinstal:
-
Az.Compute9.0 atau yang lebih baru -
Az.Accounts4.0 atau yang lebih baru -
Az.Resources7.0 atau yang lebih baru
-
Mengunduh skrip
Invoke-WebRequest `
-Uri "https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/refs/heads/main/Azure-NVMe-Utils/Azure-NVMe-Conversion.ps1" `
-OutFile ".\Azure-NVMe-Conversion.ps1"
Skrip adalah bagian dari repositori SAP-on-Azure-Scripts-and-Utilities dan dilisensikan di bawah lisensi MIT.
Jalankan konversi
Gunakan sakelar -FixOperatingSystemSettings agar skrip secara otomatis mengonfigurasi stornvme driver untuk startup. Konfigurasi ini diperlukan agar Windows mengenali pengontrol NVMe setelah VM dimulai ulang. Menghilangkannya mengharuskan Anda mengatur driver secara manual sebelum konversi.
.\Azure-NVMe-Conversion.ps1 `
-ResourceGroupName "<resource-group-name>" `
-VMName "<vm-name>" `
-NewControllerType NVMe `
-VMSize "<target-sku>" `
-FixOperatingSystemSettings `
-StartVM `
-WriteLogfile
Skrip melakukan langkah-langkah berikut secara otomatis:
- Memvalidasi versi modul, keberadaan VM, jenis OS, versi Windows, Gen2, jenis pengontrol saat ini, dan kemampuan NVMe dengan SKU VM.
- Secara opsional memperbaiki layanan driver
stornvme(sc.exe config stornvme start=boot) dan memvalidasi pengaturan OS lainnya untuk kesiapan NVMe (dengan-FixOperatingSystemSettings). - Menghentikan dan membatalkan alokasi VM.
- Memperbarui
supportedCapabilities.diskControllerTypeskeSCSI, NVMepada disk OS melalui metode RESTPATCH. - Mengubah ukuran VM ke SKU target.
- Memulai VM (dengan
-StartVM).
Petunjuk / Saran
Skrip menyediakan perintah untuk mengembalikan perubahan pada output di akhir proses yang berhasil dijalankan. Simpan perintah tersebut sebelum Anda menutup sesi sehingga Anda dapat kembali ke SCSI jika diperlukan.
Perubahan apa untuk VM Windows Anda
Tidak seperti Linux, Windows menggunakan huruf drive daripada jalur perangkat, sehingga disk OS tetap C:\ setelah konversi. Namun, antarmuka disk yang mendasar berubah. Penetapan disk data mungkin bergeser jika Anda tidak menggunakan pengidentifikasi disk persisten.
| Disk | VM berkemampuan SCSI | VM berkemampuan NVMe |
|---|---|---|
| Disk sistem operasi |
C:\ (tidak berubah) |
C:\ (tidak berubah) |
| Disk sementara |
D:\ (biasanya) |
D:\ (biasanya, RAW pada SKU v6) |
| Disk penyimpanan data | Ditetapkan berdasarkan urutan LUN | Ditentukan berdasarkan urutan namespace NVMe |
Important
Pada SKU v6, disk sementara berstatus RAW dan tidak dipraformat dengan NTFS. Gunakan skrip startup atau ekstensi skrip kustom untuk memformat dan memasangnya di setiap startup.
Memverifikasi konversi
Setelah VM dimulai ulang, konfirmasikan bahwa jenis pengontrol disk berhasil berubah.
Konfirmasi dengan menggunakan PowerShell
$vm = Get-AzVM -ResourceGroupName "<resource-group-name>" -VMName "<vm-name>"
$vm.StorageProfile.DiskControllerType
Outputnya harus NVMe.
Konfirmasi dengan menggunakan Device Manager di dalam VM
- Buka Device Manager.
- Perluas pengontrol Penyimpanan.
- Konfirmasikan bahwa Pengontrol Ekspres NVM Standar tercantum.
Kembali ke SCSI
Jika Anda perlu menggulung balik, jalankan ulang skrip dengan -NewControllerType SCSI dan SKU VM asli:
.\Azure-NVMe-Conversion.ps1 `
-ResourceGroupName "<resource-group-name>" `
-VMName "<vm-name>" `
-NewControllerType SCSI `
-VMSize "<original-SKU>" `
-StartVM `
-WriteLogfile