このエントリーをはてなブックマークに追加

Volume Service(Cinder)のインストール

OpenStack Volume Serviceのコード名はCinderです。
CinderはNovaのボリュームサービスが独立したものです。

Cinderのダウンロード

Cinderのソースをダウンロードします。
またCinderAPIを利用するためのクライアントもダウンロードしておきます。
ダウンロードしたバージョンはMasterになっているためバージョンはどちらもFolsomにします。

Keystoneのソースをダウンロード

$ sudo git clone git://github.com/openstack/cinder /opt/cinder
$ sudo git clone git://github.com/openstack/python-cinderclient /opt/python-cinderclient

KeystoneのバージョンをFolsomに固定

ここではまだFolsomがリリースされていませんので、本体を folsom-rc1 クライアントを master としています。
クライアントのタグは folsom-1 までしか切られていませんがMasterで問題ないのでMasterを利用します。
$ cd /opt/cinder ; sudo git checkout -b folsom refs/tags/folsom-rc1

Cinderのインストール

ダウンロードしたKeystoneとクライアントをインストールします。
pipでパッケージの依存関係を解決します。
$ sudo pip install -r /opt/cinder/tools/pip-requires
$ cd /opt/cinder && sudo python setup.py install
$ cd /opt/python-cinderclient && sudo python setup.py install

Cinderが利用するユーザ、ディレクトリなどの作成

ソースからインストールする場合はユーザやディレクトリを作成する必要がありますので作成します。
$ sudo useradd cinder -m -d /var/lib/cinder -s /bin/false
$ sudo mkdir /etc/cinder
$ sudo mkdir /var/log/cinder
$ sudo chown cinder:cinder /var/log/cinder

Cinderのコンフィグ

cinderのコンフィグを行います。
バックアップをディレクトリごととっておきましょう。
$ sudo cp -a /opt/cinder/etc/* /etc
$ sudo mv /etc/cinder/cinder.conf.sample /etc/cinder/cinder.conf
$ sudo mv /etc/cinder/logging_sample.conf /etc/cinder/logging.conf
$ sudo vi /etc/cinder/cinder.conf
[DEFAULT]
logging_exception_prefix = %(color)s%(asctime)s TRACE %(name)s ^[[01;35m%(instance)s^[[00m
logging_debug_format_suffix = ^[[00;33mfrom (pid=%(process)d) %(funcName)s %(pathname)s:%(lineno)d^[[00m
logging_default_format_string = %(asctime)s %(color)s%(levelname)s %(name)s [^[[00;36m-%(color)s] ^[[01;35m%(instance)s%(color)s%(message)s^[[00m
logging_context_format_string = %(asctime)s %(color)s%(levelname)s %(name)s [^[[01;36m%(request_id)s ^[[00;36m%(user_id)s %(project_id)s%(color)s] ^[[01;35m%(instance)s%(color)s%(message)s^[[00m
rabbit_password = password
rabbit_host = stack01
root_helper = sudo /usr/local/bin/cinder-rootwrap /etc/cinder/rootwrap.conf
api_paste_config = /etc/cinder/api-paste.ini
sql_connection = mysql://cinder:password@stack01/cinder?charset=utf8
iscsi_helper = tgtadm
volume_name_template = volume-%s
volume_group = nova-volumes
verbose = True
auth_strategy = keystone

$ sudo vi /etc/cinder/api-paste.ini
[filter:authtoken]
paste.filter_factory = keystone.middleware.auth_token:filter_factory
service_protocol = http
service_host = stack01
service_port = 5000
auth_host = stack01
auth_port = 35357
auth_protocol = http
admin_tenant_name = admin
admin_user = admin
admin_password = password

データベースの作成

Keystoneが利用するデータベースを作成します。
Keystoneのデータベースを設定するためのユーザ、パスワードはMySQLをインストールした時のものですので注意して下さい。
データベース名cinder、ユーザ名cinder、パスワードはpasswordとしているため適切なものへ変更してください。
ホスト名も同様にstack01としていますので変更が必要であればおこなって下さい。
$ mysql -u root -pnova -e "create database cinder character set utf8;"
$ mysql -u root -pnova -e "grant all privileges on cinder.* to 'cinder'@'%' identified by 'password';"
$ mysql -u root -pnova -e "grant all privileges on cinder.* to 'cinder'@'localhost' identified by 'password';"
$ mysql -u root -pnova -e "grant all privileges on cinder.* to 'cinder'@'stack01' identified by 'password';"
$ sudo cinder-manage db sync

プロセスの起動

Keystoneを起動します。がソースからのインストールの場合は起動スクリプトがありませんので用意します。

起動スクリプトの用意

$ cat << 'CINDER_INIT' | sudo tee /etc/init/cinder-api.conf > /dev/null
description "Cinder API server"
author "hagix9 <hagihara.shiro@fulltrust.co.jp>"

start on (filesystem and net-device-up IFACE!=lo)
stop on runlevel [016]


chdir /var/run

exec su -s /bin/sh -c "exec cinder-api --config-file=/etc/cinder/cinder.conf" cinder
CINDER_INIT

$ cat << 'CINDER_INIT' | sudo tee /etc/init/cinder-volume.conf > /dev/null
description "Cinder Volume server"
author "hagix9 <hagihara.shiro@fulltrust.co.jp>"

start on (filesystem and net-device-up IFACE!=lo)
stop on runlevel [016]


chdir /var/run

exec su -s /bin/sh -c "exec cinder-volume --config-file=/etc/cinder/cinder.conf" cinder
CINDER_INIT

$ cat << 'CINDER_INIT' | sudo tee /etc/init/cinder-scheduler.conf > /dev/null
description "Cinder Scheduler server"
author "hagix9 <hagihara.shiro@fulltrust.co.jp>"

start on (filesystem and net-device-up IFACE!=lo)
stop on runlevel [016]


chdir /var/run

exec su -s /bin/sh -c "exec cinder-scheduler --config-file=/etc/cinder/cinder.conf" cinder
CINDER_INIT

プロセスの起動

作成した起動スクリプトを利用してCinderを起動します。

$ for i in volume api scheduler
do
  sudo start cinder-$i ; sudo restart cinder-$i
done
Cinderのインストール、設定はここで終了です。