SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

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

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

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

ハイパーバイザホスト

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

この記事は参考になりましたか?

連載通知を行うには会員登録(無料)が必要です。
既に会員の方はを行ってください。
近未来の技術トレンドを先取り! 「Tech-Sketch」出張所連載記事一覧

もっと読む

この記事の著者

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

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

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/9226 2016/02/15 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー