LoginSignup
4
3

More than 5 years have passed since last update.

知っていると便利! Ceph 開発環境の作り方

Posted at

Ceph開発環境とは?

Ceph のように複数のサーバをまたいで稼働する分散システムは、動作検証やちょっとしたパラメータ修正を検証したい際でも動作環境を構築するのが、とても手間がかかります。

このような手間を小さくする方法として、Ceph では、開発環境を簡単に構築するための script を利用することができます。本ドキュメントでは、script を使って1台のホスト上に Ceph 開発環境を構築する手順について、まとめます。

何が便利なの?

例えば、Ceph の設定パラメータを tuning したいときに、効果や影響を見たいときに Ceph 開発環境が手元にあれば、すぐに評価ができて便利です。
また、Ceph 開発環境は Debug log がデフォルトで沢山出力されるようになっているため、プログラムの動作パスを追って動作の仕掛けを勉強する用途にも向いています。

参考情報

開発環境の作り方

OSパッケージの初期インストール

次のパッケージを始めにインストールしておきます。

  • Ubuntu18.04
    • sudo update
    • sudo apt install build-essential cmake python-tox
  • CentOS7
    • sudo yum update
    • sudo yum install git cmake gcc-c++ python-tox

ソースコードのダウンロード及びビルド

git clone https://github.com/ceph/ceph
cd ceph

# Jewel の場合
git checkout jewel

# Luminous の場合
git checkout luminous

# submodule を checkout する
git submodule update --init --recursive

# build を実施する
./run-make-check.sh

開発環境を起動する

Jewel の場合

cd src
./vstart.sh -d -n -x

Luminous の場合

cd build
make vstart
../src/vstart.sh -d -n -x

動作確認

Jewel の場合

# status 確認
./ceph osd pool stats
./ceph osd pool stats cephfs_data
./rados df

# rados write テスト
./rados mkpool mypool
./rados -p mypool bench 10 write -b 123

# rados file upload テスト
./rados -p mypool put objectone <somefile>
./rados -p mypool put objecttwo <anotherfile>
./rados -p mypool ls

Luminous の場合

# status 確認
bin/ceph -s
bin/ceph osd pool stats
bin/rados df
bin/rados mkpool mypool
bin/rados -p mypool bench 10 write -b 123

開発環境を停止する

Jewel の場合

./stop.sh

Luminous の場合

../src/stop.sh

fio ベンチマーク

Jewel の場合

./rbd create --image-feature layering --size 10240 test01
CEPH_CONF=./ceph.conf fio --direct=1 --rw=randwrite --bs=512 --ioengine=rbd --pool=rbd --rbdname=test01 --thread=1 --group_reporting=1 --time_based=1 --numjobs=1 --iodepth=128 --runtime=120 --randrepeat=0 --norandommap=1 --refill_buffers=1 --name=randw

まとめ

Ceph 開発環境を使えば、bluestore やスケールアウト性能を検証するのは難しいですが、あまりハードウェアやネットワークには依存しないような内容についてはお手軽に検証ができてとても便利です。
お手元の AWS EC2 など、Public Cloud に Ceph 開発環境の EBS Volume を用意しておくのも良いかもしれません。必要な Spec としては、Volume 100GB、memory 8GB以上(swap 併用でもOK)、CPU 4VCPU以上 程度あれば問題なく動作しそうです。

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3