14 Cephサービスの運用 #
Cephサービスは、デーモンレベル、ノードレベル、またはクラスタレベルで運用できます。必要なアプローチに応じて、cephadmかsystemctl
コマンドを使用してください。
14.1 個別のサービスの運用 #
個別のサービスを運用する必要がある場合は、まずそのサービスを確認します。
cephuser@adm >
ceph orch ps
NAME HOST STATUS REFRESHED [...]
mds.my_cephfs.ses-min1.oterul ses-min1 running (5d) 8m ago
mgr.ses-min1.gpijpm ses-min1 running (5d) 8m ago
mgr.ses-min2.oopvyh ses-min2 running (5d) 8m ago
mon.ses-min1 ses-min1 running (5d) 8m ago
mon.ses-min2 ses-min2 running (5d) 8m ago
mon.ses-min4 ses-min4 running (5d) 7m ago
osd.0 ses-min2 running (61m) 8m ago
osd.1 ses-min3 running (61m) 7m ago
osd.2 ses-min4 running (61m) 7m ago
rgw.myrealm.myzone.ses-min1.kwwazo ses-min1 running (5d) 8m ago
rgw.myrealm.myzone.ses-min2.jngabw ses-min2 error 8m ago
特定のノードのサービスを確認するには、次のコマンドを実行します。
ceph orch ps NODE_HOST_NAME
以下に例を示します。
cephuser@adm >
ceph orch ps ses-min2
NAME HOST STATUS REFRESHED
mgr.ses-min2.oopvyh ses-min2 running (5d) 3m ago
mon.ses-min2 ses-min2 running (5d) 3m ago
osd.0 ses-min2 running (67m) 3m ago
ceph orch ps
コマンドはいくつかの出力フォーマットをサポートしています。フォーマットを変更するには--format FORMAT
オプションを付加してください。ここで、FORMATはjson
、json-pretty
、またはyaml
のいずれかです。例:
cephuser@adm >
ceph orch ps --format yaml
サービスの名前を確認することで、サービスの起動、再起動、停止が可能になります。
ceph orch daemon COMMAND SERVICE_NAME
たとえば、IDが0のOSDサービスを再起動するには、次のコマンドを実行します。
cephuser@adm >
ceph orch daemon restart osd.0
14.2 サービスタイプの運用 #
Cephクラスタ全体で特定のタイプのサービスを運用する必要がある場合は、次のコマンドを使用します。
ceph orch COMMAND SERVICE_TYPE
COMMANDはstart
、stop
、またはrestart
のいずれかで置き換えます。
たとえば、クラスタのすべてのMONを再起動するには次のコマンドを使用します。このコマンドでは、MONが実際にはどのノードで実行されているかを考慮しません。
cephuser@adm >
ceph orch restart mon
14.3 単一のノードでサービスを運用する #
systemctl
コマンドを使用することで、Cephに関連したsystemd
サービスとターゲットを単一のノードで運用できます。
14.3.1 サービスとターゲットの確認 #
Cephに関連したsystemd
サービスとターゲットを運用する前に、これらのユニットファイルのファイル名を確認する必要があります。サービスのファイル名には次のようなパターンがあります。
ceph-FSID@SERVICE_TYPE.ID.service
例:
ceph-b4b30c6e-9681-11ea-ac39-525400d7702d@mon.doc-ses-min1.service
ceph-b4b30c6e-9681-11ea-ac39-525400d7702d@rgw.myrealm.myzone.doc-ses-min1.kwwazo.service
- FSID
Cephクラスタの固有のIDです。
ceph fsid
コマンドの出力で確認できます。- SERVICE_TYPE
サービスの種類です。たとえば、
osd
、mon
、rgw
などがあります。- ID
サービスの識別文字列です。OSDの場合はサービスのID番号です。他のサービスでは、ノードのホスト名の場合と、サービスタイプに関連した追加の文字列の場合があります。
SERVICE_TYPE.IDの部分は、ceph orch ps
コマンドの出力のNAME
列の内容と同一です。
14.3.2 ノード上のすべてのサービスの運用 #
Cephのsystemd
ターゲットを使用することで、ノード上の「すべて」のサービスを同時に運用することができます。あるいは、FSIDで識別された「クラスタに属する」すべてのサービスを同時に運用することもできます。
たとえば、サービスがどのクラスタに所属しているかを考慮せずにノード上のCephサービスをすべて停止するには、次のコマンドを実行します。
root@minion >
systemctl stop ceph.target
IDがb4b30c6e-9681-11ea-ac39-525400d7702d
のCephクラスタに属するすべてのサービスを再起動するには、次のコマンドを実行します。
root@minion >
systemctl restart ceph-b4b30c6e-9681-11ea-ac39-525400d7702d.target
14.3.3 ノード上の個別のサービスの運用 #
特定のサービスの名前を確認したら、次のように運用します。
systemctl COMMAND SERVICE_NAME
たとえば、IDがb4b30c6e-9681-11ea-ac39-525400d7702d
のクラスタ上にある、IDが1のOSDサービスを単独で再起動する場合は、次のコマンドを実行します。
#
systemctl restart ceph-b4b30c6e-9681-11ea-ac39-525400d7702d@osd.1.service
14.3.4 サービス状態のクエリ #
サービスの状態をsystemd
に問い合わせることができます。例:
#
systemctl status ceph-b4b30c6e-9681-11ea-ac39-525400d7702d@osd.0.service
14.4 Cephクラスタ全体のシャットダウンと再起動 #
クラスタのシャットダウンと再起動は、計画停電の際に必要となる場合があります。すべてのCeph関連サービスを停止し、正常に再起動させるには、以下の手順に従います。
クラスタにアクセスしているすべてのクライアントをシャットダウンするか、切断します。
CRUSHが自動的にクラスタをリバランスしないように、クラスタを
noout
に設定します。cephuser@adm >
ceph osd set nooutすべてのクラスタノードのすべてのCephサービスを停止します。
root@master #
ceph-salt stopすべてのクラスタノードの電源を切ります。
root@master #
salt -G 'ceph-salt:member' cmd.run "shutdown -h"
管理ノードの電源を入れます。
Ceph Monitorノードの電源を入れます。
Ceph OSDノードの電源を入れます。
以前に設定した
noout
フラグの設定を解除します。root@master #
ceph osd unset nooutすべての設定されているゲートウェイの電源を入れます。
クラスタのクライアントの電源を入れるか、接続します。