Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
140830openstack_ceph 設定ガイド.docx 
Copyright © OSS Laboratories Co., Ltd. All rights reserved 
Openstack-Ceph 設定ガイド 
Openstack/Icehouse + Ceph/Firefly 版 
Ver. 1.0 
2014/8/30 
オープンクラウド実証実験タスクフォース(OCDET) 
ストレージ基盤WG 
OSS ラボ株式会社 
http://www.ossl.co.jp
140830openstack_ceph 設定ガイド.docx 
⽬目次 
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 
Copyright © OSS Laboratories Co., Ltd. All rights reserved 1
140830openstack_ceph 設定ガイド.docx 
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 が必要です。 
Copyright © OSS Laboratories Co., Ltd. All rights reserved 2
140830openstack_ceph 設定ガイド.docx 
2 . システム概要 
本システムの概要を以下に⽰示します。 
2 . 1 . システム概要図 
Management Network: 
192.168.100.0/24 
Ceph クラスタ 
EXFS2 
.113 
EXFS3 
.114 
EXFS1 
.112 
MON 
MDS 
OSD 
MON 
MDS 
OSD 
MON 
MDS 
OSD 
.123 
controller 
network 
compute 
openstack 
.10 Pubric Network: 
192.168.120.0/24 
Copyright © OSS Laboratories Co., Ltd. All rights reserved 3
140830openstack_ceph 設定ガイド.docx 
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 クラスタのファイアウォールの停止 
② C e p h - d e p l o y 
作業サーバ:EXFS1 
実行ユーザ:root 
作業ディレクトリ:/root 
◆Ceph クラスタのインストール 
Ceph クラスタはceph-deploy を使用して構築します。 
・EXFS1 にCeph-deploy のインストール 
# yum install ceph-deploy 
・Ceph クラスタへCeph のインストール 
# ceph-deploy install EXFS1 EXFS2 EXFS3 
・鍵の生成とコンフィギュレーションの生成 
Ceph クラスタ・クライアント間通信のため、鍵の生成とコンフィギュレーションの生成 を下記の操作を行い 
ます。 
Copyright © OSS Laboratories Co., Ltd. All rights reserved 4
140830openstack_ceph 設定ガイド.docx 
# 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 
③ C e p h クライアントの配置 
作業サーバ:EXFS1 
実行ユーザ:root 
作業ディレクトリ:/root 
Openstack にてCeph を使用するためceph.conf、adminKeyring ファイルをCeph クラスタよりコピーします。 
・Ceph のディレクトリの作成 
Copyright © OSS Laboratories Co., Ltd. All rights reserved 5
140830openstack_ceph 設定ガイド.docx 
# mkdir /etc/ceph 
・Ceph クラスタよりceph.conf、adminKeyring のコピー 
# scp ceph.conf ceph.client.admin.keyring openstack:/etc/ceph 
④ R A DOS -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 
Copyright © OSS Laboratories Co., Ltd. All rights reserved 6
140830openstack_ceph 設定ガイド.docx 
・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 
Copyright © OSS Laboratories Co., Ltd. All rights reserved 7
140830openstack_ceph 設定ガイド.docx 
・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 
Copyright © OSS Laboratories Co., Ltd. All rights reserved 8
140830openstack_ceph 設定ガイド.docx 
実行ユーザ: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 
Copyright © OSS Laboratories Co., Ltd. All rights reserved 9
140830openstack_ceph 設定ガイド.docx 
◆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> 
Copyright © OSS Laboratories Co., Ltd. All rights reserved 10
140830openstack_ceph 設定ガイド.docx 
</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 
Copyright © OSS Laboratories Co., Ltd. All rights reserved 11
140830openstack_ceph 設定ガイド.docx 
+------------------------------+--------------------------------------+ 
¦ 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 
Copyright © OSS Laboratories Co., Ltd. All rights reserved 12
140830openstack_ceph 設定ガイド.docx 
④ ライブマイグレーション設定 
作業サーバ: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 
Copyright © OSS Laboratories Co., Ltd. All rights reserved 13
140830openstack_ceph 設定ガイド.docx 
・マウントの確認 
※以下の結果は、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/ 
Copyright © OSS Laboratories Co., Ltd. All rights reserved 14
140830openstack_ceph 設定ガイド.docx 
-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" 
Copyright © OSS Laboratories Co., Ltd. All rights reserved 15
140830openstack_ceph 設定ガイド.docx 
⑤ 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 ¦ 
Copyright © OSS Laboratories Co., Ltd. All rights reserved 16
140830openstack_ceph 設定ガイド.docx 
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 に変更 
Copyright © OSS Laboratories Co., Ltd. All rights reserved 17
140830openstack_ceph 設定ガイド.docx 
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 ¦ 
¦ 
Copyright © OSS Laboratories Co., Ltd. All rights reserved 18
140830openstack_ceph 設定ガイド.docx 
+--------------------------------------+-----------+---------+------+-------------+---- 
------+-------------+ 
・バックアップボリュームの作成 
# 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 
Copyright © OSS Laboratories Co., Ltd. All rights reserved 19
140830openstack_ceph 設定ガイド.docx 
◆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 
・データディレクトリの作成 
Copyright © OSS Laboratories Co., Ltd. All rights reserved 20
140830openstack_ceph 設定ガイド.docx 
# 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 
Copyright © OSS Laboratories Co., Ltd. All rights reserved 21
140830openstack_ceph 設定ガイド.docx 
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 
Copyright © OSS Laboratories Co., Ltd. All rights reserved 22
140830openstack_ceph 設定ガイド.docx 
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 
以上 
Copyright © OSS Laboratories Co., Ltd. All rights reserved 23

More Related Content

Openstack+Ceph設定ガイド

  • 1. 140830openstack_ceph 設定ガイド.docx Copyright © OSS Laboratories Co., Ltd. All rights reserved Openstack-Ceph 設定ガイド Openstack/Icehouse + Ceph/Firefly 版 Ver. 1.0 2014/8/30 オープンクラウド実証実験タスクフォース(OCDET) ストレージ基盤WG OSS ラボ株式会社 http://www.ossl.co.jp
  • 2. 140830openstack_ceph 設定ガイド.docx ⽬目次 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 Copyright © OSS Laboratories Co., Ltd. All rights reserved 1
  • 3. 140830openstack_ceph 設定ガイド.docx 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 が必要です。 Copyright © OSS Laboratories Co., Ltd. All rights reserved 2
  • 4. 140830openstack_ceph 設定ガイド.docx 2 . システム概要 本システムの概要を以下に⽰示します。 2 . 1 . システム概要図 Management Network: 192.168.100.0/24 Ceph クラスタ EXFS2 .113 EXFS3 .114 EXFS1 .112 MON MDS OSD MON MDS OSD MON MDS OSD .123 controller network compute openstack .10 Pubric Network: 192.168.120.0/24 Copyright © OSS Laboratories Co., Ltd. All rights reserved 3
  • 5. 140830openstack_ceph 設定ガイド.docx 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 クラスタのファイアウォールの停止 ② C e p h - d e p l o y 作業サーバ:EXFS1 実行ユーザ:root 作業ディレクトリ:/root ◆Ceph クラスタのインストール Ceph クラスタはceph-deploy を使用して構築します。 ・EXFS1 にCeph-deploy のインストール # yum install ceph-deploy ・Ceph クラスタへCeph のインストール # ceph-deploy install EXFS1 EXFS2 EXFS3 ・鍵の生成とコンフィギュレーションの生成 Ceph クラスタ・クライアント間通信のため、鍵の生成とコンフィギュレーションの生成 を下記の操作を行い ます。 Copyright © OSS Laboratories Co., Ltd. All rights reserved 4
  • 6. 140830openstack_ceph 設定ガイド.docx # 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 ③ C e p h クライアントの配置 作業サーバ:EXFS1 実行ユーザ:root 作業ディレクトリ:/root Openstack にてCeph を使用するためceph.conf、adminKeyring ファイルをCeph クラスタよりコピーします。 ・Ceph のディレクトリの作成 Copyright © OSS Laboratories Co., Ltd. All rights reserved 5
  • 7. 140830openstack_ceph 設定ガイド.docx # mkdir /etc/ceph ・Ceph クラスタよりceph.conf、adminKeyring のコピー # scp ceph.conf ceph.client.admin.keyring openstack:/etc/ceph ④ R A DOS -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 Copyright © OSS Laboratories Co., Ltd. All rights reserved 6
  • 8. 140830openstack_ceph 設定ガイド.docx ・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 Copyright © OSS Laboratories Co., Ltd. All rights reserved 7
  • 9. 140830openstack_ceph 設定ガイド.docx ・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 Copyright © OSS Laboratories Co., Ltd. All rights reserved 8
  • 10. 140830openstack_ceph 設定ガイド.docx 実行ユーザ: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 Copyright © OSS Laboratories Co., Ltd. All rights reserved 9
  • 11. 140830openstack_ceph 設定ガイド.docx ◆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> Copyright © OSS Laboratories Co., Ltd. All rights reserved 10
  • 12. 140830openstack_ceph 設定ガイド.docx </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 Copyright © OSS Laboratories Co., Ltd. All rights reserved 11
  • 13. 140830openstack_ceph 設定ガイド.docx +------------------------------+--------------------------------------+ ¦ 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 Copyright © OSS Laboratories Co., Ltd. All rights reserved 12
  • 14. 140830openstack_ceph 設定ガイド.docx ④ ライブマイグレーション設定 作業サーバ: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 Copyright © OSS Laboratories Co., Ltd. All rights reserved 13
  • 15. 140830openstack_ceph 設定ガイド.docx ・マウントの確認 ※以下の結果は、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/ Copyright © OSS Laboratories Co., Ltd. All rights reserved 14
  • 16. 140830openstack_ceph 設定ガイド.docx -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" Copyright © OSS Laboratories Co., Ltd. All rights reserved 15
  • 17. 140830openstack_ceph 設定ガイド.docx ⑤ 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 ¦ Copyright © OSS Laboratories Co., Ltd. All rights reserved 16
  • 18. 140830openstack_ceph 設定ガイド.docx 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 に変更 Copyright © OSS Laboratories Co., Ltd. All rights reserved 17
  • 19. 140830openstack_ceph 設定ガイド.docx 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 ¦ ¦ Copyright © OSS Laboratories Co., Ltd. All rights reserved 18
  • 20. 140830openstack_ceph 設定ガイド.docx +--------------------------------------+-----------+---------+------+-------------+---- ------+-------------+ ・バックアップボリュームの作成 # 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 Copyright © OSS Laboratories Co., Ltd. All rights reserved 19
  • 21. 140830openstack_ceph 設定ガイド.docx ◆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 ・データディレクトリの作成 Copyright © OSS Laboratories Co., Ltd. All rights reserved 20
  • 22. 140830openstack_ceph 設定ガイド.docx # 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 Copyright © OSS Laboratories Co., Ltd. All rights reserved 21
  • 23. 140830openstack_ceph 設定ガイド.docx 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 Copyright © OSS Laboratories Co., Ltd. All rights reserved 22
  • 24. 140830openstack_ceph 設定ガイド.docx 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 以上 Copyright © OSS Laboratories Co., Ltd. All rights reserved 23