今更感が漂う内容になりますが、Havanaが参上する前に記しておきます。
Folsomから変わっている部分は多いですが、流れは似ているのでザックザクと書いていきます。まずは、その他色々の事前準備からです。
環境について
HostOSはDebianのWheezyです。
ControllerNode+NetworkNode で1台(分離していません)。
ComputeNode で2台の合計3台で構築しています。
また、Networkの冗長化やLbaaSは手がけていません。
他、OpenStackの細かいところは都度書いていきますが、大きな特殊構成は2つです。
Glance+Ceph, Cinder+Ceph
Keystone+LDAP
これについては既に記事にしてあるので、リンクをはって済ませていきます。
OS設定
ulimit
ulimitで詰まることはおそらくないでしょうが、これでひっかかってもツマラナイので設定しておきます。
/etc/pam.d/common-session
|
session required pam_limits.so |
/etc/initscript
|
ulimit -n 65536 eval exec "$4" |
/etc/security/limits.d/local.conf
|
root - nofile 65536 daemon - nofile 65536 nobody - nofile 65536 www-data - nofile 65536 mysql - nofile 65536 |
/etc/security/limits.d/openstack.conf
|
nova - nofile 65536 quantum - nofile 65536 keystone - nofile 65536 glance - nofile 65536 rabbitmq - nofile 65536 mongodb - nofile 65536 swift - nofile 65536 ceilometer - nofile 65536 libvirt-qemu - nofile 65536 horizon - nofile 65536 messagebus - nofile 65536 |
sysctl
VMからホスト外へ出る時にFORWARDするので有効にしておきます
外部接続をする時、NetworkNodeでのNATとなるので tcp_timetamps は無効が無難です
/etc/sysctl.d/local.conf
|
net.ipv4.ip_forward = 1 net.ipv4.tcp_timestamps = 0 |
反映しておきます。
|
/etc/init.d/procps restart |
rsyslog
デフォで rsyslog ですが、一応書いておいて・・・
あまりに凄まじい量となるログを破棄しておきます。(初めての場合は後で鬱陶しくなってから)sudoとかはもう少し条件をちゃんと書いたほうがかっこいかもしれません。
/etc/rsyslog.d/openstack.conf
|
# # OpenStack # # destroy quantum sudo log :programname, isequal, "sudo" ~ # destroy DHCP log :programname, isequal, "dnsmasq-dhcp" ~ |
反映しておきます。
|
/etc/init.d/rsyslog restart |
rc.local.d の作成
完全に外道父式オレオレ設定ですが、起動時に conf.d 的に読み込むディレクトリを作っておきます。この構成はVMでも役立てています。
ディレクトリを作って・・・
基本 rc.local に埋め込み
/etc/rc.local
|
# rc.local.d CONFD=/etc/rc.local.d/ for SCRIPT in `ls $CONFD` do . $CONFD$SCRIPT done |
live migration用設定
私は結局 live migration は使わないことにしましたが、必要なら設定しておきます。
hosts
ホストOS間の接続にIPアドレスではなく hostname が利用されるので書いておく必要があります。
/etc/hosts
|
10.1.26.11 openstack-01 10.1.26.12 openstack-02 10.1.26.13 openstack-03 |
ユーザ/グループ作成
novaが共有ディスクを使うため、全ホストで共通の ID:ユーザ名 にする必要があり、パッケージインストール前に作成します。後回しにすると、usermod と chown をしまくることになって面倒です。
|
groupadd -g 121 quantum groupadd -g 122 nova groupadd -g 123 ceilometer groupadd -g 124 libvirt groupadd -g 125 kvm useradd -u 121 -g 121 -d /var/lib/quantum -s /bin/bash quantum useradd -u 122 -g 122 -G 124 -d /var/lib/nova -s /bin/bash nova useradd -u 123 -g 123 -G 122,124 -d /var/lib/ceilometer -s /bin/bash ceilometer useradd -u 124 -g 125 -d /var/lib/libvirt -s /bin/false libvirt-qemu |
環境変数設定
管理者権限を設定しておくことで、各種コンポーネントのコマンドを運用しやすくします。
(※OS_USERNAME は通常 admin ですが諸事情で変更しています)
~/.bashrc
|
# # OpenStack # export SERVICE_ENDPOINT=http://10.1.26.11:35357/v2.0/ export SERVICE_TOKEN=サービストークン export OS_TENANT_NAME=admin export OS_USERNAME=OpenStackAdmin export OS_PASSWORD=管理者パスワード export OS_AUTH_URL=http://10.1.26.11:5000/v2.0/ export OS_VERSION=1.1 export OS_NO_CACHE=1 |
念のため、
Cephの構築
既に記事にしてあるので、こちらを参照してください。
Ceph基本情報と構築手順
パッケージ
Using the unofficial Debian repository
ありがたや~のDebian用OpenStackパッケージを使わせてもらいます。
|
cd /usr/local/src wget http://ftparchive.gplhost.com/debian/pool/squeeze/main/g/gplhost-archive-keyring/gplhost-archive-keyring_20100926-1_all.deb dpkg -i gplhost-archive-keyring_20100926-1_all.deb gpg --keyserver hkp://keys.gnupg.net --recv-keys F52A462E0C95855C gpg -a --export F52A462E0C95855C | apt-key add - cat > /etc/apt/sources.list.d/openstack.list << __EOT__ deb http://qala-sg.apt-proxy.gplhost.com/debian/ wheezy-backports main deb http://qala-sg.apt-proxy.gplhost.com/debian/ openstack main deb http://archive.gplhost.com/debian grizzly main deb http://archive.gplhost.com/debian grizzly-backports main __EOT__ apt-get update |
その他パッケージ
pm-utils
エラーが出るので先に入れておきます。
error : virExecWithHook:328 : Cannot find ‘pm-is-supported’ in path: No such file or directory
|
apt-get -y install pm-utils |
sysfsutils
同じくエラーが出るので先に入れておきます。
error : systool is not installed
|
apt-get -y install sysfsutils |
監視
ここでは割愛しますが、ホストサーバの監視は重要なので、アラート/リソース監視用のデーモンも入れておきます。
次回は皆大好き OpenvSwitch になります。