CentOS 7
 

Ceph : クラスターの設定
2015/12/10
 
分散ファイルシステム Ceph をインストールしてストレージクラスターを構成します。
ここでは例として、管理ノード 1台と 3台のストレージノードでクラスターを構成します。
                                         |
        +--------------------+           |           +-------------------+
        |   [dlp.srv.world]  |10.0.0.30  |   10.0.0.x|   [   Client  ]   |
        |    Ceph-Deploy     +-----------+-----------+                   |
        |                    |           |           |                   |
        +--------------------+           |           +-------------------+
            +----------------------------+----------------------------+
            |                            |                            |
            |10.0.0.51                   |10.0.0.52                   |10.0.0.53 
+-----------+-----------+    +-----------+-----------+    +-----------+-----------+
|   [node01.srv.world]  |    |   [node02.srv.world]  |    |   [node03.srv.world]  |
|     Object Storage    +----+     Object Storage    +----+     Object Storage    |
|     Monitor Daemon    |    |                       |    |                       |
|                       |    |                       |    |                       |
+-----------------------+    +-----------------------+    +-----------------------+

[1]
全ノードで、Ceph 管理用に任意の一般ユーザーを追加しておきます。
当例では「cent」ユーザーで進めます。
[2] Ceph 管理用に追加した一般ユーザーに sudo による root 権限を付与しておきます。
また、必要なリポジトリもインストールしておきます。
さらに、Firewalld を有効にしている場合は、SSH サービスの許可が必要です。
いずれも、全ノードで実施しておきます。
[root@dlp ~]#
echo -e 'Defaults:cent !requiretty\ncent ALL = (root) NOPASSWD:ALL' | tee /etc/sudoers.d/ceph

[root@dlp ~]#
chmod 440 /etc/sudoers.d/ceph

[root@dlp ~]#
yum -y install centos-release-ceph-hammer epel-release yum-plugin-priorities

[root@dlp ~]#
sed -i -e "s/enabled=1/enabled=1\npriority=1/g" /etc/yum.repos.d/CentOS-Ceph-Hammer.repo
[root@dlp ~]#
firewall-cmd --add-service=ssh --permanent

[root@dlp ~]#
firewall-cmd --reload

[3] モニターノード (Monitor Daemon 稼働ノード) で Firewalld を有効にしている場合、必要なポートの開放が必要です。
[root@dlp ~]#
firewall-cmd --add-port=6789/tcp --permanent

[root@dlp ~]#
firewall-cmd --reload

[4] ストレージノード (Object Storage 稼働ノード) で Firewalld を有効にしている場合、必要なポートの開放が必要です。
[root@dlp ~]#
firewall-cmd --add-port=6800-7100/tcp --permanent

[root@dlp ~]#
firewall-cmd --reload

[4] 以降は Ceph 管理ユーザーで作業します。
管理ノードから各 Ceph ストレージノードへ、ノンパスフレーズでの SSH 鍵認証接続を設定します。
[cent@dlp ~]$
ssh-keygen

Generating public/private rsa key pair.
Enter file in which to save the key (/home/cent/.ssh/id_rsa):
Created directory '/home/cent/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/cent/.ssh/id_rsa.
Your public key has been saved in /home/cent/.ssh/id_rsa.pub.
The key fingerprint is:
54:c3:12:0e:d3:65:11:49:11:73:35:1b:e3:e8:63:5a cent@dlp.srv.world
The key's randomart image is:

[cent@dlp ~]$
vi ~/.ssh/config
# 新規作成 ( 各ノードと接続ユーザーを定義する )

Host dlp
    Hostname dlp.srv.world
    User cent
Host node01
    Hostname node01.srv.world
    User cent
Host node02
    Hostname node02.srv.world
    User cent
Host node03
    Hostname node03.srv.world
    User cent

[cent@dlp ~]$
chmod 600 ~/.ssh/config
# 他ノードに鍵を転送

[cent@dlp ~]$
ssh-copy-id node01

cent@node01.srv.world's password:

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh 'node01'"
and check to make sure that only the key(s) you wanted were added.

# 同様に全ノードに鍵を転送

[cent@dlp ~]$
ssh-copy-id node02

[cent@dlp ~]$
ssh-copy-id node03

[5] 管理ノード上から各 Ceph ノードの設定を行います。
[cent@dlp ~]$
sudo yum -y install ceph-deploy
[cent@dlp ~]$
mkdir ceph

[cent@dlp ~]$
cd ceph

[cent@dlp ceph]$
ceph-deploy new node01

[cent@dlp ceph]$
vi ./ceph.conf
# 最終行に追記

osd pool default size = 2
# 各ノードに Ceph をインストール

[cent@dlp ceph]$
ceph-deploy install dlp node01 node02 node03
# 監視と共有鍵の初期設定

[cent@dlp ceph]$
ceph-deploy mon create-initial

[6] 管理ノード上からストレージクラスターの設定を行います。
ここでは例として、各 Ceph ノード node01, node02, node03 上に /storage01, /storage02, /storage03 ディレクトリを事前に作成しています。
# Object Storage Daemon プリペア

[cent@dlp ceph]$
ceph-deploy osd prepare node01:/storage01 node02:/storage02 node03:/storage03
# Object Storage Daemon アクティベート

[cent@dlp ceph]$
ceph-deploy osd activate node01:/storage01 node02:/storage02 node03:/storage03
# 設定ファイル等を各ノードに配布

[cent@dlp ceph]$
ceph-deploy admin dlp node01 node02 node03

[cent@dlp ceph]$
sudo chmod 644 /etc/ceph/ceph.client.admin.keyring
# 動作確認 (問題なければ OK と表示される)

[cent@dlp ceph]$
ceph health

HEALTH_OK
[7] なお、一から設定をやり直したい場合は、以下のようにコマンド投入します。
# パッケージ削除

[cent@dlp ceph]$
ceph-deploy purge dlp node01 node02 node03
# 設定情報削除

[cent@dlp ceph]$
ceph-deploy purgedata dlp node01 node02 node03

[cent@dlp ceph]$
ceph-deploy forgetkeys
 
Tweet