3.3. コマンドラインインターフェースを使用した Ceph OSD の追加
OSD を Red Hat Ceph Storage に手動で追加するハイレベルのワークフローを以下に示します。
-
ceph-osd
パッケージをインストールして、新規 OSD インスタンスを作成します。 - OSD データおよびジャーナルドライブを準備してマウントします。
- 新規 OSD ノードを CRUSH マップに追加します。
- 所有者およびグループパーミッションを更新します。
-
ceph-osd
デーモンを有効にして起動します。
ceph-disk
コマンドは非推奨となりました。ceph-volume
コマンドは、コマンドラインインターフェースから OSD をデプロイするのに推奨される方法です。現在、ceph-volume
コマンドは lvm
プラグインのみをサポートしています。Red Hat は、本ガイドで両方のコマンドを参照として使用している例を提供します。これにより、ストレージ管理者は ceph-disk
に依存するカスタムスクリプトを ceph-volume
に変換できます。
ceph-volume
コマンドの使用方法は、Red Hat Ceph Storage Administration Guideを参照してください。
カスタムストレージクラスター名の場合は、ceph
コマンドおよび ceph-osd
コマンドで --cluster $CLUSTER_NAME
オプションを使用します。
前提条件
- Red Hat Ceph Storage クラスターが実行中である。
- Installation Guide for Red Hat Enterprise Linux または Ubuntu の Requirements for Installing Red Hat Ceph Storage の章を参照してください。
-
新規ノードへの
root
アクセスがあること。
手順
Red Hat Ceph Storage 3 OSD ソフトウェアリポジトリーを有効にします。
Red Hat Enterprise Linux
[root@osd ~]# subscription-manager repos --enable=rhel-7-server-rhceph-3-osd- els-rpms
-
/etc/ceph/
ディレクトリーを作成します。 - 新しい OSD ノードで、Ceph 管理キーリングと設定ファイルを Ceph Monitor ノードの 1 つからコピーします。
ceph-osd
パッケージを新しい Ceph OSD ノードにインストールします。Red Hat Enterprise Linux
[root@osd ~]# yum install ceph-osd
新規 OSD について、ジャーナルを共存させるか、または専用のジャーナルを使用するかどうかを決定します。
注記--filestore
オプションが必要です。ジャーナルを共存させる OSD の場合:
構文
[root@osd ~]# docker exec $CONTAINER_ID ceph-disk --setuser ceph --setgroup ceph prepare --filestore /dev/$DEVICE_NAME
例:
[root@osd ~]# docker exec ceph-osd-osd1 ceph-disk --setuser ceph --setgroup ceph prepare --filestore /dev/sda
専用のジャーナルを持つ OSD の場合:
構文
[root@osd ~]# docker exec $CONTAINER_ID ceph-disk --setuser ceph --setgroup ceph prepare --filestore /dev/$DEVICE_NAME /dev/$JOURNAL_DEVICE_NAME
または
[root@osd ~]# docker exec $CONTAINER_ID ceph-volume lvm prepare --filestore --data /dev/$DEVICE_NAME --journal /dev/$JOURNAL_DEVICE_NAME
例
[root@osd ~]# docker exec ceph-osd-osd1 ceph-disk --setuser ceph --setgroup ceph prepare --filestore /dev/sda /dev/sdb
[root@osd ~]# docker exec ceph-osd-osd1 ceph-volume lvm prepare --filestore --data /dev/vg00/lvol1 --journal /dev/sdb
noup
オプションを設定します。[root@osd ~]# ceph osd set noup
新しい OSD をアクティベートします。
構文
[root@osd ~]# docker exec $CONTAINER_ID ceph-disk activate /dev/$DEVICE_NAME
または
[root@osd ~]# docker exec $CONTAINER_ID ceph-volume lvm activate --filestore $OSD_ID $OSD_FSID
例
[root@osd ~]# docker exec ceph-osd-osd1 ceph-disk activate /dev/sda
[root@osd ~]# docker exec ceph-osd-osd1 ceph-volume lvm activate --filestore 0 6cc43680-4f6e-4feb-92ff-9c7ba204120e
OSD を CRUSH マップに追加します。
構文
ceph osd crush add $OSD_ID $WEIGHT [$BUCKET_TYPE=$BUCKET_NAME ...]
例
[root@osd ~]# ceph osd crush add 4 1 host=node4
注記複数のバケットを指定する場合、コマンドは OSD を指定したバケットから最も具体的なバケットに配置、および 指定した他のバケットに従ってバケットを移動します。
注記CRUSH マップを手動で編集することもできます。Red Hat Ceph Storage 3 の Storage Strategies ガイドの Editing a CRUSH map セクションを参照してください。
重要ルートバケットのみを指定する場合、OSD はルートに直接アタッチしますが、CRUSH ルールは OSD がホストバケット内に置かれることを想定します。
noup
オプションの設定を解除します。[root@osd ~]# ceph osd unset noup
新規作成されたディレクトリーの所有者とグループのパーミッションを更新します。
構文
chown -R $OWNER:$GROUP $PATH_TO_DIRECTORY
例
[root@osd ~]# chown -R ceph:ceph /var/lib/ceph/osd [root@osd ~]# chown -R ceph:ceph /var/log/ceph [root@osd ~]# chown -R ceph:ceph /var/run/ceph [root@osd ~]# chown -R ceph:ceph /etc/ceph
カスタム名のクラスターを使用する場合は、以下の行を適切なファイルに追加します。
Red Hat Enterprise Linux
[root@osd ~]# echo "CLUSTER=$CLUSTER_NAME" >> /etc/sysconfig/ceph
$CLUSTER_NAME
は、カスタムクラスター名に置き換えます。新規 OSD が
起動
し、データを受信する準備ができていることを確認するには、OSD サービスを有効にして起動します。構文
systemctl enable ceph-osd@$OSD_ID systemctl start ceph-osd@$OSD_ID
例
[root@osd ~]# systemctl enable ceph-osd@4 [root@osd ~]# systemctl start ceph-osd@4