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 とない 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 に移行するには、次の大まかな手順に従います。
- VM シリーズが NVMe をサポートしていることを確認します。
- オペレーティング システムの前提条件を確認します。
- VM を NVMe に変換します。
- 変換を確認します。
Note
ブート時の動作、ストレージ ドライバー、フィルター ドライバー、またはディスク列挙を変更できるサード パーティ製ソフトウェアを実行するカスタマイズされた VM は、現在サポートされている移行シナリオではありません。 たとえば、特定のバックアップ、セキュリティ、エンドポイント保護、ストレージ管理製品などがあります。 これらの構成の場合、Azureサポートでは、移行エラーを診断または修復する機能が制限されている可能性があります。 運用環境のワークロードに進む前に、代表的な非運用 VM で変換をテストします。
1. 仮想マシン シリーズが NVMe をサポートしているかどうかを確認する
Azure Boost 可用性テーブルには、NVMe 接続ディスクをサポートする VM サイズが一覧表示されます。
2. 前提条件を確認する
開始する前に、以下の前提条件を確認してください。
- Azure サブスクリプションと、SCSI から NVMe または NVMe から SCSI に変換する必要がある仮想マシン
- PowerShell と Az モジュールのインストールと構成
- Azure リソースでスクリプトを実行するための適切なアクセス許可
3. 使用方法
スクリプトを実行するには、管理者として PowerShell を開き、次の手順に従います。
- PowerShell をインストールするか、Azure Cloud Shellでスクリプトを実行します。
ヒント
PowerShell ドキュメントを使用して PowerShell をインストールします。
- 署名されていない PowerShell スクリプト ファイルを許可します。
Set-ExecutionPolicy -ExecutionPolicy Unrestricted
-
Connect-AzAccountを使用してAzure アカウントに接続します。
Connect-AzAccount
- サブスクリプションに接続していることを確認します。 サブスクリプションを変更するには、
Set-AzContextを使用します。
Select-AzSubscription -Subscription xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
- スクリプトをダウンロードします。
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"
- 変換スクリプトを実行します。
.\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が変更を解決する時間。 | いいえ |
このスクリプトでは、次の手順を行います。
- ターゲット VM SKU の Az モジュール バージョン、VM の存在、OS の種類、世代、現在のコントローラーの種類、NVMe 機能を検証します。
-
-FixOperatingSystemSettingsを使用して、Azure実行コマンドを使用して、NVMe のゲスト OS を検証して構成します。- Linux では、NVMe ドライバーが
initrd/initramfsされていることを確認し、nvme_core.io_timeout=240を設定し、非推奨のデバイス名/etc/fstabチェックします。 - Windowsで、起動時に起動するように
stornvmeドライバーを構成します (sc.exe config stornvme start=boot)。
- Linux では、NVMe ドライバーが
- VM を停止して割り当てを解除します。
- OS ディスク上の
supportedCapabilities.diskControllerTypesにSCSI, NVMeを更新します。 - VM のサイズをターゲット SKU に変更し、ディスク コントローラーの種類を NVMe に設定します。
- (
-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