どうしても分からなかったので、ogawadさんに助けを求めました。
Windows Server 2012は、OSレベルでNICチーミングがサポートされます。チーミングされたNICは、1つのNICに見えるので、それをHyper-Vの外部仮想スイッチ(仮想ネットワーク)として割り当てることができます。
また、Hyper-V仮想マシンに割り当てた仮想NIC同士でもチーミングが可能です。つまり、複数の物理NICそれぞれに仮想スイッチを割り当てて、仮想マシン内でチーミングを行なうこともできます。
この時、仮想マシンでチーミングすると、仮想スイッチを通っているためVMで物理NICのリンクダウンが検出できないのではないか、というご質問をいただき、即答できないでいました。
結論を言うと、後者の場合でもリンクダウンを検出できます。
SR-IOVの有無とか、いろいろ考えてる前に試してみればすぐ分かることでした。お恥ずかしい限りです。
Hyper-V仮想マシンの設定に「NICチーミングを許可」する設定があります。これがオンになっていると、物理NICの状態を伝えてくれるようです。
逆に、SR-IOV を利用する場合、自身にスイッチ相当の機構が埋め込まれるので、利用するNICによっては、ホストOSにすらリンクダウンが通知されないものがあるそうです。
SR-IOVの方がハードウェア情報を伝えやすいと思っていたのですが、そうでもないようです。
SR-IOVについてはogawadさんのブログの「Windows Server 2012 Hyper-V の SR-IOV 構築手順 (3)」に詳しいので、そちらを参照してください。コメント欄には私の質問も載っていて、ちょっと格好悪いのですが、分からなかったものは仕方ありません。
ところがここでもうひとつの疑問が生まれます。物理NICのリンクがダウンしていても、仮想スイッチは生きているので、仮想マシン同士は通信できるはずです。しかし、チーミングドライバが物理NICのリンクダウンを伝えると、通信ができなくなってしまいます。
今度調べようと思っていたら、これまたogawadさんが調べてくれました。
ゲストチーミングしていない場合は、アップリンクとなる物理NICがダウンしても同一の仮想スイッチにつながっていれば引き続き通信できます(従来通りの動作です)。
ゲストチーミングしている場合は、アップリンクとなる物理NICがダウン(全滅)すると)、同一の仮想スイッチにつながっていても通信できないということです。これは、ゲストOSからリンクダウン状態として認識されるためのようです。
ogawadさん、いろいろどうもありがとうございました。
0 件のコメント:
コメントを投稿