OpenStackのインストール
OpenStackのインストール
続いて、Packstackを用いてRDO版OpenStackをインストールします。
(7)Packstackのインストール、answer file生成@Controller
(7)から(9)の手順は、Controllerでのみ実施します。
Packstackをインストールし、Packstackのインストール用設定ファイルであるanswer fileのベースを生成します。
【Packstackインストール】@Controller
# yum install openstack-packstack
【answer file生成】@Controller
# packstack --gen-answer=answer20150819
(8)answer fileの修正@Controller
(7)で生成したanswer fileは、all in one構成用のため、今回の構成に合わせて修正します。基本的にはCONFIG_COMPUTE_HOSTSの変更だけですが、今回は構築を容易にするため、一部も無効化・共通化しました。なお、answer fileのデフォルト値は変更される可能性があるので、以下のサンプルをダウンロードしてください。
【デフォルトパスワード、~_PW、~_TOKEN、~_KEY、~_SECRET の変更】
# 必要に応じて変更ください。後述のMidoNetインストール時に使います。
CONFIG_DEFAULT_PASSWORD=admina
CONFIG_KEYSTONE_ADMIN_TOKEN=admina
【不必要なサービスの無効化。本検証ではSWIFT、CEILOMETERとデモを無効化】
CONFIG_SWIFT_INSTALL=n
CONFIG_CEILOMETER_INSTALL=n
CONFIG_PROVISION_DEMO=n
【HOSTSの変更】
【Compute 1、2のManagement NetworkのIP Addressへと書き換え】
CONFIG_COMPUTE_HOSTS=192.168.10.102,192.168.10.103
(9)Packstack実行@Controller
(8)で修正したanswer fileを用いて、Packstackを実行します。環境によりますが、数十分~1時間程度かかります。
【Packstack実行】@Controller
# packstack --answer-file= answer20150819
(10)nova.confの修正@Compute 1、2
日本語キーボードを使っている場合、keymap設定を変更します。また、virt_typeがkvmとなっていることを確認し、異なっていた場合はkvmに変更します。
【nova.conf修正】@Compute1、2
# vi /etc/nova/nova.conf
----
vnc_keymap=ja
virt_type=kvm
----
(11)サーバ再起動@Controller、Compute 1、2
Controller、Compute 1、2を再起動します。
【再起動】@Controller、Compute 1、2
# reboot
MidoNetのインストール
MidoNetのコンポーネントをインストールします。
(12)Neutron関連設定の変更@Controller、Compute 1、2
MidoNetでは不要なサービスを削除・停止します。
【Neutron OVSの削除】@Controller、Compute 1、2
# yum remove openstack-neutron-openvswitch
【Neutron l3 agentの無効化】@Controller、Compute 1、2
# systemctl stop neutron-l3-agent
# systemctl disable neutron-l3-agent
【iptables無効化(firewalldは停止しているはずだが念のため)】@Controller、Compute 1、2
# systemctl stop firewalld
# systemctl disable firewalld
# systemctl stop iptables
# systemctl disable iptables
(13)zookeeperインストール@NSDB 1、2、3
NSDBを構築していきます。まずはzookeeperをインストールします。
【zookeeper及び関連パッケージのインストール】@NSDB 1、2、3
# yum install java-1.7.0-openjdk
# yum install zookeeper zkdump nmap-ncat
【javaパスの設定】@NSDB 1、2、3
# mkdir -p /usr/java/default/bin/
# ln -s /usr/lib/jvm/jre-1.7.0-openjdk/bin/java /usr/java/default/bin/java
【zookeeper用ディレクトリの作成】@NSDB 1、2、3
# mkdir /var/lib/zookeeper/data
# chown zookeeper:zookeeper /var/lib/zookeeper/data
【zookeeper設定ファイルへ、NSDBのアドレスを追加】@NSDB 1、2、3
# vi /etc/zookeeper/zoo.cfg
----
server.1=192.168.10.104:2888:3888
server.2=192.168.10.105:2888:3888
server.3=192.168.10.106:2888:3888
----
【NSDB1へのID設定】@NSDB 1
# echo 1 > /var/lib/zookeeper/data/myid
【NSDB2へのID設定】@NSDB 2
# echo 2 > /var/lib/zookeeper/data/myid
【NSDB3へのID設定】@NSDB 3
# echo 3 > /var/lib/zookeeper/data/myid
(14)zookeeper起動及び確認@NSDB 1、2、3
zookeeperを起動し、正常に動作していることを確認します。
【zookeeperの起動及び確認】@NSDB 1、2、3
# systemctl start zookeeper.service
# chkconfig zookeeper on
【imokの応答があることを確認】
# echo ruok | nc 127.0.0.1 2181
【エラーなく応答があることを確認】
# echo stat | nc 127.0.0.1 2181
(15)Cassandraインストール@NSDB 1、2、3
NSDB構築の続きです。Cassandraをインストールします。
【Cassandraインストール】@NSDB 1、2、3
# yum install dsc20
【NSDB1での設定パラメータ変更】@NSDB1
# vi /etc/cassandra/conf/cassandra.yaml
----
cluster_name: 'midonet'
listen_address: 192.168.10.104
- seeds: "192.168.10.104,192.168.10.105,192.168.10.106"
rpc_address: 192.168.10.104
----
【NSDB2での設定パラメータ変更】@NSDB 2
# vi /etc/cassandra/conf/cassandra.yaml
----
cluster_name: 'midonet'
listen_address: 192.168.10.105
- seeds: "192.168.10.104,192.168.10.105,192.168.10.106"
rpc_address: 192.168.10.105
----
【NSDB3での設定パラメータ変更】@NSDB 3
# vi /etc/cassandra/conf/cassandra.yaml
----
cluster_name: 'midonet'
listen_address: 192.168.10.106
- seeds: "192.168.10.104,192.168.10.105,192.168.10.106"
rpc_address: 192.168.10.106
----
【既存設定の削除】@NSDB 1、2、3
# rm -rf /var/lib/cassandra/data/system/
(16)Cassandra起動及び確認@NSDB 1、2、3
Cassandraを起動し、正常に動作していることを確認します。
【Cassandraサービスの起動】@NSDB 1、2、3
# systemctl restart cassandra.service
# chkconfig cassandra on
【NSDB1でのCassandraサービス起動確認】@NSDB 1
【Cassandra CLIで接続できることを確認。exit、ctrl+zで抜ける】
# cassandra-cli -h 192.168.10.104 -p 9160
【NSDB2でのCassandraサービス起動確認】@NSDB 2
# cassandra-cli -h 192.168.10.105 -p 9160
【NSDB3でのCassandraサービス起動確認】@NSDB 3
# cassandra-cli -h 192.168.10.106 -p 9160
【Cassandraサービスの全体の動作確認】@NSDB 1、2、3
#nodetool ring
【Addressが3つ表示されることを確認】
# nodetool status
(17)midolmanインストール@Controller、Compute 1、2、GW 1、2
MidoNetのAgentであるmidolmanをインストールし、NSDBとの接続設定を入れます。
【Midolmanインストール】@Controller、Compute 1、2、GW 1、2
# yum install midolman
【NSDBのIP Addressと設定パラメータの変更】@Controller、Compute 1、2、GW 1、2
# vi /etc/midolman/midolman.conf
----
[zookeeper]
zookeeper_hosts =192.168.10.104:2181,192.168.10.105:2181,192.168.10.106:2181
----
【mn-confから設定投入その1】@Controller
--(ここから)--
# cat << EOF | mn-conf set -t default
zookeeper {
zookeeper_hosts = "192.168.10.104:2181,192.168.10.105:2181,192.168.10.106:2181"
}
cassandra {
servers = "192.168.10.104,192.168.10.105,192.168.10.106"
}
EOF
--(ここまで)--
【mn-confから設定投入その2】@Controller
# echo "cassandra.replication_factor : 3" | mn-conf set -t default
【投入された設定の確認】@Controller及びCompute1、2、GW1、2のいずれか
【設定投入その1、2のパラメータが存在することを確認】
# mn-conf dump
【Midolmanの起動及び確認】@Controller、Compute 1、2、GW 1、2
# systemctl restart midolman.service
# ps -ef | grep mido
# service midolman status
(18)MidoNet APIのインストール@Controller
MidoNet APIをインストールします。
【MidoNet APIインストール】@Controller
# yum install midonet-api
【web.xml修正】@Controller
【リスト内の強調部分を修正】
# vi /usr/share/midonet-api/WEB-INF/web.xml
----
【ControllerのIP Address、ポートを8081へ】
<param-name>rest_api-base_uri</param-name>
<param-value>http://192.168.10.101:8081/midonet-api</param-value>
【ControllerのIP Addressへ】
<param-name>keystone-service_host</param-name>
<param-value>192.168.10.101</param-value>
【answer fileのCONFIG_KEYSTONE_ADMIN_TOKENのパラメータにあわせる】
<param-name>keystone-admin_token</param-name>
<param-value>admina</param-value>
【上記に合わせる】
<param-name>mock_auth-admin_token</param-name>
<param-value>admina</param-value>
【上記に合わせる】
<param-name>mock_auth-tenant_admin_token</param-name>
<param-value>admina</param-value>
【上記に合わせる】
<param-name>mock_auth-tenant_user_token</param-name>
<param-value>admina</param-value>
【NSDB1、2、3のIP Address:2181へ】
<param-name>zookeeper-zookeeper_hosts</param-name>
<param-value>192.168.10.104:2181,192.168.10.105:2181,192.168.10.106:2181</paramvalue>
</context-param>
(19)Tomcatのインストール@Controller
MidoNet APIを動作させるため、Tomcatをインストール・設定します。
【Tomcatのインストール】@Controller
# yum install tomcat
【midonet-api.xmlの作成】@Controller
【下記内容で新規作成】
# vi /etc/tomcat/Catalina/localhost/midonet-api.xml
----
<Context
path="/midonet-api"
docBase="/usr/share/midonet-api"
antiResourceLocking="false"
privileged="true"
/>
----
【tomcat.confへの追記】@Controller
【下記内容を追記】
vi /etc/tomcat/tomcat.conf
----
CONNECTOR_PORT="8081"
----
【server.xmlへの修正・追記】@Controller
【下記の強調部分を修正(ポートを8080から8081へ)・追記】
# vi /etc/tomcat/server.xml
----
<Connector port="8081" protocol="HTTP/1.1"
connectionTimeout="20000"
URIEncoding="UTF-8"
redirectPort="8443"
maxHttpHeaderSize="65536"/>
----
【tomcatの起動、有効化】@Controller
# systemctl restart tomcat.service
# systemctl enable tomcat.service
(20)MidoNet CLI@Controller
MidoNet CLIをインストールします。
【MidoNet CLIのインストール】@Controller
# yum install python-midonetclient
【midonetrcの作成】@Controller
【下記内容で新規作成】
# vi ~/.midonetrc
----
[cli]
api_url = http://192.168.10.101:8081/midonet-api
username = admin
password = admina
project_id = admin
----
(21)Tunnel Zone作成、登録@Controller
連載の1回目で述べたように、MidoNetの仮想ネットワークは、Tunnel Zoneと呼ばれる各ノードをフルメッシュでつないだトンネル上で構成されます。そのTunnel Zoneの作成と、Tunnel Zoneへの各ノードの登録をします。ランダム要素があるため、注意して実施してください。
【MidoNet CLIの実行】@Controller
# midonet-cli
【Tunnel Zoneの作成(midonet-cli内で実行)】@Controller
(出力例)
midonet> tunnel-zone create name vxlan type vxlan
tzone0
【Tunnel Zoneの確認(midonet-cli内で実行)】@Controller
(出力例)
midonet> list tunnel-zone
tzone tzone0 name vxlan type vxlan
【host情報の確認(midonet-cli内で実行)】@Controller
【(17)でMidolmanをインストールしたサーバが表示されていることを確認。hostXとサーバのひもづけは、毎回異なるので要注意】
(出力例。IPv6の記述は省略)
midonet> list host
----
host host0 name cmpt2.midonet.example.com alive true addresses /192.168.10.103,(略),(略),/192.168.20.103,/127.0.0.1,(略)
host host1 name ctrl.midonet.example.com alive true addresses /127.0.0.1,(略),/192.168.20.101,(略),/192.168.10.101,(略)
host host2 name cmpt1.midonet.example.com alive true addresses(略),/192.168.10.102,(略),/192.168.20.102,/127.0.0.1,(略)
host host3 name gw2.midonet.example.com alive true addresses /192.168.20.108,(略),/127.0.0.1,(略),(略),/192.168.10.108,(略)
host host4 name gw1.midonet.example.com alive true addresses(略),/127.0.0.1,(略),/192.168.20.107,(略),/192.168.10.107,(略)
----
【Tunnel Zoneへのhostの登録(midonet-cli内で実行)】@Controller
【サーバにひもづいたhostX及びそのhostXでTunnel Zoneに追加するインタフェースを登録する。今回はGuest(Tunnel)Network上でTunnel Zoneを構成するため、サーバの192.168.20.0/24セグメントのIP Addressを追加する。全host分繰り返し実施】
midonet> tunnel-zone tzone0 add member host <hostX> address < ip_address_hostX>
(投入例1:上記でControllerを登録する場合)
midonet> tunnel-zone tzone0 add member host host1 address 192.168.20.101
(投入例2:上記でCompute1を登録する場合)
midonet> tunnel-zone tzone0 add member host host2 address 192.168.20.102
(投入例3:上記でGW1を登録する場合)
midonet> tunnel-zone tzone0 add member host host4 address 192.168.20.107
【Tunnel Zoneへのhost登録確認(midonet-cli内で実行)】@Controller
【list hostで表示されたサーバが、正しいIP Addressで登録されていることを確認】
midonet> list tunnel-zone tzone0 member
【問題がないことを確認したら、midonet-cliを抜ける】
midonet> exit
今回は、「OSのインストール」、「OpenStackのインストール」、「MidoNetのインストール」といったインストール関連部分の手順をご説明しました。次回は引き続き、「OpenStackとMidoNetの連携」、「Network設定」、「VyOS環境の構築」の手順をご説明します。
- Linuxは、Linus Torvalds氏の日本およびその他の国における登録商標または商標です。
- MidoNetは、Midokura SARLの登録商標です。
- OpenStack®の文字表記とOpenStackのロゴは、米国とその他の国におけるOpenStack Foundationの登録商標/サービスマークまたは商標/サービスマークのいずれかであり,OpenStack Foundationの許諾を得て使用しています。日立製作所は,OpenStack FoundationやOpenStackコミュニティの関連企業ではなく、また支援や出資を受けていません。
- OSCA™(Open Standard Cloud Association)は、デル株式会社の登録商標です。
- Red Hat、Red Hat Enterprise Linuxは、米国およびその他の国におけるRed Hat, Inc. の登録商標です。
- VMware,VMware vSphere ESXiは,米国およびその他の地域における VMware, Inc. の登録商標または商標です。
- その他、記載の商標やロゴは、各社の商標または登録商標です。
【参考文献】
MidoNet Documentation(アクセス:2015/08)
MidoNet integration - RDO(アクセス:2015/08)
https://www.rdoproject.org/MidoNet_integration
OpenStackNetworking Plug-in 比較 -OVS と MidoNet-(アクセス:2015/08)
- この記事のキーワード