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-ansiblerootまたはsudoアクセスで、/usr/share/ceph-ansible/hostsインベントリーファイルを開いて編集し、[mdss]セクションで MDS ノードを追加します。構文
[mdss] MDS_NODE_NAME NEW_MDS_NODE_NAMENEW_MDS_NODE_NAME を、MDS サーバーをインストールするノードのホスト名に置き換えます。
あるいは、
[osds]セクションおよび[mdss]セクションに同じノードを追加して、1 つのノード上に MDS デーモンと OSD デーモンを共存させることができます。例
[mdss] node01 node03ansibleユーザーとして、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 hostsAnsible 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
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_IDMDS_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/keyringMDS_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_NAMEHOST_NAME を、デーモンを起動するホストの短縮名に置き換えます。
例
[admin@node03 ~]$ sudo systemctl start ceph-mds@node03MDS サービスを有効にします。
構文
systemctl enable ceph-mds@HOST_NAMEHOST_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
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-ansibleAnsible の Playbook
shrink-mds.ymlを実行します。プロンプトが表示されたら、yesと入力して、クラスターの縮小を確認します。構文
ansible-playbook infrastructure-playbooks/shrink-mds.yml -e mds_to_kill=ID -i hostsID は、削除する MDS ノードの ID に置き換えます。1 回の Playbook の実行で削除できるのは 1 つの Ceph MDS だけです。
例
[ansible @admin ceph-ansible]$ ansible-playbook infrastructure-playbooks/shrink-mds.yml -e mds_to_kill=node02 -i hostsrootまたは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]]
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_NAMEHOST_NAME を、デーモンが実行されているホストの短縮名に置き換えます。
例
[admin@node02 ~]$ sudo systemctl stop ceph-mds@node02MDS をこのノードに再デプロイしない場合は、MDS サービスを無効にします。
構文
sudo systemctl disable ceph-mds@HOST_NAMEHOST_NAME を、デーモンを無効にするホストの短縮名に置き換えます。
例
[admin@node02 ~]$ sudo systemctl disable ceph-mds@node02MDS ノードの
/var/lib/ceph/mds/ceph-MDS_IDディレクトリーを削除します。構文
sudo rm -fr /var/lib/ceph/mds/ceph-MDS_IDMDS_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]]