Red Hat OpenShift Container Storage のトラブルシューティング
OpenShift Container Storage のエラーおよび問題のトラブルシューティング方法
概要
第1章 概要
OpenShift Container Storage のトラブルシューティングは、管理者が Red Hat OpenShift Container Storage クラスターのトラブルシューティングおよび修正を行う方法を理解するのに役立ちます。
ほとんどのトラブルシューティングタスクは、修正または回避策のいずれかに重点を置いています。本書は、管理者が直面する可能性のあるエラーに基づいていくつかの章に分類されています。
- 2章must-gather を使用したログファイルおよび診断情報のダウンロード では、OpenShift Container Storage で must-gather ユーティリティーを使用する方法を示します。
- 3章トラブルシューティングに共通して必要になるログ では、OpenShift Container Storage に共通して必要になるログファイルを取得する方法について説明します。
- 5章OpenShift Container Storage のアラートおよびエラーのトラブルシューティング では、発生したエラーを特定し、必要なアクションを実行する方法を示します。
第2章 must-gather を使用したログファイルおよび診断情報のダウンロード
Red Hat OpenShift Container Storage が問題を自動的に解決できない場合、must-gather ツールを使用してログファイルと診断情報を収集し、お客様または Red Hat サポートが問題を確認し、解決策を判別できるようにします。
手順
Openshift Container Storage クラスターに接続されているクライアントから
must-gather
コマンドを実行します。$ oc adm must-gather --image=registry.redhat.io/ocs4/ocs-must-gather-rhel8:v4.4 --dest-dir=<directory-name> --node-name=<node-name>
ここで、<node-name> は Ready 状態のマスターノードです。
注記--node-name
はオプションで、1 つまたは複数のワーカーノードが Ready 状態にない場合にとくに使用する必要があります。これにより、指定されたディレクトリーに以下の情報が収集されます。
- すべての OpenShift Container Storage クラスター関連のカスタムリソース (CR) をそれらの namespace と共に収集します。
- すべての OpenShift Container Storage 関連の Pod の Pod ログを収集します。
- ステータス、クラスターの正常性などの一部の標準的な Ceph コマンドの出力を収集します。
第3章 トラブルシューティングに共通して必要になるログ
OpenShift Container Storage のトラブルシューティングに共通して使用されるログの一部と、それらを生成するコマンドが一覧表示されます。
特定 Pod のログを生成します。
$ oc logs <pod-name> -n <namespace>
Ceph または OpenShift Container Storage クラスターのログを生成します。
$ oc logs rook-ceph-operator-<ID> -n openshift-storage
cephfs または rbd などのプラグイン Pod のログを生成し、app-pod の PVC マウントで問題を検出します。
$ oc logs csi-cephfsplugin-<ID> -n openshift-storage -c csi-cephfsplugin
$ oc logs csi-rbdplugin-<ID> -n openshift-storage -c csi-rbdplugin
CSI Pod のすべてのコンテナーのログを生成するには、以下を実行します。
$ oc logs csi-cephfsplugin-<ID> -n openshift-storage --all-containers
$ oc logs csi-rbdplugin-<ID> -n openshift-storage --all-containers
PVC が BOUND 状態にない場合に問題を検出するために、cephfs または rbd プロビジョナー Pod のログを生成します。
$ oc logs csi-cephfsplugin-provisioner-<ID> -n openshift-storage -c csi-cephfsplugin
$ oc logs csi-rbdplugin-provisioner-<ID> -n openshift-storage -c csi-rbdplugin
CSI Pod のすべてのコンテナーのログを生成するには、以下を実行します。
$ oc logs csi-cephfsplugin-provisioner-<ID> -n openshift-storage --all-containers
$ oc logs csi-rbdplugin-provisioner-<ID> -n openshift-storage --all-containers
cluster-info コマンドを使用して OpenShift Container Storage ログを生成します。
$ oc cluster-info dump -n openshift-storage --output-directory=<directory-name>
関連情報
第4章 OpenShift Container Storage デプロイメント後のクラスター全体のデフォルトノードセレクターの上書き
クラスター全体でのデフォルトノードセレクターが Openshift Container Storage に使用される場合、CSI daemonset によって生成される Pod はセレクターに一致するノードでのみ起動できます。セレクターに一致しないノードから Openshift Container Storage を使用できるようにするには、コマンドラインインターフェースで以下の手順を実行して cluster-wide default node selector
を上書きします。
手順
openshift-storage namespace の空のノードセレクターを指定します。
$ oc annotate namespace openshift-storage openshift.io/node-selector=
DaemonSets によって生成される元の Pod を削除します。
oc delete pod -l app=csi-cephfsplugin -n openshift-storage oc delete pod -l app=csi-rbdplugin -n openshift-storage
第5章 OpenShift Container Storage のアラートおよびエラーのトラブルシューティング
5.1. アラートとエラーの解決
Red Hat OpenShift Container Storage は、多くの共通する障害シナリオを検出し、これらを自動的に解決できます。ただし、一部の問題には管理者の介入が必要です。
現在発生しているエラーを確認するには、以下のいずれかの場所を確認します。
- Monitoring → Alerting → Firing オプション
- Home → Overview → Cluster タブ
- Home → Overview → Persistent Storage タブ
- Home → Overview → Object Service タブ
表示されるエラーをコピーして、これを以下のセクションで検索し、その重大度と解決策を確認します。
Name:
Message:
Description: Severity: Warning Resolution: Fix Procedure: Inspect the user interface and log, and verify if an update is in progress.
|
Name:
Message:
Description: Severity: Warning Resolution: Fix Procedure: Inspect the user interface and log, and verify if an update is in progress.
|
Name:
Message:
Description: Severity: Crtical Resolution: Fix Procedure: Remove unnecessary data or expand the cluster. |
Name:
Fixed:
Description: Severity: Warning Resolution: Fix Procedure: Remove unnecessary data or expand the cluster. |
Name:
Message:
Description: Severity: Warning Resolution: Workaround Procedure: Resolving NooBaa Bucket Error State |
Name:
Message:
Description: Severity: Warning Resolution: Fix |
Name:
Message:
Description: Severity: Warning Resolution: Fix |
Name:
Message:
Description: Severity: Warning Resolution: Fix |
Name:
Message:
Description: Severity: Warning Resolution: Fix |
Name:
Message:
Description: Severity: Warning Resolution: Workaround Procedure: Resolving NooBaa Bucket Error State |
Name:
Message:
Description: Severity: Warning Resolution: Fix |
Name:
Message:
Description: Severity: Warning Resolution: Fix |
Name:
Message:
Description: Severity: Warning Resolution: Fix |
Name:
Message: Description: `Minimum required replicas for storage metadata service not available. Might affect the working of storage cluster.` Severity: Warning Resolution: Contact Red Hat support Procedure:
|
Name:
Message:
Description: Severity: Critical Resolution: Contact Red Hat support Procedure:
|
Name:
Message:
Description: Severity: Critical Resolution: Contact Red Hat support Procedure:
|
Name:
Message:
Description: Severity: Critical Resolution: Contact Red Hat support Procedure:
|
Name:
Message:
Description: Severity: Warning Resolution: Contact Red Hat support Procedure:
|
Name:
Message:
Description: Severity: Warning Resolution: Contact Red Hat support |
Name:
Message:
Description: Severity: Critical Resolution: Contact Red Hat support |
Name:
Message:
Description: Severity: Critical Resolution: Contact Red Hat support |
Name:
Message:
Description: Severity: Warning Resolution: Contact Red Hat support |
Name:
Message:
Description: Severity: Warning Resolution: Contact Red Hat support |
Name:
Message:
Description: Severity: Critical Resolution: Contact Red Hat support |
5.2. NooBaa Bucket エラー状態の解決
手順
- OpenShift Web コンソールにログインし、Object Service をクリックします。
- Details カードの System Name フィールドにあるリンクをクリックします。
- 左側のペインで、Buckets オプションをクリックし、エラー状態のバケットを検索します。
- その Bucket Name をクリックします。バケットで発生しているエラーが表示されます。
バケットの特定のエラーに応じて、以下のいずれかまたは両方を実行します。
領域に関連するエラーの場合:
- 左側のペインで Resources オプションをクリックします。
- エラー状態のリソースをクリックします。
- エージェントを追加してリソースをスケーリングします。
リソースの正常性エラーの場合:
- 左側のペインで Resources オプションをクリックします。
- エラー状態のリソースをクリックします。
- 接続エラーは、バッキングサービスが利用できないため、復元する必要があることを示します。
- アクセス/パーミッションのエラーについては、接続の Access Key および Secret Key を更新します。
5.3. クォータを超過した状態の NooBaa Bucket の解決
A NooBaa Bucket Is In Exceeding Quota State エラーを解決するには、以下のいずれかを実行します。
- バケットの一部のデータをクリーンアップします。
以下の手順に従って、バケットクォータを増やします。
- OpenShift Web コンソールにログインし、Object Service をクリックします。
- Details カードの System Name フィールドにあるリンクをクリックします。
- 左側のペインで、Buckets オプションをクリックし、エラー状態のバケットを検索します。
- その Bucket Name をクリックします。バケットで発生しているエラーが表示されます。
- Bucket Policies → Edit Quota をクリックし、クォータを増やします。
5.4. NooBaa バケット容量またはクォータの状態の解決
手順
- OpenShift Web コンソールにログインし、Object Service をクリックします。
- Details カードの System Name フィールドにあるリンクをクリックします。
- 左側のペインで Resources オプションをクリックし、PV プールリソースを検索します。
- 容量が低いステータスの PV プールリソースについては、そのResource Name をクリックします。
- プール設定を編集し、エージェントの数を増やします。
5.5. Pod のリカバリー
一部の問題により最初のノード(例: NODE1
)が NotReady 状態になると、ReadWriteOnce (RWO) アクセスモードで PVC を使用するホストされた Pod は、2 つ目のノード(例: NODE2
) に移行しようとしますが、multi-attach エラーにより停止します。このような場合には、以下の手順に従って MON、OSD、およびアプリケーション Pod を回復できます。
手順
-
(AWS または vSphere 側から)
NODE1
の電源をオフにし、NODE1
が完全に停止していることを確認します。 以下のコマンドを使用して
NODE1
で Pod を強制的に削除します。$ oc delete pod <pod-name> --grace-period=0 --force
5.6. EBS ボリュームの割り当て解除からのリカバリー
OSD ディスクがある OSD または MON Elastic Block Storage (EBS) ボリュームがワーカー Amazon EC2 インスタンスからアタッチ解除すると、ボリュームは 1 分または 2 分以内に自動的に再度アタッチされます。ただし、OSD Pod は CrashLoopBackOff
状態になります。Pod を回復して Running
状態に戻すには、EC2 インスタンスを再起動する必要があります。
第6章 ローカルストレージ Operator デプロイメントの確認
ローカルストレージ Operator を使用する OpenShift Container Storage クラスターはローカルストレージデバイスを使用してデプロイされます。ローカルストレージデバイスを使用して既存のクラスターが OpenShift Container Storage と共にデプロイされているかどうかを確認するには、以下の手順に従います。
前提条件
-
OpenShift Container Storage が
openshift-storage
namespace にインストールされ、実行されている。
手順
OpenShift Container Storage クラスターの Persistent Volume Claim(永続ボリューム要求、PVC)に関連付けられたストレージクラスをチェックすることにより、ローカルストレージデバイスを使用してクラスターがデプロイされているかどうかを確認できます。
以下のコマンドを使用して、OpenShift Container Storage クラスターの PVC に関連付けられたストレージクラスを確認します。
$ oc get pvc -n openshift-storage
出力を確認します。ローカルストレージ Operator を含むクラスターの場合、
ocs-deviceset
に関連付けられた PVC はストレージクラスlocalblock
を使用します。出力は以下の例のようになります。NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE db-noobaa-db-0 Bound pvc-d96c747b-2ab5-47e2-b07e-1079623748d8 50Gi RWO ocs-storagecluster-ceph-rbd 114s ocs-deviceset-0-0-lzfrd Bound local-pv-7e70c77c 1769Gi RWO localblock 2m10s ocs-deviceset-1-0-7rggl Bound local-pv-b19b3d48 1769Gi RWO localblock 2m10s ocs-deviceset-2-0-znhk8 Bound local-pv-e9f22cdc 1769Gi RWO localblock 2m10s