さて、前回・前々回とCephクラスタを構築したが、これらはあくまでも最低台数でのクラスタを構築していた。
今回は、このクラスタにOSD(データノード)を追加し、3台構成から5台構成にする。

1.事前準備

さて、まず事前準備として、追加するデータノードに対し、以下のコマンドを実行する。

# NTP
yum install -y chrony
systemctl enable chronyd
systemctl start chronyd

# SELinux
setenforce 0
sed -i.bak "/SELINUX/s/enforcing/disabled/g" /etc/selinux/config

# Firewalld
systemctl stop firewalld
systemctl disable firewalld

# User追加
useradd ceph
passwd ceph
echo 'ceph ALL = (root) NOPASSWD:ALL' | sudo tee /etc/sudoers.d/ceph
echo 'Defaults env_keep+="http_proxy"' | sudo tee -a /etc/sudoers.d/ceph
echo 'Defaults env_keep+="https_proxy"' | sudo tee -a /etc/sudoers.d/ceph
chmod 0440 /etc/sudoers.d/ceph
sed -i 's/Defaults.*requiretty/Defaults !requiretty/g' /etc/sudoers

その後、既存の各Cephデータノード、Ceph管理ノードのhostsに、新規追加するデータノードを登録する。

2.追加ノードへCephのインストール

最初に、Ceph管理ノードで配布する設定ファイルの以下項目に対し、追加対象ノードを追記する。

  • mon_initial_members
  • mon_host

設定ファイル追記後、各Cephノード(管理ノード、既存・新規のデータノード)に対し、設定ファイルを配布する。

ceph-deploy --overwrite-conf config push Ceph管理ノード Cephデータノード1 ... CephデータノードN

Ceph管理ノードから、以下のコマンドで追加するCephデータノードに対しCephをインストールする。

ceph-deploy install 追加データノード1 ... 追加データノードN

対象データノードに対しCephインストール後、以下のコマンドでモニタに新規Cephデータノードを追加する。

ceph-deploy mon add 追加データノード # 1台づつ実行する

3.追加ノードへOSD/RadosGatewayの追加

追加ノードに対し、以下のコマンドを実行しOSD/RadosGatewayの追加を実施する。
まず、追加する各Cephデータノードで以下のコマンドを実行する。

sudo /mkdir -p /ceph
fdisk /dev/sdb
mkfs.xfs /dev/sdb1
mount /dev/sdb1 /ceph
sudo chown ceph:ceph /ceph
echo "/dev/sdb1 /ceph                    xfs    defaults        0 0" >> /etc/fstab

Ceph管理ノードで以下のコマンドを実行し、追加データノードでOSDを構成する。
※各ノードごとに実行していく

ceph-deploy --overwrite-conf osd prepare データノード名:データの書き出しディレクトリ:ジャーナル用デバイス
ceph-deploy osd activate データノード名:データの書き出しディレクトリ:ジャーナル用デバイス

次に、Ceph管理ノードからモニタリングが行えるよう、各ノードへ認証鍵を配布する。
以下のコマンドをCeph管理ノードで実行する。

ceph-deploy admin 追加データノード1 ... 追加データノードN

RadosGWの追加については、詳細は前回記述したこちらの内容を参考にしてもらいたい。
とりあえず、Ceph管理ノードで以下のコマンドを実行することで、RadosGatewayが構築できる。

ceph-deploy rgw create 追加データノード1 ... 追加データノードN

疎通確認でうまくいかない場合は、前回の内容を参考にしてもらいたい。