Linux および Windows VM を SCSI から NVMe に変換する

Azure仮想マシン (VM) では、Small Computer System Interface (SCSI) と NVM Express (NVMe) の 2 つのストレージ コントローラー インターフェイスがサポートされます。 SCSI は、コンピューターと周辺機器間の物理的な接続とデータ転送を提供する従来の標準です。 NVMe は同様の接続を提供しますが、サーバーとストレージ システム間のデータ転送のためのより高速で効率的なインターフェイスです。

この記事では、Azure Boost と Azure NVMe 変換スクリプトを使用して、Azure VM を SCSI ディスク コントローラーから NVMe に変換する方法について説明します。 同じスクリプトとプロシージャは、次の場合に適用されます。

  • Linux および Windows VM。
  • データ ディスクと一時ディスクの有無に関係なく VM。

Azureは、SCSI ストレージを提供する VM オファリング上の SCSI インターフェイスを引き続きサポートします。 ただし、今後、すべての新しい VM シリーズに SCSI が含まれているわけではありません。

お使いの VM では何が変わりますか?

ホスト インターフェイスを SCSI から NVMe に変更しても、リモート ストレージ (OS ディスクまたはデータ ディスク) は変更されません。 オペレーティング システムがディスクを使用する方法が変更されます。

Disk SCSI VM NVMe VM (v5 と一時ディスク) NVMe VM (v6)
OSディスク /dev/sda /dev/nvme0n1 /dev/nvme0n1
一時ディスク /dev/sdb /dev/sda /dev/nvme1n1
最初のデータ ディスク /dev/sdc /dev/nvme0n2 /dev/nvme0n2

Azure Boost を使用してAzure VM を SCSI から NVMe に変換すると、これらのパフォーマンスの向上を最大限に活用し、クラウド コンピューティング環境で競争力を維持するのに役立ちます。

SCSI から NVMe への VM の移行

SCSI から NVMe に移行するには、次の大まかな手順に従います。

  1. VM シリーズが NVMe をサポートしていることを確認します。
  2. オペレーティング システムの前提条件を確認します。
  3. VM を NVMe に変換します。
  4. 変換を確認します。

1. 仮想マシン シリーズが NVMe をサポートしているかどうかを確認する

Azure Boost 可用性テーブルには、NVMe 接続ディスクをサポートする VM サイズが一覧表示されます。

2. 前提条件を確認する

開始する前に、以下の前提条件を確認してください。

  • Azure サブスクリプションと、SCSI から NVMe または NVMe から SCSI に変換する必要がある仮想マシン
  • PowerShell と Az モジュールのインストールと構成
  • Azure リソースでスクリプトを実行するための適切なアクセス許可

3. 使用方法

スクリプトを実行するには、管理者として PowerShell を開き、次の手順に従います。

  1. PowerShell をインストールするか、Azure Cloud Shellでスクリプトを実行します。

ヒント

PowerShell ドキュメントを使用して PowerShell をインストールします。

  1. 署名されていない PowerShell スクリプト ファイルを許可します。
Set-ExecutionPolicy -ExecutionPolicy Unrestricted
  1. Connect-AzAccountを使用してAzure アカウントに接続します。
Connect-AzAccount
  1. サブスクリプションに接続していることを確認します。 サブスクリプションを変更するには、 Set-AzContextを使用します。
Select-AzSubscription -Subscription xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
  1. スクリプトをダウンロードします。
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. 変換スクリプトを実行します。
.\Azure-NVMe-Conversion.ps1

Note

リソース (一時) ディスクのサポートが異なる VM サイズ間で変換する場合は、Azure サブスクリプションをVMTempDiskResizePreview機能に登録する必要があります。 この機能が登録されていない場合、スクリプトはエラーで終了します。 次のコマンドを使用して機能を登録し、自動承認が有効になるまで 10 分待ってから、スクリプトを再実行します。

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

スクリプトには、次のパラメーターがあります。

パラメーター 説明 必須
-ResourceGroupName VM のリソース グループ名。 イエス
-VMName Azure上の VM の名前。 イエス
-NewControllerType VM を (NVMe または SCSI) に変換するストレージ コントローラーの種類。 イエス
-VMSize VM を変換するAzure VM SKU。 イエス
-StartVM 変換後に VM を起動します。 いいえ
-FixOperatingSystemSettings Azure実行コマンドを使用して、OS 設定を自動的に修正します。 いいえ
-WriteLogfile ログ ファイルを作成します。 いいえ
-IgnoreSKUCheck VM SKU のチェックを無視します。 いいえ
-IgnoreWindowsVersionCheck Windowsバージョンのチェックは無視します。 いいえ
-IgnoreAzureModuleCheck インストールされているAzure モジュールのチェックを実行しないでください。 いいえ
-IgnoreOSCheck OS の準備状況を確認しないでください。 OS の準備ができていることが期待されます。 いいえ
-SleepSeconds VM を開始する前に、Azureが変更を解決する時間。 いいえ

このスクリプトでは、次の手順を行います。

  1. ターゲット VM SKU の Az モジュール バージョン、VM の存在、OS の種類、世代、現在のコントローラーの種類、NVMe 機能を検証します。
  2. -FixOperatingSystemSettingsを使用して、Azure実行コマンドを使用して、NVMe のゲスト OS を検証して構成します。
    • Linux では、NVMe ドライバーが initrd/initramfsされていることを確認し、 nvme_core.io_timeout=240を設定し、非推奨のデバイス名 /etc/fstab チェックします。
    • Windowsで、起動時に起動するようにstornvme ドライバーを構成します (sc.exe config stornvme start=boot)。
  3. VM を停止して割り当てを解除します。
  4. OS ディスク上のSCSI, NVMesupportedCapabilities.diskControllerTypesを更新します。
  5. VM のサイズをターゲット SKU に変更し、ディスク コントローラーの種類を NVMe に設定します。
  6. ( -StartVMを使用して) VM を起動します。

4. 変換を確認する

PowerShell を使用して確認する

VM の再起動後、ディスク コントローラーの種類が正常に変更されたことを確認します。

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

ゲスト内の結果を確認する

nvme コマンドを使用して、デバイスを確認します。 nvme コマンドが見つからない場合は、nvme-cli パッケージをインストールします。

nvme list

出力には、OS ディスクとデータ ディスクが表示されます。

ヒント

SCSI にいつでも戻すことができます。 このスクリプトは、正常な実行の最後に、元の構成に戻すコマンドを提供します。 セッションを閉じる前に、そのコマンドを保存します。

ロールバックする必要がある場合は、 -NewControllerType SCSI と元の VM SKU を使用してスクリプトを再実行します。

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