KVMで2つのESXiホストを実行し、外部ネットワークから見える個別の外部IPを割り当てる必要があります。必要なトポロジ:
ESXI ESXI
↓ ↓
KVM KVM
↓ ↓
vIF vIF
(own ip) (own ip)
↓ ↓
Physical NIC
↓
External Net
VNICモデルがVirtioデバイスに設定された2つのブリッジ仮想インターフェイスでうまくいくので、他のホストとは簡単です。ただし、Virtio as NICモデルはESXiでサポートされておらず、ネットワークアダプターが検出されないことを訴えて起動しません。
仮想インターフェイスをKVM上のESXiで機能させる方法はありますか? NICとしてE1000を使用しようとしましたが、ESXiを外部ネットワークに接続できませんでした。
これが私が試した設定です。 なし動作しました:
<interface type='bridged'>
<source bridge='br0'/>
<model type='virtio'/> #ESXi won't boot due to no adapter detected
</interface>
<interface type='bridged'>
<source source='br0' />
<model type='e1000'/> #ESXi boots but no network connectivity
</interface>
<interface type='direct'>
<source dev='br0' mode='bridged' />
<model type='e1000'/> #ESXi boots but no network connectivity
</interface>
<interface type='direct'>
<source dev='br0' mode='passthrough' />
<model type='e1000'/> #ESXi boots but no network connectivity
</interface>
#Not applicable to my requirements as physical NIC would be passed to KVM
<interface type='direct'>
<source dev='enp2s0:0' mode='passthrough' />
<model type='e1000'/>
</interface>
<interface type='direct'>
<source dev='br0' mode='bridged' />
<model type='e1000'/> #ESXi boots but no network connectivity
</interface>
これが私のインターフェースです:
br0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 192.168.1.10 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::b8ca:7bff:fe23:e847 prefixlen 64 scopeid 0x20<link>
ether ba:ca:7b:23:e8:47 txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 4 bytes 300 (300.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
enp0s26u1u6: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.9 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::3be6:18f3:cdd7:d837 prefixlen 64 scopeid 0x20<link>
ether a0:ce:c8:01:75:ef txqueuelen 1000 (Ethernet)
RX packets 25284 bytes 1737100 (1.6 MiB)
RX errors 0 dropped 6860 overruns 0 frame 0
TX packets 25208 bytes 29421441 (28.0 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
enp2s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.6 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::ca2d:afad:d824:1205 prefixlen 64 scopeid 0x20<link>
ether 90:2b:34:9a:bf:67 txqueuelen 1000 (Ethernet)
RX packets 3375628 bytes 4511208522 (4.2 GiB)
RX errors 0 dropped 3301 overruns 0 frame 0
TX packets 1832807 bytes 847946426 (808.6 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 18
enp2s0:0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.10 netmask 255.255.255.0 broadcast 192.168.1.255
ether 90:2b:34:9a:bf:67 txqueuelen 1000 (Ethernet)
device interrupt 18
ネストされたvirtにのみ関連するNICのドライバーを提供することを気にする可能性が低いため、virtio-netがESXiで機能しないことは理解できます。 e1000は標準のNICタイプですが、それが機能することを完全に期待しています。 QEMUのエミュレーションにバグがあると、ESXiと互換性がなくなる可能性が常にあります。
次のブログ投稿は、QEMUで 'vmxnet3' NICモデルを試すことを提案しています
https://xrsa.net/2014/08/25/running-vmware-esxi-under-ovirt/
これは、vmwareの準仮想化NICモデルであり、QEMUもサポートしています。
この構成から始めましたが、それ以外は正しいのですが、ESXiはvirtioNICを使用できません。
<interface type='bridged'>
<source bridge='br0'/>
<model type='virtio'/> #ESXi won't boot due to no adapter detected
</interface>
しかし、何らかの理由で、NICモデルタイプをe1000に変更しただけではないようですそして他の変更は行っていません。他のすべての設定は正しいNICモデルですが、他の壊れたまたは不適切な設定を試してみました。
もちろん、vmxnet3 NICタイプを使用することもできます(おそらくそうすべきです)。これは、libvirtとqemuで長年サポートされています。
したがって、モデルタイプのみを変更し、それ以外は変更しないでください。