さくらの専用サーバとOpenStackで作るプライベートクラウド 3ページ
必要となるコンポーネントのインストール
サーバーの準備が完了したら、いよいよOpenStackコンポーネントのインストールだ。以下ではまずOpenStackが使用するサービスのインストールを行い、続いてkeystone、glance、nova、horizonの順にコンポーネントをインストールして行く。
EPELのインストール
CentOS向けのOpenStackバイナリは、EPEL(Extra Packages for Enterprise Linux)というパッケージリポジトリで公開されている。EPELはFedora傘下のプロジェクトで、Red Hat Enterprise Linuxおよびその互換ディストリビューションに向け、標準パッケージとしては含まれないパッケージを提供している。
EPELリポジトリを利用できるようにするには、以下のようにしてepel-releaseパッケージをインストールする。
# rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-7.noarch.rpm
続いて/etc/yum.repos.d/epel.repoファイルをエディタで開き、「enbale」パラメータを「1」に変更する。
[epel] name=Extra Packages for Enterprise Linux 6 - $basearch #baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch failovermethod=priority enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
これでEPELリポジトリにあるパッケージをyumコマンドでインストールできるようになる。
MySQLの設定
OpenStackはMySQLやSQLiteなどいくつかのデータベースをサポートしているが、今回はMySQLを使用する。以下のようにして関連パッケージをインストールし、rootユーザーのパスワードを設定しておく。
# yum install mysql mysql-server MySQL-python # service mysqld on # chkconfig mysqld on # mysqladmin -u root password '<設定するパスワード>'
RabbitMQの設定
メッセージキューにはRabbitMQを使用する。以下のようにRabbitMQをインストールして起動しておく。
# yum install rabbitmq-server # service rabbitmq-server start # chkconfig rabbitmq-server on
仮想化関連(libvirt、KVM)の設定
仮想化ソフトウェアにはKVMを使用する。KVMはlibvirt経由で操作されるので、こちらのインストールも必要だ。また、libvirtdが使用するmessagebusサービスも有効にしておく。
# yum install libvirt # service messagebus start # service libvertd start # chkconfig messagebus on # chkconfig libvirtd on
LVMの設定
今回は前述のとおり、制御用サーバーのローカルストレージを仮想マシンのストレージに利用する。このためには、あらかじめ使用するパーティションを用意しておき、LVMボリュームとして初期化しておく必要がある。今回はsda5をLVMボリュームとして使用することとする。
まず、sda5がマウントされていないことを確認する。
$ mount /dev/sda3 on / type ext4 (rw) proc on /proc type proc (rw) sysfs on /sys type sysfs (rw) devpts on /dev/pts type devpts (rw,gid=5,mode=620) tmpfs on /dev/shm type tmpfs (rw) /dev/sda1 on /boot type ext4 (rw) none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
また、sda5が存在することも確認しておく。
# fdisk -l Disk /dev/sda: 999.7 GB, 999653638144 bytes 255 heads, 63 sectors/track, 121534 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x000dc35d Device Boot Start End Blocks Id System /dev/sda1 * 1 32 256000 83 Linux Partition 1 does not end on cylinder boundary. /dev/sda2 32 542 4096000 82 Linux swap / Solaris Partition 2 does not end on cylinder boundary. /dev/sda3 542 13291 102400000 83 Linux /dev/sda4 13291 121535 869471232 5 Extended /dev/sda5 13291 121535 869470208 8e Linux LVM
pvcreateコマンドを実行し、/dev/sda5をLVMの物理ボリュームとして使用するよう設定する。
# pvcreate /dev/sda5 Writing physical volume data to disk "/dev/sda5" Physical volume "/dev/sda5" successfully created # pvscan PV /dev/sda5 lvm2 [829.19 GiB] Total: 1 [829.19 GiB] / in use: 0 [0 ] / in no VG: 1 [829.19 GiB]
最後にvgcreateコマンドを実行し、/dev/sda5を「nova-volumes」という名称で参照できるよう設定しておく。
# vgcreate nova-volumes /dev/sda5 Volume group "nova-volumes" successfully created
時刻の設定
複数台のサーバーでOpenStackインフラを構築する場合、各サーバー間の時刻が同期していないと問題が発生することがある。ntpdateなどを使い、時刻を正しく設定しておく。
# yum install ntpdate # ntpdate ntp.nict.jp
ファイアウォールの設定
OpenStackでは、HTTPベースの通信プロトコルおよびメッセージキュー(AMQP)を使って各コンポーネント間が通信を行う。また、設定を管理するMySQLについても各ノードからアクセスが行われる。そのため、制御用ノードではこれらのプロトコルの通信を許可するよう設定しておく必要がある。具体的には、下記のポートに対する受信を許可しておけば良い(表7)。
ポート番号 | プロトコル | 使用するサービス |
---|---|---|
8776 | TCP | nova-volume |
8774 | TCP | nova-compute |
9292 | TCP | glance |
5000 | TCP | keystone |
3306 | TCP | MySQL |
6080 | TCP | nova-novncproxy |
5672 | TCP、UDP | RabbitMQ |