Hyper-V DDA を利用して NVMe SSD を仮想マシンにパススルー接続

1 minute read

こんにちは。 Hyper-V でサポートされている DDA (Discrete Device Assignment) を利用し、物理ホストに搭載した NVMe SSD を仮想マシンにパススルー接続する手順をご紹介します。

DDA (Discrete Device Assignment) とは

DDA (個別のデバイス割り当て) を利用すると、仮想マシンから物理 PCIe ハードウェアに直接アクセスできます。 GPU や NVMe など物理サーバーの PCI に接続されたデバイスを仮想マシンにパススルー接続をさせることができるので、 仮想マシンが物理デバイスのパフォーマンスを直接得ることができるようになります。

DDA の利用にあたり下記のOS 要件や制約があるため、利用を検討する際に注意してください。

サポートされている Virtual Machines とゲストオペレーティングシステム

第1または第2世代の Vm でサポートされています。下記の OS がサポートされています。

  • Windows 10
  • Windows Server 2019
  • Windows Server 2016
  • windows server 2012R2 (KB3133690 の適用が必要)
  • [Linux OS] (https://docs.microsoft.com/ja-jp/windows-server/virtualization/hyper-v/supported-linux-and-freebsd-virtual-machines-for-hyper-v-on-windows)

仮想マシンの制限事項

物理サーバーのハードウェアを仮想マシンにパススルー接続するため、仮想マシンの利用で以下の機能が利用できなくなります。

  • VM の保存/復元
  • VM のライブマイグレーション
  • 動的メモリの使用
  • 高可用性 (HA) クラスターへの VM の追加

DDA の設定

DDA の利用に問題がなければ実際に設定してみましょう。下記の流れで仮想マシンに NVMe SSD をパススルー接続します。

  1. 仮想マシンの自動停止アクションをシャットダウンにする
  2. デバイスの場所のパスを特定する
  3. デバイスを無効にする
  4. デバイスのマウントを解除する
  5. ゲスト VM へのデバイスの割り当て
  6. ゲスト VM で NVMe SSD のセットアップ

1. 仮想マシンの自動停止アクションをシャットダウンにする

  1. DDA を設定する仮想マシンは保存状態にできないため、自動停止アクションをシャットダウンに変更します。
     set-vm -VMName ”仮想マシン名” -AutomaticStopAction TurnOff
    

2. デバイスの場所のパスを特定する

デバイスの 場所のパス を特定するには、デバイスマネージャーから確認します。

  1. デバイスマネージャーを開いて、記憶域コントローラーを確認します。
  2. 仮想マシンにパススルー接続するデバイスのプロパティを開き、詳細タブから場所のパス を探します。
  3. 場所のパスを確認できたら、変数に入れておきます。
     $locationpath = "パスを入力"
    

3. デバイスを無効にする

仮想マシンにデバイスを割り当てるため、物理ホストではデバイスを無効にします。

  1. デバイスマネージャーからパススルーするデバイスを右クリックして、デバイスを無効にする をクリックします。
  2. デバイスが無効になると、下矢印が付きます。

4. デバイスのマウントを解除する

物理ホストからデバイスのマウントを解除し、仮想マシンに割り当てできるようにします。

  1. コマンドを実行して、デバイスのマウントを解除します。
     Dismount-VMHostAssignableDevice -LocationPath $locationpath
    

    そうすると、デバイスマネージャーから無効にしたデバイスの表示が消えます。

5. ゲスト VM へのデバイスの割り当て

仮想マシンにデバイスを割り当てます。

  1. コマンドを実行して、仮想マシンにデバイスを割り当てます。
     Add-VMAssignableDevice -LocationPath $locationPath -VMName "仮想マシン名"
    

これで NVMe のパススルー設定は完了です。仮想マシンで確認してみてください。 なお、仮想マシンで動的メモリが有効になっている場合はエラーが表示されるので、正しい状態に直してから実行する必要があります。

6. ゲスト VM で NVMe SSD のセットアップ

仮想マシンを起動してログイン後、デバイスマネージャーを確認してください。 仮想マシンの記憶域コントローラーに、標準 NVMe Express コントローラーが接続されていることが確認できます。

ディスクドライブを見ると、物理ディスクがマウントされているのがわかります。

そのため、ディスクの管理から NVME ディスクをフォーマットします。

1.6TB のNVMe が仮想マシンで利用できるようになりました。

まとめ

DDA の機能により、PCI に接続された物理デバイスを簡単に仮想マシンにパススルー接続できます。パフォーマンスが求められる仮想マシンで利用すると非常に効果があると思いますので、ディスク IO が遅くて困っている方は是非試してみてください。