CentOS 6
Sponsored Link

Ceph : クラスターの設定
2014/06/29
 
分散ファイルシステム Ceph をインストールして設定します。
ここでは例として、以下のような構成で Ceph クラスターを構築します。
                                    |
     +------------------+           |           +-----------------+
     |  [ Admin Node ]  |10.0.0.80  |  10.0.0.30|  [ Client PC ]  |
     |   Ceph-Deploy    |-----------+-----------|                 |
     | Meta Data Server |           |           |                 |
     +------------------+           |           +-----------------+
                                    |
        +---------------------------+--------------------------+
        |                           |                          |
        |10.0.0.81                  |10.0.0.82                 |10.0.0.83 
+-------+----------+       +--------+---------+       +--------+---------+
| [ Ceph Node #1 ] |       | [ Ceph Node #2 ] |       | [ Ceph Node #3 ] |
|  Monitor Daemon  +-------+  Monitor Daemon  +-------+  Monitor Daemon  |
|  Object Storage  |       |  Object Storage  |       |  Object Storage  |
+------------------+       +------------------+       +------------------+

[1] 事前準備として、管理ノード、および 各 Ceph ノード全てで以下のように設定しておきます。 sudo の権限設定をしている一般ユーザーは任意のユーザーでOKです。ここで設定したユーザーを Ceph 管理用ユーザーとします。 ここでは例として「cent」ユーザーを管理ユーザーとしています。
[cent@ceph-mds ~]$
echo -e 'Defaults:cent !requiretty\ncent ALL = (root) NOPASSWD:ALL' | sudo tee /etc/sudoers.d/ceph

[cent@ceph-mds ~]$
sudo chmod 440 /etc/sudoers.d/ceph

[2] 管理ノードから各 Ceph ノードへ、ノンパスフレーズで SSH 鍵認証接続できるように鍵の作成と配布を行います。 作業は管理ノード上で、[1]で設定した管理用ユーザーで行います。
[cent@ceph-mds ~]$
ssh-keygen

Generating public/private rsa key pair.
Enter file in which to save the key (/home/cent/.ssh/id_rsa):    
# Enter

Enter passphrase (empty for no passphrase):    
# Enter

Enter same passphrase again:    
# Enter

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:
8a:c1:0a:73:a6:81:4c:97:55:04:e5:be:37:db:22:3d cent@ceph-mds.srv.world
The key's randomart image is:
...
...
[cent@ceph-mds ~]$
vi ~/.ssh/config
# 新規作成 ( 各ノードと接続ユーザーを定義する )

Host ceph-mds
    Hostname ceph-mds.srv.world
    User cent
Host ceph01
    Hostname ceph01.srv.world
    User cent
Host ceph02
    Hostname ceph02.srv.world
    User cent
Host ceph03
    Hostname ceph03.srv.world
    User cent

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

[cent@ceph-mds ~]$
ssh-copy-id ceph01

cent@ceph01.srv.world's password:    
# 接続ユーザーのパスワード

Now try logging into the machine, with "ssh 'ceph01'", and check in:

  .ssh/authorized_keys

to make sure we haven't added extra keys that you weren't expecting.

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

[cent@ceph-mds ~]$
ssh-copy-id ceph02

[cent@ceph-mds ~]$
ssh-copy-id ceph03

[3] 管理ノード上から各 Ceph ノードの設定を行います。
[cent@ceph-mds ~]$
sudo yum -y install http://ceph.com/rpm-firefly/el6/noarch/ceph-release-1-0.el6.noarch.rpm \
http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
[cent@ceph-mds ~]$
sudo yum -y install yum-plugin-priorities
[cent@ceph-mds ~]$
sudo sed -i -e "s/enabled=1/enabled=1\npriority=1/g" /etc/yum.repos.d/ceph.repo

[cent@ceph-mds ~]$
sudo yum -y install ceph ceph-deploy
[cent@ceph-mds ~]$
mkdir ceph

[cent@ceph-mds ~]$
cd ceph

# クラスターを構成

[cent@ceph-mds ceph]$
ceph-deploy new ceph01 ceph02 ceph03
# 各ノードに Ceph をインストール

[cent@ceph-mds ceph]$
ceph-deploy install ceph01 ceph02 ceph03
# 監視と共有鍵の初期設定

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

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

[cent@ceph-mds ceph]$
ceph-deploy osd prepare ceph01:/storage01 ceph02:/storage02 ceph03:/storage03

# Object Storage Daemon アクティベート

[cent@ceph-mds ceph]$
ceph-deploy osd activate ceph01:/storage01 ceph02:/storage02 ceph03:/storage03

# Meta Data Server 設定

[cent@ceph-mds ceph]$
ceph-deploy admin ceph-mds

[cent@ceph-mds ceph]$
ceph-deploy mds create ceph-mds

# 動作確認

[cent@ceph-mds ceph]$
ceph mds stat

e4: 1/1/1 up {0=ceph-mds=up:active}
[cent@ceph-mds ceph]$
ceph health

HEALTH_OK    
# 設定に問題なければ数分後に OKステータスになる

 
Tweet