Upload
oss
View
1.143
Download
1
Embed Size (px)
DESCRIPTION
Openstack/Icehouseでの、Ceph/Firefly分散ストレージ設定ガイド by オープンクラウド実証実験タスクフォース(OCDET) ストレージ基盤 WG
Citation preview
140830openstack_ceph設定ガイド.docx
Copyright © OSS Laboratories Co., Ltd. All rights reserved
Openstack-Ceph 設定ガイド Openstack/Icehouse + Ceph/Firefly 版
2014/8/30
オープンクラウド実証実験タスクフォース(OCDET)
ストレージ基盤WG
OSS ラボ株式会社
http://www.ossl.co.jp
Ver. 1.0
140830openstack_ceph設定ガイド.docx
Copyright © OSS Laboratories Co., Ltd. All rights reserved 1
⽬目次
1. はじめに ................................ ................................ ......................... 2 1.1. 本書の目的 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.2. 本書の利用対象者 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.3. 本手順の検証環境 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2. システム概要 ................................ ................................ ................... 3 2.1. システム概要図 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
3. インストール手順 ................................ ................................ .............. 4 3.1. 前提条件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 3.2. インストール方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
3.2.1. Ceph の構成 ................................................................................................................................. 4 3.2.2. Ceph のインストール ...................................................................................................................... 4 3.2.3. Openstackの設定 ........................................................................................................................ 6 3.2.4. 各種ファイル配置 ......................................................................................................................... 23 3.2.5. 各種ログ ...................................................................................................................................... 23 3.2.6. アンインストール ........................................................................................................................... 23
140830openstack_ceph設定ガイド.docx
Copyright © OSS Laboratories Co., Ltd. All rights reserved 2
1 . はじめに 1.1. 本書の⽬目的 本書を⽤用いて Openstack 環境で Ceph を使⽤用できる環境を構築できることを⽬目的とします。
1.2. 本書の利⽤用対象者 本書の利⽤用対象者は以下を想定して作成しております。
Openstack 構築の経験者。
1.3. 本⼿手順の検証環境 本⼿手順書は以下の機器、OS、アプリケーションを⽤用いた検証環境を基に作成しております。
Ubuntu 12.04LTS 64bit Openstack Icehouse 2014.1 Ceph Firefly 8.0 注意:Ceph のクライアントモジュール(kernel client, librbd)は、linux kernel 3.1 以上が必要ですので、CentOS6.5 の場合 kernel upgrade が必要です。
140830openstack_ceph設定ガイド.docx
Copyright © OSS Laboratories Co., Ltd. All rights reserved 3
2 . システム概要 本システムの概要を以下に⽰示します。
2.1. システム概要図
Management Network:
192.168.100.0/24
EXFS2
.113
EXFS3
.114
EXFS1
.112
MON
MDS
OSD
MON
MDS
OSD
MON
MDS
OSD
Ceph クラスタ
.123
controller
network
compute
.10 Pubric Network:
192.168.120.0/24
openstack
140830openstack_ceph設定ガイド.docx
Copyright © OSS Laboratories Co., Ltd. All rights reserved 4
3 . インストール⼿手順 3.1. 前提条件 l Openstack インストール済
l インターネット接続されている事
3.2. インストール⽅方法 3.2.1. Cephの構成
ホスト名 ネットワーク/eth0 ネットワーク/eth1 OS 役割
EXFS1 192.168.100.112/24 - CentOS release
6.5 (Final) MON/MDS/OSD/RADOS-GW
EXFS2 192.168.100.113/24 - CentOS release
6.5 (Final) MON/MDS/OSD
EXFS3 192.168.100.114/24 - CentOS release
6.5 (Final) MON/MDS/OSD
openstack 192.168.100.123/24 192.168.120.10/24 Ubuntu12.04LTS controller/network/
compute/ceph クライアント
3.2.2. Cephのインストール
① 事前準備
Ceph クラスタ及び Openstack 間での各サーバがホスト名での名前解決が行えること
Ceph クラスタのファイアウォールの停止
② Ceph-deploy
作業サーバ:EXFS1
実行ユーザ:root
作業ディレクトリ:/root
◆Ceph クラスタのインストール
Ceph クラスタは ceph-deploy を使用して構築します。
・EXFS1 に Ceph-deploy のインストール
# yum install ceph-deploy
・Ceph クラスタへ Ceph のインストール
# ceph-deploy install EXFS1 EXFS2 EXFS3
・鍵の生成とコンフィギュレーションの生成
Ceph クラスタ・クライアント間通信のため、鍵の生成とコンフィギュレーションの生成 を下記の操作を行い
ます。
140830openstack_ceph設定ガイド.docx
Copyright © OSS Laboratories Co., Ltd. All rights reserved 5
# ceph-deploy new EXFS1 EXFS2 EXFS3
・MON daemon のデプロイを行う
# ceph-deploy mon create EXFS1 EXFS2 EXFS3
・鍵のデプロイ
Ceph サーバ間・クライアント間での共有鍵となります。1 Cluster に対して 1 つの鍵を保有します。
# ceph-deploy gatherkeys EXFS1 EXFS2 EXFS3
・OSD にて使用するディレクトリの作成
EXFS1、EXFS2、EXFS3 それぞれで作成します。
EXFS1:
# mkdir /var/local/osd0
EXFS2:
# mkdir /var/local/osd1
EXFS3:
# mkdir /var/local/osd2
・OSD daemon のデプロイ
# ceph-deploy osd prepare EXFS1:/var/local/osd0 EXFS2:/var/local/osd1 EXFS3:/var/local/osd2
# ceph-deploy osd activate EXFS1:/var/local/osd0 EXFS2:/var/local/osd1 EXFS3:/var/local/osd2
# ceph-deploy admin EXFS1 EXFS2 EXFS3
・MDS deamon のデプロイ
# ceph-deploy mds create EXFS1 EXFS2 EXFS3
◆Ceph クライアントインストール
Openstack にて Ceph クライアントをインストールします。
# apt-get install ceph-common python-ceph ceph-fuse
③ Ceph クライアントの配置
作業サーバ:EXFS1
実行ユーザ:root
作業ディレクトリ:/root
Openstack にて Ceph を使用するため ceph.conf、adminKeyring ファイルを Ceph クラスタよりコピーします。
・Ceph のディレクトリの作成
140830openstack_ceph設定ガイド.docx
Copyright © OSS Laboratories Co., Ltd. All rights reserved 6
# mkdir /etc/ceph
・Ceph クラスタより ceph.conf、adminKeyring のコピー
# scp ceph.conf ceph.client.admin.keyring openstack:/etc/ceph
④ RADOS-GW 設定
作業サーバ:EXFS1
実行ユーザ:root
作業ディレクトリ:/root
◆RADOS-GW、Apache 等の必要なパッケージのインストール、及び Apache の設定
・Apache 等のインストール
# yum install httpd mod_fastcgi mod_ssl openssl
・RADOS-GW のインストール
# yum install ceph-radosgw
・Apache の設定
以下の行を追加します。
# vi /etc/httpd/conf/httpd.conf
ServerName EXFS1
・証明書の作成
openssl x509 -req -days 365 -in ca.csr -signkey ca.key -out ca.crt
・証明書のコピー
cp ca.crt /etc/pki/tls/certs
cp ca.key /etc/pki/tls/private/ca.key
ca.csr /etc/pki/tls/private/ca.csr
3.2.3. Openstack の設定
① Rbd pool の作成
作業サーバ:openstack
実行ユーザ:root
作業ディレクトリ:/root
◆Glance、Cinder、Cinder-Backup にて使用する pool の作成
・Glance 用の pool 作成
# ceph osd pool create images 128
140830openstack_ceph設定ガイド.docx
Copyright © OSS Laboratories Co., Ltd. All rights reserved 7
・Cinder 用の pool 作成
# ceph osd pool create volumes 128
・Cinder-Backup 用の pool 作成
# ceph osd pool create backups 128
・作成した pool の確認
# rados lspools
data
metadata
rbd
images
backups
volumes
② Glance 設定
作業サーバ:openstack
実行ユーザ:root
作業ディレクトリ:/etc/ceph
◆Keyring の作成
Glance 用の pool に接続するためのユーザを作成し、Keyring を取得します。
・ユーザ、keyring の作成
# ceph auth get-or-create client.images \
mon 'allow r' osd 'allow class-read object_prefix rbd_children, allow rwx pool=images'
・作成した Glance の keyring の確認
# ceph auth list
client.glance
key: AQD0c5hTaOQGORAAP9fOw/bpG0NNHg0r7K71YQ==
caps: [mon] allow r
caps: [osd] allow class-read object_prefix rbd_children, allow rwx pool=images
・Keyring ファイルをローカルに取得
# ceph auth get-or-create client.images ¦ tee ceph.client.images.keyring
・オーナーを Glance に変更
# chown glance:glance ceph.client.images.keyring
140830openstack_ceph設定ガイド.docx
Copyright © OSS Laboratories Co., Ltd. All rights reserved 8
・ceph.config の修正
上記で取得したユーザと keyring ファイルの設定を ceph.conf に追加します。
# vi ceph.conf
[client.images]
keyring = /etc/ceph/ceph.client.images.keyring
◆Glance 設定ファイルの編集
作業サーバ:openstack
実行ユーザ:root
作業ディレクトリ:/etc/glance
・Glance の保存先を ceph に変更するため、glance-api.conf を編集します。
以下の行を追加します。また、デフォルトの設定の「default_store = file」はコメントアウトします。
# vi glance-api.conf
#default_store = file
default_store = rbd
rbd_store_ceph_conf = /etc/ceph/ceph.conf
rbd_store_user = images
rbd_store_pool = images
rbd_store_chunk_size = 8
・既に古い保存先にイメージを登録してある場合は削除する
# glance image-list
+--------------------------------------+---------------------------------+-------------
+------------------+----------+--------+
¦ ID ¦ Name ¦ Disk Format ¦
Container Format ¦ Size ¦ Status ¦
+--------------------------------------+---------------------------------+-------------
+------------------+----------+--------+
¦ 4b1fc154-7c04-4572-ac6d-40d35d012744 ¦ cirros-0.3.1-x86_64-uec ¦ ami ¦ ami
¦ 25165824 ¦ active ¦
+--------------------------------------+---------------------------------+-------------
+------------------+----------+--------+
# glance image-delete 4b1fc154-7c04-4572-ac6d-40d35d012744
・Glance サービスの再起動
# for init in /etc/init.d/glance-*; do $init restart; done
◆イメージの登録
作業サーバ:openstack
140830openstack_ceph設定ガイド.docx
Copyright © OSS Laboratories Co., Ltd. All rights reserved 9
実行ユーザ:root
作業ディレクトリ:/usr/local/src
本書にて登録するイメージ(cirros-0.3.2-x86_64-disk.img)は予め/usr/local/src に格納
# glance add name=cirros-0.3.2-x86_64 is_public=true \
disk_format=qcow2 container_format=ovf < cirros-0.3.2-x86_64-disk.img
Added new image with ID: 2f74d6c3-d6ec-4109-9f0b-187a6f3bdd1c
◆登録したイメージの確認
・Openstack 上でのイメージ登録の確認
# glance image-list
+--------------------------------------+---------------------+-------------+-----------
-------+----------+--------+
¦ ID ¦ Name ¦ Disk Format ¦ Container Format ¦
Size ¦ Status ¦
+--------------------------------------+---------------------+-------------+-----------
-------+----------+--------+
¦ 2f74d6c3-d6ec-4109-9f0b-187a6f3bdd1c ¦ cirros-0.3.2-x86_64 ¦ qcow2 ¦ ovf ¦
13167616 ¦ active ¦
+--------------------------------------+---------------------+-------------+-----------
-------+----------+--------+
# glance index
ID Name Disk Format
Container Format Size
------------------------------------ ------------------------------ --------------------
-------------------- --------------
2f74d6c3-d6ec-4109-9f0b-187a6f3bdd1c cirros-0.3.2-x86_64 qcow2 ovf
13167616
・ceph 上でのイメージ登録の確認
# rbd --pool images ls -l
NAME SIZE PARENT FMT PROT LOCK
2f74d6c3-d6ec-4109-9f0b-187a6f3bdd1c 12859k 2
2f74d6c3-d6ec-4109-9f0b-187a6f3bdd1c@snap 12859k 2 yes
③ Cinder 設定
作業サーバ:openstack
実行ユーザ:root
作業ディレクトリ:/etc/ceph
140830openstack_ceph設定ガイド.docx
Copyright © OSS Laboratories Co., Ltd. All rights reserved 10
◆Keyring の作成
Cinder 用の pool に接続するためのユーザを作成し、Keyring を取得します。
・ユーザ、keyring の作成
# ceph auth get-or-create client.volumes \
mon 'allow r' osd 'allow class-read object_prefix rbd_children, allow rwx pool=volumes, allow rx pool=images'
・作成した Glance の keyring の確認
# client.volumes
key: AQBEkLNTOJsYGRAAuN9hy3k7xGotKItfFb0LuQ==
caps: [mon] allow r
caps: [osd] allow class-read object_prefix rbd_children, allow rwx pool=volumes, allow rx
pool=images
・Keyring ファイルをローカルに取得
# ceph auth get-or-create client.volumes ¦ tee ceph.client.volumes.keyring
・オーナーを Cinder に変更
# chown cinder:cinder /etc/ceph/ceph.client.volumes.keyring
・ceph.config の修正
上記で取得したユーザと keyring ファイルの設定を ceph.conf に追加します。
# vi /etc/ceph/ceph.conf
[client.images]
keyring = /etc/ceph/ceph.client.volumes.keyring
◆Libvirt に鍵を登録
作業サーバ:openstack
実行ユーザ:root
作業ディレクトリ:/root
・鍵の取得
# ceph auth get-key client.volumes ¦ tee client.volumes.key
・XML ファイルの作成
# cat > secret.xml <<EOF
<secret ephemeral='no' private='no'>
<usage type='ceph'>
<name>client.volumes secret</name>
</usage>
140830openstack_ceph設定ガイド.docx
Copyright © OSS Laboratories Co., Ltd. All rights reserved 11
</secret>
EOF
・UUID の取得
# UUID=$(virsh secret-define --file secret.xml ¦ cut -d " " -f 2)
# echo $UUID
2c01249d-9e02-ea2d-9d1e-fbadf82372a9
・libvirt に鍵ファイルと UUID を登録
# virsh secret-set-value \
--secret $UUID \
--base64 $(cat client.volumes.key) \
&& rm client.volumes.key secret.xml
※Cephと libvirtの鍵が一致していない場合、正常にCinderが動作しないのでこの時点で鍵の一致を確認
します。
2 つのコマンド実行後の値が同じであることを確認します。
# ceph auth get-key client.volumes
AQBEkLNTOJsYGRAAuN9hy3k7xGotKItfFb0LuQ==
# virsh secret-get-value --secret $UUID
AQBEkLNTOJsYGRAAuN9hy3k7xGotKItfFb0LuQ==
◆Cinder 設定ファイルの編集
作業サーバ:openstack
実行ユーザ:root
作業ディレクトリ:/etc/cinder
・ボリュームの保存先を ceph に変更するため、cinder.conf を編集します。
以下の行を追加します。
# vi cinder.conf
volume_driver=cinder.volume.drivers.rbd.RBDDriver
rbd_pool=volumes
rbd_user=volumes
rbd_secret_uuid=2c01249d-9e02-ea2d-9d1e-fbadf82372a9
※rbd_secret_uuid の値は”UUID の取得”にて取得した値を記載します。
・Cinder サービスの再起動
# for init in /etc/init.d/cinder-*; do $init restart; done
◆ Cinder ボリュームの作成
# cinder create --display_name test-01 1
140830openstack_ceph設定ガイド.docx
Copyright © OSS Laboratories Co., Ltd. All rights reserved 12
+------------------------------+--------------------------------------+
¦ Property ¦ Value ¦
+------------------------------+--------------------------------------+
¦ attachments ¦ [] ¦
¦ availability_zone ¦ nova ¦
¦ bootable ¦ false ¦
¦ created_at ¦ 2014-07-22T14:02:05.000000 ¦
¦ description ¦ None ¦
¦ encrypted ¦ False ¦
¦ id ¦ b6126f66-a6e8-456b-bb08-66ba284d9405 ¦
¦ metadata ¦ {} ¦
¦ name ¦ test-01 ¦
¦ os-vol-tenant-attr:tenant_id ¦ ccf2e118dd794ce4843178f99d6e6b20 ¦
¦ size ¦ 1 ¦
¦ snapshot_id ¦ None ¦
¦ source_volid ¦ None ¦
¦ status ¦ creating ¦
¦ user_id ¦ c961ec85993e4e3c90a1433a156bf3ff ¦
¦ volume_type ¦ None ¦
+------------------------------+--------------------------------------+
◆作成したボリュームの確認
・Openstack 上でのボリューム作成の確認
# cinder list
+--------------------------------------+-----------+---------+------+-------------+----
------+-------------+
¦ ID ¦ Status ¦ Name ¦ Size ¦ Volume Type ¦ Bootable ¦
Attached to ¦
+--------------------------------------+-----------+---------+------+-------------+----
------+-------------+
¦ b6126f66-a6e8-456b-bb08-66ba284d9405 ¦ available ¦ test-01 ¦ 1 ¦ None ¦ false ¦
¦
+--------------------------------------+-----------+---------+------+-------------+----
------+-------------+
・Ceph 上でのボリューム作成の確認
# rbd --pool volumes ls -l
NAME SIZE PARENT FMT PROT LOCK
volume-b6126f66-a6e8-456b-bb08-66ba284d9405 1024M 2
140830openstack_ceph設定ガイド.docx
Copyright © OSS Laboratories Co., Ltd. All rights reserved 13
④ ライブマイグレーション設定
作業サーバ:openstack
実行ユーザ:root
作業ディレクトリ:/etc/nova
◆Ceph をマウント
使用している全 ComputeNode で Ceph をマウントします。
※マウントは、以下の CephFS もしくは、RDB のどちらでも動作することを確認。
・マウントディレクトリの作成
♯mkdir /mnt/ceph
・ファイルシステムマウントを行うための Keyring の確認
# cat /etc/ceph/ceph.client.admin.keyring
[client.admin]
key = AQA2vI5TGHUFIhAA6Az7D0WZSL6h7y9uCKyZxQ==
●CephFUSE マウント
# mount.ceph EXFS1,EXFS2,EXFS3:/ /mnt/ceph -o \
name=admin,secret=AQA2vI5TGHUFIhAA6Az7D0WZSL6h7y9uCKyZxQ==
●RDB マウント
・ブロックデバイスイメージの作成
# rbd create foo --size 4096 -k /etc/ceph/ceph.client.admin.keyring
・RBD クライアントモジュールをロードします。
# modprobe rbd
・ブロックデバイスのイメージをマッピング
rbd map foo --pool rbd --name client.admin -k /etc/ceph/ceph.client.admin.keyring
・クライアントにファイルシステムを作成
mkfs.ext4 -m0 /dev/rbd/rbd/foo
・RDB マウント
mount /dev/rbd/rbd/foo /mnt
140830openstack_ceph設定ガイド.docx
Copyright © OSS Laboratories Co., Ltd. All rights reserved 14
・マウントの確認
※以下の結果は、CephFS のものとなります。
# df -Th /mnt/ceph
Filesystem Type Size Used Avail Use% Mounted on
192.168.100.112,192.168.100.113,192.168.100.114:/ ceph 686G 79G 607G 12% /mnt/ceph
◆Nova データの移行
本書では VM がない状態での手順となりますが、VM がある場合、以下の手順を全ての ComputeNode に
て行う必要があります。
・全 ComputeNode で nova の停止
# for init in /etc/init.d/nova-*; do $init stop; done
・データディレクトリのコピー
# cp -Rp /var/lib/nova /mnt/ceph/
・キャッシュ置き場の実体作成
# mkdir -p /data/nova/instances/_base
・オーナを nova へ変更
# chown -R nova:nova /mnt/ceph/nova /data/nova
・キャッシュ置き場をリンクに変更
※1 つの ComputeNode だけで行う
# rm -R /mnt/ceph/nova/instances/_base/
# ln -s /data/nova/instances/_base /mnt/ceph/nova/instances/
・Nova データのオーナの確認
全ての ComputeNode で、オーナが nova になっていることを確認する
# ls -l /mnt/ceph/nova/
drwxr-xr-x 1 nova nova 30 4 月 14 11:38 .dsh/
drwxr-xr-x 1 nova nova 3745 4 月 14 11:41 .ssh/
drwxr-xr-x 1 nova nova 0 4 月 14 11:36 CA/
drwxr-xr-x 1 nova nova 0 2 月 27 04:05 buckets/
drwxr-xr-x 1 nova nova 0 2 月 27 04:05 images/
drwxr-xr-x 1 nova nova 6446418 7 月 22 19:20 instances/
drwxr-xr-x 1 nova nova 0 2 月 27 04:05 keys/
drwxr-xr-x 1 nova nova 0 2 月 27 04:05 networks/
140830openstack_ceph設定ガイド.docx
Copyright © OSS Laboratories Co., Ltd. All rights reserved 15
-rw-r----- 1 nova nova 303104 4 月 14 11:38 nova.sqlite
drwxr-xr-x 1 nova nova 0 2 月 27 04:05 tmp/
・nova.conf の修正
以下の行を追加し、デフォルトの「state_path=/var/lib/nova」をコメントアウトする
# vi nova.conf
live_migration_bandwidth=0
live_migration_flag=VIR_MIGRATE_UNDEFINE_SOURCE,VIR_MIGRATE_PEER2PEER,VIR_MIGRATE_LIVE
live_migration_retry_count=30
live_migration_uri=qemu+tcp://%s/system
logdir=/var/log/nova
#state_path=/var/lib/nova
state_path=/mnt/ceph/nova
instances_path = $state_path/instances
base_dir_name = _base
◆libvirtd 設定
・libvirtd.conf 編集
以下の行を追加する
# vi /etc/libvirt/libvirtd.conf
listen_tls = 0
listen_tcp = 1
auth_tcp = "none"
・libvirt-bin 編集
以下の行を追加し、デフォルトの「libvirtd_opts="-d"」をコメントアウトする
# vi /etc/default/libvirt-bin
#libvirtd_opts="-d"
libvirtd_opts="-d -l"
・libvirt-bin.conf 編集
以下の行を追加し、デフォルトの「env libvirtd_opts="-d"」をコメントアウトする
# vi /etc/init/libvirt-bin.conf
#env libvirtd_opts="-d"
env libvirtd_opts="-d -l"
140830openstack_ceph設定ガイド.docx
Copyright © OSS Laboratories Co., Ltd. All rights reserved 16
⑤ Cinder-snapshot
Cinder-snapshot の設定は” Cinder 設定”にて行ったもの以外は不要となります。
◆ Cinder Snapshot の作成
先の手順で作成した Cinder ボリュームのスナップショットを取ります。
・Cinder ボリュームの確認
# cinder list
+--------------------------------------+-----------+---------+------+-------------+----
------+-------------+
¦ ID ¦ Status ¦ Name ¦ Size ¦ Volume Type ¦ Bootable ¦
Attached to ¦
+--------------------------------------+-----------+---------+------+-------------+----
------+-------------+
¦ b6126f66-a6e8-456b-bb08-66ba284d9405 ¦ available ¦ test-01 ¦ 1 ¦ None ¦ false ¦
¦
+--------------------------------------+-----------+---------+------+-------------+----
------+-------------+
・スナップショットの作成
# cinder snapshot-create b6126f66-a6e8-456b-bb08-66ba284d9405
+-------------+--------------------------------------+
¦ Property ¦ Value ¦
+-------------+--------------------------------------+
¦ created_at ¦ 2014-07-22T14:42:12.895876 ¦
¦ description ¦ None ¦
¦ id ¦ ccafb254-d498-4887-9c65-a1f39058ddb9 ¦
¦ metadata ¦ {} ¦
¦ name ¦ None ¦
¦ size ¦ 1 ¦
¦ status ¦ creating ¦
¦ volume_id ¦ b6126f66-a6e8-456b-bb08-66ba284d9405 ¦
+-------------+--------------------------------------+
◆作成したボリュームの確認
・Openstack 上でのボリューム作成の確認
# cinder snapshot-list
+--------------------------------------+--------------------------------------+--------
---+------+------+
¦ ID ¦ Volume ID ¦ Status ¦
140830openstack_ceph設定ガイド.docx
Copyright © OSS Laboratories Co., Ltd. All rights reserved 17
Name ¦ Size ¦
+--------------------------------------+--------------------------------------+--------
---+------+------+
¦ ccafb254-d498-4887-9c65-a1f39058ddb9 ¦ b6126f66-a6e8-456b-bb08-66ba284d9405 ¦ available ¦ None
¦ 1 ¦
+--------------------------------------+--------------------------------------+--------
---+------+------+
・Ceph 上でのボリューム作成の確認
スナップショットは、Cinder と同じ Pool に格納されます
# rbd --pool volumes ls -l
NAME
SIZE PARENT FMT PROT LOCK
volume-b6126f66-a6e8-456b-bb08-66ba284d9405
1024M 2
volume-b6126f66-a6e8-456b-bb08-66ba284d9405@snapshot-ccafb254-d498-4887-9c65-a1f39058ddb9
1024M 2 yes
⑥ Cinder-Backup
作業サーバ:openstack
実行ユーザ:root
作業ディレクトリ:/etc/ceph
◆Keyring の作成
Backup 用の pool に接続するためのユーザを作成し、Keyring を取得します。
・ユーザ、keyring の作成
ceph auth get-or-create client.cinder-backup \
mon 'allow r' osd 'allow class-read object_prefix rbd_children, allow rwx pool=backups'
・作成した Backup の keyring の確認
# ceph auth list
client.cinder-backup
key: AQDUE5BTUMVMFhAAbmxxmLa9Kl2hTvGlXPb1HA==
caps: [mon] allow r
caps: [osd] allow class-read object_prefix rbd_children, allow rwx pool=backups
・Keyring ファイルをローカルに取得
ceph auth get-or-create client.volumes ¦ tee /etc/ceph/ceph.client.cinder-backup.keyring
・オーナーを Cinder に変更
140830openstack_ceph設定ガイド.docx
Copyright © OSS Laboratories Co., Ltd. All rights reserved 18
chown cinder.cinder /etc/ceph/ceph.client.cinder-backup.keyring
・ceph.config の修正
上記で取得したユーザと keyring ファイルの設定を ceph.conf に追加します。
# vi /etc/ceph/ceph.conf
[client.images]
keyring = /etc/ceph/ceph.client.cinder-backup.keyring
◆Cinder 設定ファイルの編集
作業サーバ:openstack
実行ユーザ:root
作業ディレクトリ:/etc/cinder
・ボリュームのバックアップの保存先を ceph に変更するため、cinder.conf を編集します。
以下の行を追加します。
# vi cinder.conf
backup_driver=cinder.backup.drivers.ceph
backup_ceph_conf=/etc/ceph/ceph.conf
backup_ceph_user=cinder-backup
backup_ceph_chunk_size=134217728
backup_ceph_pool=backups
backup_ceph_stripe_unit=0
backup_ceph_stripe_count=0
restore_discard_excess_bytes=true
・Cinder サービスの再起動
# for init in /etc/init.d/cinder-*; do $init restart; done
◆ Cinde Backup ボリュームの作成
先の手順で作成した Cinder ボリュームのバックアップを取ります。
・Cinder ボリュームの確認
# cinder list
+--------------------------------------+-----------+---------+------+-------------+----
------+-------------+
¦ ID ¦ Status ¦ Name ¦ Size ¦ Volume Type ¦ Bootable ¦
Attached to ¦
+--------------------------------------+-----------+---------+------+-------------+----
------+-------------+
¦ b6126f66-a6e8-456b-bb08-66ba284d9405 ¦ available ¦ test-01 ¦ 1 ¦ None ¦ false ¦
¦
140830openstack_ceph設定ガイド.docx
Copyright © OSS Laboratories Co., Ltd. All rights reserved 19
+--------------------------------------+-----------+---------+------+-------------+----
------+-------------+
・バックアップボリュームの作成
# cinder backup-create --display-name backup-test01 b6126f66-a6e8-456b-bb08-66ba284d9405
+-----------+--------------------------------------+
¦ Property ¦ Value ¦
+-----------+--------------------------------------+
¦ id ¦ 691af46d-4f55-4469-870a-8bad9017c942 ¦
¦ name ¦ backup-test01 ¦
¦ volume_id ¦ b6126f66-a6e8-456b-bb08-66ba284d9405 ¦
+-----------+--------------------------------------+
◆作成したボリュームの確認
・Openstack 上でのボリューム作成の確認
# cinder backup-list
+--------------------------------------+--------------------------------------+--------
---+---------------+------+--------------+---------------+
¦ ID ¦ Volume ID ¦ Status ¦
Name ¦ Size ¦ Object Count ¦ Container ¦
+--------------------------------------+--------------------------------------+--------
---+---------------+------+--------------+---------------+
¦ 691af46d-4f55-4469-870a-8bad9017c942 ¦ b6126f66-a6e8-456b-bb08-66ba284d9405 ¦ available ¦
backup-test01 ¦ 1 ¦ None ¦ backups ¦
+--------------------------------------+--------------------------------------+--------
---+---------------+------+--------------+---------------+
・Ceph 上でのボリューム作成の確認
# rbd --pool backups ls -l
NAME
SIZE PARENT FMT PROT LOCK
volume-b6126f66-a6e8-456b-bb08-66ba284d9405.backup.base@backup.691af46d-4f55-4469-870a-8bad
9017c942.snap.1406039019.78 1024M 2
⑦ SWIFT
作業サーバ:EXFS1
実行ユーザ:root
作業ディレクトリ:/etc/ceph
140830openstack_ceph設定ガイド.docx
Copyright © OSS Laboratories Co., Ltd. All rights reserved 20
◆Keyring の作成
Glance 用の pool に接続するための、Keyring を取得します。
・keyring の作成
# ceph-authtool --create-keyring /etc/ceph/ceph.client.radosgw.keyring
# sudo chmod +r /etc/ceph/ceph.client.radosgw.keyring
# ceph-authtool /etc/ceph/ceph.client.radosgw.keyring -n client.radosgw.gateway --gen-key
# ceph-authtool -n client.radosgw.gateway --cap osd 'allow rwx' --cap mon 'allow rw' \
/etc/ceph/ceph.client.radosgw.keyring
# ceph -k /etc/ceph/ceph.client.admin.keyring auth add client.radosgw.gateway -i \
/etc/ceph/ceph.client.radosgw.keyring
・Keyring の確認
# ceph auth list
client.radosgw.gateway
key: AQA5ltRT6DEEBRAA5oGPolWuwuqFrUEzXabcKw==
caps: [mon] allow rw
caps: [osd] allow rwx
・Keyring ファイルを全てのクラスタにコピーします。
scp ceph.client.radosgw.keyring ceph.conf EXFS2:/etc/ceph
scp ceph.client.radosgw.keyring ceph.conf EXFS3:/etc/ceph
◆RADOS-GW のスクリプトを追加
・s3gw.fcgi の作成
# vi /var/www/html/s3gw.fcgi
#!/bin/sh
exec /usr/bin/radosgw -c /etc/ceph/ceph.conf -n client.radosgw.gateway
・実行権限の付与
# chmod +x /var/www/html/s3gw.fcgi
・オーナーを Apache に変更
※/var/log/ceph/client.radosgw.gateway.log が存在しない場合は、RADOS-GW を起動後にオーナーを変
更すること
# chown apache:apache s3gw.fcgi
# chown apache:apache /var/run/ceph/
# chown apache:apache /var/log/httpd/
# chown apache:apache /var/log/ceph/client.radosgw.gateway.log
・データディレクトリの作成
140830openstack_ceph設定ガイド.docx
Copyright © OSS Laboratories Co., Ltd. All rights reserved 21
# mkdir -p /var/lib/ceph/radosgw/ceph-radosgw.gateway
・rgw.conf の作成
# vi /etc/httpd/conf.d/rgw.conf
FastCgiExternalServer /var/www/html/s3gw.fcgi -socket
/var/run/ceph/ceph.radosgw.gateway.fastcgi.sock
<VirtualHost *:80>
ServerName EXFS1
ServerAdmin EXFS1
DocumentRoot /var/www/html
RewriteEngine On
RewriteRule ^/(.*) /s3gw.fcgi?%{QUERY_STRING}
[E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]
<IfModule mod_fastcgi.c>
<Directory /var/www/html>
Options +ExecCGI
AllowOverride All
SetHandler fastcgi-script
Order allow,deny
Allow from all
AuthBasicAuthoritative Off
</Directory>
</IfModule>
AllowEncodedSlashes On
ErrorLog /var/log/httpd/error.log
CustomLog /var/log/httpd/access.log combined
ServerSignature Off
</VirtualHost>
・ceph.conf の編集
以下の行を追加する
# vi /etc/ceph/ceph.conf
[client.radosgw.gateway]
host = ceph-gateway
keyring = /etc/ceph/ceph.client.radosgw.keyring
140830openstack_ceph設定ガイド.docx
Copyright © OSS Laboratories Co., Ltd. All rights reserved 22
rgw socket path = /var/run/ceph/ceph.radosgw.gateway.fastcgi.sock
log file = /var/log/ceph/client.radosgw.gateway.log
・Apache、RADOS-GW の起動
# /etc/init.d/httpd start
# /etc/init.d/ceph-radosgw start
◆Keystone との連携
作業サーバ:EXFS1
実行ユーザ:root
作業ディレクトリ:/etc/ceph
・ceph.conf の編集
以下の行を[client.radosgw.gateway]の項目に追加する
# vi /etc/ceph/ceph.conf
[client.radosgw.gateway]
rgw keystone url = http://openstack:3537
rgw keystone admin token = openstack
rgw keystone accepted roles = Member, admin
rgw keystone token cache size = 500
rgw keystone revocation interval = {number of seconds before checking revoked tickets}
rgw s3 auth use keystone = true
nss db path = /var/ceph/nss
・Keystone、endpoint 作成
作業サーバ:openstack
実行ユーザ:root
作業ディレクトリ:/root
# keystone service-create --name swift --type object-store
# keystone endpoint-create --service-id 17a507baf55846118bd41b0e303298f4 \
--publicurl "http://EXFS1/swif" \
--adminurl "http://EXFS1/swif" ‒internalurl "http://EXFS1/swif"
3.2.4. 各種ファイル配置 root@openstack:/etc/ceph# pwd /etc/ceph
140830openstack_ceph設定ガイド.docx
Copyright © OSS Laboratories Co., Ltd. All rights reserved 23
root@openstack:/etc/ceph# ls -l total 28 -rw-r--r-- 1 root root 63 Jun 16 15:12 ceph.client.admin.keyring -rw-r--r-- 1 cinder cinder 71 Jun 16 15:12 ceph.client.cinder-backup.keyring -rw-r--r-- 1 glance glance 64 Jun 16 16:14 ceph.client.images.keyring -rw-r--r-- 1 root root 120 Jul 23 17:34 ceph.client.radosgw.keyring -rw-r--r-- 1 cinder cinder 65 Jul 2 13:54 ceph.client.volumes.keyring -rw-r--r-- 1 root root 927 Jul 23 17:51 ceph.conf -rw-r--r-- 1 root root 92 May 13 00:32 rbdmap
3.2.5. 各種ログ Ceph 連携ログ(Ceph クラスタ):/var/log/ceph/ceph.log
3.2.6. アンインストール ◆Ceph クラスタアンインストール
# yum remove ceph ceph-common python-ceph ceph-radosgw
# rm ‒rf /var/run/ceph/
# ls /var/local/osd*
# rm ‒rf /etc/ceph
◆Ceph クライアントアンインストール
# apt-get ‒purge remove ceph-common python-ceph ceph-fuse
# rm ‒rf /etc/ceph
以上