28
CloudStack プライマリストレージに オブジェクト分散ストレージ Ceph使ってみた 富士通 ストレージシステム事業本部: 熊野、木村、森多 CloudStackユーザー会: 島崎、中島、北瀬 09/12/2013 14CloudStackユーザー会 4.1新機能深堀プロジェクト

How to use Ceph RBD as CloudStack Primary Storage

Embed Size (px)

DESCRIPTION

How to use Ceph RBD as CloudStack Primary Storage This is Japanese slide.

Citation preview

Page 1: How to use Ceph RBD as CloudStack Primary Storage

CloudStack プライマリストレージに

オブジェクト分散ストレージ Cephを

使ってみた 富士通 ストレージシステム事業本部: 熊野、木村、森多

CloudStackユーザー会: 島崎、中島、北瀬

09/12/2013

第14回CloudStackユーザー会

4.1新機能深堀プロジェクト

Page 2: How to use Ceph RBD as CloudStack Primary Storage

CLOUDSTACK STORAGE

プライマリストレージにCephを使ってみた

Page 3: How to use Ceph RBD as CloudStack Primary Storage

セカンダリストレージ (NFS, OpenStack Swift)

管理サーバー ネットワーク機器 (LB, FW, SDN/OpenFlow)

セルフサービスポータル

プライマリストレージ (NFS, iSCSI, FC SAN,

Ceph RBD, Local)

CloudPlatformアーキテクチャ概要

Page 4: How to use Ceph RBD as CloudStack Primary Storage

CEPHって?

プライマリストレージにCephを使ってみた

Page 5: How to use Ceph RBD as CloudStack Primary Storage

オブジェクトベースの分散ストレージ基盤 • 汎用サーバ・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 FUSE REST API

http://ceph.com/

Page 6: How to use Ceph RBD as CloudStack Primary Storage

• 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 クラスタ構成

レイアウト情報

Page 7: How to use Ceph RBD as CloudStack Primary Storage

検証スケジュール、環境

プライマリストレージにCephを使ってみた

Page 8: How to use Ceph RBD as CloudStack Primary Storage

目的: 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 環境構築

機能 検証

性能 環境構築

Page 9: How to use Ceph RBD as CloudStack Primary Storage

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

Page 10: How to use Ceph RBD as CloudStack Primary Storage

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

Page 11: How to use Ceph RBD as CloudStack Primary Storage

10GbE

ソフトウェア構成 (Ceph/RBD) CloudStack管理サーバー 仮想環境サーバー(ホスト)

Cephストレージサーバー

OSD

Cephストレージサーバー Cephストレージサーバー

librados

qemu-kvm

librbd

CloudStack

KVM Agent

OSD OSD

OSD OSD OSD

OSD OSD OSD

OSD OSD OSD

OSD OSD OSD

OSD OSD OSD

mon

libvirt

RBD (仮想Disk)

RBD (仮想Disk)

NFS for

System VM

JSON コマンド

qemu-img livbirt-java

Page 12: How to use Ceph RBD as CloudStack Primary Storage

10GbE

ソフトウェア構成 (性能比較対象NFS) CloudStack管理サーバー 仮想環境サーバー(ホスト)

Cephストレージサーバー

OSD

Cephストレージサーバー Cephストレージサーバー

NFS client

qemu

Guest OS Guest OS

OSD OSD

OSD OSD OSD

OSD OSD OSD

OSD OSD OSD LVM (RAID-0)

mon

libvirt

仮想Disk

NFS for

System VM NFS

Page 13: How to use Ceph RBD as CloudStack Primary Storage

構築

プライマリストレージにCephを使ってみた

Page 14: How to use Ceph RBD as CloudStack Primary Storage

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クラスタ構築作業は管理ノードから実施

Page 15: How to use Ceph RBD as CloudStack Primary Storage

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構築

Page 16: How to use Ceph RBD as CloudStack Primary Storage

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メンバの表示

Page 17: How to use Ceph RBD as CloudStack Primary Storage

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 rwx 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

Page 18: How to use Ceph RBD as CloudStack Primary Storage

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に合わせて修正してビルド・インストール

Page 19: How to use Ceph RBD as CloudStack Primary Storage

CloudStack環境の構築

• 基本的なCloudStack+KVM環境を構築

• CloudStack徹底入門第3章参照

Page 20: How to use Ceph RBD as CloudStack Primary Storage

プライマリストレージとして追加

• プロトコル: RBD

• RADOS Monitor: モニターノードのIPアドレス

• RADOS Pool: Pool名

• RADOS User: Cephのユーザー名 (今回はlibvirt)

• RADOS Secret: ユーザーのシークレットKEY(Cephのモニターノードで # ceph auth list で表示される)

• ストレージタグ: RBD

プライマリストレージにCephを使ってみた

Page 21: How to use Ceph RBD as CloudStack Primary Storage

ディスクオファリングの作成

• ストレージタグ: RBD

Page 22: How to use Ceph RBD as CloudStack Primary Storage

コンピューティングオファリングの作成

• ストレージタグ: RBD

Page 23: How to use Ceph RBD as CloudStack Primary Storage

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を使った場合、問題発生せず。

Page 24: How to use Ceph RBD as CloudStack Primary Storage

結果

プライマリストレージにCephを使ってみた

Page 25: How to use Ceph RBD as CloudStack Primary Storage

機能テスト結果

機能 テスト結果

プライマリストレージとしてCeph RBDの追加 ○

インスタンスの作成、削除 ○

インスタンスの起動、停止 ○

ボリュームの追加 ○

ライブマイグレーション ○

スナップショット × (4.2から対応)

セカンダリストレージとしてCeph RBDの追加 - (4.2から対応)

Page 26: How to use Ceph RBD as CloudStack Primary Storage

性能テスト結果

• 性能測定

• 測定ツールfioを用いてCeph/NFSの性能比較を実施

Page 27: How to use Ceph RBD as CloudStack Primary Storage

参考資料

• http://ceph.com/docs/next/rbd/rbd-cloudstack/

• http://loadays.org/static/slides/ceph%20storage%20for%20cloudstack.pdf

• http://blog.widodh.nl/2012/09/ceph-distributed-storage-with-cloudstack/

• http://www.youtube.com/watch?v=anODiwRmh0M

• http://www.youtube.com/watch?feature=player_embedded&v=Xm0PkWfCOHc

• http://www.inktank.com/news-events/new/inktank-partners-with-citrix-to-support-ceph-distributed-storage-in-cloudplatform/

• http://www.aarondelp.com/2013/02/apachelive-blog-powering-cloudstack-w.html

• http://www.mail-archive.com/[email protected]/msg10108.html

Page 28: How to use Ceph RBD as CloudStack Primary Storage

CloudStackユーザー会 メンバー激しく募集中

Web: http://cloudstack.jp/

Mailing Lists: http://cloudstack.jp/community

[email protected]

Twitter: @cloudstackja

ustream: http://www.ustream.tv/channel/cloudstackja

Facebook: https://www.facebook.com/cloudstackjapan

Youtube: http://www.youtube.com/channel/

UCB_l4yMR2rE6VWa_H-THPWQ