ハイパーバイザホスト
yumリポジトリの設定
管理ホスト同様に/etc/yum.repos.d/midonet.repoの編集を行ってください。
ハイパーバイザに関連する設定
今回はハイパーバイザにKVMを利用しますが、OpenStackとMidoNetを連携し、かつKVMを利用するためには、いくつかハイパーバイザの細かい設定などが必要です。
まず、/etc/libvirt/qemu.confについてuserとgroup指定、およびcgroup_device_aclのコメントアウトを解除し、 cgroup_device_aclに/dev/net/tunを追記します。
(省略)
user = "root"
(省略)
group = "root"
(省略)
cgroup_device_acl = [
"/dev/null", "/dev/full", "/dev/zero",
"/dev/random", "/dev/urandom",
"/dev/ptmx", "/dev/kvm", "/dev/kqemu",
"/dev/rtc","/dev/hpet", "/dev/vfio/vfio",
"/dev/net/tun"
]
(省略)
設定が完了したら、libvirtdを再起動します。
$ sudo systemctl restart libvirtd.service
また、openstack-nova-networkのインストールを行い、一部必要な機能を利用し、openstack-nova-network自体は停止します。同時に、openstack-nova-computeの再起動も必要です。
$ sudo yum install -y openstack-nova-network $ sudo systemctl disable openstack-nova-network.service $ sudo systemctl restart openstack-nova-compute.service
Midolmanのインストールと設定
続いて、Midolmanのインストールを行います。
$ sudo yum install -y java-1.8.0-openjdk-headless $ sudo yum install -y midolman
インストール完了後、Midolmanの初期設定を行いますが、先述したとおり、midolman.confに記述するのはZookeeperへの接続設定のみです。
[zookeeper] zookeeper_hosts = 10.170.9.10:2181
次に、Metadata関連の設定を行います。Novaがインスタンスを起動した後、例えばKeyPairの設定やユーザスクリプト(Userdata)の実行のためにMetadataを使用することができますが、これを有効にするためには、以下の操作を行います。
なお、Midolmanがインストールされたどこか1ノード上で1度だけ実行すれば良く、設定はMidoNet Clusterを通し全体で共有されます。
$ echo "agent.openstack.metadata.nova_metadata_url : \"http://10.170.9.6:8775\"" | mn-conf set -t default $ echo "agent.openstack.metadata.shared_secret : <管理ホストの/etc/nova/nova.confに記載されたmetadata_proxy_shared_secretの値>" | mn-conf set -t default $ echo "agent.openstack.metadata.enabled : true" | mn-conf set -t default
後ほどMidoNetとOpenStackを連携させる際にOpenvSwitch Pluginを削除し、Open vSwitchを停止しますが、これだけではbr-tunやbr-intが残り、さらにデフォルトのVXLanポートも残ってしまいます。このデフォルトのVXLanポートが存在する場合、MidolmanがVXLanポートが作成できず正しく動作しないため、ここでポートを削除しておきます。なお、br-tunやbr-intは残っていても構いませんが、利用しないため、気になる場合は削除しても問題ありません。
$ sudo ovs-vsctl show
(省略)
Bridge br-tun
(省略)
Port "vxlan-0a949a27"
(省略)
Port "vxlan-0aaa090b"
(省略)
$ ovs-vsctl del-port br-tun vxlan-0a949a27
$ ovs-vsctl del-port br-tun vxlan-0aaa090b
デフォルトのVXLanポートを削除したら、Midolmanを起動します。
$ sudo systemctl start midolman.service
少し経つとmidonet datapathが出来上がり、Midolmanの起動が完了します。
$ sudo ip addr show midonet
7: midonet: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN
link/ether 3e:3d:93:af:3f:3b brd ff:ff:ff:ff:ff:ff
ゲートウェイホスト
yumリポジトリの設定
管理ホスト同様に/etc/yum.repos.d/midonet.repoの編集を行ってください。
Midolmanのインストールと設定
ハイパーバイザホスト同様に、Midolmanをインストールし、設定を行ってください。
外部ネットワークのルータ相当を作成
今回は、外部ネットワークのルータ相当をNetwork Namespace(netns)で作成します。インターフェースのIPアドレスは、203.0.113.1/24とします。
$ sudo ip link add veth0-1 type veth peer name veth0-2 $ sudo ip netns add external $ sudo ip link set veth0-2 netns external $ sudo ip link set veth0-1 up $ sudo ip netns exec external sudo ip addr add 203.0.113.1/24 dev veth0-2 $ sudo ip netns exec external sudo ip link set veth0-2 up
ここまででMidoNetのインストールは完了です。
次回行うこと
今回の記事では、OpenStackとMidoNetをそれぞれインストールするところまで実施しました。
次回は、今回インストールしたOpenStackとMidoNetを連携させ、疎通確認を行ってみます。
