* 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 [[仮想化]]