すぐに忘れてハマりまくるのでメモ。
前提
ESXi 6.0.0、OpenStack Libertyで確認しています。
KVMサポート
kvm-okでnot supportといわれる場合の対処方法
root@compute:~# kvm-okk
INFO: Your CPU does not support KVM extensions
KVM acceleration can NOT be used
1.仮想マシンのvmxファイルの設定
vSphere Clientで、ESXホストの「Configuration」タブ>「Storage」>対象をデータストアを右クリックして「Browse Datastore」をクリック
対象の仮想マシンのフォルダを選択して「<仮想マシン名>.vmx」ファイルをダウンロード
「vhv.enable = "TRUE"」を追記
「<仮想マシン名>.vmx」ファイルをアップロード
2.CPU/MMU Virtualization設定
仮想マシンを右クリックして「Edit settings」をクリック
「Options」タブをクリック
「CPU/MMU Virtualization」をクリック
「Use Interl VT-x/AMD-V for instruction set virtualization and Interl EPT/AMD RVI for MMU virtualization」を選択
上記設定でKVMが使用可能となる。
root@compute:~# kvm-ok
INFO: /dev/kvm exists
Floating IP経由でping/ssh不可
1.Floating IPで使用するExternal Networkポートの設定を変更
vSphere Clientで、ESXホストのConfigurationタブ>Networking>対象を仮想スイッチのプロパティをクリック
対象のポートグループを選択して「Edit」をクリック
「Security」タブをクリック
「Promiscuous Mode:」を「Accept」に変更
「Forged Transmits:」を「Accept」に変更
上記設定でOpenStack側の設定がうまく出来ていればping/sshが可能となる。
トラブルシュート
1.br-exに正しいポートが設定されているか?
miyamoto@controller:~/devstack$ sudo ovs-vsctl show
Bridge br-ex
Port "eth2"
Interface "eth2"
Port "qg-956f6873-a6"
Interface "qg-956f6873-a6"
type: internal
Port br-ex
Interface br-ex
type: internal
2.NATが正しく設定されているか?
qrouterにログイン
miyamoto@controller:~/devstack$ sudo ip netns exec qrouter-6b8457d0-9995-4dce-8d2b-c45e7d369b11 bash
NAT設定を確認
以下の場合は、Fixed IP=192.168.210.10、Floating IP=10.0.0.183の例
root@controller:~/devstack# iptables -t nat -nL | grep DNAT
DNAT all -- 0.0.0.0/0 10.0.0.183 to:192.168.210.10
root@controller:~/devstack# iptables -t nat -nL | grep SNAT
SNAT all -- 192.168.210.10 0.0.0.0/0 to:10.0.0.183
以上。