Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

CephとRookに関する問題のトラブルシューティング

これらのトピックでは、CephとRookに関する問題のトラブルシューティング手順について説明します。

OSD作成エラーのトラブルシューティング

問題

オブジェクトストレージデーモン(OSD)が作成されないため、インストールが失敗します。

ソリューション

インストールが失敗する一般的な理由は、オブジェクトストレージデーモン(OSD)が作成されないことです。OSDは、クラスタノード上のストレージを設定します。OSDは、リソースが不足しているか、ディスク領域が正しくパーティション化されていないという形で、ディスクリソースが利用できないために作成されない可能性があります。ディスク・スペース不足によるインストールの失敗を防ぐために、ノードに十分な未フォーマット・ディスク・スペースがあることを確認してください。

ディスクフォーマットの問題をデバッグする

問題

ディスクをフォーマットする必要がある場合、インストールは失敗します。

ソリューション

十分な未フォーマットのディスク領域を確保します。

ジョブの rook-ceph-osd-prepare-hostname-* ログを調べて、ディスクまたはパーティションを再フォーマットする必要があるかどうかを判断する必要があります。ディスクまたはパーティションを再フォーマットし、Rookを再起動するには:

  1. 次のいずれかの方法を使用して、既存のディスクまたはパーティションを再フォーマットします。

    注意:

    これらのコマンドは、使用しているディスクまたはパーティションを完全に再フォーマットし、それらの上のすべてのデータが失われます。

    • Cephに使用するはずだったブロックストレージデバイスがあるが、使用できない状態であったために使用されなかった場合は、ディスクを完全に再フォーマットできます。
    • Cephに使用するはずのディスクパーティションがある場合は、パーティション上のデータを完全にクリアできます。
  2. Rookを再起動して変更を保存し、OSDの作成プロセスを再試行します。

Ceph OSD障害のトラブルシューティング

問題

Ceph OSDで問題が発生。

ソリューション

障害が発生したOSDを特定して取り外す必要があります。その後、ディスクを部分的または完全に再フォーマットまたは交換できます。

ディスク障害のトラブルシューティングを行うには:

  1. 次のコマンドを実行して、名前空間にインストールされている rook-ceph Rook ポッドと Ceph ポッドの状態を確認します。

    # kubectl get po -n rook-ceph

  2. ポッドが rook-ceph-osd-* または Error CrashLoopBackoff 状態の場合は、ディスクを修復する必要があります。

    次の手順に従って、ディスクを修復します。

    1. やめる rook-ceph-operator.

      # kubectl scale deploy -n rook-ceph rook-ceph-operator --replicas=0

    2. 問題のあるOSDプロセスを削除します。

      # kubectl delete deploy -n rook-ceph rook-ceph-osd-number

    3. ツールボックスに接続します。

      $ kubectl exec -ti -n rook-ceph $(kubectl get po -n rook-ceph -l app=rook-ceph-tools -o jsonpath={..metadata.name}) -- bash

    4. 問題のあるOSDを特定します。

      # ceph osd status

    5. 失敗したOSDにマークを付けます。

    6. 障害が発生したOSDを取り外します。

      # ceph osd purge number --yes-i-really-mean-it

    7. 障害が発生したOSDをホストしていたノードに接続し、次のいずれかを実行します。
      • ハードウェア障害が発生した場合にハードディスクを交換してください。
      • ディスクを完全に再フォーマットします。
      • パーティションを完全に再フォーマットします。
    8. 再起動します rook-ceph-operator

      # kubectl scale deploy -n rook-ceph rook-ceph-operator --replicas=1

    9. OSDポッドを監視します。

      # kubectl get po -n rook-ceph

      OSDが回復しない場合は、同じ手順でOSDを取り外し、ディスクを取り外すかパーティションを削除してから再起動 rook-ceph-operatorします。

ルークポッドとCephポッドに関する問題のデバッグ

問題

RookポッドとCephポッドが状態 error にある場合、インストールが失敗することがあります。

ソリューション

ハードウェアの電力が不足していると、RookおよびCephポッドエラーが発生する可能性があります。RookおよびCephポッドのエラーも、インストールが失敗する原因となる可能性があります。RookポッドとCephポッドに関するほとんどの問題を解決するには、インストールされているポッドがその状態にある running ことを確認します。これを確認するには、次のことを行う必要があります。

  1. 次のコマンドを実行して、名前空間にインストールされている rook-ceph Rook ポッドと Ceph ポッドの状態を確認します。

    # kubectl get po -n rook-ceph

  2. 次のポッドが 状態 running であることを確認します。

    • rook-ceph-mon-*- 通常、3 つのモニターポッド
    • rook-ceph-mgr-*- マネージャーポッド 1 台

    • rook-ceph-osd-*- 3 つ以上の OSD ポッド

    • rook-ceph-mds-cephfs-*—メタデータサーバー

    • rook-ceph-rgw-object-store-*- オブジェクトストア・ゲートウェイ

    • rook-ceph-tools*- 追加のデバッグ オプション

      ツールボックスに接続するには、次のコマンドを使用します。

      $ kubectl exec -ti -n rook-ceph $(kubectl get po -n rook-ceph -l app=rook-ceph-tools \ -o jsonpath={..metadata.name}) -- bash

      ツールボックスのその他の共通コマンドの詳細については、 表 1 を参照してください。

      表 1: 追加コマンド
      コマンド の説明
      # ceph status クラスターの状態を表示します。
      # ceph osd status OSDマップの概要を表示します。
      # ceph osd df ディスク使用量の詳細を表示します (グローバルおよびプールごと)。
      # ceph osd utilization OSDの使用率を表示します。
      # ceph osd pool stats ディスク・プールの使用状況を表示します。
      # ceph osd tree OSDツリーを表示します。
      # ceph pg stat pgステータスとパフォーマンスを表示します。