* kvmを使って仮想化する際に、PCIパススルーを使ってみる * [#na534d3f]
マザーボードにnicが2つあったので、仮想ゲスト専用にnicを使わせる為にPCIパススルーを利用してみた。
HOST OS:openSUSE13.2
Guest OS:debian7(wheezy)
** xml抜粋 ** [#ja5d6ae6]
<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行を加えるだけで嘘のように認識してくれるので、ドライバー指定を端折ってはならない。
RIGHT:更新日 2015-04-12(ci5kym)
#hr
[[仮想化]]