検索

第6章 Ceph MDS のトラブルシューティング

download PDF

ストレージ管理者は、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 アクセスできる。

手順

  1. Ansible 管理ノードにログインします。
  2. /usr/share/ceph-ansible ディレクトリーに移動します。

    [ansible@admin ~]$ cd /usr/share/ceph-ansible

  3. Ansible の Playbook shrink-mds.yml を実行します。プロンプトが表示されたら、yes と入力して、クラスターの縮小を確認します。

    Syntax

    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

  4. root または sudo アクセスで、/usr/share/ceph-ansible/hosts インベントリーファイルを開いて編集し、[mdss] セクションの MDS ノードを削除します。

    Syntax

    [mdss]
    MDS_NODE_NAME
    MDS_NODE_NAME

    [mdss]
    node01
    node03

    この例では、node02[mdss] のリストから削除されました。

検証

  • MDS デーモンのステータスを確認します。

    Syntax

    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]]

関連情報

6.1.3. コマンドラインインターフェイスを使用した Ceph MDS の削除

コマンドラインインターフェイスを使用して、Ceph Metadata Server (MDS) を手動で削除できます。

注記

現在の MDS の削除後に引き継げる MDS がない場合、そのファイルシステムはクライアントが利用できなくなります。これが望ましくない場合は、既存の MDS を削除する前に MDS を追加することを検討してください。

前提条件

  • ceph-common パッケージがインストールされている。
  • 稼働中の Red Hat Ceph Storage クラスターがある。
  • MDS ノードに root または sudo アクセスできる。

手順

  1. MDS デーモンを削除する Ceph MDS ノードにログインします。
  2. Ceph MDS サービスを停止します。

    Syntax

    sudo systemctl stop ceph-mds@HOST_NAME

    HOST_NAME を、デーモンが実行されているホストの短縮名に置き換えます。

    [admin@node02 ~]$ sudo systemctl stop ceph-mds@node02

  3. MDS をこのノードに再デプロイしない場合は、MDS サービスを無効にします。

    Syntax

    sudo systemctl disable ceph-mds@HOST_NAME

    HOST_NAME を、デーモンを無効にするホストの短縮名に置き換えます。

    [admin@node02 ~]$ sudo systemctl disable ceph-mds@node02

  4. MDS ノードの /var/lib/ceph/mds/ceph-MDS_ID ディレクトリーを削除します。

    Syntax

    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 デーモンのステータスを確認します。

    Syntax

    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]]

関連情報

6.1.4. Ansible を使用した Ceph MDS の追加

Ansible Playbook を使用して Ceph Metadata Server (MDS) を追加します。

前提条件

  • Ansible によりデプロイされた実行中の Red Hat Ceph Storage クラスター
  • Ansible 管理ノードに root または sudo アクセスできる。
  • MDS ノードとしてプロビジョニングできる新規または既存のサーバー。

手順

  1. Ansible 管理ノードにログインします。
  2. /usr/share/ceph-ansible ディレクトリーに移動します。

    [ansible@admin ~]$ cd /usr/share/ceph-ansible

  3. root または sudo アクセスで、/usr/share/ceph-ansible/hosts インベントリーファイルを開いて編集し、[mdss] セクションで MDS ノードを追加します。

    Syntax

    [mdss]
    MDS_NODE_NAME
    NEW_MDS_NODE_NAME

    NEW_MDS_NODE_NAME を、MDS サーバーをインストールするノードのホスト名に置き換えます。

    あるいは、[osds] セクションおよび [mdss] セクションに同じノードを追加して、1 つのノード上に MDS デーモンと OSD デーモンを共存させることができます。

    [mdss]
    node01
    node03

  4. 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 デーモンのステータスを確認します。

    Syntax

    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 がアクティブな状態にあるかどうかを確認することができます。

    Syntax

    ceph mds stat

    [ansible@admin ceph-ansible]$ ceph mds stat
    cephfs:1 {0=node01=up:active} 1 up:standby

関連情報

6.1.5. コマンドラインインターフェイスを使用した Ceph MDS の追加

コマンドラインインターフェイスを使用して、Ceph Metadata Server (MDS) を手動で追加できます。

前提条件

  • ceph-common パッケージがインストールされている。
  • 稼働中の Red Hat Ceph Storage クラスターがある。
  • MDS ノードに root または sudo アクセスできる。
  • MDS ノードとしてプロビジョニングできる新規または既存のサーバー。

手順

  1. ノードにログインして MDS マウントポイントを作成して、MDS ノードを追加します。

    Syntax

    sudo mkdir /var/lib/ceph/mds/ceph-MDS_ID

    MDS_ID を、MDS デーモンを追加する MDS ノードの ID に置き換えます。

    [admin@node03 ~]$ sudo mkdir /var/lib/ceph/mds/ceph-node03

  2. これが新しい 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

    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 認証のリンクを参照してください。

  3. MDS デーモンを起動します。

    Syntax

    sudo systemctl start ceph-mds@HOST_NAME

    HOST_NAME を、デーモンを起動するホストの短縮名に置き換えます。

    [admin@node03 ~]$ sudo systemctl start ceph-mds@node03

  4. MDS サービスを有効にします。

    Syntax

    systemctl enable ceph-mds@HOST_NAME

    HOST_NAME を、サービスを有効にするホストの短縮名に置き換えます。

    [admin@node03 ~]$ sudo systemctl enable ceph-mds@node03

検証

  • MDS デーモンのステータスを確認します。

    Syntax

    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 がアクティブな状態にあるかどうかを確認することができます。

    Syntax

    ceph mds stat

    [ansible@admin ceph-ansible]$ ceph mds stat
    cephfs:1 {0=node01=up:active} 1 up:standby

関連情報

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.