1.4. Ceph MDS
Ceph Metadata Server (MDS) ノードは、Ceph ファイルシステム (CephFS) に保存されているファイルに関連する MDS デーモン (ceph-mds) を実行します。MDS は、所有者、タイムスタンプ、モードを含む、POSIX 準拠の共有ファイルシステムのメタデータ管理を提供します。MDS は RADOS (Reliable Autonomic Distributed Object Storage) を使用してメタデータを保存します。
MDS を使用すると、CephFS は Ceph Object Store と対話し、i ノードをオブジェクトと Ceph がツリー内にデータを格納する場所にマッピングできます。CephFS ファイルシステムにアクセスするクライアントは最初に MDS に要求を行います。これにより、正しい OSD からファイルの内容を取得するのに必要な情報が表示されます。
1.4.1. Ansible を使用した Ceph MDS の追加
Ansible Playbook を使用して Ceph Metadata Server (MDS) を追加します。
前提条件
- Ansible によりデプロイされた実行中の Red Hat Ceph Storage クラスター
-
Ansible 管理ノードに
root
またはsudo
アクセスできる。 - MDS ノードとしてプロビジョニングできる新規または既存のサーバー。
手順
- Ansible 管理ノードにログインします。
/usr/share/ceph-ansible
ディレクトリーに移動します。例
[ansible@admin ~]$ cd /usr/share/ceph-ansible
root
またはsudo
アクセスで、/usr/share/ceph-ansible/hosts
インベントリーファイルを開いて編集し、[mdss]
セクションで MDS ノードを追加します。構文
[mdss] MDS_NODE_NAME NEW_MDS_NODE_NAME
NEW_MDS_NODE_NAME を、MDS サーバーをインストールするノードのホスト名に置き換えます。
あるいは、
[osds]
セクションおよび[mdss]
セクションに同じノードを追加して、1 つのノード上に MDS デーモンと OSD デーモンを共存させることができます。例
[mdss] node01 node03
ansible
ユーザーとして、Ansible Playbook を実行して MDS ノードをプロビジョニングします。ベアメタル デプロイメント:
[ansible@admin ceph-ansible]$ ansible-playbook site.yml --limit mdss -i hosts
コンテナー デプロイメント:
[ansible@admin ceph-ansible]$ ansible-playbook site-container.yml --limit mdss -i hosts
Ansible Playbook の実行が終了すると、新しい Ceph MDS ノードがストレージクラスターに表示されます。
検証
MDS デーモンのステータスを確認します。
構文
ceph fs dump
例
[ansible@admin ceph-ansible]$ ceph fs dump [mds.node01 {0:115304} state up:active seq 5 addr [v2:172.25.250.10:6800/695510951,v1:172.25.250.10:6801/695510951]] Standby daemons: [mds.node03 {-1:144437} state up:standby seq 2 addr [v2:172.25.250.11:6800/172950087,v1:172.25.250.11:6801/172950087]]
あるいは、
ceph mds stat
コマンドを使用して、MDS がアクティブな状態にあるかどうかを確認することができます。構文
ceph mds stat
例
[ansible@admin ceph-ansible]$ ceph mds stat cephfs:1 {0=node01=up:active} 1 up:standby
関連情報
- Red Hat Ceph Storage のインストールに関する詳細は、Red Hat Ceph Storage インストールガイド を参照してください。
- Ansible を使用した MDS の削除に関する詳細は、Red Hat Ceph Storage トラブルシューティングガイドの Ansible を使用した Ceph MDS の削除 セクションを参照してください。
1.4.2. コマンドラインインターフェイスを使用した Ceph MDS の追加
コマンドラインインターフェイスを使用して、Ceph Metadata Server (MDS) を手動で追加できます。
前提条件
-
ceph-common
パッケージがインストールされている。 - 稼働中の Red Hat Ceph Storage クラスターがある。
-
MDS ノードに
root
またはsudo
アクセスできる。 - MDS ノードとしてプロビジョニングできる新規または既存のサーバー。
手順
ノードにログインして MDS マウントポイントを作成して、MDS ノードを追加します。
構文
sudo mkdir /var/lib/ceph/mds/ceph-MDS_ID
MDS_ID を、MDS デーモンを追加する MDS ノードの ID に置き換えます。
例
[admin@node03 ~]$ sudo mkdir /var/lib/ceph/mds/ceph-node03
これが新しい MDS ノードである場合は、Cephx 認証を使用している場合は認証キーを作成します。
構文
sudo ceph auth get-or-create mds.MDS_ID mon 'profile mds' mgr 'profile mds' mds 'allow *' osd 'allow *' > /var/lib/ceph/mds/ceph-MDS_ID/keyring
MDS_ID を、MDS デーモンをデプロイする MDS ノードの ID に置き換えます。
例
[admin@node03 ~]$ sudo ceph auth get-or-create mds.node03 mon 'profile mds' mgr 'profile mds' mds 'allow *' osd 'allow *' > /var/lib/ceph/mds/ceph-node03/keyring
注記Cephx 認証はデフォルトで有効になっています。Cephx 認証の詳細は、関連情報セクションの Cephx 認証のリンクを参照してください。
MDS デーモンを起動します。
構文
sudo systemctl start ceph-mds@HOST_NAME
HOST_NAME を、デーモンを起動するホストの短縮名に置き換えます。
例
[admin@node03 ~]$ sudo systemctl start ceph-mds@node03
MDS サービスを有効にします。
構文
systemctl enable ceph-mds@HOST_NAME
HOST_NAME を、サービスを有効にするホストの短縮名に置き換えます。
例
[admin@node03 ~]$ sudo systemctl enable ceph-mds@node03
検証
MDS デーモンのステータスを確認します。
構文
ceph fs dump
例
[admin@mon]$ ceph fs dump [mds.node01 {0:115304} state up:active seq 5 addr [v2:172.25.250.10:6800/695510951,v1:172.25.250.10:6801/695510951]] Standby daemons: [mds.node03 {-1:144437} state up:standby seq 2 addr [v2:172.25.250.11:6800/172950087,v1:172.25.250.11:6801/172950087]]
あるいは、
ceph mds stat
コマンドを使用して、MDS がアクティブな状態にあるかどうかを確認することができます。構文
ceph mds stat
例
[ansible@admin ceph-ansible]$ ceph mds stat cephfs:1 {0=node01=up:active} 1 up:standby
関連情報
- Red Hat Ceph Storage のインストールに関する詳細は、Red Hat Ceph Storage インストールガイド を参照してください。
- Cephx 認証についての詳しい情報は、Red Hat Ceph Storage Configuration Guide を参照してください。
- コマンドラインインターフェイスを使用した MDS の削除 に関する詳細は、Red Hat Ceph Storage トラブルシューティングガイドの コマンドラインインターフェイスを使用した Ceph MDS の削除 セクションを参照してください。
1.4.3. Ansible を使用した Ceph MDS の削除
Ansible を使用して Ceph Metadata Server (MDS) を削除するには、Playbook shrink-mds
を使用します。
MDS の削除後に引き継げる MDS がない場合、そのファイルシステムはクライアントが利用できなくなります。これが望ましくない場合には、オフラインにする MDS を削除する前に別の MDS を追加することを検討してください。
前提条件
- 1 つ以上の MDS ノード。
- Ansible によりデプロイされた実行中の Red Hat Ceph Storage クラスター
-
Ansible 管理ノードに
root
またはsudo
アクセスできる。
手順
- Ansible 管理ノードにログインします。
/usr/share/ceph-ansible
ディレクトリーに移動します。例
[ansible@admin ~]$ cd /usr/share/ceph-ansible
Ansible の Playbook
shrink-mds.yml
を実行します。プロンプトが表示されたら、yes
と入力して、クラスターの縮小を確認します。構文
ansible-playbook infrastructure-playbooks/shrink-mds.yml -e mds_to_kill=ID -i hosts
ID は、削除する MDS ノードの ID に置き換えます。1 回の Playbook の実行で削除できるのは 1 つの Ceph MDS だけです。
例
[ansible @admin ceph-ansible]$ ansible-playbook infrastructure-playbooks/shrink-mds.yml -e mds_to_kill=node02 -i hosts
root
またはsudo
アクセスで、/usr/share/ceph-ansible/hosts
インベントリーファイルを開いて編集し、[mdss]
セクションの MDS ノードを削除します。構文
[mdss] MDS_NODE_NAME MDS_NODE_NAME
例
[mdss] node01 node03
この例では、
node02
が[mdss]
のリストから削除されました。
検証
MDS デーモンのステータスを確認します。
構文
ceph fs dump
例
[ansible@admin ceph-ansible]$ ceph fs dump [mds.node01 {0:115304} state up:active seq 5 addr [v2:172.25.250.10:6800/695510951,v1:172.25.250.10:6801/695510951]] Standby daemons: [mds.node03 {-1:144437} state up:standby seq 2 addr [v2:172.25.250.11:6800/172950087,v1:172.25.250.11:6801/172950087]]
関連情報
- Red Hat Ceph Storage のインストールに関する詳細は、Red Hat Ceph Storage インストールガイド を参照してください。
- Ansible を使用した MDS の追加に関する詳細は、Red Hat Ceph Storage トラブルシューティングガイドの Ansible を使用した Ceph MDS の追加 セクションを参照してください。
1.4.4. コマンドラインインターフェイスを使用した Ceph MDS の削除
コマンドラインインターフェイスを使用して、Ceph Metadata Server (MDS) を手動で削除できます。
現在の MDS の削除後に引き継げる MDS がない場合、そのファイルシステムはクライアントが利用できなくなります。これが望ましくない場合は、既存の MDS を削除する前に MDS を追加することを検討してください。
前提条件
-
ceph-common
パッケージがインストールされている。 - 稼働中の Red Hat Ceph Storage クラスターがある。
-
MDS ノードに
root
またはsudo
アクセスできる。
手順
- MDS デーモンを削除する Ceph MDS ノードにログインします。
Ceph MDS サービスを停止します。
構文
sudo systemctl stop ceph-mds@HOST_NAME
HOST_NAME を、デーモンが実行されているホストの短縮名に置き換えます。
例
[admin@node02 ~]$ sudo systemctl stop ceph-mds@node02
MDS をこのノードに再デプロイしない場合は、MDS サービスを無効にします。
構文
sudo systemctl disable ceph-mds@HOST_NAME
HOST_NAME を、デーモンを無効にするホストの短縮名に置き換えます。
例
[admin@node02 ~]$ sudo systemctl disable ceph-mds@node02
MDS ノードの
/var/lib/ceph/mds/ceph-MDS_ID
ディレクトリーを削除します。構文
sudo rm -fr /var/lib/ceph/mds/ceph-MDS_ID
MDS_ID を、MDS デーモンを削除する MDS ノードの ID に置き換えます。
例
[admin@node02 ~]$ sudo rm -fr /var/lib/ceph/mds/ceph-node02
検証
MDS デーモンのステータスを確認します。
構文
ceph fs dump
例
[ansible@admin ceph-ansible]$ ceph fs dump [mds.node01 {0:115304} state up:active seq 5 addr [v2:172.25.250.10:6800/695510951,v1:172.25.250.10:6801/695510951]] Standby daemons: [mds.node03 {-1:144437} state up:standby seq 2 addr [v2:172.25.250.11:6800/172950087,v1:172.25.250.11:6801/172950087]]
関連情報
- Red Hat Ceph Storage のインストールに関する詳細は、Red Hat Ceph Storage インストールガイド を参照してください。
- コマンドラインインターフェイスを使用した MDS の追加に関する詳細は、Red Hat Ceph Storage トラブルシューティングガイドの コマンドラインインターフェイスを使用した Ceph MDS の追加 セクションを参照してください。