マザーボードにnicが2つあったので、仮想ゲスト専用にnicを使わせる為にPCIパススルーを利用してみた。
HOST OS:openSUSE13.2
Guest OS:debian7(wheezy)
<hostdev mode='subsystem' type='pci' managed='yes'> <driver name='kvm' /> これが引っかかる原因となる <source> これはホストが認識するNICのPCIアドレス <address domain='0x0000' bus='0x00' slot='0x19' function='0x0'/> </source> これはゲストが認識するNICのPCIアドレス <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/> </hostdev>
ここでハマりやすいのが、PCIパススルーに使うドライバ指定。
ドライバには、新しいvfioと古めのkvmのに種類が用意されているが、
opensuse13.2ホストにおいて、無指定の場合にデフォルトで選択されるのはvfioの方になる。
そしてvfioの必須条件が、kernel-3.6以上という縛りが存在する。
ホストOSであるopensuse13.2のカーネルは、3.16.7。
ゲストOSのdebianは、3.2.0。
ということなので、ホストでのドライバが無指定の場合、デフォルトでvfioが選択されることになるが、
ゲストの方は未対応なので、何百回起動してもNICが見えないループに陥る。
ここで、
<driver name='kvm' />
の1行を加えるだけで嘘のように認識してくれるので、ドライバー指定を端折ってはならない。