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 に移行するには、次の大まかな手順に従います。
- VM シリーズが NVMe をサポートしていることを確認します。
- オペレーティング システムの前提条件を確認します。
- VM を NVMe に変換します。
- 変換を確認します。
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 ディスク上の
SCSI, NVMeにsupportedCapabilities.diskControllerTypesを更新します。 - 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