Ubuntu 18.04
Sponsored Link

Ceph : クラスターの設定2018/12/25

 
分散ファイルシステム Ceph をインストールしてストレージクラスターを構成します。
当例では、以下のように、管理ノード 1台と 3台のストレージノードでクラスターを構成します。
                                         |
        +--------------------+           |           +--------------------+
        |   [dlp.srv.world]  |10.0.0.30  |   10.0.0.x| [client.srv.world] |
        |    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 管理用に任意の一般ユーザーを追加しておきます。
当例では [ubuntu] ユーザーで進めます。
[2] 必要なパッケージをインストールし、Ceph 管理用に追加した一般ユーザーに sudo による root 権限を付与しておきます。全ノードで実施します。
root@dlp:~#
apt -y install openssh-server python-ceph
root@dlp:~#
echo -e 'Defaults:ubuntu !requiretty\nubuntu ALL = (root) NOPASSWD:ALL' | tee /etc/sudoers.d/ceph

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

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

Generating public/private rsa key pair.
Enter file in which to save the key (/home/ubuntu/.ssh/id_rsa):
Created directory '/home/ubuntu/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/ubuntu/.ssh/id_rsa.
Your public key has been saved in /home/ubuntu/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:HJArjy33ATN7IvhbND2lfPQ7APZ1Av/hEy1qHg6gcE8 ubuntu@dlp.srv.world
The key's randomart image is:

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

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

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

ubuntu@dlp:~$
ssh-copy-id node01

ubuntu@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.

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

ubuntu@dlp:~$
ssh-copy-id node02

ubuntu@dlp:~$
ssh-copy-id node03

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

ubuntu@dlp:~$
cd ceph

ubuntu@dlp:~/ceph$
ceph-deploy new node01
# 各ノードに Ceph をインストール

ubuntu@dlp:~/ceph$
ceph-deploy install dlp node01 node02 node03
# 監視と共有鍵の初期設定

ubuntu@dlp:~/ceph$
ceph-deploy mon create-initial
# マネージャーノードの設定

ubuntu@dlp:~/ceph$
ceph-deploy mgr create node01
[6] 管理ノード上からストレージクラスターの設定を行います。
# Object Storage Daemon プリペア

ubuntu@dlp:~/ceph$
ceph-deploy osd prepare node01:/var/lib/ceph/osd node02:/var/lib/ceph/osd node03:/var/lib/ceph/osd
# Object Storage Daemon アクティベート

ubuntu@dlp:~/ceph$
ceph-deploy osd activate node01:/var/lib/ceph/osd node02:/var/lib/ceph/osd node03:/var/lib/ceph/osd
# 設定ファイル等を各ノードに配布

ubuntu@dlp:~/ceph$
ceph-deploy admin dlp node01 node02 node03

# 動作確認 (問題なければ HEALTH_OK と表示される)

ubuntu@dlp:~/ceph$
sudo ceph status

  cluster:
    id:     8166a55f-be6a-41f4-ad8d-4f8b68cac788
    health: HEALTH_OK

  services:
    mon: 1 daemons, quorum node01
    mgr: node01(active)
    osd: 3 osds: 3 up, 3 in

  data:
    pools:   0 pools, 0 pgs
    objects: 0 objects, 0 bytes
    usage:   3077 MB used, 27642 MB / 30720 MB avail
    pgs:
[7] なお、一から設定をやり直したい場合は、以下のようにコマンド投入します。
# パッケージ削除

ubuntu@dlp:~/ceph$
ceph-deploy purge dlp node01 node02 node03
# 設定情報削除

ubuntu@dlp:~/ceph$
ceph-deploy purgedata dlp node01 node02 node03

ubuntu@dlp:~/ceph$
ceph-deploy forgetkeys
関連コンテンツ