Cephをセットアップしてみる

Ceph

名前しか知らなかったのですが、まずはインストールしてみる事にしました。

.

導入方法について(環境はVMWare Fusion上のUbuntu 16.04 LTEを使用)

簡単なインストール方法はCephのドキュメントページに記載されているのですが、手順通りに行うと本当に”インストールだけ”しかしません。

単なるソフトウェアであればインストール後にどうするか考えれば良いですが、ハードウェアやネットワーク構成とセットになっている場合は、ある程度見積もりや構成を考えておく方が良かったり。

Cephを動作させる為に必要なサービスは以下の二つ。

Monitor Daemon(mon)

他のMonitorやObject Storage Daemonと通信し、死活監視や対象データの所在を管理する。複数立ち上げて冗長性を持たせる事が可能。

Object Storage Daemon(osd)

ローカルにあるストレージを管理し、実際のデータ送受信を行うサービス。物理的なストレージにつき一つ必要となる。データとジャーナル情報を個別に指定する事も可能。

インストール前に意識しておくべき点としては、まず物理ディスクをどの様に接続して管理するかという事になります。

実験としては小さな構成として以下の様にしてみました。

  • ceph-mon  (172.16.2.32)
    • cephの監視用
  • ceph-osd01 (172.16.2.33)
    • /dev/sdb1を/var/local/volume_01にマウント
  • ceph-osd02 (172.16.2.34)
    • /dev/sdb1を/var/local/volume_01にマウント

インストール方法

モニターの初期化

基本はCeph Document > Installation (Quick)の通りに行います。

事前にceph-mon上で、SELinuxの無効化・iptablesのポート解放をしておきます。

ceph-deploy installを使用する場合は、Python環境も必要となります。

更に、それぞれのサーバーにceph管理者(ここではceph-master)を作成しておく必要があります。

(注意・Ubuntu 16.04 LTEのリポジトリから入手出来るcephはクラスター指定が出来ずceph固定となる様です)

# Monitor Daemon, Object Storage Daemonで実行
$ sudo apt-get install openssh-server
$ sudo apt-get install ntp
$ sudo apt-get install ceph

# Monitorにceph管理者でログインし環境設定
$ sudo apt-get install ceph-deploy
$ mkdir ceph-cluster1
$ cd ceph-cluster1
$ ssh-keygen
$ ssh-copy-id ceph-admin@ceph-mon
$ ssh-copy-id ceph-admin@ceph-osd01
$ ssh-copy-id ceph-admin@ceph-osd02

$ ceph-deploy new ceph-mon

カレントフォルダにceph.confが生成されるので、以下の内容を追加(目的とネットワーク環境で記述内容は異なります)

osd_pool_default_size = 2
public_network = 172.16.0.0/16

記述したら、それぞれの環境にcephのインストールを行います。

$ ceph-deploy install ceph-mon ceph-osd01 ceph-osd02
$ ceph-deploy mon create-initial

ストレージの追加

$ ceph-deploy osd prepare ceph-osd01:/var/local/volume_01
$ ceph-deploy osd prepare ceph-osd02:/var/local/volume_01

$ ceph-deploy osd activate ceph-osd01:/var/local/volume_01 ceph-osd02:/var/local/volume_01

$ ceph-deploy admin ceph-mon ceph-osd01 ceph-osd02
$ sudo chmod +r /etc/ceph/ceph.client.admin.keyring

$ ceph health
# HEALTH_OKが表示されていれば設定完了

ブロックデバイスの使用

# イメージを作成
$ rbd create test-image --size 1024
# ブロックデバイスとしてマウント
$ sudo rbd map test-image

基本はこれだけですが、環境によって/etc/ceph/ceph.confに以下の設定が必要となります。

rbd_default_features = 3

.