Linux ve Windows VM'lerini SCSI'den NVMe'ye dönüştürme

Azure sanal makineler (VM) iki depolama denetleyicisi arabirimini destekler: Küçük Bilgisayar Sistemi Arabirimi (SCSI) ve NVM Express (NVMe). SCSI, bilgisayarlar ve çevre birimleri arasında fiziksel bağlantı ve veri aktarımı sağlayan eski bir standarttır. NVMe benzer bağlantı sağlar, ancak sunucular ve depolama sistemleri arasında veri aktarımı için daha hızlı ve daha verimli bir arabirimdir.

Bu makalede, Azure Boost ve Azure NVMe Dönüştürme betiğini kullanarak bir Azure VM'yi SCSI disk denetleyicisinden NVMe'ye nasıl dönüştürdüğünüz gösterilmektedir. Aynı betik ve yordam aşağıdakiler için de geçerlidir:

  • Linux ve Windows VM'leri.
  • Veri diskleri ve geçici disk içeren veya olmayan VM'ler.

Azure, SCSI depolama alanı sağlayan VM tekliflerinde SCSI arabirimini desteklemeye devam eder. Ancak, tüm yeni VM serileri SCSI'yi ileriye dönük bir seçenek olarak içermez.

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. İşletim sisteminin diskleri kullanma şeklini değiştirir.

Disket SCSI VM NVMe VM (geçici diskli v5) NVMe VM (v6)
İş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

Azure Boost kullanarak Azure VM'nizi SCSI'den NVMe'ye dönüştürmek, bu performans iyileştirmelerinden tam olarak yararlanmanıza ve bulut bilişim alanında rekabet avantajını korumanıza yardımcı olabilir.

VM'yi SCSI'dan NVMe'ye geçirme

SCSI'den NVMe'ye geçiş yapmak için şu üst düzey adımları izleyin:

  1. VM serinizin NVMe'i desteklediğini denetleyin.
  2. İşletim sisteminizin önkoşullarını denetleyin.
  3. VM'nizi NVMe'ye dönüştürün.
  4. Dönüştürmeyi doğrulayın.

Note

Önyükleme zamanı davranışını, depolama sürücülerini, filtre sürücülerini veya disk numaralandırmasını değiştirebilen üçüncü taraf yazılım çalıştıran özelleştirilmiş VM'ler şu anda desteklenen bir geçiş senaryosu değildir. Bazı yedekleme, güvenlik, uç nokta koruması ve depolama yönetimi ürünleri örnek olarak verilebilir. Bu yapılandırmalar için Azure Desteğinin geçiş hatalarını tanılama veya düzeltme yeteneği sınırlı olabilir. Üretim iş yükleriyle devam etmeden önce temsili bir üretim dışı VM'de dönüştürmeyi test edin.

1. Sanal makine serinizin NVMe'i desteklenip desteklemediğini denetleyin

Azure Boost kullanılabilirlik tablosu, NVMe ekli diskleri destekleyen VM boyutlarını listeler.

2. Önkoşulları denetleyin

Başlamadan önce aşağıdaki önkoşullara sahip olduğunuzdan emin olun:

  • SCSI'den NVMe'ye veya NVMe'den SCSI'ye dönüştürmeniz gereken bir Azure aboneliği ve sanal makine
  • PowerShell ve Az modülü yüklendi ve yapılandırıldı
  • Azure kaynaklarında komut dosyalarını çalıştırmak için uygun izinler

3. Kullanım

Betiği çalıştırmak için PowerShell'i yönetici olarak açın ve şu adımları izleyin:

  1. PowerShell'i yükleyin veya betiği Azure Cloud Shell'de çalıştırın.

Tavsiye

PowerShell belgelerini kullanarak PowerShell'i yükleyin.

  1. İmzasız PowerShell betik dosyalarına izin ver.
Set-ExecutionPolicy -ExecutionPolicy Unrestricted
  1. kullanarak Connect-AzAccountAzure hesabınıza bağlanın.
Connect-AzAccount
  1. Aboneliğinize bağlı olduğunuzdan emin olun. Aboneliği değiştirmek için kullanın Set-AzContext.
Select-AzSubscription -Subscription xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
  1. Betiği indirin.
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"
  1. Dönüştürme betiğini çalıştırın.
.\Azure-NVMe-Conversion.ps1

Note

Farklı kaynak (geçici) disk desteğine sahip VM boyutları arasında dönüştürme gerçekleştiriyorsanız, özellik için VMTempDiskResizePreview Azure aboneliğinizin kayıtlı olması gerekir. Özellik kayıtlı değilse betik bir hatayla sonlanır. Aşağıdaki komutu kullanarak özelliği kaydedin, otomatik onayın geçerlilik kazanması için 10 dakika bekleyin ve betiği yeniden çalıştırın.

Register-AzProviderFeature -FeatureName VMTempDiskResizePreview -ProviderNamespace Microsoft.Compute

Example

.\Azure-NVMe-Conversion.ps1 -ResourceGroupName <your-RG> -VMName <your-VMname> -NewControllerType <NVMe/SCSI> -VMSize <new-VM-SKU> -StartVM

Betiğin aşağıdaki parametreleri vardır.

Parametre Açıklama Gerekli
-ResourceGroupName VM'nizin kaynak grubu adı. Evet
-VMName Azure üzerindeki VM'nizin adı. Evet
-NewControllerType VM'yi (NVMe veya SCSI) dönüştürmek için depolama denetleyicisi türü. Evet
-VMSize VM'nin dönüştürüleceği Azure VM SKU'su. Evet
-StartVM Dönüştürmeden sonra VM'yi başlatın. Hayı
-FixOperatingSystemSettings Azure Çalıştırma Komutlarını kullanarak işletim sistemi ayarlarını otomatik olarak düzeltin. Hayı
-WriteLogfile Günlük dosyası oluşturun. Hayı
-IgnoreSKUCheck VM SKU denetimini göz ardı edin. Hayı
-IgnoreWindowsVersionCheck Windows sürüm denetimini göz ardı edin. Hayı
-IgnoreAzureModuleCheck Yüklü Azure modülleri için denetimi ç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 Sanal makineyi başlatmadan önce Azure’da değişikliklerin uygulanması için gereken süre. Hayı

Komut dosyası aşağıdaki adımları gerçekleştirir:

  1. Hedef VM SKU'sunun Az modülü sürümlerini, VM varlığını, işletim sistemi türünü, neslini, geçerli denetleyici türünü ve NVMe özelliğini doğrular.
  2. ile-FixOperatingSystemSettings, Azure Çalıştır Komutunu kullanarak NVMe için konuk işletim sistemini doğrular ve yapılandırr:
    • Linux'ta NVMe sürücüsünün içinde initrd/initramfsolup olmadığını denetler, ayarlar nvme_core.io_timeout=240ve kullanım dışı bırakılan cihaz adlarını denetler./etc/fstab
    • Windows'da, stornvme sürücüsünü önyüklemede başlayacak şekilde yapılandırır (sc.exe config stornvme start=boot).
  3. VM'yi durdurur ve serbest bırakır.
  4. İşletim sistemi diskinde supportedCapabilities.diskControllerTypes öğesini SCSI, NVMe olarak güncelleştirir.
  5. VM'yi hedef SKU'ya yeniden boyutlandırıp disk denetleyicisi türünü NVMe olarak ayarlar.
  6. Sanal makineyi (-StartVM ile) başlatır.

4. Dönüştürmeyi doğrulayın

PowerShell kullanarak onaylayın

VM yeniden başlatıldıktan sonra disk denetleyicisi türünün başarıyla değiştiğini onaylayın.

$vm = Get-AzVM -ResourceGroupName "<resource-group-name>" -VMName "<vm-name>"
$vm.StorageProfile.DiskControllerType

Sonucu konuk içinde kontrol edin

komutunu kullanarak nvme cihazları denetleyin. nvme komutu eksikse, nvme-cli paketini yükleyin.

nvme list

Çıkış, işletim sistemi diskini ve veri disklerini gösterir.

Tavsiye

İstediğiniz zaman SCSI'ye geri dönebilirsiniz. Betik, başarıyla tamamlandığında orijinal yapılandırmanıza geri dönmeniz için sonunda bir komut sunar. Oturumu kapatmadan önce bu komutu kaydedin.

Geri dönmeniz gerekirse, betiği -NewControllerType SCSI ve orijinal VM SKU'su ile yeniden çalıştırın:

.\Azure-NVMe-Conversion.ps1 -ResourceGroupName <your-RG> -VMName <your-VMname> -NewControllerType SCSI -VMSize <original-SKU> -StartVM