第6章 Ceph MDS のトラブルシューティング
ストレージ管理者は、Ceph Metadata Server (MDS) を使用する際に発生する可能性のあるほとんどの一般的な問題のトラブルシューティングを行うことができます。発生する可能性のある一般的なエラーの一部:
- MDS ノードに障害が発生し、新たな MDS のデプロイメントが必要となる。
- MDS ノードに障害が発生し、MDS ノードの再デプロイメントが必要となる。
6.1. Ceph MDS の再デプロイ リンクのコピーリンクがクリップボードにコピーされました!
Ceph ファイルシステムをデプロイするには、Ceph Metadata Server (MDS) デーモンが必要です。クラスター内の MDS ノードに障害が発生した場合、MDS サーバーを削除し、新規または既存のサーバーを追加して Ceph Metadata Server を再デプロイできます。コマンドラインインターフェイスまたは Ansible Playbook を使用して、MDS サーバーを追加または削除できます。
6.1.1. 前提条件 リンクのコピーリンクがクリップボードにコピーされました!
- 稼働中の Red Hat Ceph Storage クラスター。
6.1.2. 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
ディレクトリーに移動します。例
cd /usr/share/ceph-ansible
[ansible@admin ~]$ cd /usr/share/ceph-ansible
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Ansible の Playbook
shrink-mds.yml
を実行します。プロンプトが表示されたら、yes
と入力して、クラスターの縮小を確認します。Syntax
ansible-playbook infrastructure-playbooks/shrink-mds.yml -e mds_to_kill=ID -i hosts
ansible-playbook infrastructure-playbooks/shrink-mds.yml -e mds_to_kill=ID -i hosts
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ID は、削除する MDS ノードの ID に置き換えます。1 回の Playbook の実行で削除できるのは 1 つの Ceph MDS だけです。
例
ansible-playbook infrastructure-playbooks/shrink-mds.yml -e mds_to_kill=node02 -i hosts
[ansible @admin ceph-ansible]$ ansible-playbook infrastructure-playbooks/shrink-mds.yml -e mds_to_kill=node02 -i hosts
Copy to Clipboard Copied! Toggle word wrap Toggle overflow root
またはsudo
アクセスで、/usr/share/ceph-ansible/hosts
インベントリーファイルを開いて編集し、[mdss]
セクションの MDS ノードを削除します。Syntax
[mdss] MDS_NODE_NAME MDS_NODE_NAME
[mdss] MDS_NODE_NAME MDS_NODE_NAME
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
[mdss] node01 node03
[mdss] node01 node03
Copy to Clipboard Copied! Toggle word wrap Toggle overflow この例では、
node02
が[mdss]
のリストから削除されました。
検証
MDS デーモンのステータスを確認します。
Syntax
ceph fs dump
ceph fs dump
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.1.3. コマンドラインインターフェイスを使用した Ceph MDS の削除 リンクのコピーリンクがクリップボードにコピーされました!
コマンドラインインターフェイスを使用して、Ceph Metadata Server (MDS) を手動で削除できます。
現在の MDS の削除後に引き継げる MDS がない場合、そのファイルシステムはクライアントが利用できなくなります。これが望ましくない場合は、既存の MDS を削除する前に MDS を追加することを検討してください。
前提条件
-
ceph-common
パッケージがインストールされている。 - 稼働中の Red Hat Ceph Storage クラスターがある。
-
MDS ノードに
root
またはsudo
アクセスできる。
手順
- MDS デーモンを削除する Ceph MDS ノードにログインします。
Ceph MDS サービスを停止します。
Syntax
sudo systemctl stop ceph-mds@HOST_NAME
sudo systemctl stop ceph-mds@HOST_NAME
Copy to Clipboard Copied! Toggle word wrap Toggle overflow HOST_NAME を、デーモンが実行されているホストの短縮名に置き換えます。
例
sudo systemctl stop ceph-mds@node02
[admin@node02 ~]$ sudo systemctl stop ceph-mds@node02
Copy to Clipboard Copied! Toggle word wrap Toggle overflow MDS をこのノードに再デプロイしない場合は、MDS サービスを無効にします。
Syntax
sudo systemctl disable ceph-mds@HOST_NAME
sudo systemctl disable ceph-mds@HOST_NAME
Copy to Clipboard Copied! Toggle word wrap Toggle overflow HOST_NAME を、デーモンを無効にするホストの短縮名に置き換えます。
例
sudo systemctl disable ceph-mds@node02
[admin@node02 ~]$ sudo systemctl disable ceph-mds@node02
Copy to Clipboard Copied! Toggle word wrap Toggle overflow MDS ノードの
/var/lib/ceph/mds/ceph-MDS_ID
ディレクトリーを削除します。Syntax
sudo rm -fr /var/lib/ceph/mds/ceph-MDS_ID
sudo rm -fr /var/lib/ceph/mds/ceph-MDS_ID
Copy to Clipboard Copied! Toggle word wrap Toggle overflow MDS_ID を、MDS デーモンを削除する MDS ノードの ID に置き換えます。
例
sudo rm -fr /var/lib/ceph/mds/ceph-node02
[admin@node02 ~]$ sudo rm -fr /var/lib/ceph/mds/ceph-node02
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
MDS デーモンのステータスを確認します。
Syntax
ceph fs dump
ceph fs dump
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.1.4. Ansible を使用した Ceph MDS の追加 リンクのコピーリンクがクリップボードにコピーされました!
Ansible Playbook を使用して Ceph Metadata Server (MDS) を追加します。
前提条件
- Ansible によりデプロイされた実行中の Red Hat Ceph Storage クラスター
-
Ansible 管理ノードに
root
またはsudo
アクセスできる。 - MDS ノードとしてプロビジョニングできる新規または既存のサーバー。
手順
- Ansible 管理ノードにログインします。
/usr/share/ceph-ansible
ディレクトリーに移動します。例
cd /usr/share/ceph-ansible
[ansible@admin ~]$ cd /usr/share/ceph-ansible
Copy to Clipboard Copied! Toggle word wrap Toggle overflow root
またはsudo
アクセスで、/usr/share/ceph-ansible/hosts
インベントリーファイルを開いて編集し、[mdss]
セクションで MDS ノードを追加します。Syntax
[mdss] MDS_NODE_NAME NEW_MDS_NODE_NAME
[mdss] MDS_NODE_NAME NEW_MDS_NODE_NAME
Copy to Clipboard Copied! Toggle word wrap Toggle overflow NEW_MDS_NODE_NAME を、MDS サーバーをインストールするノードのホスト名に置き換えます。
あるいは、
[osds]
セクションおよび[mdss]
セクションに同じノードを追加して、1 つのノード上に MDS デーモンと OSD デーモンを共存させることができます。例
[mdss] node01 node03
[mdss] node01 node03
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ansible
ユーザーとして、Ansible Playbook を実行して MDS ノードをプロビジョニングします。ベアメタル デプロイメント:
ansible-playbook site.yml --limit mdss -i hosts
[ansible@admin ceph-ansible]$ ansible-playbook site.yml --limit mdss -i hosts
Copy to Clipboard Copied! Toggle word wrap Toggle overflow コンテナー デプロイメント:
ansible-playbook site-container.yml --limit mdss -i hosts
[ansible@admin ceph-ansible]$ ansible-playbook site-container.yml --limit mdss -i hosts
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Ansible Playbook の実行が終了すると、新しい Ceph MDS ノードがストレージクラスターに表示されます。
検証
MDS デーモンのステータスを確認します。
Syntax
ceph fs dump
ceph fs dump
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow あるいは、
ceph mds stat
コマンドを使用して、MDS がアクティブな状態にあるかどうかを確認することができます。Syntax
ceph mds stat
ceph mds stat
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
ceph mds stat
[ansible@admin ceph-ansible]$ ceph mds stat cephfs:1 {0=node01=up:active} 1 up:standby
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.1.5. コマンドラインインターフェイスを使用した Ceph MDS の追加 リンクのコピーリンクがクリップボードにコピーされました!
コマンドラインインターフェイスを使用して、Ceph Metadata Server (MDS) を手動で追加できます。
前提条件
-
ceph-common
パッケージがインストールされている。 - 稼働中の Red Hat Ceph Storage クラスターがある。
-
MDS ノードに
root
またはsudo
アクセスできる。 - MDS ノードとしてプロビジョニングできる新規または既存のサーバー。
手順
ノードにログインして MDS マウントポイントを作成して、MDS ノードを追加します。
Syntax
sudo mkdir /var/lib/ceph/mds/ceph-MDS_ID
sudo mkdir /var/lib/ceph/mds/ceph-MDS_ID
Copy to Clipboard Copied! Toggle word wrap Toggle overflow MDS_ID を、MDS デーモンを追加する MDS ノードの ID に置き換えます。
例
sudo mkdir /var/lib/ceph/mds/ceph-node03
[admin@node03 ~]$ sudo mkdir /var/lib/ceph/mds/ceph-node03
Copy to Clipboard Copied! Toggle word wrap Toggle overflow これが新しい MDS ノードである場合は、Cephx 認証を使用している場合は認証キーを作成します。
Syntax
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
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
Copy to Clipboard Copied! Toggle word wrap Toggle overflow MDS_ID を、MDS デーモンをデプロイする MDS ノードの ID に置き換えます。
例
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
[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
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記Cephx 認証はデフォルトで有効になっています。Cephx 認証の詳細は、関連情報セクションの Cephx 認証のリンクを参照してください。
MDS デーモンを起動します。
Syntax
sudo systemctl start ceph-mds@HOST_NAME
sudo systemctl start ceph-mds@HOST_NAME
Copy to Clipboard Copied! Toggle word wrap Toggle overflow HOST_NAME を、デーモンを起動するホストの短縮名に置き換えます。
例
sudo systemctl start ceph-mds@node03
[admin@node03 ~]$ sudo systemctl start ceph-mds@node03
Copy to Clipboard Copied! Toggle word wrap Toggle overflow MDS サービスを有効にします。
Syntax
systemctl enable ceph-mds@HOST_NAME
systemctl enable ceph-mds@HOST_NAME
Copy to Clipboard Copied! Toggle word wrap Toggle overflow HOST_NAME を、サービスを有効にするホストの短縮名に置き換えます。
例
sudo systemctl enable ceph-mds@node03
[admin@node03 ~]$ sudo systemctl enable ceph-mds@node03
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
MDS デーモンのステータスを確認します。
Syntax
ceph fs dump
ceph fs dump
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow あるいは、
ceph mds stat
コマンドを使用して、MDS がアクティブな状態にあるかどうかを確認することができます。Syntax
ceph mds stat
ceph mds stat
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
ceph mds stat
[ansible@admin ceph-ansible]$ ceph mds stat cephfs:1 {0=node01=up:active} 1 up:standby
Copy to Clipboard Copied! Toggle word wrap Toggle overflow