24
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

Openstack+Ceph設定ガイド

  • Upload
    oss

  • View
    1.143

  • Download
    1

Embed Size (px)

DESCRIPTION

Openstack/Icehouseでの、Ceph/Firefly分散ストレージ設定ガイド by オープンクラウド実証実験タスクフォース(OCDET) ストレージ基盤 WG

Citation preview

Page 1: Openstack+Ceph設定ガイド

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

Page 2: Openstack+Ceph設定ガイド

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

Page 3: Openstack+Ceph設定ガイド

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 が必要です。

Page 4: Openstack+Ceph設定ガイド

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

Page 5: Openstack+Ceph設定ガイド

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 クラスタ・クライアント間通信のため、鍵の生成とコンフィギュレーションの生成 を下記の操作を行い

ます。

Page 6: Openstack+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 のディレクトリの作成

Page 7: Openstack+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

Page 8: Openstack+Ceph設定ガイド

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

Page 9: Openstack+Ceph設定ガイド

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

Page 10: Openstack+Ceph設定ガイド

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

Page 11: Openstack+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>

Page 12: Openstack+Ceph設定ガイド

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

Page 13: Openstack+Ceph設定ガイド

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

Page 14: Openstack+Ceph設定ガイド

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

Page 15: Openstack+Ceph設定ガイド

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/

Page 16: Openstack+Ceph設定ガイド

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"

Page 17: Openstack+Ceph設定ガイド

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 ¦

Page 18: Openstack+Ceph設定ガイド

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 に変更

Page 19: Openstack+Ceph設定ガイド

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 ¦

¦

Page 20: Openstack+Ceph設定ガイド

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

Page 21: Openstack+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

・データディレクトリの作成

Page 22: Openstack+Ceph設定ガイド

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

Page 23: Openstack+Ceph設定ガイド

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

Page 24: Openstack+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

以上