よろづやアンテナ

ITから生活の参考になる情報を備忘録代わりに残していきます

Hyper-V2016の新機能、Discrete Device AssignmentのデバイスパススルーでNVMeへ接続

Hyper-V Server 2016 NVMeストレージデバイスの導入について、全く情報がないのですが、MSのこちらの情報が検索したのでメモ。

 

ディスクリートバイス割り当てを使用したNVMeストレージデバイスの導入

https://docs.microsoft.com/en-us/windows-server/virtualization/hyper-v/deploy/deploying-storage-devices-using-dda


分かりにくいので日本語に機械翻訳しています。


適用対象:Microsoft Hyper-V Server 2016、Windows Server 2016

Windows Server 2016から、ディスクリートバイス割り当て(DDA)を使用して、PCIeデバイス全体をVMに渡すことができます。これにより、VM内のNVMeストレージやグラフィックスカードなどのデバイスへの高性能アクセスが可能になり、デバイスのネイティブドライバを活用することができます。

 

ディスクリートバイス割り当てを使用して展開するデバイスのための計画 DDAでデバイスを使用するには3つのステップがあります。

 

DDA用にVMを構成する
ホストパーティションからデバイスをディスマウントする
ゲストVMへのデバイスの割り当て
すべてのコマンドは、Windows PowerShellコンソールのホスト上で管理者として実行できます。


DDA用にVMを構成する
ディスクリートバイス割り当ては、VMにいくつかの制限を課し、次のステップを実行する必要があります。

TurnOffするVMの「自動停止アクション」を構成

# Set-VM -Name VMName -AutomaticStopAction TurnOff


バイスのロケーションパスの検索
ホストからデバイスをディスマウントしてマウントするには、PCI Locationパスが必要です。場所パスの例は、次のようになります"PCIROOT(20)#PCI(0300)#PCI(0000)#PCI(0800)#PCI(0000)"

 

バイスを取り外す

# Dismount-VMHostAssignableDevice -LocationPath $locationPath


ゲストVMへのデバイスの割り当て
最後のステップは、VMがデバイスにアクセスする必要があることをHyper-Vに伝えることです。上記の場所パスに加えて、VMの名前を知る必要があります。

# Add-VMAssignableDevice -LocationPath $locationPath -VMName VMName


これをしないと利用できないのか、そもそもDDAとは何かというところなんですが、以下の海外サイトが分かりやすいです。元がイタリア語なので機械翻訳しています。

https://vinfrastructure.it/2015/11/device-passthrough-microsoft-hyper-v/

 

最新のMicrosoft Windows Server 2016テクニカルプレビュー4は、Hyper-Vの興味深い新機能、Discrete Device Assignmentを追加しました。この機能は、Hyper-V上で実行されている仮想マシンの「デバイスパススルー」を実装しています。ユーザーはシステム内の一部のPCI Expressバイスを取り出し、ゲストVMに直接渡すことができます。

VMwareユーザーは、VMware vSphere 4.0(および仮想ハードウェア7)またはKVMで導入されたVMDirectpath I / Oを認識することがあります。Hyper-Vでも同様の機能が利用できるようになりました。

 

 

面白いですが、以前のバージョンのHyper-Vには、ディスクパススルー(vSphereのRDMの概念など)だけでなく、ネットワーキングのためのSR-IOVもありました。ディスクリートバイスの割り当ては、同じSR-IOVパーティション化の概念に基づいています。

 

やはり、NVMeを使用したHyper-V環境では、ディスクリートバイス割り当てが肝になりそうですね。