CodeZine(コードジン)

特集ページ一覧

ネットワーク仮想化ソフトウェア「MidoNet」(実践/前編)
~OpenStackとMidoNetのインストール

近未来の技術トレンドを先取り! 「Tech-Sketch」出張所 第24回

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2016/02/15 14:00

目次

ハイパーバイザホスト

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を追記します。

/etc/libvirt/qemu.conf
(省略)
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を再起動します。

libvirtd.serviceの再起動
$ sudo systemctl restart libvirtd.service

 また、openstack-nova-networkのインストールを行い、一部必要な機能を利用し、openstack-nova-network自体は停止します。同時に、openstack-nova-computeの再起動も必要です。

openstack-nova-networkのインストールと各サービスの再起動
$ sudo yum install -y openstack-nova-network
$ sudo systemctl disable openstack-nova-network.service
$ sudo systemctl restart openstack-nova-compute.service
Midolmanのインストールと設定

 続いて、Midolmanのインストールを行います。

Midolmanのインストール
$ sudo yum install -y java-1.8.0-openjdk-headless
$ sudo yum install -y midolman

 インストール完了後、Midolmanの初期設定を行いますが、先述したとおり、midolman.confに記述するのはZookeeperへの接続設定のみです。

/etc/midolman/midolman.conf
[zookeeper]
zookeeper_hosts = 10.170.9.10:2181

 次に、Metadata関連の設定を行います。Novaがインスタンスを起動した後、例えばKeyPairの設定やユーザスクリプト(Userdata)の実行のためにMetadataを使用することができますが、これを有効にするためには、以下の操作を行います。

 なお、Midolmanがインストールされたどこか1ノード上で1度だけ実行すれば良く、設定はMidoNet Clusterを通し全体で共有されます。

Metadata関連の設定
$ 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は残っていても構いませんが、利用しないため、気になる場合は削除しても問題ありません。

br-tunのトンネルインターフェース削除
$ 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を起動します。

Midolmanの起動
$ sudo systemctl start midolman.service

 少し経つとmidonet datapathが出来上がり、Midolmanの起動が完了します。

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を連携させ、疎通確認を行ってみます。



  • LINEで送る
  • このエントリーをはてなブックマークに追加

バックナンバー

連載:近未来の技術トレンドを先取り! 「Tech-Sketch」出張所

もっと読む

著者プロフィール

  • 村木 暢哉(TIS株式会社)(ムラキ マサヤ)

    TIS株式会社 戦略技術センター所属。 以前はアプリケーション・ミドルウェア開発のエンジニアでしたが、紆余曲折を経て、現在はSoftware Defined Networking/Software Defined Infrastructureの研究開発を主に担当しています。 知らないことばかりで...

あなたにオススメ

All contents copyright © 2005-2021 Shoeisha Co., Ltd. All rights reserved. ver.1.5