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

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

OpenStack Volume Serviceのコード名はCinderです。
Cinderはボリュームサービスです。
インスタンスへディスクを追加したりするのに利用します。

3.2.5.1. Cinderのインストール

# yum install openstack-cinder -y

3.2.5.2. Cinderのコンフィグ

cinderのコンフィグを行います。
バックアップをディレクトリごととっておきましょう。
# cp -a /etc/cinder /etc/cinder_bak
cinder.confの設定
ボリュームはcinder-volumesとして設定していますので適宜変更してください。
# vi /etc/cinder/cinder.conf
[DEFAULT]
#misc
verbose = True
auth_strategy = keystone
rootwrap_config = /etc/cinder/rootwrap.conf
api_paste_config = /etc/cinder/api-paste.ini
auth_strategy = keystone
state_path = /var/lib/cinder
volumes_dir = /var/lib/cinder/volumes

#log
log_file=cinder.log
log_dir=/var/log/cinder

#osapi
osapi_volume_extension = cinder.api.openstack.volume.contrib.standard_extensions

#qpid
rpc_backend = cinder.openstack.common.rpc.impl_qpid

qpid_port = 5672
#qpid_username =
#qpid_password =

#sql
sql_connection = mysql://cinder:password@stack01/cinder?charset=utf8

#volume
volume_name_template = volume-%s
volume_group = cinder-volumes

#iscsi
iscsi_helper = tgtadm
cinder-paste.iniの設定
Cinderの箇所だけ変更しています。
# vi /etc/cinder/api-paste.ini
[filter:authtoken]
paste.filter_factory = keystoneclient.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 = service
admin_user = nova
admin_password = nova
signing_dir = /var/lib/cinder

3.2.5.3. データベースの作成

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

3.2.5.4. tgtの設定

iscsiの設定を行います。
# sed -i "s@# include /etc/cinder/volumes/@include /etc/cinder/volumes/@" /etc/tgt/conf.d/cinder.conf
# echo "include /etc/tgt/conf.d/*.conf" >> /etc/tgt/targets.conf
# echo "include /var/lib/cinder/volumes/*" >> /etc/tgt/conf.d/cinder.conf

tgtの再起動*

# service tgtd restart
# chkconfig tgtd on

3.2.5.5. プロセスの起動

Novaを既に利用している場合はNovaのプロセスを再起動(一応全て)してからCinderを再起動します。
HorizonでインスタンスにボリュームをアタッチしようとしたらAttachingでぐるぐるしっぱなしになったので全部再起動しておいたほうが無難です。
# chown cinder:cinder /var/log/cinder/*
# for i in volume api scheduler
do
  service openstack-cinder-$i restart
done
# for i in volume api scheduler
do
  chkconfig openstack-cinder-$i on
done
Cinderのインストール、設定はここで終了です。
念のためボリュームの作成、削除が出来ることを確認しておきましょう。

3.2.5.6. ボリュームの作成、削除

ここで、作成追加出来たとしても安心せずインスタンスにボリュームをアタッチできるとこまでは確認しておいたほうがよいでしょう。

# cinder list
# cinder create --display_name cinder_test 1
+---------------------+--------------------------------------+
|       Property      |                Value                 |
+---------------------+--------------------------------------+
|     attachments     |                  []                  |
|  availability_zone  |                 nova                 |
|      created_at     |      2012-10-25T13:14:14.012661      |
| display_description |                 None                 |
|     display_name    |             cinder_test              |
|          id         | afc273e1-7304-4d0a-b281-2dbb7efb6cae |
|       metadata      |                  {}                  |
|         size        |                  1                   |
|     snapshot_id     |                 None                 |
|        status       |               creating               |
|     volume_type     |                 None                 |
+---------------------+--------------------------------------+
# cinder list
+--------------------------------------+-----------+--------------+------+-------------+-------------+
|                  ID                  |   Status  | Display Name | Size | Volume Type | Attached to |
+--------------------------------------+-----------+--------------+------+-------------+-------------+
| afc273e1-7304-4d0a-b281-2dbb7efb6cae | available | cinder_test  |  1   |     None    |             |
+--------------------------------------+-----------+--------------+------+-------------+-------------+
# cinder delete $(cinder list | grep cinder_test | awk '{print $2}')
+--------------------------------------+-----------+--------------+------+-------------+-------------+
|                  ID                  |   Status  | Display Name | Size | Volume Type | Attached to |
+--------------------------------------+-----------+--------------+------+-------------+-------------+
+--------------------------------------+-----------+--------------+------+-------------+-------------+

以上でCinderの設定は終了です。