Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makalede, Linux çalıştıran sanal makineleri (VM) SCSI'den NVMe depolama alanına dönüştürme işlemi ele alınıyor. NVMe'ye geçiş yaparak geliştirilmiş performans ve ölçeklenebilirlik özelliklerinden yararlanabilirsiniz.
SCSI ve NVMe karşılaştırması
Azure VM'leri iki tür depolama arabirimini destekler: Küçük Bilgisayar Sistemi Arabirimi (SCSI) ve NVMe. SCSI arabirimi, bilgisayarlar ve çevre birimi cihazları arasında fiziksel bağlantı ve veri aktarımı sağlayan eski bir standarttır. NVMe, bağlantı ve veri aktarımı sağladığı için SCSI'ye benzer, ancak NVMe sunucular ve depolama sistemleri arasında veri aktarımı için daha hızlı ve daha verimli bir arabirimdir.
SCSI arabirimi VM'leri için destek
Azure, SCSI depolama alanı sağlayan VM tekliflerinin sürümlerinde SCSI arabirimini desteklemeye devam eder. Ancak, tüm yeni VM serilerinin bir seçenek olarak SCSI depolama alanı yoktur.
VM'niz için neler değişiyor?
Konak arabiriminin SCSI'den NVMe'ye değiştirilmesi uzak depolama alanını (işletim sistemi diski veya veri diskleri) değiştirmez, ancak işletim sistemlerinin diskleri görme şeklini değiştirir.
| Disket | SCSI özellikli VM | SCSI tempdisk ile NVMe VM (örneğin, Ebds_v5) | NVMe VM üzerinde NVMe tempdisk |
|---|---|---|---|
| İşletim sistemi diski | /dev/sda | /dev/nvme0n1 | /dev/nvme0n1 |
| Geçici Disk | /dev/sdb | /dev/sda | /dev/nvme1n1 |
| İlk Veri Diski | /dev/sdc | /dev/nvme0n2 | /dev/nvme0n2 |
Tavsiye
Bazı VM türlerinin birden fazla geçici diski vardır (örneğin, E64ds_v6)
Aşağıdaki bölümlerde Azure Boost kullanarak Azure VM'nizi SCSI'den NVMe'ye dönüştürmek için bu performans iyileştirmelerinden tam olarak yararlanabilmenizi ve bulut bilişim alanında rekabet avantajını korumanızı sağlayan bir kılavuz sağlıyoruz.
Sanal makinenizi (VM) SCSI'den NVMe'ye geçirme
SCSI'den NVMe'ye geçiş yapmak için bazı adımların izlenmesi gerekir:
- Sanal makine serinizin NVMe'i desteklenip desteklemediğini denetleyin
- İŞLETIM sisteminizin NVMe hazır olup olmadığını denetleyin
- Sanal makinenizi NVMe'ye dönüştürme
- İşletim sisteminizi denetleme
1. Sanal makine serinizin NVMe'i desteklenip desteklemediğini denetleyin
NVMe bağlı disklerini desteklemek için desteklenen sanal makineler, kullanılabilirlik tablosundaki Azure Boost genel bakış sitesinde açıklanmıştır.
2. NVMe hazır olup olmadığını kontrol edin
İşletim sisteminin NVMe cihazlarını desteklemesi gerekir; örneğin, cihaz sürücüleri ve initrdm, önyükleme sırasında kullanılan geçici dosya sisteminin hazırlanması gerekir. Buna ek olarak, SCSI cihaz adını (/dev/sdX) kullanıp kullanmayabileceğinizi denetledikleri için dosya sistemlerinin bağlama noktalarını doğrulamanız gerekir.
Geçiş betiği, -FixOperatingSystemSettings kullandığınızda sizin için bu hazırlık denetimlerini otomatik olarak üstlenebilir.
2.1 VM'nin Denetleyici Türünü Denetleme
2.1.1 PowerShell kullanarak Denetleyici Türünü Denetleme
PS C:\Users\user1> $vm = Get-AzVM -name [your-vm-name]
PS C:\Users\user1> $vm.StorageProfile.DiskControllerType
SCSI
PS C:\Users\user1>
2.1.2 Azure CLI kullanarak Denetleyici Türünü Denetleme
$ az vm show --name [your-vm-name] --resource-group [your-resource-group-name]
{
"additionalCapabilities": {
...
"storageProfile": {
...
"diskControllerType": "SCSI",
...
2.1.3 Azure portalını kullanarak Denetleyici Türünü Denetleme
2.2 Geçişe hazırlanma
Geçiş betiği, -FixOperatingSystemSettings parametresini kullanırken önkoşullarla otomatik olarak ilgilenebilir.
Gerekli değişiklikleri el ile halletmek istiyorsanız doğrulayın
- Yüklenen NVMe modülleri ve initrd/initramfs parçası
- GRUB yapılandırması nvme_core.io_timeout=240 parametresini içerir
- Cihazlar için /etc/fstab denetimleri
initrd/initramfs'ı güncelleştirmek için gerekli tüm komutları ele almak için lütfen işletim sistemi satıcınıza başvurun.
2.2.1 PowerShell'i Hazırlama
Tavsiye
Betiği Azure CloudShell'de çalıştırırken bu adım gerekli değildir
PowerShell'i kullanarak yükleme https://aka.ms/powershell
Connect-AzAccountkullanarak Azure'a bağlanın veSelect-AzSubscription -Subscription [your-subscription-id]kullanarak doğru aboneliği seçinSet-ExecutionPolicy -ExecutionPolicy Unrestrictedkullanarak Yürütme İlkesini ayarla
2.2.2 Komut dosyasını indirin
Betiği Bir PowerShell komutu kullanarak indirebilirsiniz
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 Geçişi çalıştırma
Betiğin birden çok parametresi vardır:
| Parametre | Açıklama | Gerekli |
|---|---|---|
-ResourceGroupName |
VM'nizin Kaynak Grubu Adı | Evet |
-VMName |
Azure'da Sanal Makinenizin adı | Evet |
-NewControllerType |
VM'nin dönüştürülmesi gereken depolama denetleyicisi türü (NVMe veya SCSI) | Evet |
-VMSize |
VM'yi dönüştürmek istediğiniz Azure VM SKU'su | Evet |
-StartVM |
Dönüştürmeden sonra VM'yi başlatma | Hayı |
-IgnoreSKUCheck |
VM SKU denetimini yoksay | Hayı |
-IgnoreWindowsVersionCheck |
Windows Sürümü kontrolünü görmezden gel | Hayı |
-FixOperatingSystemSettings |
Azure RunCommands kullanarak işletim sistemi ayarlarını otomatik olarak düzeltme | Hayı |
-WriteLogfile |
Günlük Dosyası Oluşturma | Hayı |
-IgnoreAzureModuleCheck |
Yüklü Azure modüllerini denetlemeyi çalıştırmayın | Hayı |
-IgnoreOSCheck |
İşletim sistemi hazır olup olmadığını denetlemeyin, beklenti işletim sisteminin hazır olmasıdır | Hayı |
-SleepSeconds |
VM'yi başlatmadan önce Azure'ın değişiklikleri düzenleme zamanı. | Hayı |
Örnek Komut:
# Example usage
.\Azure-NVMe-Conversion.ps1 -ResourceGroupName <your-RG> -VMName <your-VMname> -NewControllerType <NVMe/SCSI> -VMSize <new-VM-SKU> -StartVM -FixOperatingSystemSettings
Tavsiye
İstediğiniz zaman SCSI'ye geri dönebilirsiniz. Betik, doğrudan özgün yapılandırmanıza geri dönmek için sizinle bir komut paylaşır.
2.3.1 Örnek çıkış
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>
daha sonra işletim sistemine erişme konusunda sorun yaşıyorsanız kontrol etmeyi deneyin
Linux işletim sistemleri için Seri Konsol
Azure portalındaki işletim sisteminden ekran görüntüsü
Bir şey olduğunda, betiğin sonunda gösterilen komutu kullanarak her zaman SCSI'ye geri dönebilirsiniz:
.\Azure-NVMe-Conversion.ps1 -ResourceGroupName testrg -VMName testvm -NewControllerType SCSI -VMSize Standard_E4s_v3 -StartVM
2.4 Sonucu denetleyin
2.4.1 Azure portalında sonucu denetleme
2.4.2 PowerShell'de sonucu denetleme
PS C:\Users> $vm = Get-AzVM -name [your-vm-name]
PS C:\Users> $vm.StorageProfile.DiskControllerType
NVMe
PS C:\Users>
3. İşletim sisteminizi denetleyin
3.1 Cihazları denetleme
Nvme komutunu kullanarak cihazları kontrol edebilirsiniz. Nvme komutu eksikse "nvme-cli" paketini yükleyin.
nvme list
Çıktıda işletim sistemi diski ve veri diskleri gösterilmelidir.
3.2 NVMe için udev dosyası alma (İsteğe bağlı)
SCSI sanal makinelerinde waagent (Azure aracısı) ile tümleşik udev kuralları, veri disklerini tanımlamak için içinde /dev/disk/azure/scsi1/lunX bağlantılar oluşturdu. SCSI artık kullanılmadığından kurallar geçerli değildir.
NVMe özellikli udev kurallarını dağıtmak için kullanılabilen iki seçenek arasında dizininde /dev/disk/azure/data/by-lunyeni sembolik bağlantılar görürsünüz. Bu dizin, öğesinin /dev/disk/azure/scsi1yerini alır.
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 #
3.2.1 udev dosyasının el ile indirilmesi
Yeni udev kuralları dosyasını indirmek için şu komutu kullanın:
curl https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/refs/heads/main/Azure-NVMe-Utils/88-azure-nvme-data-disk.rules ve ardından udev kurallarını yeniden yüklemek için komutunu çalıştırın udevadm control --reload-rules && udevadm trigger .
3.2.2 Azure VM yardımcı programlarını kullanarak paketleri yüklemeye hazır
Birden çok dağıtım için /results/cjp256/azure-vm-utils/dizininde önceden derlenmiş paketler vardır.
Paketi tümleştirmek için birden çok dağıtım zaten başlatıldı. Doğrudan depolarından yükleyebilirsiniz.
| Dağıtım | En düşük sürüm |
|---|---|
| SUSE | SLES 15 SP5 veya üzeri |
| RedHat | RHEL 9.6 veya üzeri |
| Ubuntu | Ubuntu 25.04 veya üzeri |