12/2担当: Wakame Users Group Advent Calendar 2013
前日12/1に、記念すべき本企画最初の記事「Wakame-vdc編 - nested KVM を用いた環境で Wakame-VDC 環境の作り方」が羽深さんの手によりリリースされました。おかげさまで幸先良く無事開幕しました。Wakame-vdcのインストールに試行錯誤をした素敵な記事だったので、僕は最近リリースされたOpenVNetのインストールについて書いてみることにしました。これでアナタもOpenFlowの世界へ飛び込んでみてください!ちなみに、今からでもエントリは遅くありません。参加記事の中から最も素敵な記事には、なんとプレステ4を差し上げます。
OpenVNetは、GitHubにrpmを構築する方法が記載されています。このrpmを、あらかじめ置いておいたものを利用して、インストールすることもできます。 現在、公式なものではありませんが、rpmが下記URLにて提供されています。
この他、サードパーティ製のバイナリも下記にまとめてあります。前準備
とりあえず簡単にインストールするために、下記の環境を用意してみました。
- ホスト環境: MacBook Pro 2.4GHz Intel Core i5 / 16GB RAM
- ハイパーバイザー: VMware Fusion Professional Version 5.0.3
- ゲスト環境: CentOS 6.4 / GNOME Desktop
yumコマンドを利用する場合は、冒頭のrpm群を、リポジトリファイルとして書いておくと便利です。早速作業にとりかかりましょう。
/etc/yum.repos.d/openvnet.repo
[openvnet] name=OpenVNet baseurl=http://dlc.openvnet.axsh.jp/packages/rhel/6/vnet/current/ enabled=1 gpgcheck=0
/etc/yum.repos.d/openvnet-third-party.repo
[openvnet-third-party] name=OpenVNet Third Party baseurl=http://dlc.openvnet.axsh.jp/packages/rhel/6/third_party/current/ enabled=1 gpgcheck=0
インストールしてみよう
epelも必要ですので、下記にまとめてあるrpmをインストールしておきます。
$ rpm -Uvh http://dlc.wakame.axsh.jp.s3-website-us-east-1.amazonaws.com/epel-release
先述したリポジトリファイルがあれば、下記するコマンドでインストールすることができます。
wakame-vnetは、OpenVNetのプロジェクトネームで、現在もまだ変更されずに色々な箇所で名残を見せています。いずれ修正されるはずですので、お気をつけください。 しばらく時間がかかりますが、Complete!と出れば完了です。$ yum install -y wakame-vnet
設定ファイルを見てみよう
設定ファイル類は、おおよそ /etc/wakame-vnet/ 以下に配置されています。
基本的に、各ノード共通の設定ファイル"common.conf"と、個別の設定ファイルによって構成されており、vna、vnmgr, webapiと言ったシステムを構成するノードの名称が見えます。$ ls /etc/wakame-vnet/ common.conf vna.conf vnmgr.conf webapi.conf
vna (Virtual Network Agent)
これが、OVSのコントロールをするエージェントです。ネットワークを流れるパケットの動きを変えたいと思ったところに、OVSと対になるようにこのエージェントを配置する必要があります。現在ではそのような配置から、vnaはOVSとUnix Socket通信するように書かれています。いずれはOVSをオフロードするようになれば、一般的なTCP通信へと切り替えるのが良いのでしょう。設定ファイルのアドレスは、ZeroMQと言うキューサーバーへの接続先です。
vnmgr (Virtual Network Manager)
キューネットワークを介したMySQLへのアクセスを司る他、データセンター全体の物理・仮想ネットワーク構成を俯瞰して観ることができるプログラムです。必要なvnaへの指令を出し、ネットワーク全体を正しく動かす役目を持ちます。
webapi (Web API)
HTTPサーバとして機能し、curlや、wgetのような、HTTPクライアントからの接続と要求に応じて、vnmgrに向けて処理の依頼を投げかけるプログラムです。どのようなインターフェイス定義になっているかは、ドキュメントを御覧ください。ただし、ソースコードは日々更新されているため、ドキュメントが少し古くなっていることがあります。
MySQLを起動し、データベースを設定しよう
手動での起動のついでに、自動起動もONにしておきましょう。
その後、データベースへスキーマを流し込みます。$ service mysqld start $ chkconfig mysqld on
一応、下記の手順でスキーマが入っているかを確認してみてください。$ cd /opt/axsh/wakame-vnet/vnet $ bundle exec rake db:init
うまく行けば、vnetデータベース内に、networksなど複数のテーブルが確認できるはずです。$ mysql -u root mysql> use vnet; mysql> show tables;
OpenVNetのサービスを起動してみよう
とりあえずここまでで基本的なインストールはおしまい。あとは各プログラムを起動してみましょう。
うまく起動しているかどうか確認するには、statusを見ると良いでしょう。$ initctl start vnet-vnmgr $ initctl start vnet-webapi $ initctl start vnet-vna
その他のプログラムも同様に確認することができます。$ initctl status vnet-vnmgr vnet-vnmgr start/running, process 41789
さて、次回はこれらのノードの説明と、データパスの設定などがあり、それから応用としての使い方などの説明へとつなげて行きたいと思っています。
コメント一覧 (1)