Más contenido relacionado La actualidad más candente (20) Similar a How to use Ceph RBD as CloudStack Primary Storage (20) Más de Kimihiko Kitase (20) How to use Ceph RBD as CloudStack Primary Storage5. オブジェクトベースの分散ストレージ基盤
• 汎用サーバ・Linux上で動作するオープンソースソフト (LGPL)
• 高信頼(データレプリケーション、フェイルオーバー)
• 高スケーラビリティ(数千ノード程度まで拡張可)
• インタフェースのバリエーションが豊富(ファイル・ブロック・オブジェ
クト)
• Inktank社がサポート(&開発の中心)、DreamHost社が主スポンサー
Cephとは?
RADOS: Reliable, Autonomic, Distributed Object Store
librados
RADOSGW
S3 compatible
REST Gateway
RBD
RADOS
Block Device
CephFS
POSIX-compliant
Distributed filesystem
Object Block Filesystem
QEMU-KVM
Kernel
Client
Kernel
Client
FUSERESTAPI
http://ceph.com/
6. • Ceph上でブロックストレージを提供
• データはOSD (Object Storage Device) プールに
オブジェクトとして分散配置
o ディフォルトでは4MB単位で分散
o Thin Provisioning (使用している領域のみ実スペースを占有)
• MonitorはOSDの構成・レイアウト管理、各サーバーの生存確認等を行う
o クライアントはMonitorからレイアウト情報を入手し、OSDへアクセスする
• OSD内のデータ配置管理やオブジェクトの冗長化はOSD側で行う
RBD: RADOS Block Device
OSD
Monitor
OSD OSD OSD OSD
Client
仮想Diskクラスタ構成
レイアウト情報
8. 目的: CloudStack配下でのCeph RBD利用について実証
期間: 2013年7月16日~26日
場所: 富士通トラステッド・クラウド・スクエア (TCS)
• 浜松町世界貿易センタービル 30階
• http://jp.fujitsu.com/facilities/tcs/
CloudStack / Ceph RBD共同検証
日 月 火 水 木 金 土
14 15
海の日
16 17 18 19 20
21 22 23 24 25 26 27
Ceph / CloudStack 環境構築
機能
検証
性能
環境
構築
9. 10GbE Storage用 LAN
OS: RHEL 6.3 x86_64
検証環境
CloudStack管理サーバー
PRIMERGY RX200S7
Xeon 2.9GHz 8core ×2
16GB memory
1GbE
PC
仮想環境サーバー
PRIMERGY RX200S7
Xeon 2.9GHz 8core ×2
16GB memory
Cephストレージサーバー
PRIMERGY RX300S7
Xeon 2.9GHz 8core ×2
32GB memory
OSD 600GB ×6
Cephストレージサーバー
PRIMERGY RX300S7
Xeon 2.9GHz 8core ×2
32GB memory
OSD 600GB ×6
Cephストレージサーバー
PRIMERGY RX300S7
Xeon 2.9GHz 8core ×2
32GB memory
OSD 600GB ×6
管理LAN
10. 10GbE Storage用 LAN
OS: RHEL 6.3 x86_64
検証環境 (Live Migration検証時)
CloudStack
管理サーバー
PRIMERGY RX200S7
Xeon 2.9GHz 8core ×2
16GB memory
1GbE
PC
仮想環境サーバー
(ホスト)
PRIMERGY RX200S7
Xeon 2.9GHz 8core ×2
16GB memory
Cephストレージサーバー
PRIMERGY RX300S7
Xeon 2.9GHz 8core ×2
32GB memory
OSD 600GB ×6
Cephストレージサーバー
PRIMERGY RX300S7
Xeon 2.9GHz 8core ×2
32GB memory
OSD 600GB ×6
管理LAN
仮想環境サーバー
(ホスト)
PRIMERGY RX300S7
Xeon 2.9GHz 8core ×2
32GB memory
14. RHEL 6.3へのCeph動作環境の構築
• Cephクラスタを構成するサーバー群に
Ceph動作環境を構築
• Linux kernelのアップデート(全ノード)
o Cephの推奨動作環境に沿うように、
今回は3.4.51.el6.x86_64をインストール
o http://ceph.com/docs/master/install/os-recommendations/
• SELinuxとiptablesの停止(全ノード)
• ssh環境構築(全ノード)
o http://ceph.com/docs/master/start/quick-start-preflight/
o 今回は専用アカウントを作成せずにrootで作業を実施
• cephパッケージのインストール(全ノード:今回の検証環境特有)
o http://ceph.com/docs/master/install/rpm/
o 本来は次項のceph-deployコマンドを使ってインストールを集中管理できるが、今回
はインターネットから隔離された環境のためマニュアルでパッケージをインストール
o http://ceph.com/rpm-cuttlefish/el6/
• ceph-deployのインストール(管理ノード)
o 一つのサーバーを管理ノードとし、
ceph-deployパッケージをインストール
o http://ceph.com/rpm-cuttlefish/el6/noarch/ceph-deploy-1.0-0.noarch.rpm
o 以降のCephクラスタ構築作業は管理ノードから実施
15. Cephクラスタの構築
• ceph-deployコマンドを使いCephクラスタを構築
http://ceph.com/docs/master/start/quick-ceph-deploy/
# ceph-deploy new rx300s7-14g
# ceph-deploy mon create rx300s7-14g
# ceph-deploy gatherkeys rx300s7-14g
# ceph-deploy disk zap rx300s7-14g:/dev/sdb rx300s7-14g:/dev/sdc rx300s7-14g:/dev/sdd rx300s7-
14g:/dev/sde rx300s7-14g:/dev/sdf rx300s7-14g:/dev/sdg
# ceph-deploy disk zap rx300s7-15g:/dev/sdb rx300s7-15g:/dev/sdc rx300s7-15g:/dev/sdd rx300s7-
15g:/dev/sde rx300s7-15g:/dev/sdf rx300s7-15g:/dev/sdg
# ceph-deploy disk zap rx300s7-16g:/dev/sdb rx300s7-16g:/dev/sdc rx300s7-16g:/dev/sdd rx300s7-
16g:/dev/sde rx300s7-16g:/dev/sdf rx300s7-16g:/dev/sdg
# ceph-deploy osd create rx300s7-14g:/dev/sdb rx300s7-14g:/dev/sdc rx300s7-14g:/dev/sdd rx300s
7-14g:/dev/sde rx300s7-14g:/dev/sdf rx300s7-14g:/dev/sdg
# ceph-deploy osd create rx300s7-15g:/dev/sdb rx300s7-15g:/dev/sdc rx300s7-15g:/dev/sdd rx300s
7-15g:/dev/sde rx300s7-15g:/dev/sdf rx300s7-15g:/dev/sdg
# ceph-deploy osd create rx300s7-16g:/dev/sdb rx300s7-16g:/dev/sdc rx300s7-16g:/dev/sdd rx300s
7-16g:/dev/sde rx300s7-16g:/dev/sdf rx300s7-16g:/dev/sdg
クラスタ作成・Monitorノード構築
OSD用ディスク初期化
OSD構築
16. Cephクラスタの構築(続き)
• Cephクラスタが構築できたことの確認
# ceph health
--> HEALTH_OK
# ceph osd tree
# id weight type name up/down reweight
-1 9.72 root default
-2 3.24 host rx300s7-14g
0 0.54 osd.0 up 1
1 0.54 osd.1 up 1
2 0.54 osd.2 up 1
3 0.54 osd.3 up 1
4 0.54 osd.4 up 1
5 0.54 osd.5 up 1
-3 3.24 host rx300s7-15g
6 0.54 osd.6 up 1
7 0.54 osd.7 up 1
8 0.54 osd.8 up 1
9 0.54 osd.9 up 1
10 0.54 osd.10 up 1
11 0.54 osd.11 up 1
-4 3.24 host rx300s7-16g
12 0.54 osd.12 up 1
13 0.54 osd.13 up 1
14 0.54 osd.14 up 1
15 0.54 osd.15 up 1
16 0.54 osd.16 up 1
17 0.54 osd.17 up 1
クラスタのヘルスチェック
OSDメンバの表示
17. CloudStack向けストレージプールの作成
• CloudStackで使用するRBD用の設定を行う
# ceph osd lspools
0 data,1 metadata,2 rbd,
# ceph osd pool create libvirt-pool 128 128
pool 'libvirt-pool' created
# ceph osd lspools
0 data,1 metadata,2 rbd,3 libvirt-pool,
# ceph auth get-or-create client.libvirt mon 'allow r' osd 'allow class-read object_prefix rbd_children, allow r
wx pool=libvirt-pool'
[client.libvirt]
key = AQC7OuZReMndFxAAY/qUwLbvfod6EMvgVWU21g==
# ceph auth list
installed auth entries:
osd.0
...
client.libvirt
key: AQC7OuZReMndFxAAY/qUwLbvfod6EMvgVWU21g==
caps: [mon] allow r
caps: [osd] allow class-read object_prefix rbd_children, allow rwx pool=libvirt-pool
CloudStack用プールを作成
※今回はlibvirt-poolというプール名で作成したが、任意のプール名を指定可能
CloudStackからプールへアクセスするためのクライアント認証情報を作成
※今回はlibvirtというユーザー名でlibvirt-poolプールへアクセス可能とする設定
http://ceph.com/docs/master/rados/operations/authentication/#add-a-key
18. RHEL 6.3へのRBDクライアント環境の構築
• CloudStackから仮想マシンを構築するサーバーで
RBDを使えるようにする
• cephパッケージのインストール
o http://ceph.com/docs/master/install/rpm/
o RHELではlibvirt/QEMUのコンパイルが必要なため、-develパッケージのイ
ンストールも必要
• RBDを有効にしたlibvirtパッケージにアップデート
o 今回はRHEL 6.4用のlibvirt 0.10.2のソースコードを使用
http://ftp.redhat.com/pub/redhat/linux/enterprise/6Server/en/os/SRPMS/libvi
rt-0.10.2-18.el6_4.9.src.rpm
o specファイルのwith_storage_rbdを有効にしてパッケージをビルドし、イ
ンストール
• RBDを有効にしたQEMUパッケージにアップデート
o 今回はFedora 17用のqemu 1.0のソースコードを使用
http://dl.fedoraproject.org/pub/fedora/linux/releases/17/Everything/source/S
RPMS/q/qemu-1.0-17.fc17.src.rpm
o specファイルを改変してRBDを有効にし、RequresをRHELに合わせて修
正してビルド・インストール
20. プライマリストレージとして追加
• プロトコル: RBD
• RADOS Monitor: モニ
ターノードのIPアドレス
• RADOS Pool: Pool名
• RADOS User: Cephの
ユーザー名 (今回はlibvirt)
• RADOS Secret: ユーザー
のシークレットKEY(Ceph
のモニターノードで
# ceph auth list
で表示される)
• ストレージタグ: RBD
プライマリストレージにCephを使ってみた
23. Tips
• ホストにUbuntu 12.04を利用するのが推奨
• ホストはKVMのみに対応
• System VM用に、NFS/SAN/Localストレージが必要。
• 4.1では、ユーザーインスタンス用に、Ceph RBDが利用可能
• 4.2からは、System VM用とにもCeph RBDが利用可能
• Ceph RBD用にコンパイルした
Libvirt (>=0.9.13)、QEMUを使う必要あり。
• QEMUのバージョンに注意
• 1.5を使った場合、ユーザーインスタンスにブートディスクを追加
できず、起動時にパニック。
• 1.0を使った場合、問題発生せず。