トラブルシューティングガイド
Red Hat Ceph Storage のトラブルシューティング
概要
第1章 初期のトラブルシューティング リンクのコピーリンクがクリップボードにコピーされました!
ストレージ管理者であれば、Red Hat のサポートに連絡する前に、Red Hat Ceph Storage クラスターの初期トラブルシューティングを行うことができます。この章では、以下の内容をご紹介します。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
1.1. 問題の特定 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Ceph Storage クラスターでエラーの原因を確認するには、手順に関するセクションにある質問に回答します。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
手順
- サポート対象外の設定を使用する場合は、特定の問題が発生する可能性があります。設定がサポートされていることを確認してください。
どの Ceph コンポーネントが問題を引き起こすかを把握しているか ?
- いいえ。Red Hat Ceph Storage トラブルシューティングガイドの Ceph Storage クラスターの健全性の診断 の手順に従います。
- Ceph 監視Red Hat Ceph Storage トラブルシューティングガイドの Ceph モニターのトラブルシューティング セクションを参照してください。
- Ceph OSDRed Hat Ceph Storage トラブルシューティングガイドの Ceph OSD のトラブルシューティング セクションを参照してください。
- Ceph の配置グループRed Hat Ceph Storage トラブルシューティングガイド の Ceph 配置グループのトラブルシューティング セクションを参照してください。
- マルチサイトの Ceph Object GatewayRed Hat Ceph Storage トラブルシューティングガイド の マルチサイトの Ceph Object Gateway のトラブルシューティング セクションを参照してください。
関連情報
- 詳細は、Red Hat Ceph Storage でサポートされる設定 について参照してください。
1.2. ストレージクラスターの正常性の診断 リンクのコピーリンクがクリップボードにコピーされました!
以下の手順では、Red Hat Ceph Storage クラスターの正常性を診断するための基本的な手順を紹介します。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
手順
Cephadm シェルにログインします。
例
cephadm shell
[root@host01 ~]# cephadm shellCopy to Clipboard Copied! Toggle word wrap Toggle overflow ストレージクラスターの全体的なステータスを確認します。
例
[ceph: root@host01 /]# ceph health detail
[ceph: root@host01 /]# ceph health detailCopy to Clipboard Copied! Toggle word wrap Toggle overflow コマンドが
HEALTH_WARNまたはHEALTH_ERRを返す場合は、Ceph の正常性の理解 を参照してください。ストレージクラスターのログを監視します。
例
[ceph: root@host01 /]# ceph -W cephadm
[ceph: root@host01 /]# ceph -W cephadmCopy to Clipboard Copied! Toggle word wrap Toggle overflow クラスターのログをファイルに取り込むには、以下のコマンドを実行します。
例
[ceph: root@host01 /]# ceph config set global log_to_file true [ceph: root@host01 /]# ceph config set global mon_cluster_log_to_file true
[ceph: root@host01 /]# ceph config set global log_to_file true [ceph: root@host01 /]# ceph config set global mon_cluster_log_to_file trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow デフォルトでは、ログは
/var/log/ceph/CLUSTER_FSID/ディレクトリーにあります。Ceph ログについてに記載されているエラーメッセージがないか、Ceph ログを確認します。- ログに十分な情報が含まれていない場合は、デバッグレベルを上げて、失敗したアクションを再現してみてください。詳細は、ログの設定 を参照してください。
1.3. Ceph の正常性の理解 リンクのコピーリンクがクリップボードにコピーされました!
ceph health コマンドは、Red Hat Ceph Storage クラスターのステータス情報を返します。
-
HEALTH_OKはクラスターが正常であることを示します。 -
HEALTH_WARNは警告を示します。場合によっては、Ceph のステータスは自動的にHEALTH_OKに戻ります。たとえば、Red Hat Ceph Storage クラスターがリバランスプロセスを終了する場合。ただし、クラスターがHEALTH_WARNの状態であればさらにトラブルシューティングを行うことを検討してください。 -
HEALTH_ERRは、早急な対応が必要なより深刻な問題を示します。
ceph health detail および ceph -s コマンドを使用して、より詳細な出力を取得します。
実行中の mgr デーモンがない場合は、ヘルス警告が表示されます。Red Hat Ceph Storage クラスターの最後の mgr デーモンが削除された場合は、Red Hat Storage クラスターのランダムホストに mgr デーモンを手動でデプロイできます。Red Hat Ceph Storage 6 管理ガイド の mgr デーモンの手動デプロイ を参照してください。
1.4. Ceph クラスターの正常性アラートのミュート リンクのコピーリンクがクリップボードにコピーされました!
特定のシナリオでは、ユーザーが一時的にいくつかの警告をミュートしたい場合があります。正常性チェックをミュートして、Ceph クラスターの報告されたステータス全体に影響を与えないようにすることができます。
アラートは正常性チェックコードで指定します。たとえば、OSD がメンテナンスのためにダウンした場合は、OSD_DOWN 警告が出力されることがあります。メンテナンスが終了するまで警告をミュートにすることもできます。これらの警告が出ると、メンテナンス期間中、クラスターは HEALTH_OK ではなく HEALTH_WARN になります。
アラートの範囲が悪化すると、ほとんどの正常性ミュートも消えます。たとえば、1 つの OSD がダウンしていて、アラートがミュートになっている場合、さらに 1 つ以上の OSD がダウンすると、ミュートが消えます。これは、警告やエラーの原因となっているものの量や数を示すカウントを伴う正常性アラートに当てはまります。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- ノードへのアクセスのルートレベル。
- 正常性への警告メッセージです。
手順
Cephadm シェルにログインします。
例
cephadm shell
[root@host01 ~]# cephadm shellCopy to Clipboard Copied! Toggle word wrap Toggle overflow ceph health detailコマンドを実行して、Red Hat Ceph Storage クラスターの正常性を確認します。例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ストレージクラスターは、OSD の 1 つがダウンしているため、
HEALTH_WARN状態になっていることがわかります。アラートをミュートします。
構文
ceph health mute HEALTH_MESSAGE
ceph health mute HEALTH_MESSAGECopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
[ceph: root@host01 /]# ceph health mute OSD_DOWN
[ceph: root@host01 /]# ceph health mute OSD_DOWNCopy to Clipboard Copied! Toggle word wrap Toggle overflow オプション: 正常性チェックのミュートに TTL (time to live) を設定することができ、指定した時間が経過するとミュートが自動的に失効します。コマンドの任意の duration 引数として TTL を指定します。
構文
ceph health mute HEALTH_MESSAGE DURATION
ceph health mute HEALTH_MESSAGE DURATIONCopy to Clipboard Copied! Toggle word wrap Toggle overflow DURATION は、
s、sec、m、min、h、hourで指定できます。例
[ceph: root@host01 /]# ceph health mute OSD_DOWN 10m
[ceph: root@host01 /]# ceph health mute OSD_DOWN 10mCopy to Clipboard Copied! Toggle word wrap Toggle overflow この例では、アラート
OSD_DOWNが 10 分間ミュートされます。Red Hat Ceph Storage クラスターのステータスが
HEALTH_OKに変更されているかどうかを確認します。例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow この例では、OSD_DOWN および OSD_FLAG の警告がミュートされ、そのミュートが 9 分間有効であることがわかります。
オプション: ミュートを スティッキー にすることで、アラートが解除された後もミュートを保持することができます。
構文
ceph health mute HEALTH_MESSAGE DURATION --sticky
ceph health mute HEALTH_MESSAGE DURATION --stickyCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
[ceph: root@host01 /]# ceph health mute OSD_DOWN 1h --sticky
[ceph: root@host01 /]# ceph health mute OSD_DOWN 1h --stickyCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、ミュートを削除できます。
構文
ceph health unmute HEALTH_MESSAGE
ceph health unmute HEALTH_MESSAGECopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
[ceph: root@host01 /]# ceph health unmute OSD_DOWN
[ceph: root@host01 /]# ceph health unmute OSD_DOWNCopy to Clipboard Copied! Toggle word wrap Toggle overflow
1.5. Ceph ログについて リンクのコピーリンクがクリップボードにコピーされました!
ファイルへのロギングが有効になると、Ceph はログを /var/log/ceph/CLUSTER_FSID/ ディレクトリーに保存します。
CLUSTER_NAME.log は、グローバルイベントを含むメインストレージクラスターのログファイルです。デフォルトでは、ログファイル名は ceph.log です。Ceph Monitor ノードのみにメインストレージクラスターのログが含まれます。
Ceph OSD および Monitor の各ログファイルには、CLUSTER_NAME-osd.NUMBER.log と CLUSTER_NAME-mon.HOSTNAME.log という名前の独自のログファイルがあります。
Ceph サブシステムのデバッグレベルを上げると、Ceph はそれらのサブシステムにも新しいログファイルを生成します。
1.6. sos report の作成 リンクのコピーリンクがクリップボードにコピーされました!
sos report コマンドを実行すると、Red Hat Enterprise Linux から Red Hat Ceph Storage クラスターの設定詳細、システム情報、診断情報を収集することができます。Red Hat サポートチームは、この情報をストレージクラスターのさらなるトラブルシューティングに使用します。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- ノードへの root レベルのアクセス。
手順
sosパッケージをインストールするには、以下のコマンドを実行します。例
dnf install sos
[root@host01 ~]# dnf install sosCopy to Clipboard Copied! Toggle word wrap Toggle overflow sos reportを実行して、ストレージクラスターのシステム情報を取得します。例
sos report -a --all-logs
[root@host01 ~]# sos report -a --all-logsCopy to Clipboard Copied! Toggle word wrap Toggle overflow レポートは
/var/tmpファイルに保存されます。特定の Ceph デーモン情報を取得するには、次のコマンドを実行します。
例
sos report --all-logs -e ceph_mgr,ceph_common,ceph_mon,ceph_osd,ceph_ansible,ceph_mds,ceph_rgw
[root@host01 ~]# sos report --all-logs -e ceph_mgr,ceph_common,ceph_mon,ceph_osd,ceph_ansible,ceph_mds,ceph_rgwCopy to Clipboard Copied! Toggle word wrap Toggle overflow
第2章 ロギングの設定 リンクのコピーリンクがクリップボードにコピーされました!
この章では、さまざまな Ceph サブシステムのロギングを設定する方法を説明します。
ロギングはリソース集約型です。また、詳細ロギングは、比較的短い時間で大量のデータを生成できます。クラスターの特定のサブシステムで問題が発生した場合は、そのサブシステムのロギングのみを有効にします。詳細は、「Ceph サブシステム」 を参照してください。
さらに、ログファイルのローテーションを設定することも検討してください。詳細は、「ログローテーションの頻度を上げる」 を参照してください。
発生した問題を解決したら、サブシステムのログとメモーリのレベルをデフォルトの値に変更します。すべての Ceph サブシステムのリストおよびそのデフォルト値については、付録A Ceph サブシステムのデフォルトログレベルの値 を参照してください。
以下を行って Ceph ロギングを設定できます。
-
ランタイム時に
cephコマンドを使用します。これは最も一般的な方法です。詳細は、「実行時のロギング設定」 を参照してください。 - Ceph 設定ファイルの更新クラスターの起動時に問題が発生した場合は、このアプローチを使用します。詳細は、「設定ファイルでのロギングの設定」 を参照してください。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
2.1. Ceph サブシステム リンクのコピーリンクがクリップボードにコピーされました!
このセクションでは、Ceph サブシステムとそれらのログレベルを説明します。
Ceph サブシステムおよびログレベルの理解
Ceph は複数のサブシステムで構成されます。
各サブシステムには、以下のログレベルがあります。
-
デフォルトで
/var/log/ceph/CLUSTER_FSID/ディレクトリー (ログレベル) に保存されている出力ログ - メモリーキャッシュ (メモリーレベル) に保存されるログ
通常、Ceph は以下でない限り、メモリーに保存されているログを出力ログに送信しません。
- 致命的なシグナルが発生した
- ソースコードの assert がトリガーされた
- ユーザーがリクエストした
これらのサブシステムごとに異なる値を設定できます。Ceph のロギングレベルは、1 から 20 の範囲で動作します。1 は簡潔で、20 は詳細です。
ログレベルおよびメモリーレベルに単一の値を使用して、両方の値を同じ値に設定します。たとえば、debug_osd = 5 の場合には、ceph-osd デーモンのデバッグレベルを 5 に設定します。
出力ログレベルとメモリーレベルで異なる値を使用するには、値をスラッシュ (/) で区切ります。たとえば、debug_mon = 1/5 の場合は、ceph-mon デーモンのデバッグログレベルを 1 に設定し、そのメモリーログレベルを 5 に設定します。
| サブシステム | ログレベル | メモリーレベル | 説明 |
|---|---|---|---|
|
| 1 | 5 | 管理ソケット |
|
| 1 | 5 | 認証 |
|
| 0 | 5 |
クラスターに接続するために |
|
| 1 | 5 | BlueStore OSD バックエンド |
|
| 1 | 5 | OSD ジャーナル |
|
| 1 | 5 | メタデータサーバー |
|
| 0 | 5 | Monitor クライアントは、ほとんどの Ceph デーモンとモニター間の通信を処理します。 |
|
| 1 | 5 | モニター |
|
| 0 | 5 | Ceph コンポーネント間のメッセージングシステム |
|
| 0 | 5 | OSD デーモン |
|
| 0 | 5 | Monitor がコンセンサスを得るために使用するアルゴリズム |
|
| 0 | 5 | Ceph のコアコンポーネントである、信頼できる Autonomic Distributed Object Store |
|
| 0 | 5 | Ceph ブロックデバイス |
|
| 1 | 5 | Ceph Object Gateway |
ログ出力の例
以下の例は、Monitor および OSD の詳細度を上げた場合の、ログのメッセージタイプを示しています。
Monitor デバッグ設定
debug_ms = 5 debug_mon = 20 debug_paxos = 20 debug_auth = 20
debug_ms = 5
debug_mon = 20
debug_paxos = 20
debug_auth = 20
Monitor デバッグ設定のログ出力の例
OSD デバッグ設定
debug_ms = 5 debug_osd = 20
debug_ms = 5
debug_osd = 20
OSD デバッグ設定のログ出力の例
2.2. 実行時のロギング設定 リンクのコピーリンクがクリップボードにコピーされました!
システムの実行時に Ceph サブシステムのログを設定して、発生する可能性のある問題のトラブルシューティングに役立てることができます。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- Ceph デバッガーへのアクセス。
手順
ランタイム時に Ceph デバッグ出力である
dout()をアクティベートするには、以下を実行します。ceph tell TYPE.ID injectargs --debug-SUBSYSTEM VALUE [--NAME VALUE]
ceph tell TYPE.ID injectargs --debug-SUBSYSTEM VALUE [--NAME VALUE]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下を置き換えます。
-
TYPEを、Ceph デーモンのタイプ (osd、mon、またはmds) に置き換えます。 -
IDを、Ceph デーモンの特定の ID に。特定タイプのすべてのデーモンにランタイム設定を適用するには、*を使用します。 -
SUBSYSTEMを、特定のサブシステムに。 VALUEを、1から20までの数字。1は簡潔で、20は詳細です。たとえば、
osd.0という名前の OSD サブシステムのログレベルを 0 に設定し、メモリーレベルを 5 に設定するには、以下を実行します。ceph tell osd.0 injectargs --debug-osd 0/5
# ceph tell osd.0 injectargs --debug-osd 0/5Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
実行時に設定を表示するには、以下を実行します。
-
実行中の Ceph デーモン (例:
ceph-osdまたはceph-mon) でホストにログインします。 設定を表示します。
構文
ceph daemon NAME config show | less
ceph daemon NAME config show | lessCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
[ceph: root@host01 /]# ceph daemon osd.0 config show | less
[ceph: root@host01 /]# ceph daemon osd.0 config show | lessCopy to Clipboard Copied! Toggle word wrap Toggle overflow
2.3. 設定ファイルでのロギングの設定 リンクのコピーリンクがクリップボードにコピーされました!
Ceph サブシステムを設定して、情報、警告、およびエラーメッセージをログファイルに記録します。Ceph 設定ファイルでデバッグレベルを指定することができます (デフォルトでは /etc/ceph/ceph.conf)。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
手順
起動時に Ceph のデバッグ出力を有効にするには、システムの起動時に
dout()のデバッグ設定を Ceph 設定ファイルに追加します。-
各デーモンに共通するサブシステムの場合は、
[global]セクションに設定を追加します。 特定のデーモンのサブシステムについては、
[mon]、[osd]、[mds]などのデーモンセクションに設定を追加します。例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
各デーモンに共通するサブシステムの場合は、
関連情報
- Ceph サブシステム
- 実行時のロギング設定
- Red Hat Ceph Storage 6 の 設定ガイドの Ceph のデバッグおよびログ設定リファレンス の章
2.4. ログローテーションの頻度を上げる リンクのコピーリンクがクリップボードにコピーされました!
Ceph コンポーネントのデバッグレベルを上げると、大量のデータが生成される可能性があります。ディスクがほぼ満杯になると、/etc/logrotate.d/ceph-<fsid> にある Ceph ログローテーションファイルを変更することで、ログローテーションを迅速化することができます。Cron ジョブスケジューラーはこのファイルを使用してログローテーションをスケジュールします。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- ノードへのルートレベルのアクセス。
手順
ログローテーションファイルで、ローテーション頻度の後にサイズの設定を追加します。
rotate 7 weekly size SIZE compress sharedscripts
rotate 7 weekly size SIZE compress sharedscriptsCopy to Clipboard Copied! Toggle word wrap Toggle overflow たとえば、ログファイルが 500 MB に達した時点でローテーションを行います。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記サイズの値は、'500 MB' または '500M' で表すことができます。
crontabエディターを開きます。crontab -e
[root@mon ~]# crontab -eCopy to Clipboard Copied! Toggle word wrap Toggle overflow エントリーを追加して、
/etc/logrotate.d/ceph-<fsid>ファイルを確認します。たとえば、Cron に 30 分ごとに/etc/logrotate.d/ceph-<fsid>をチェックするように指示するには、以下を実行します。30 * * * * /usr/sbin/logrotate /etc/logrotate.d/ceph-d3bb5396-c404-11ee-9e65-002590fc2a2e >/dev/null 2>&1
30 * * * * /usr/sbin/logrotate /etc/logrotate.d/ceph-d3bb5396-c404-11ee-9e65-002590fc2a2e >/dev/null 2>&1Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.5. Ceph Object Gateway の操作ログの作成と収集 リンクのコピーリンクがクリップボードにコピーされました!
ユーザー識別情報が操作ログ出力に追加されます。これは、顧客が S3 アクセスの監査のためにこの情報にアクセスできるようにするために使用されます。Ceph Object Gateway の操作ログのすべてのバージョンで、S3 リクエストによってユーザー ID を確実に追跡します。
手順
ログの場所を見つけます。
構文
logrotate -f
logrotate -fCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
logrotate -f
[root@host01 ~]# logrotate -f /etc/logrotate.d/ceph-12ab345c-1a2b-11ed-b736-fa163e4f6220Copy to Clipboard Copied! Toggle word wrap Toggle overflow 指定された場所内のログをリスト表示します。
構文
ll LOG_LOCATION
ll LOG_LOCATIONCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
ll /var/log/ceph/12ab345c-1a2b-11ed-b736-fa163e4f6220
[root@host01 ~]# ll /var/log/ceph/12ab345c-1a2b-11ed-b736-fa163e4f6220 -rw-r--r--. 1 ceph ceph 412 Sep 28 09:26 opslog.log.1.gzCopy to Clipboard Copied! Toggle word wrap Toggle overflow 現在のバケットをリストします。
例
/usr/local/bin/s3cmd ls
[root@host01 ~]# /usr/local/bin/s3cmd lsCopy to Clipboard Copied! Toggle word wrap Toggle overflow バケットを作成します。
構文
/usr/local/bin/s3cmd mb s3://NEW_BUCKET_NAME
/usr/local/bin/s3cmd mb s3://NEW_BUCKET_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
/usr/local/bin/s3cmd mb s3://bucket1
[root@host01 ~]# /usr/local/bin/s3cmd mb s3://bucket1 Bucket `s3://bucket1` createdCopy to Clipboard Copied! Toggle word wrap Toggle overflow 現在のログをリスト表示します。
構文
ll LOG_LOCATION
ll LOG_LOCATIONCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
ll /var/log/ceph/12ab345c-1a2b-11ed-b736-fa163e4f6220
[root@host01 ~]# ll /var/log/ceph/12ab345c-1a2b-11ed-b736-fa163e4f6220 total 852 ... -rw-r--r--. 1 ceph ceph 920 Jun 29 02:17 opslog.log -rw-r--r--. 1 ceph ceph 412 Jun 28 09:26 opslog.log.1.gzCopy to Clipboard Copied! Toggle word wrap Toggle overflow ログを収集します。
構文
tail -f LOG_LOCATION/opslog.log
tail -f LOG_LOCATION/opslog.logCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
第3章 ネットワークの問題のトラブルシューティング リンクのコピーリンクがクリップボードにコピーされました!
この章では、ネットワークおよび Network Time Protocol (NTP) の chrony に接続するトラブルシューティング手順を説明します。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
3.1. 基本的なネットワークのトラブルシューティング リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Ceph Storage は、信頼できるネットワーク接続に大きく依存しています。Red Hat Ceph Storage ノードは、ネットワークを使用して相互に通信します。ネットワークの問題は、動作が不安定になったり、down していると誤って報告されたりするなど、Ceph OSD で多くの問題を引き起こす可能性があります。ネットワークの問題は、Ceph Monitor のクロックスキューエラーの原因にもなります。さらに、パケットロス、高レイテンシー、帯域幅の制限は、クラスターのパフォーマンスと安定性に影響を与えます。
前提条件
- ノードへのルートレベルのアクセス。
手順
net-toolsおよびtelnetパッケージをインストールすると、Ceph Storage クラスターで発生する可能性のあるネットワーク問題のトラブルシューティングに役立ちます。例
dnf install net-tools dnf install telnet
[root@host01 ~]# dnf install net-tools [root@host01 ~]# dnf install telnetCopy to Clipboard Copied! Toggle word wrap Toggle overflow cephadmシェルにログインし、Ceph 設定ファイルのpublic_networkパラメーターに正しい値が含まれていることを確認します。例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow シェルを終了し、ネットワークインターフェイスが起動していることを確認します。
例
ip link list
[root@host01 ~]# ip link list 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000 link/ether 00:1a:4a:00:06:72 brd ff:ff:ff:ff:ff:ffCopy to Clipboard Copied! Toggle word wrap Toggle overflow Ceph ノードは、短縮ホスト名を使用して相互に通信できることを確認します。ストレージクラスターの各ノードでこれを確認します。
構文
ping SHORT_HOST_NAME
ping SHORT_HOST_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
ping host02
[root@host01 ~]# ping host02Copy to Clipboard Copied! Toggle word wrap Toggle overflow ファイアウォールを使用する場合、Ceph ノードが適切なポートでお互いにノードにアクセスできることを確認します。
firewall-cmdツールとtelnetツールは、ポートの状態を検証し、ポートが開いているかどうかを確認できます。構文
firewall-cmd --info-zone=ZONE telnet IP_ADDRESS PORT
firewall-cmd --info-zone=ZONE telnet IP_ADDRESS PORTCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow インターフェイスカウンターにエラーがないことを確認します。ノード間のネットワーク接続で遅延が予想され、パケットロスがないことを確認します。
ethtoolコマンドの使用:構文
ethtool -S INTERFACE
ethtool -S INTERFACECopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ifconfigコマンドの使用:例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow netstatコマンドの使用:例
netstat -ai
[root@host01 ~]# netstat -ai Kernel Interface table Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg ens3 1500 311847720 0 364903 0 114341918 0 0 0 BMRU lo 65536 19577001 0 0 0 19577001 0 0 0 LRUCopy to Clipboard Copied! Toggle word wrap Toggle overflow
パフォーマンスの問題では、レイテンシーの確認の他に、ストレージクラスターのすべてのノード間のネットワーク帯域幅を検証するため、
iperf3ツールを使用します。iperf3ツールは、サーバーとクライアント間のシンプルなポイントツーポイントネットワーク帯域幅テストを実行します。帯域幅を確認する Red Hat Ceph Storage ノードに
iperf3パッケージをインストールします。例
dnf install iperf3
[root@host01 ~]# dnf install iperf3Copy to Clipboard Copied! Toggle word wrap Toggle overflow Red Hat Ceph Storage ノードで、
iperf3サーバーを起動します。例
iperf3 -s
[root@host01 ~]# iperf3 -s ----------------------------------------------------------- Server listening on 5201 -----------------------------------------------------------Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記デフォルトのポートは 5201 ですが、
-Pコマンド引数を使用して設定できます。別の Red Hat Ceph Storage ノードで、
iperf3クライアントを起動します。例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow この出力では、Red Hat Ceph Storage ノード間のネットワーク帯域幅が 1.1Gbits/秒であることと、テスト中に再送 (
Retr) がないことが示されています。Red Hat は、ストレージクラスター内のすべてのノード間のネットワーク帯域幅を検証することを推奨します。
すべてのノードでネットワークの相互接続速度が同じであることを確認します。接続されているノードの速度が遅いと、アタッチされたノードの速度が遅くなることがあります。また、スイッチ間リンクが、アタッチされたノードの集約された帯域幅を処理できることを確認してください。
構文
ethtool INTERFACE
ethtool INTERFACECopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.2. 基本的な chrony NTP のトラブルシューティング リンクのコピーリンクがクリップボードにコピーされました!
このセクションでは、基本的な chrony NTP のトラブルシューティング手順を説明します。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- Ceph Monitor ノードへの root レベルのアクセス。
手順
chronydデーモンが Ceph Monitor ホストで実行されていることを確認します。例
systemctl status chronyd
[root@mon ~]# systemctl status chronydCopy to Clipboard Copied! Toggle word wrap Toggle overflow chronydが実行されていない場合は、有効にして起動します。例
systemctl enable chronyd systemctl start chronyd
[root@mon ~]# systemctl enable chronyd [root@mon ~]# systemctl start chronydCopy to Clipboard Copied! Toggle word wrap Toggle overflow chronydがクロックを正しく同期していることを確認します。例
chronyc sources chronyc sourcestats chronyc tracking
[root@mon ~]# chronyc sources [root@mon ~]# chronyc sourcestats [root@mon ~]# chronyc trackingCopy to Clipboard Copied! Toggle word wrap Toggle overflow
第4章 Ceph Monitor のトラブルシューティング リンクのコピーリンクがクリップボードにコピーされました!
この章では、Ceph Monitor に関連する最も一般的なエラーを修正する方法を説明します。
前提条件
- ネットワーク接続の検証。
4.1. 最も一般的な Ceph Monitor エラー リンクのコピーリンクがクリップボードにコピーされました!
以下の表には、ceph health detail コマンドで返される、または Ceph ログに含まれる最も一般的なエラーメッセージをリスト表示しています。この表には、エラーを説明し、問題を修正するための特定の手順を示す、対応セクションへのリンクがあります。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
4.1.1. Ceph Monitor エラーメッセージ リンクのコピーリンクがクリップボードにコピーされました!
一般的な Ceph Monitor エラーメッセージの表およびその修正方法の表。
| エラーメッセージ | 参照 |
|---|---|
|
| |
|
| |
|
| |
|
| |
4.1.2. Ceph ログの共通の Ceph Monitor エラーメッセージ リンクのコピーリンクがクリップボードにコピーされました!
Ceph ログにある一般的な Ceph Monitor エラーメッセージと、修正方法へのリンクが含まれる表。
| エラーメッセージ | ログファイル | 参照 |
|---|---|---|
|
| 主なクラスターのログ | |
|
| 主なクラスターのログ | |
|
| 監視ログ | |
|
| 監視ログ | |
|
| 監視ログ |
4.1.3. Ceph Monitor がクォーラムを超えている リンクのコピーリンクがクリップボードにコピーされました!
1 つ以上の Ceph Monitor は down とマークされていますが、他の Ceph Monitor は引き続きクォーラムを形成することができます。さらに、ceph health detail コマンドは、以下のようなエラーメッセージを返します。
HEALTH_WARN 1 mons down, quorum 1,2 mon.b,mon.c mon.a (rank 0) addr 127.0.0.1:6789/0 is down (out of quorum)
HEALTH_WARN 1 mons down, quorum 1,2 mon.b,mon.c
mon.a (rank 0) addr 127.0.0.1:6789/0 is down (out of quorum)
エラー内容:
Ceph では、さまざまな理由で Ceph Monitor が down とマークされます。
ceph-mon デーモンが実行していない場合は、ストアが破損しているか、その他のエラーによりデーモンを起動できません。また、/var/ パーティションが満杯になっている可能性もあります。これにより、ceph-mon は /var/lib/ceph/mon-SHORT_HOST_NAME/store.db にデフォルトで配置されたストアに対する操作を実行できず、終了します。
ceph-mon デーモンが実行中で、Ceph Monitor がクォーラムを超えており、down としてマークされている場合、問題の原因は Ceph Monitor 状態によって異なります。
-
Ceph Monitor が予想よりも長く プロービング の場合は、他の Ceph Monitor を見つけることができません。この問題は、ネットワークの問題が原因で発生するか、Ceph Monitor に古い Ceph Monitor マップ (
monmap) があり、誤った IP アドレスで他の Ceph Monitor に到達しようとする可能性があります。monmapが最新の状態であれば、Ceph Monitor のクロックが同期されない可能性があります。 - Ceph Monitor が予想よりも長く electing 状態にある場合、Ceph Monitor のクロックが同期されていない可能性があります。
- Ceph Monitor の状態が synchronizing から electing に変更になり、元に戻る場合は、クラスターの状態が進行中です。これは、同期プロセスが処理できる以上の速さで新しいマップを生成していることを意味します。
- Ceph Monitor が自身を leader または peon としてマークしている場合、クォーラムにあると見なされますが、残りのクラスターはそうではないと確信しています。この問題は、クロック同期の失敗によって引き起こされる可能性があります。
この問題を解決するには、以下を行います。
ceph-monデーモンが実行していることを確認します。そうでない場合は、起動します。構文
systemctl status ceph-FSID@DAEMON_NAME systemctl start ceph-FSID@DAEMON_NAME
systemctl status ceph-FSID@DAEMON_NAME systemctl start ceph-FSID@DAEMON_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
systemctl status ceph-b404c440-9e4c-11ec-a28a-001a4a0001df@mon.host01.service systemctl start ceph-b404c440-9e4c-11ec-a28a-001a4a0001df@mon.host01.service
[root@mon ~]# systemctl status ceph-b404c440-9e4c-11ec-a28a-001a4a0001df@mon.host01.service [root@mon ~]# systemctl start ceph-b404c440-9e4c-11ec-a28a-001a4a0001df@mon.host01.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
ceph-monを起動できない場合は、ceph-monデーモンが起動できないの手順を行ってください。 -
ceph-monデーモンを起動できるものの、downとマークされている場合は、ceph-monデーモンが実行しているが、`down` としてマークされている の手順に従います。
ceph-mon デーモンを起動できない
対応する Ceph Monitor ログを確認します。デフォルトで
/var/log/ceph/CLUSTER_FSID/ceph-mon.HOST_NAME.logにあります。注記デフォルトでは、モニターログはログフォルダーに表示されません。ログがフォルダーに表示されるようにするには、ファイルへのロギングを有効にする必要があります。ファイルへのロギングを有効にするには、Ceph デーモンログ を参照してください。
ログに以下のようなエラーメッセージが含まれる場合、Ceph Monitor のストアが破損している可能性があります。
Corruption: error in middle of record Corruption: 1 missing files; example: /var/lib/ceph/mon/mon.0/store.db/1234567.ldb
Corruption: error in middle of record Corruption: 1 missing files; example: /var/lib/ceph/mon/mon.0/store.db/1234567.ldbCopy to Clipboard Copied! Toggle word wrap Toggle overflow この問題を修正するには、Ceph Monitor を置き換えます。失敗したモニターの置き換え を参照してください。
ログに以下のようなエラーメッセージが含まれる場合は、
/var/パーティションが満杯になっている可能性があります。/var/から不要なデータを削除します。Caught signal (Bus error)
Caught signal (Bus error)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要Monitor ディレクトリーからデータを手動で削除しないでください。代わりに、
ceph-monstore-toolを使用して圧縮します。詳細は、Ceph Monitor ストアの圧縮 を参照してください。- 他のエラーメッセージが表示された場合は、サポートチケットを作成します。詳細は、サービスについて Red Hat サポートへの問い合わせ を参照してください。
ceph-mon デーモンが実行しているが、down としてマークされている
クォーラムに達していない Ceph Monitor ホストから、
mon_statusコマンドを使用してその状態を確認します。ceph daemon ID mon_status
[root@mon ~]# ceph daemon ID mon_statusCopy to Clipboard Copied! Toggle word wrap Toggle overflow IDを、Ceph Monitor の ID に置き換えてください。以下に例を示します。[ceph: root@host01 /]# ceph daemon mon.host01 mon_status
[ceph: root@host01 /]# ceph daemon mon.host01 mon_statusCopy to Clipboard Copied! Toggle word wrap Toggle overflow ステータスが probing の場合は、
mon_status出力内の他の Ceph Monitor の場所を確認します。-
アドレスが正しくない場合は、Ceph Monitor の誤った Ceph Monitor マップ (
monmap) が検出されます。この問題を修正するには、Ceph Monitor マップの注入 を参照してください。 - アドレスが正しい場合は、Ceph Monitor クロックが同期されていることを確認します。詳細は、クロックスキュー を参照してください。
-
アドレスが正しくない場合は、Ceph Monitor の誤った Ceph Monitor マップ (
- ステータスが 選択中 の場合は、Ceph Monitor クロックが同期されていることを確認します。詳細は、クロックスキュー を参照してください。
- 状態が 選択中 から 同期中 に変わる場合は、サポートチケットを作成してください。詳細は、サービスについて Red Hat サポートへの問い合わせ を参照してください。
- Ceph Monitor が leader または peon である場合は、Ceph Monitor クロックが同期されていることを確認します。詳細は、クロックスキュー を参照してください。クロックを同期させても問題が解決しない場合は、サポートチケットを作成します。。詳細は、サービスについて Red Hat サポートへの問い合わせ を参照してください。
4.1.4. クロックスキュー リンクのコピーリンクがクリップボードにコピーされました!
Ceph Monitor がクォーラムを超えており、ceph health detail コマンドの出力は、次のようなエラーメッセージが含まれています。
mon.a (rank 0) addr 127.0.0.1:6789/0 is down (out of quorum) mon.a addr 127.0.0.1:6789/0 clock skew 0.08235s > max 0.05s (latency 0.0045s)
mon.a (rank 0) addr 127.0.0.1:6789/0 is down (out of quorum)
mon.a addr 127.0.0.1:6789/0 clock skew 0.08235s > max 0.05s (latency 0.0045s)
また、Ceph ログには以下のようなエラーメッセージが含まれます。
2022-05-04 07:28:32.035795 7f806062e700 0 log [WRN] : mon.a 127.0.0.1:6789/0 clock skew 0.14s > max 0.05s 2022-05-04 04:31:25.773235 7f4997663700 0 log [WRN] : message from mon.1 was stamped 0.186257s in the future, clocks not synchronized
2022-05-04 07:28:32.035795 7f806062e700 0 log [WRN] : mon.a 127.0.0.1:6789/0 clock skew 0.14s > max 0.05s
2022-05-04 04:31:25.773235 7f4997663700 0 log [WRN] : message from mon.1 was stamped 0.186257s in the future, clocks not synchronized
エラー内容:
clock skew エラーメッセージは、Ceph Monitor のクロックが同期されていないことを示します。Ceph Monitor は時間の精度に依存し、クロックが同期されていない場合に予測できない動作をするため、クロックの同期が重要になります。
mon_clock_drift_allowed パラメーターは、クロック間のどのような不一致を許容するかを決定します。デフォルトでは、このパラメーターは 0.05 秒に設定されています。
以前のテストを行わずに mon_clock_drift_allowed のデフォルト値を変更しないでください。この値を変更すると、Ceph Monitor および Ceph Storage Cluster 全般の安定性に影響を与える可能性があります。
clock skew エラーの原因として、ネットワークの問題や chrony Network Time Protocol (NTP) 同期の問題などがあります (設定されている場合)。また、仮想マシンにデプロイされた Ceph Monitor では、時間の同期が適切に機能しません。
この問題を解決するには、以下を行います。
- ネットワークが正しく機能することを確認します。
- リモートの NTP サーバーを使用する場合は、ネットワーク上に独自の chrony NTP サーバーをデプロイすることを検討してください。詳細は、Red Hat Customer Portal にある、お使いの OS バージョン の製品ドキュメント (OS バージョンの os-product) 内の 基本システム設定 ガイドの Chrony Suite を使用した NTP の設定 の章を参照してください。
Ceph は 5 分ごとに時刻同期を評価するため、問題を修正してから clock skew メッセージを消去するまでに遅延が生じます。
4.1.5. Ceph Monitor ストアが大きすぎる リンクのコピーリンクがクリップボードにコピーされました!
ceph health コマンドは、以下のようなエラーメッセージを返します。
mon.ceph1 store is getting too big! 48031 MB >= 15360 MB -- 62% avail
mon.ceph1 store is getting too big! 48031 MB >= 15360 MB -- 62% avail
エラー内容:
Ceph Monitors ストアは、エントリーをキーと値のペアとして保存する RocksDB データベースです。データベースにはクラスターマップが含まれ、デフォルトでは /var/lib/ceph/CLUSTER_FSID/mon.HOST_NAME/store.db に配置されます。
大規模な Monitor ストアのクエリーには時間がかかる場合があります。そのため、Ceph Monitor はクライアントクエリーへの応答が遅れることがあります。
また、/var/ パーティションが満杯になると、Ceph Monitor はストアに対して書き込み操作を実行できず、終了します。この問題のトラブルシューティングの詳細については、Ceph Monitor がクォーラム外である を参照してください。
この問題を解決するには、以下を行います。
データベースのサイズを確認します。
構文
du -sch /var/lib/ceph/CLUSTER_FSID/mon.HOST_NAME/store.db/
du -sch /var/lib/ceph/CLUSTER_FSID/mon.HOST_NAME/store.db/Copy to Clipboard Copied! Toggle word wrap Toggle overflow クラスターの名前と、
ceph-monが実行しているホストの短縮ホスト名を指定します。例
du -sh /var/lib/ceph/b341e254-b165-11ed-a564-ac1f6bb26e8c/mon.host01/
[root@mon ~]# du -sh /var/lib/ceph/b341e254-b165-11ed-a564-ac1f6bb26e8c/mon.host01/ 109M /var/lib/ceph/b341e254-b165-11ed-a564-ac1f6bb26e8c/mon.host01/ 47G /var/lib/ceph/mon/ceph-ceph1/store.db/ 47G totalCopy to Clipboard Copied! Toggle word wrap Toggle overflow - Ceph Monitor ストアを圧縮します。詳細は、Ceph Monitor ストアの圧縮 を参照してください。
4.1.6. Ceph Monitor のステータスの理解 リンクのコピーリンクがクリップボードにコピーされました!
mon_status コマンドは、以下のような Ceph Monitor の情報を返します。
- 状態
- ランク
- 選出のエポック
-
監視マップ (
monmap)
Ceph Monitor がクォーラムを形成できる場合は、ceph コマンドラインユーティリティーで mon_status を使用します。
Ceph Monitors がクォーラム (定足数) を形成できず、ceph-mon デーモンが実行中の場合は、管理ソケットを使用して mon_status を実行します。
mon_status の出力例
Ceph Monitor の状態
- Leader
-
選出フェーズ中に、Ceph Monitor はリーダーを選出します。リーダーは、最高ランクの Ceph Monitor で、つまり値が最も小さいランクです。上記の例では、リーダーは
mon.1です。 - Peon
- Peons は、リーダーではないクォーラムの Ceph Monitor です。リーダーが失敗すると、一番ランクの高い peon が新しいリーダーになります。
- Probing
-
Ceph Monitor が他の Ceph Monitor を検索する場合は、プロービング状態にあります。たとえば、Ceph Monitor を起動すると、Ceph Monitor マップ (
monmap) に指定された十分な Ceph Monitor がクォーラムとなるまで プローブ が行われます。 - Electing
- Ceph Monitor がリーダーの選出中であれば、選出状態になります。通常、このステータスはすぐに変わります。
- Synchronizing
- Ceph Monitor が、他の Ceph Monitor と同期してクォーラムに参加する場合は、同期状態になります。Ceph Monitor ストアが小さいほど、同期処理は速くなります。したがって、ストアが大きい場合は、同期に時間がかかります。
関連情報
- 詳細は、Red Hat Ceph Storage 6 の 管理ガイドの Ceph 管理ソケットの使用 を参照してください。
- Red Hat Ceph Storage Troubleshooting Guideの 「Ceph Monitor エラーメッセージ」 を参照してください。
- Red Hat Ceph Storage Troubleshooting Guideの 「Ceph ログの共通の Ceph Monitor エラーメッセージ」 を参照してください。
4.2. monmap の注入 リンクのコピーリンクがクリップボードにコピーされました!
Ceph Monitor に古いまたは破損した Ceph Monitor マップ (mtte) がある場合は、誤った IP アドレスで他の Ceph Monitor に到達しようとしているため、クォーラムに参加できません。
この問題の最も安全な方法は、他の Ceph Monitor から実際の Ceph Monitor マップを取得して注入することです。
このアクションにより、Ceph Monitor によって保持される既存の Ceph Monitor マップが上書きされます。
この手順では、他の Ceph Monitor がクォーラムを形成できている場合、または少なくとも 1 つの Ceph Monitor が正しい Ceph Monitor マップを持っている場合に、Ceph Monitor マップを注入する方法を示します。すべての Ceph Monitor でストアが破損しているため、Ceph Monitor マップも破損している場合は、Ceph Monitor ストアの回復 を参照してください。
前提条件
- Ceph Monitor マップへのアクセス。
- Ceph Monitor ノードへの root レベルのアクセス。
手順
残りの Ceph Monitor がクォーラムを形成できる場合には、
ceph mon getmapコマンドを使用して Ceph Monitor マップを取得します。例
[ceph: root@host01 /]# ceph mon getmap -o /tmp/monmap
[ceph: root@host01 /]# ceph mon getmap -o /tmp/monmapCopy to Clipboard Copied! Toggle word wrap Toggle overflow 残りの Ceph Monitor がクォーラムを形成できず、正しい Ceph Monitor マップを持つ Ceph Monitor が少なくとも 1 つある場合は、その Ceph Monitor からコピーします。
Ceph Monitor マップのコピー元の Ceph Monitor マップを停止します。
構文
systemctl stop ceph-FSID@DAEMON_NAME
systemctl stop ceph-FSID@DAEMON_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
systemctl stop ceph-b404c440-9e4c-11ec-a28a-001a4a0001df@mon.host01.service
[root@mon ~]# systemctl stop ceph-b404c440-9e4c-11ec-a28a-001a4a0001df@mon.host01.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow Ceph Monitor マップをコピーします。
構文
ceph-mon -i ID --extract-monmap /tmp/monmap
ceph-mon -i ID --extract-monmap /tmp/monmapCopy to Clipboard Copied! Toggle word wrap Toggle overflow IDを、Ceph Monitor マップをコピーする Ceph Monitor の ID に置き換えます。例
[ceph: root@host01 /]# ceph-mon -i mon.a --extract-monmap /tmp/monmap
[ceph: root@host01 /]# ceph-mon -i mon.a --extract-monmap /tmp/monmapCopy to Clipboard Copied! Toggle word wrap Toggle overflow
破損したまたは古くなった Ceph Monitor マップを持つ Ceph Monitor を停止します。
構文
systemctl stop ceph-FSID@DAEMON_NAME
systemctl stop ceph-FSID@DAEMON_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
systemctl stop ceph-b404c440-9e4c-11ec-a28a-001a4a0001df@mon.host01.service
[root@mon ~]# systemctl stop ceph-b404c440-9e4c-11ec-a28a-001a4a0001df@mon.host01.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow Ceph Monitor マップを注入します。
構文
ceph-mon -i ID --inject-monmap /tmp/monmap
ceph-mon -i ID --inject-monmap /tmp/monmapCopy to Clipboard Copied! Toggle word wrap Toggle overflow IDを、破損した Ceph Monitor マップまたは古くなった Ceph Monitor マップに置き換えます。例
ceph-mon -i mon.host01 --inject-monmap /tmp/monmap
[root@mon ~]# ceph-mon -i mon.host01 --inject-monmap /tmp/monmapCopy to Clipboard Copied! Toggle word wrap Toggle overflow Ceph Monitor を起動します。
構文
systemctl start ceph-FSID@DAEMON_NAME
systemctl start ceph-FSID@DAEMON_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
systemctl start ceph-b404c440-9e4c-11ec-a28a-001a4a0001df@mon.host01.service
[root@mon ~]# systemctl start ceph-b404c440-9e4c-11ec-a28a-001a4a0001df@mon.host01.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow 別の Ceph Monitor から Ceph Monitor マップをコピーした場合は、その Ceph Monitor も起動します。
構文
systemctl start ceph-FSID@DAEMON_NAME
systemctl start ceph-FSID@DAEMON_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
systemctl start ceph-b404c440-9e4c-11ec-a28a-001a4a0001df@mon.host01.service
[root@mon ~]# systemctl start ceph-b404c440-9e4c-11ec-a28a-001a4a0001df@mon.host01.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow
4.3. 失敗したモニターの置き換え リンクのコピーリンクがクリップボードにコピーされました!
Ceph Monitor のストアが破損している場合は、ストレージクラスター内のモニターを交換できます。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- クォーラムを形成できる。
- Ceph Monitor ノードへの root レベルのアクセス。
手順
Monitor ホストから、デフォルトで
/var/lib/ceph/mon/CLUSTER_NAME-SHORT_HOST_NAMEにある Monitor ストアを削除します。rm -rf /var/lib/ceph/mon/CLUSTER_NAME-SHORT_HOST_NAME
rm -rf /var/lib/ceph/mon/CLUSTER_NAME-SHORT_HOST_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow Monitor ホストの短縮ホスト名とクラスター名を指定します。たとえば、
host1で実行している Monitor の Monitor ストアを、remoteという名前のクラスターから削除するには、以下を実行します。rm -rf /var/lib/ceph/mon/remote-host1
[root@mon ~]# rm -rf /var/lib/ceph/mon/remote-host1Copy to Clipboard Copied! Toggle word wrap Toggle overflow Monitor マップ (
monmap) から Monitor を削除します。ceph mon remove SHORT_HOST_NAME --cluster CLUSTER_NAME
ceph mon remove SHORT_HOST_NAME --cluster CLUSTER_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow Monitor ホストの短縮ホスト名とクラスター名を指定します。たとえば、
host1で実行しているモニターをremoteというクラスターから削除するには、以下を実行します。[ceph: root@host01 /]# ceph mon remove host01 --cluster remote
[ceph: root@host01 /]# ceph mon remove host01 --cluster remoteCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 基盤のファイルシステムまたは Monitor ホストのハードウェアに関連する問題をトラブルシューティングおよび修正します。
4.4. モニターストアの圧縮 リンクのコピーリンクがクリップボードにコピーされました!
モニターストアのサイズが大きくなってきたら、圧縮することができます。
-
ceph tellコマンドを使用して、動的にこれを使用します。 -
ceph-monデーモンの起動時 -
ceph-monデーモンが稼働していない場合にceph-monstore-toolを使用前述の方法が Monitor ストアを圧縮できない場合、または Monitor がクォーラムを超えていない状態で、そのログにCaught signal (Bus error)エラーメッセージが含まれる場合は、この方法を使用してください。
クラスターが active+clean 状態ではない場合やリバランスプロセスでストアサイズの変更を監視します。このため、リバランスの完了時に Monitor ストアを圧縮します。また、配置グループが active+clean の状態であることを確認します。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- Ceph Monitor ノードへの root レベルのアクセス。
手順
ceph-monデーモンの実行中に Monitor ストアを圧縮するには、以下を実行します。構文
ceph tell mon.HOST_NAME compact
ceph tell mon.HOST_NAME compactCopy to Clipboard Copied! Toggle word wrap Toggle overflow HOST_NAMEを、ceph-monを実行しているホストの短いホスト名に置き換えます。不明な場合はhostname -sコマンドを使用します。例
[ceph: root@host01 /]# ceph tell mon.host01 compact
[ceph: root@host01 /]# ceph tell mon.host01 compactCopy to Clipboard Copied! Toggle word wrap Toggle overflow [mon]セクションの Ceph 設定に以下のパラメーターを追加します。[mon] mon_compact_on_start = true
[mon] mon_compact_on_start = trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow ceph-monデーモンを再起動します。構文
systemctl restart ceph-FSID@DAEMON_NAME
systemctl restart ceph-FSID@DAEMON_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
systemctl restart ceph-b404c440-9e4c-11ec-a28a-001a4a0001df@mon.host01.service
[root@mon ~]# systemctl restart ceph-b404c440-9e4c-11ec-a28a-001a4a0001df@mon.host01.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow Monitor がクォーラムを形成することを確認します。
[ceph: root@host01 /]# ceph mon stat
[ceph: root@host01 /]# ceph mon statCopy to Clipboard Copied! Toggle word wrap Toggle overflow 必要に応じて、他の Monitor でこの手順を繰り返します。
注記開始する前に、
ceph-testパッケージがインストールされていることを確認します。大型ストアを使用する
ceph-monデーモンが実行していないことを確認します。必要に応じてデーモンを停止します。構文
systemctl status ceph-FSID@DAEMON_NAME systemctl stop ceph-FSID@DAEMON_NAME
systemctl status ceph-FSID@DAEMON_NAME systemctl stop ceph-FSID@DAEMON_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
systemctl status ceph-b404c440-9e4c-11ec-a28a-001a4a0001df@mon.host01.service systemctl stop ceph-b404c440-9e4c-11ec-a28a-001a4a0001df@mon.host01.service
[root@mon ~]# systemctl status ceph-b404c440-9e4c-11ec-a28a-001a4a0001df@mon.host01.service [root@mon ~]# systemctl stop ceph-b404c440-9e4c-11ec-a28a-001a4a0001df@mon.host01.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow Monitor ストアを圧縮します。
構文
ceph-monstore-tool /var/lib/ceph/CLUSTER_FSID/mon.HOST_NAME compact
ceph-monstore-tool /var/lib/ceph/CLUSTER_FSID/mon.HOST_NAME compactCopy to Clipboard Copied! Toggle word wrap Toggle overflow HOST_NAMEは、Monitor ホストの短縮ホスト名に置き換えます。例
[ceph: root@host01 /]# ceph-monstore-tool /var/lib/ceph/b404c440-9e4c-11ec-a28a-001a4a0001df/mon.host01 compact
[ceph: root@host01 /]# ceph-monstore-tool /var/lib/ceph/b404c440-9e4c-11ec-a28a-001a4a0001df/mon.host01 compactCopy to Clipboard Copied! Toggle word wrap Toggle overflow ceph-monを再度起動します。構文
systemctl start ceph-FSID@DAEMON_NAME
systemctl start ceph-FSID@DAEMON_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
systemctl start ceph-b404c440-9e4c-11ec-a28a-001a4a0001df@mon.host01.service
[root@mon ~]# systemctl start ceph-b404c440-9e4c-11ec-a28a-001a4a0001df@mon.host01.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow
4.5. Ceph Manager のポート解放 リンクのコピーリンクがクリップボードにコピーされました!
ceph-mgr デーモンは、ceph-osd デーモンと同じ範囲のポート範囲の OSD から配置グループ情報を受け取ります。これらのポートが開かない場合、クラスターは HEALTH_OK から HEALTH_WARN にデプロイメントし、PG が不明なパーセンテージで PG が unknown なことを示します。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- Ceph Manager へのルートレベルのアクセス。
手順
この状況を解決するには、
ceph-mgrデーモンを実行している各ホストでポート6800-7300を開きます。例
[root@ceph-mgr] # firewall-cmd --add-port 6800-7300/tcp [root@ceph-mgr] # firewall-cmd --add-port 6800-7300/tcp --permanent
[root@ceph-mgr] # firewall-cmd --add-port 6800-7300/tcp [root@ceph-mgr] # firewall-cmd --add-port 6800-7300/tcp --permanentCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
ceph-mgrデーモンを再起動します。
4.6. Ceph Monitor ストアのリカバリー リンクのコピーリンクがクリップボードにコピーされました!
Ceph Monitor は、クラスターマップを RocksDB などのキーバリューストアに保存します。Monitor 上でストアが破損した場合、Monitor は異常終了し、再起動できなくなります。Ceph ログには以下のエラーが含まれる場合があります。
Corruption: error in middle of record Corruption: 1 missing files; e.g.: /var/lib/ceph/mon/mon.0/store.db/1234567.ldb
Corruption: error in middle of record
Corruption: 1 missing files; e.g.: /var/lib/ceph/mon/mon.0/store.db/1234567.ldb
Red Hat Ceph Storage クラスターは少なくとも 3 つの Ceph Monitor を使用しており、1 つが故障しても別のものと交換できます。ただし、特定の状況では、すべての Ceph Monitor のストアが破損する可能性があります。たとえば、Ceph Monitor ノードのディスクやファイルシステムの設定が正しくない場合、停電によって基礎となるファイルシステムが破損する可能性があります。
すべての Ceph Monitor で破損がある場合には、ceph-monstore-tool および ceph-objectstore-tool と呼ばれるユーティリティーを使用して、OSD ノードに保管された情報で復元することができます。
これらの手順は、以下の情報を復元できません。
- Metadata Daemon Server (MDS) キーリングおよびマップ
配置グループの設定:
-
ceph pg set_full_ratioコマンドを使用して設定するfull ratio -
ceph pg set_nearfull_ratioコマンドを使用して設定するほぼnearfull ratio
-
古いバックアップから Ceph Monitor ストアを復元しないでください。以下の手順に従って、現在のクラスター状態から Ceph Monitor ストアを再構築し、そこから復元します。
4.6.1. BlueStore の使用時の Ceph Monitor ストアのリカバリー リンクのコピーリンクがクリップボードにコピーされました!
Ceph Monitor ストアがすべての Ceph Monitor で破損し、BlueStore バックエンドを使用する場合には、以下の手順に従います。
コンテナー化環境でこの方法を使用する場合、Ceph リポジトリーをアタッチし、最初にコンテナー化されていない Ceph Monitor に復元する必要があります。
この手順では、データが失われる可能性があります。この手順で不明な点がある場合は、Red Hat テクニカルサポートに連絡して、リカバリープロセスの支援を受けてください。
前提条件
- すべての OSD コンテナーが停止します。
- ロールに基づいて Ceph ノードで Ceph リポジトリーを有効にします。
-
ceph-testパッケージおよびrsyncパッケージが OSD および Monitor ノードにインストールされている。 -
ceph-monパッケージが Monitor ノードにインストールされている。 -
ceph-osdパッケージが OSD ノードにインストールされている。
手順
Ceph データを含むすべてのディスクを一時的な場所にマウントします。すべての OSD ノードに対してこの手順を繰り返します。
ceph-volumeコマンドを使用してデータパーティションをリスト表示します。例
[ceph: root@host01 /]# ceph-volume lvm list
[ceph: root@host01 /]# ceph-volume lvm listCopy to Clipboard Copied! Toggle word wrap Toggle overflow データパーティションを一時的な場所にマウントします。
構文
mount -t tmpfs tmpfs /var/lib/ceph/osd/ceph-$i
mount -t tmpfs tmpfs /var/lib/ceph/osd/ceph-$iCopy to Clipboard Copied! Toggle word wrap Toggle overflow SELinux コンテキストを復元します。
構文
for i in {OSD_ID}; do restorecon /var/lib/ceph/osd/ceph-$i; donefor i in {OSD_ID}; do restorecon /var/lib/ceph/osd/ceph-$i; doneCopy to Clipboard Copied! Toggle word wrap Toggle overflow OSD_ID を、OSD ノード上の Ceph OSD ID の数値のスペース区切りリストに置き換えます。
所有者とグループを
ceph:cephに変更します。構文
for i in {OSD_ID}; do chown -R ceph:ceph /var/lib/ceph/osd/ceph-$i; donefor i in {OSD_ID}; do chown -R ceph:ceph /var/lib/ceph/osd/ceph-$i; doneCopy to Clipboard Copied! Toggle word wrap Toggle overflow OSD_ID を、OSD ノード上の Ceph OSD ID の数値のスペース区切りリストに置き換えます。
重要update-mon-dbコマンドが Monitor データベースに追加のdbディレクトリーおよびdb.slowディレクトリーを使用するバグにより、このディレクトリーもコピーする必要があります。改善点を報告する場合は、以下のように行います。コンテナー外部の一時的な場所を準備して、OSD データベースをマウントしてアクセスし、Ceph Monitor を復元するために必要な OSD マップをデプロイメントします。
構文
ceph-bluestore-tool --cluster=ceph prime-osd-dir --dev OSD-DATA --path /var/lib/ceph/osd/ceph-OSD-ID
ceph-bluestore-tool --cluster=ceph prime-osd-dir --dev OSD-DATA --path /var/lib/ceph/osd/ceph-OSD-IDCopy to Clipboard Copied! Toggle word wrap Toggle overflow OSD-DATA は OSD データへのボリュームグループ (VG) または論理ボリューム (LV) パスに、OSD-ID は OSD の ID に置き換えます。
BlueStore データベースと
block.dbとの間のシンボリックリンクを作成します。構文
ln -snf BLUESTORE DATABASE /var/lib/ceph/osd/ceph-OSD-ID/block.db
ln -snf BLUESTORE DATABASE /var/lib/ceph/osd/ceph-OSD-ID/block.dbCopy to Clipboard Copied! Toggle word wrap Toggle overflow BLUESTORE-DATABASE を BlueStore データベースへのボリュームグループ (VG) または論理ボリューム (LV) パスに置き換え、OSD-ID を OSD の ID に置き換えます。
破損したストアのある Ceph Monitor ノードから次のコマンドを使用します。すべてのノードのすべての OSD に対してこれを繰り返します。
すべての OSD ノードからクラスターマップを収集します。
例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 適切なケーパビリティーを設定します。
例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow dbディレクトリーおよびdb.slowディレクトリーから、すべてのsstファイルを一時的な場所に移動します。例
[ceph: root@host01 /]# mv /root/db/*.sst /root/db.slow/*.sst /tmp/monstore/store.db
[ceph: root@host01 /]# mv /root/db/*.sst /root/db.slow/*.sst /tmp/monstore/store.dbCopy to Clipboard Copied! Toggle word wrap Toggle overflow 収集したマップから Monitor ストアを再構築します。
例
[ceph: root@host01 /]# ceph-monstore-tool /tmp/monstore rebuild -- --keyring /etc/ceph/ceph.client.admin
[ceph: root@host01 /]# ceph-monstore-tool /tmp/monstore rebuild -- --keyring /etc/ceph/ceph.client.adminCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記このコマンドを実行後に、OSD から抽出したキーリングと、
ceph-monstore-toolコマンドラインで指定されたキーリングのみが Ceph の認証データベースにあります。クライアント、Ceph Manager、Ceph Object Gateway などの他のすべてのキーリングを再作成またはインポートし、それらのクライアントがクラスターにアクセスできるようにする必要があります。破損したストアをバックアップします。すべての Ceph Monitor ノードでこの手順を繰り返します。
構文
mv /var/lib/ceph/mon/ceph-HOSTNAME/store.db /var/lib/ceph/mon/ceph-HOSTNAME/store.db.corrupted
mv /var/lib/ceph/mon/ceph-HOSTNAME/store.db /var/lib/ceph/mon/ceph-HOSTNAME/store.db.corruptedCopy to Clipboard Copied! Toggle word wrap Toggle overflow HOSTNAME は、Ceph Monitor ノードのホスト名に置き換えます。
破損したストアを交換します。すべての Ceph Monitor ノードでこの手順を繰り返します。
構文
scp -r /tmp/monstore/store.db HOSTNAME:/var/lib/ceph/mon/ceph-HOSTNAME/
scp -r /tmp/monstore/store.db HOSTNAME:/var/lib/ceph/mon/ceph-HOSTNAME/Copy to Clipboard Copied! Toggle word wrap Toggle overflow HOSTNAME は、Monitor ノードのホスト名に置き換えます。
新しいストアの所有者を変更します。すべての Ceph Monitor ノードでこの手順を繰り返します。
構文
chown -R ceph:ceph /var/lib/ceph/mon/ceph-HOSTNAME/store.db
chown -R ceph:ceph /var/lib/ceph/mon/ceph-HOSTNAME/store.dbCopy to Clipboard Copied! Toggle word wrap Toggle overflow HOSTNAME は、Ceph Monitor ノードのホスト名に置き換えます。
すべてのノードで一時的にマウントされたすべての OSD をアンマウントします。
例
umount /var/lib/ceph/osd/ceph-*
[root@host01 ~]# umount /var/lib/ceph/osd/ceph-*Copy to Clipboard Copied! Toggle word wrap Toggle overflow すべての Ceph Monitor デーモンを起動します。
構文
systemctl start ceph-FSID@DAEMON_NAME
systemctl start ceph-FSID@DAEMON_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
systemctl start ceph-b404c440-9e4c-11ec-a28a-001a4a0001df@mon.host01.service
[root@mon ~]# systemctl start ceph-b404c440-9e4c-11ec-a28a-001a4a0001df@mon.host01.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow Monitor がクォーラムを形成できることを確認します。
構文
ceph -s
ceph -sCopy to Clipboard Copied! Toggle word wrap Toggle overflow HOSTNAME は、Ceph Monitor ノードのホスト名に置き換えます。
Ceph Manager キーリングをインポートして、すべての Ceph Manager プロセスを起動します。
構文
ceph auth import -i /etc/ceph/ceph.mgr.HOSTNAME.keyring systemctl start ceph-FSID@DAEMON_NAME
ceph auth import -i /etc/ceph/ceph.mgr.HOSTNAME.keyring systemctl start ceph-FSID@DAEMON_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
systemctl start ceph-b341e254-b165-11ed-a564-ac1f6bb26e8c@mgr.extensa003.exrqql.service
[root@mon ~]# systemctl start ceph-b341e254-b165-11ed-a564-ac1f6bb26e8c@mgr.extensa003.exrqql.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow HOSTNAME は、Ceph Manager ノードのホスト名に置き換えてください。
すべての OSD ノード全体ですべての OSD プロセスを起動します。クラスター上のすべての OSD に対して繰り返します。
構文
systemctl start ceph-FSID@osd.OSD_ID
systemctl start ceph-FSID@osd.OSD_IDCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
systemctl start ceph-b404c440-9e4c-11ec-a28a-001a4a0001df@osd.0.service
[root@host01 ~]# systemctl start ceph-b404c440-9e4c-11ec-a28a-001a4a0001df@osd.0.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow OSD がサービスに返されることを確認します。
例
[ceph: root@host01 /]# ceph -s
[ceph: root@host01 /]# ceph -sCopy to Clipboard Copied! Toggle word wrap Toggle overflow
- ネットワーク関連の問題は、Red Hat Ceph Storage トラブルシューティングガイド のネットワークの 問題のトラブルシューティング を参照してください。
第5章 Ceph OSD のトラブルシューティング リンクのコピーリンクがクリップボードにコピーされました!
この章では、Ceph OSD に関連する最も一般的なエラーを修正する方法を説明します。
前提条件
- ネットワーク接続を確認します。詳細は、ネットワーク問題のトラブルシューティング を参照してください。
-
ceph healthコマンドを使用して、Monitors にクォーラムがあることを確認します。コマンドがヘルスステータス (HEALTH_OK、HEALTH_WARN、HEALTH_ERR) を返すと、モニターはクォーラムを形成できます。そうでない場合は、最初に Monitor の問題に対応します。詳細については、Ceph Monitor のトラブルシューティング を参照してください。ceph healthに関する詳細は、Ceph の健常性について を参照してください。 - 必要に応じて、リバランスプロセスを停止して、時間とリソースを節約します。詳細は、リバランスの停止および開始 を参照してください。
5.1. 最も一般的な Ceph OSD エラー リンクのコピーリンクがクリップボードにコピーされました!
以下の表には、ceph health detail コマンドで返される、または Ceph ログに含まれる最も一般的なエラーメッセージをリスト表示しています。この表には、エラーを説明し、問題を修正するための特定の手順を示す、対応セクションへのリンクがあります。
前提条件
- Ceph OSD ノードへのルートレベルのアクセス。
5.1.1. Ceph OSD のエラーメッセージ リンクのコピーリンクがクリップボードにコピーされました!
一般的な Ceph OSD エラーメッセージの表およびその修正方法。
| エラーメッセージ | 参照 |
|---|---|
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
5.1.2. Ceph ログの共通の Ceph OSD エラーメッセージ リンクのコピーリンクがクリップボードにコピーされました!
Ceph ログにある一般的な Ceph OSD エラーメッセージと、修正方法へのリンクが含まれる表。
| エラーメッセージ | ログファイル | 参照 |
|---|---|---|
|
| 主なクラスターのログ | |
|
| 主なクラスターのログ | |
|
| 主なクラスターのログ | |
|
| OSD ログ |
5.1.3. Full OSD リンクのコピーリンクがクリップボードにコピーされました!
ceph health detail コマンドは、以下のようなエラーメッセージを返します。
HEALTH_ERR 1 full osds osd.3 is full at 95%
HEALTH_ERR 1 full osds
osd.3 is full at 95%
エラー内容:
Ceph は、クライアントが完全な OSD ノードで I/O 操作を実行しないようにし、データの損失を防ぎます。クラスターが mon_osd_full_ratio パラメーターで設定された容量に達すると、HEALTH_ERR full osds メッセージを返します。デフォルトでは、このパラメーターは 0.95 に設定されています。これはクラスター容量の 95% を意味します。
この問題を解決するには、以下を行います。
raw ストレージのパーセント数 (%RAW USED) を決定します。
ceph df
ceph df
%RAW USED が 70-75% を超える場合は、以下を行うことができます。
- 不要なデータを削除します。これは、実稼働環境のダウンタイムを回避するための短期的なソリューションです。
- 新しい OSD ノードを追加してクラスターをスケーリングします。これは、Red Hat が推奨する長期的なソリューションです。
5.1.4. backfillfull OSD リンクのコピーリンクがクリップボードにコピーされました!
ceph health detail コマンドは、以下のようなエラーメッセージを返します。
health: HEALTH_WARN 3 backfillfull osd(s) Low space hindering backfill (add storage if this doesn't resolve itself): 32 pgs backfill_toofull
health: HEALTH_WARN
3 backfillfull osd(s)
Low space hindering backfill (add storage if this doesn't resolve itself): 32 pgs backfill_toofull
詳細
1 つ以上の OSD が backfillfull しきい値を超えた場合には、Ceph は、リバランスしてこのデバイスにデータが分散されるのを防ぎます。これは、リバランスが完了していない可能性があり、クラスターがいっぱいに近づいていることを示す早期警告です。backfullfull しきい値のデフォルトは 90% です。
この問題のトラブルシューティング:
プールごとの使用率を確認します。
ceph df
ceph df
%RAW USED が 70 ~ 75% を超えている場合は、次のいずれかのアクションを実行できます。
- 不要なデータを削除します。これは、実稼働環境のダウンタイムを回避するための短期的なソリューションです。
- 新しい OSD ノードを追加してクラスターをスケーリングします。これは、Red Hat が推奨する長期的なソリューションです。
backfull_toofullに PG スタックが含まれる OSD のbackfillfullの比率を増やし、復元プロセスを続行できるようにします。できるだけ早く新しいストレージをクラスターに追加するか、データを削除して、OSD がいっぱいになるのを防ぎます。構文
ceph osd set-backfillfull-ratio VALUE
ceph osd set-backfillfull-ratio VALUECopy to Clipboard Copied! Toggle word wrap Toggle overflow VALUE の範囲は 0.0 から 1.0 です。
例
[ceph: root@host01/]# ceph osd set-backfillfull-ratio 0.92
[ceph: root@host01/]# ceph osd set-backfillfull-ratio 0.92Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.1.5. Nearfull OSD リンクのコピーリンクがクリップボードにコピーされました!
ceph health detail コマンドは、以下のようなエラーメッセージを返します。
HEALTH_WARN 1 nearfull osds osd.2 is near full at 85%
HEALTH_WARN 1 nearfull osds
osd.2 is near full at 85%
エラー内容:
クラスターが mon osd nearfull ratio defaults パラメーターで設定されている容量に到達すると、Ceph はほぼ nearfull osds メッセージを返します。デフォルトでは、このパラメーターは 0.85 に設定されています。これはクラスター容量の 85% を意味します。
Ceph は、可能な限り最適な方法で CRUSH 階層に基づいてデータを分散しますが、均等な分散を保証することはできません。不均等なデータ分散と nearfull osds メッセージの主な原因は次のとおりです。
- OSD がクラスターの OSD ノード間で分散されていない。つまり、一部の OSD ノードが他のノードよりも大幅に多くの OSD をホストしていたり、CRUSH マップの一部の OSD の重みがその容量に対して十分でない。
- 配置グループ (PG) 数が、OSD の数、ユースケース、OSD ごとのターゲット PG 数、および OSD 使用率に応じて適切でない。
- クラスターが不適切な CRUSH 設定を使用する。
- OSD のバックエンドストレージがほぼ満杯である。
この問題を解決するには、以下を行います。
- PG 数が十分であることを確認し、必要に応じてこれを増やします。
- クラスターのバージョンに最適な CRUSH tunable を使用していることを確認し、そうでない場合は調整します。
- 使用率別に OSD の重みを変更します。
OSD によって使用されるディスクの残りの容量を確認します。
OSD が一般的に使用する容量を表示します。
[ceph: root@host01 /]# ceph osd df
[ceph: root@host01 /]# ceph osd dfCopy to Clipboard Copied! Toggle word wrap Toggle overflow 特定のノードで OSD が使用する容量を表示します。
nearfulOSD が含まれるノードから以下のコマンドを使用します。df
dfCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 必要な場合は、新規 OSD ノードを追加します。
5.1.6. Down OSD リンクのコピーリンクがクリップボードにコピーされました!
ceph health detail コマンドは、以下のようなエラーを返します。
HEALTH_WARN 1/3 in osds are down
HEALTH_WARN 1/3 in osds are down
エラー内容:
サービスの失敗やその他の OSD との通信に問題があるため、ceph-osd プロセスの 1 つを利用することはできません。そのため、残りの ceph-osd デーモンはこの失敗をモニターに報告していました。
ceph-osd デーモンが実行していない場合は、基礎となる OSD ドライブまたはファイルシステムが破損しているか、キーリングが見つからないなどのその他のエラーにより、デーモンが起動しません。
ほとんどの場合、ネットワークの問題により、ceph-osd デーモンが実行中にも down とマークされている場合に状況が生じます。
この問題を解決するには、以下を行います。
downになっている OSD を特定します。[ceph: root@host01 /]# ceph health detail HEALTH_WARN 1/3 in osds are down osd.0 is down since epoch 23, last address 192.168.106.220:6800/11080
[ceph: root@host01 /]# ceph health detail HEALTH_WARN 1/3 in osds are down osd.0 is down since epoch 23, last address 192.168.106.220:6800/11080Copy to Clipboard Copied! Toggle word wrap Toggle overflow ceph-osdデーモンの再起動を試行します。OSD_ID をダウンしている OSD の ID に置き換えます。構文
systemctl restart ceph-FSID@osd.OSD_ID
systemctl restart ceph-FSID@osd.OSD_IDCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
systemctl restart ceph-b404c440-9e4c-11ec-a28a-001a4a0001df@osd.0.service
[root@host01 ~]# systemctl restart ceph-b404c440-9e4c-11ec-a28a-001a4a0001df@osd.0.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
ceph-osdを起動できない場合は、ceph-osdデーモンが起動しないの手順を行ってください。 -
ceph-osdデーモンを起動できるものの、downとマークされている場合には、ceph-osdデーモンが実行しているが、`down` としてマークされているの手順に従ってください。
-
ceph-osd デーモンを起動できない
- 複数の OSD (通常は 13 以上) が含まれる場合には、デフォルトの最大スレッド数 (PID 数) が十分であることを確認します。詳細は、PID 数の増加 を参照してください。
-
OSD データおよびジャーナルパーティションが正しくマウントされていることを確認します。
ceph-volume lvm listコマンドを使用して、Ceph Storage Cluster に関連付けられたデバイスおよびボリュームをリスト表示してから、適切にマウントされているかどうかを確認することができます。詳細は、man ページのmount(8)を参照してください。 -
ERROR: missing keyring, cannot use cephx for authenticationが返された場合、OSD にはキーリングがありません。 ERROR: unable to open OSD superblock on /var/lib/ceph/osd/ceph-1エラーメッセージが出力されると、ceph-osdデーモンは基礎となるファイルシステムを読み込むことができません。このエラーをトラブルシューティングおよび修正する方法は、以下の手順を参照してください。-
対応するログファイルを確認して、障害の原因を特定します。デフォルトでは、ファイルへのロギングが有効になると、Ceph はデフォルトでログファイルを
/var/log/ceph/CLUSTER_FSID/ディレクトリーに保存します。 -
EIOエラーメッセージは、基盤となるディスクの障害を示します。この問題を修正するには、基礎となる OSD ディスクを交換します。詳細は、OSD ドライブの交換 を参照してください。 ログに、以下のような他の
FAILED assertエラーが含まれる場合は、サポートチケットを作成してください。詳細は、サービスについて Red Hat サポートへの問い合わせ を参照してください。FAILED assert(0 == "hit suicide timeout")
FAILED assert(0 == "hit suicide timeout")Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
対応するログファイルを確認して、障害の原因を特定します。デフォルトでは、ファイルへのロギングが有効になると、Ceph はデフォルトでログファイルを
dmesg出力で、基礎となるファイルシステムまたはディスクのエラーを確認します。dmesg
dmesgCopy to Clipboard Copied! Toggle word wrap Toggle overflow error -5エラーメッセージは、ベースとなる XFS ファイルシステムの破損を示しています。この問題を修正する方法は、Red Hat カスタマーポータルの What is the meaning of "xfs_log_force: error -5 returned"? を参照してください。xfs_log_force: error -5 returned
xfs_log_force: error -5 returnedCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
dmesg出力にSCSI errorエラーメッセージが含まれる場合は、Red Hat カスタマーポータルの SCSI Error Codes Solution Finder ソリューションを参照して、問題を修正する最適な方法を判断してください。 - または、基礎となるファイルシステムを修正できない場合は、OSD ドライブを交換します。詳細は、OSD ドライブの交換 を参照してください。
OSD が以下のようなセグメンテーション違反で失敗した場合には、必要な情報を収集してサポートチケットを作成します。詳細は、サービスについて Red Hat サポートへの問い合わせ を参照してください。
Caught signal (Segmentation fault)
Caught signal (Segmentation fault)Copy to Clipboard Copied! Toggle word wrap Toggle overflow
ceph-osd が実行中だが、down とマークされている。
対応するログファイルを確認して、障害の原因を特定します。デフォルトでは、ファイルへのロギングが有効になると、Ceph はデフォルトでログファイルを
/var/log/ceph/CLUSTER_FSID/ディレクトリーに保存します。ログに以下のようなエラーメッセージが含まれる場合は、OSD のフラッピング を参照してください。
wrongly marked me down heartbeat_check: no reply from osd.2 since back
wrongly marked me down heartbeat_check: no reply from osd.2 since backCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 他のエラーが表示される場合は、サポートチケットを作成します。詳細は、サービスについて Red Hat サポートへの問い合わせ を参照してください。
5.1.7. OSDS のフラップ リンクのコピーリンクがクリップボードにコピーされました!
ceph -w | grep osds コマンドは、OSD を down として繰り返し示し、短期間に再び up します。
また、Ceph ログには以下のようなエラーメッセージが含まれます。
2022-05-25 03:44:06.510583 osd.50 127.0.0.1:6801/149046 18992 : cluster [WRN] map e600547 wrongly marked me down
2022-05-25 03:44:06.510583 osd.50 127.0.0.1:6801/149046 18992 : cluster [WRN] map e600547 wrongly marked me down
2022-05-25 19:00:08.906864 7fa2a0033700 -1 osd.254 609110 heartbeat_check: no reply from osd.2 since back 2021-07-25 19:00:07.444113 front 2021-07-25 18:59:48.311935 (cutoff 2021-07-25 18:59:48.906862)
2022-05-25 19:00:08.906864 7fa2a0033700 -1 osd.254 609110 heartbeat_check: no reply from osd.2 since back 2021-07-25 19:00:07.444113 front 2021-07-25 18:59:48.311935 (cutoff 2021-07-25 18:59:48.906862)
エラー内容:
OSD のフラップの主な原因は以下のとおりです。
- スクラビングやリカバリーなどの一部のストレージクラスター操作は、大きなインデックスや大きな配置グループを持つオブジェクトに対してこれらの操作を実行する場合などで、時間が異常にかかります。通常、これらの操作が完了すると、OSD のフラップ問題が解決されます。
-
基礎となる物理ハードウェアに関する問題。この場合、
ceph health detailコマンドもslow requestsエラーメッセージを返します。 - ネットワークの問題。
Ceph OSD は、ストレージクラスターのプライベートネットワークに障害が発生したり、クライアント向けのパブリックネットワークに大きな遅延が発生したりする状況を管理できません。
Ceph OSD は、up および in であることを示すために、プライベートネットワークを使用して、相互にハートビートパケットを送信します。プライベートストレージのクラスターネットワークが適切に機能しない場合、OSD はハートビートパケットを送受信できません。その結果、up であるとマークする一方で、Ceph Monitor に down であることを相互に報告します。
この動作は、Ceph 設定ファイルの以下のパラメーターの影響を受けます。
| パラメーター | 説明 | デフォルト値 |
|---|---|---|
|
|
OSD が | 20 秒 |
|
|
Ceph Monitor が OSD を | 2 |
この表は、デフォルト設定では、1 つの OSD のみが最初の OSD が down していることについて 3 つの異なるレポートを作成した場合、Ceph Monitor が down としてマークすることを示しています。場合によっては、1 つのホストにネットワークの問題が発生すると、クラスター全体で OSD のフラップが発生することもあります。これは、ホスト上に存在する OSD が、クラスター内の他の OSD を down として報告するためです。
この OSD のフラップのシナリオには、OSD プロセスが起動された直後に強制終了される状況は含まれていません。
この問題を解決するには、以下を行います。
ceph health detailコマンドの出力を再度確認します。slow requestsエラーメッセージが含まれる場合は、この問題のトラブルシューティング方法の詳細を参照してください。Copy to Clipboard Copied! Toggle word wrap Toggle overflow downとしてマークされている OSD と、その OSD が置かれているノードを判別します。ceph osd tree | grep down
ceph osd tree | grep downCopy to Clipboard Copied! Toggle word wrap Toggle overflow - フラッピング OSD が含まれるノードで、ネットワークの問題をトラブルシューティングおよび修正します。
noupフラグおよびnodownフラグを設定して、OSD をdownおよびupとしてマークするのを停止するための一時的な強制モニターを実行できます。ceph osd set noup ceph osd set nodown
ceph osd set noup ceph osd set nodownCopy to Clipboard Copied! Toggle word wrap Toggle overflow 重要noupフラグおよびnodownフラグを使用しても、問題の根本的な原因は修正されず、OSD がフラッピングしないようにします。サポートチケットを開くには、詳細について Red Hat サポートへのお問い合わせ セクションを参照してください。
OSD のフラッピングは、Ceph OSD ノードでの MTU 誤設定、ネットワークスイッチレベルでの MTU 誤設定、またはその両方が原因です。この問題を解決するには、計画的にダウンタイムを設けて、コアおよびアクセスネットワークスイッチを含むすべてのストレージクラスターノードで MTU を均一なサイズに設定します。osd heartbeat min size は調整しないでください。この設定を変更すると、ネットワーク内の問題が分からなくなり、実際のネットワークの不整合を解決できません。
5.1.8. 遅いリクエストまたはブロックされるリクエスト リンクのコピーリンクがクリップボードにコピーされました!
ceph-osd デーモンは要求に応答するのに時間がかかり、ceph health detail コマンドは以下のようなエラーメッセージを返します。
また、Ceph ログには、以下のようなエラーメッセージが記録されます。
2022-05-24 13:18:10.024659 osd.1 127.0.0.1:6812/3032 9 : cluster [WRN] 6 slow requests, 6 included below; oldest blocked for > 61.758455 secs
2022-05-24 13:18:10.024659 osd.1 127.0.0.1:6812/3032 9 : cluster [WRN] 6 slow requests, 6 included below; oldest blocked for > 61.758455 secs
2022-05-25 03:44:06.510583 osd.50 [WRN] slow request 30.005692 seconds old, received at {date-time}: osd_op(client.4240.0:8 benchmark_data_ceph-1_39426_object7 [write 0~4194304] 0.69848840) v4 currently waiting for subops from [610]
2022-05-25 03:44:06.510583 osd.50 [WRN] slow request 30.005692 seconds old, received at {date-time}: osd_op(client.4240.0:8 benchmark_data_ceph-1_39426_object7 [write 0~4194304] 0.69848840) v4 currently waiting for subops from [610]
エラー内容:
要求が遅い OSD は、osd_op_complaint_time パラメーターで定義される時間内にキュー内の 1 秒あたりの I/O 操作 (IOPS) を処理しないすべての OSD です。デフォルトでは、このパラメーターは 30 秒に設定されています。
OSD のリクエストが遅い主な原因は次のとおりです。
- ディスクドライブ、ホスト、ラック、ネットワークスイッチなどの基礎となるハードウェアに関する問題
- ネットワークの問題。これらの問題は、通常、OSD のフラップに関連しています。詳細は、OSD のフラッピング を参照してください。
- システムの負荷
以下の表は、遅いリクエストのタイプを示しています。dump_historic_ops 管理ソケットコマンドを使用して、低速な要求のタイプを判断します。管理ソケットの詳細については、Red Hat Ceph Storage 6 の 管理ガイド の Ceph 管理ソケットの使用 セクションを参照してください。
| 遅延リクエストのタイプ | 説明 |
|---|---|
|
| OSD は、操作のために配置グループのロックの取得を待っています。 |
|
| OSD は、レプリカ OSD が操作をジャーナルに適用するのを待っています。 |
|
| OSD は、主要な操作マイルストーンに到達しませんでした。 |
|
| OSD はまだオブジェクトを指定された回数複製していません。 |
この問題を解決するには、以下を行います。
- 遅いリクエストまたはブロックされたリクエストのある OSD がディスクドライブ、ホスト、ラック、ネットワークスイッチなど、共通のハードウェアを共有しているかどうかを判断します。
OSD がディスクを共有する場合は、以下を実行します。
smartmontoolsユーティリティーを使用して、ディスクまたはログの状態をチェックして、ディスクのエラーを確認します。注記smartmontoolsユーティリティーは、smartmontoolsパッケージに含まれています。iostatユーティリティーを使用して OSD ディスクの I/O 待機レポート (%iowai) を取得し、ディスク負荷が大きいかどうかを判断します。注記iostatユーティリティーは、sysstatパッケージに含まれています。
OSD が他のサービスとノードを共有している場合:
- RAM および CPU の使用率を確認します。
-
netstatユーティリティーを使用して、ネットワークインターフェイスコントローラー (NIC) のネットワーク統計を確認し、ネットワークの問題のトラブルシューティングを行います。
- OSD がラックを共有している場合は、ラックのネットワークスイッチを確認します。たとえば、ジャンボフレームを使用する場合は、パスの NIC にジャンボフレームが設定されていることを確認します。
- リクエストが遅い OSD が共有している共通のハードウェアを特定できない場合や、ハードウェアやネットワークの問題をトラブルシューティングして解決できない場合は、サポートチケットを作成します。詳細は、サービスについて Red Hat サポートへの問い合わせ を参照してください。
5.2. リバランスの停止および開始 リンクのコピーリンクがクリップボードにコピーされました!
OSD の失敗や停止時に、CRUSH アルゴリズムはリバランスプロセスを自動的に開始し、残りの OSD 間でデータを再分配します。
リバランスには時間とリソースがかかるため、トラブルシューティングや OSD のメンテナンス時にはリバランスの中止を検討してください。
トラブルシューティングおよびメンテナンス時に、停止された OSD 内の配置グループは degraded します。
前提条件
- Ceph Monitor ノードへの root レベルのアクセス。
手順
Cephadm シェルにログインします。
例
cephadm shell
[root@host01 ~]# cephadm shellCopy to Clipboard Copied! Toggle word wrap Toggle overflow OSD を停止する前に
nooutフラグを設定します。例
[ceph: root@host01 /]# ceph osd set noout
[ceph: root@host01 /]# ceph osd set nooutCopy to Clipboard Copied! Toggle word wrap Toggle overflow トラブルシューティングまたはメンテナンスが完了したら、
nooutフラグの設定を解除して、リバランスを開始します。例
[ceph: root@host01 /]# ceph osd unset noout
[ceph: root@host01 /]# ceph osd unset nooutCopy to Clipboard Copied! Toggle word wrap Toggle overflow
5.3. OSD ドライブの交換 リンクのコピーリンクがクリップボードにコピーされました!
Ceph は耐障害性を確保できるように設計されているため、データを損失せずに動作が degraded の状態になっています。そのため、データストレージドライブに障害が発生しても、Ceph は動作します。障害が発生したドライブのコンテキストでは、パフォーマンスが degraded した状態は、他の OSD に保存されているデータの追加コピーが、クラスター内の他の OSD に自動的にバックフィルされることを意味します。ただし、このような場合は、障害の発生した OSD ドライブを交換し、手動で OSD を再作成します。
ドライブに障害が発生すると、Ceph は OSD を down として報告します。
HEALTH_WARN 1/3 in osds are down osd.0 is down since epoch 23, last address 192.168.106.220:6800/11080
HEALTH_WARN 1/3 in osds are down
osd.0 is down since epoch 23, last address 192.168.106.220:6800/11080
Ceph は、ネットワークやパーミッションの問題により OSD を down とマークすることもできます。詳細は、Down OSD を参照してください。
最近のサーバーは、ホットスワップ対応のドライブを搭載しているのが一般的であり、ノードをダウンさせることなく、障害が発生したドライブを抜き取り、新しいドライブと交換することができます。手順全体には、以下のステップが含まれます。
- Ceph クラスターから OSD を取り除きます。詳細は、Ceph クラスターからの OSD の削除の手順を参照してください。
- ドライブを交換します。詳細は、物理ドライブの置き換え セクションを参照してください。
- OSD をクラスターに追加します。詳細は、OSD の Ceph クラスターへの追加の手順を参照してください。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- Ceph Monitor ノードへの root レベルのアクセス。
-
少なくとも 1 つの OSD が
downになっています。
Ceph クラスターからの OSD の削除
Cephadm シェルにログインします。
例
cephadm shell
[root@host01 ~]# cephadm shellCopy to Clipboard Copied! Toggle word wrap Toggle overflow downになっている OSD を特定します。例
[ceph: root@host01 /]# ceph osd tree | grep -i down ID CLASS WEIGHT TYPE NAME STATUS REWEIGHT PRI-AFF 0 hdd 0.00999 osd.0 down 1.00000 1.00000
[ceph: root@host01 /]# ceph osd tree | grep -i down ID CLASS WEIGHT TYPE NAME STATUS REWEIGHT PRI-AFF 0 hdd 0.00999 osd.0 down 1.00000 1.00000Copy to Clipboard Copied! Toggle word wrap Toggle overflow クラスターがデータをリバランスして他の OSD にそのテータをコピーできるように、OSD を
outとしてマークします。構文
ceph osd out OSD_ID.
ceph osd out OSD_ID.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
[ceph: root@host01 /]# ceph osd out osd.0 marked out osd.0.
[ceph: root@host01 /]# ceph osd out osd.0 marked out osd.0.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記OSD が
downしていると、mon_osd_down_out_intervalパラメーターに基づいて OSD からハートビートパケットを受信しないと、Ceph は、600 秒後に OSD を自動的にoutとマークします。この場合、障害が発生した OSD データのコピーを持つ他の OSD がバックフィルを開始し、クラスター内部に必要な数のコピーが存在するようにします。クラスターがバックフィル状態である間、クラスターの状態はdegradedします。障害が発生した OSD がバックフィルされていることを確認します。
例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 配置グループの状態が
active+cleanからactiveになり、一部の劣化したオブジェクトに変化し、移行が完了すると最終的にactive+cleanに変化するはずです。OSD を停止します。
構文
ceph orch daemon stop OSD_ID
ceph orch daemon stop OSD_IDCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
[ceph: root@host01 /]# ceph orch daemon stop osd.0
[ceph: root@host01 /]# ceph orch daemon stop osd.0Copy to Clipboard Copied! Toggle word wrap Toggle overflow ストレージクラスターから OSD を削除します。
構文
ceph orch osd rm OSD_ID --replace
ceph orch osd rm OSD_ID --replaceCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
[ceph: root@host01 /]# ceph orch osd rm 0 --replace
[ceph: root@host01 /]# ceph orch osd rm 0 --replaceCopy to Clipboard Copied! Toggle word wrap Toggle overflow OSD_IDは保存されます。
物理ドライブの交換
物理ドライブの交換方法の詳細は、ハードウェアノードのマニュアルを参照してください。
- ドライブがホットスワップ可能な場合は、故障したドライブを新しいものと交換します。
- ドライブがホットスワップに対応しておらず、ノードに複数の OSD が含まれる場合は、ノード全体をシャットダウンして物理ドライブを交換する必要がある場合があります。クラスターのバックフィルを防ぐことを検討してください。詳細は、Red Hat Ceph Storage トラブルシューティングガイド の リバランスの停止および開始 の章を参照してください。
-
ドライブが
/dev/ディレクトリー配下に表示されたら、ドライブパスを書き留めます。 - OSD を手動で追加する必要がある場合には、OSD ドライブを見つけ、ディスクをフォーマットします。
Ceph クラスターへの OSD の追加
新しいドライブを挿入したら、以下のオプションを使用して OSD をデプロイすることができます。
OSD は、
--unmanagedパラメーターが設定されていない場合は、Ceph Orchestrator によって自動的にデプロイされます。例
[ceph: root@host01 /]# ceph orch apply osd --all-available-devices
[ceph: root@host01 /]# ceph orch apply osd --all-available-devicesCopy to Clipboard Copied! Toggle word wrap Toggle overflow unmanagedパラメーターをtrueに設定して、利用可能なすべてのデバイスに OSD をデプロイします。例
[ceph: root@host01 /]# ceph orch apply osd --all-available-devices --unmanaged=true
[ceph: root@host01 /]# ceph orch apply osd --all-available-devices --unmanaged=trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow 特定のデバイスやホストに OSD をデプロイします。
例
[ceph: root@host01 /]# ceph orch daemon add osd host02:/dev/sdb
[ceph: root@host01 /]# ceph orch daemon add osd host02:/dev/sdbCopy to Clipboard Copied! Toggle word wrap Toggle overflow
CRUSH 階層が正確であることを確認します。
例
[ceph: root@host01 /]# ceph osd tree
[ceph: root@host01 /]# ceph osd treeCopy to Clipboard Copied! Toggle word wrap Toggle overflow
5.4. PID 数の増加 リンクのコピーリンクがクリップボードにコピーされました!
12 個以上の Ceph OSD が含まれるノードがある場合、特にリカバリー時にデフォルトの最大スレッド数 (PID 数) では不十分になることがあります。これにより、一部の ceph-osd デーモンが終了して再起動に失敗する可能性があります。このような場合は、許容されるスレッドの最大数を増やします。
手順
一時的に数を増やすには、以下を実行します。
sysctl -w kernel.pid.max=4194303
[root@mon ~]# sysctl -w kernel.pid.max=4194303
数値を永続的に増やすには、以下のように /etc/sysctl.conf ファイルを更新します。
kernel.pid.max = 4194303
kernel.pid.max = 4194303
5.5. 満杯のストレージクラスターからのデータの削除 リンクのコピーリンクがクリップボードにコピーされました!
Ceph は、mon_osd_full_ratio パラメーターで指定された容量に到達した OSD の I/O 操作を自動的に防ぎ、full osds エラーメッセージを返します。
この手順では、このエラーを修正するために不要なデータを削除する方法を説明します。
mon_osd_full_ratio パラメーターは、クラスターの作成時に full_ratio パラメーターの値を設定します。その後は、mon_osd_full_ratio の値を変更することはできません。full_ratio 値を一時的に増やすには、代わりに set-full-ratio を増やします。
前提条件
- Ceph Monitor ノードへの root レベルのアクセス。
手順
Cephadm シェルにログインします。
例
cephadm shell
[root@host01 ~]# cephadm shellCopy to Clipboard Copied! Toggle word wrap Toggle overflow full_ratioの現在の値を判別します。デフォルトでは0.95に設定されます。[ceph: root@host01 /]# ceph osd dump | grep -i full full_ratio 0.95
[ceph: root@host01 /]# ceph osd dump | grep -i full full_ratio 0.95Copy to Clipboard Copied! Toggle word wrap Toggle overflow set-full-ratioの値を0.97に一時的に増やします。[ceph: root@host01 /]# ceph osd set-full-ratio 0.97
[ceph: root@host01 /]# ceph osd set-full-ratio 0.97Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要Red Hat は、
set-full-ratioを 0.97 を超える値に設定しないことを強く推奨します。このパラメーターを高い値に設定すると、リカバリーが難しくなります。その結果、OSD を完全に復元できなくなる可能性があります。パラメーターを
0.97に正常に設定していることを確認します。[ceph: root@host01 /]# ceph osd dump | grep -i full full_ratio 0.97
[ceph: root@host01 /]# ceph osd dump | grep -i full full_ratio 0.97Copy to Clipboard Copied! Toggle word wrap Toggle overflow クラスターの状態を監視します。
[ceph: root@host01 /]# ceph -w
[ceph: root@host01 /]# ceph -wCopy to Clipboard Copied! Toggle word wrap Toggle overflow クラスターの状態が
fullからnearfullに変わると、不要なデータが削除されます。full_ratioの値を0.95に設定します。[ceph: root@host01 /]# ceph osd set-full-ratio 0.95
[ceph: root@host01 /]# ceph osd set-full-ratio 0.95Copy to Clipboard Copied! Toggle word wrap Toggle overflow パラメーターを
0.95に正常に設定していることを確認します。[ceph: root@host01 /]# ceph osd dump | grep -i full full_ratio 0.95
[ceph: root@host01 /]# ceph osd dump | grep -i full full_ratio 0.95Copy to Clipboard Copied! Toggle word wrap Toggle overflow
第6章 マルチサイト Ceph Object Gateway のトラブルシューティング リンクのコピーリンクがクリップボードにコピーされました!
この章では、マルチサイト Ceph Object Gateway の設定および操作状態に関連する最も一般的なエラーを修正する方法を説明します。
radosgw-admin bucket sync status コマンドにより、データがマルチサイト間で一貫している場合でもバケットがシャード上で遅れていることが報告された場合は、バケットへの追加の書き込みを実行します。ステータスレポートを同期し、バケットがソースに追いついたというメッセージを表示します。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- 実行中の Ceph Object Gateway。
6.1. Ceph Object Gateway のエラーコード定義 リンクのコピーリンクがクリップボードにコピーされました!
Ceph Object Gateway ログには、お使いの環境でのトラブルシューティングに役立つエラーおよび警告メッセージが含まれます。一般的なメッセージとその解決策を以下に示します。
一般的なエラーメッセージ
data_sync: ERROR: a sync operation returned error- これは、下位のバケット同期プロセスでエラーが返されたことを伝える上位のデータ同期プロセスです。このメッセージは詳細で、バケットの同期エラーがログで上に表示されます。
data sync: ERROR: failed to sync object: BUCKET_NAME:_OBJECT_NAME_- プロセスがリモートゲートウェイから HTTP 経由での必要なオブジェクトの取得に失敗したか、プロセスが RADOS へのオブジェクトの書き込みに失敗したかのいずれかであり、再試行されます。
data sync: ERROR: failure in sync, backing out (sync_status=2)-
上記の条件の 1 つを反映した低レベルのメッセージ。同期前にデータが削除され、
-2 ENOENTステータスが表示されます。 data sync: ERROR: failure in sync, backing out (sync_status=-5)-
上記の条件の 1 つを反映した低レベルのメッセージ。特に、そのオブジェクトを RADOS に書き込みに失敗し、
-5 EIOが示されます。 ERROR: failed to fetch remote data log info: ret=11-
これは、別のゲートウェイからのエラー状態を反映した
libcurlのEAGAIN汎用エラーコードです。デフォルトでは再度試行されます。 meta sync: ERROR: failed to read mdlog info with (2) No such file or directory- mdlog のシャードが作成されず、同期するものはありません。
エラーメッセージの同期
failed to sync object- プロセスがリモートゲートウェイから HTTP 経由でのオブジェクトの取得に失敗したか、そのオブジェクトの RADOS への書き込みに失敗したかのいずれかであり、再試行されます。
failed to sync bucket instance: (11) Resource temporarily unavailable- プライマリーゾーンとセカンダリーゾーン間の接続の問題。
failed to sync bucket instance: (125) Operation canceled- 同じ RADOS オブジェクトへの書き込みの間に競合が発生します。
ERROR: request failed: (13) Permission denied If the realm has been changed on the master zone, the master zone’s gateway may need to be restarted to recognize this userセカンダリーサイトの設定中に、
rgw realm pull --url http://primary_endpoint --access-key <> --secret <>コマンドが、権限拒否エラーで失敗することがあります。このような場合は、次のコマンドを使用して、プライマリーサイトのシステムユーザー認証情報が同じであることを確認してください。
radosgw-admin user info --uid synchronization_user, and radosgw-admin zone get
radosgw-admin user info --uid synchronization_user, and radosgw-admin zone getCopy to Clipboard Copied! Toggle word wrap Toggle overflow
関連情報
- その他のサポートは、Red Hat サポート にお問い合わせください。
6.2. マルチサイト Ceph Object Gateway の同期 リンクのコピーリンクがクリップボードにコピーされました!
マルチサイトの同期は、他のゾーンから変更ログを読み取ります。メタデータおよびデータログから同期の進捗の概要を取得するには、以下のコマンドを使用できます。
例
[ceph: root@host01 /]# radosgw-admin sync status
[ceph: root@host01 /]# radosgw-admin sync status
このコマンドは、ソースゾーンの背後にあるログシャードがあれば、それをリスト表示します。
radosgw-admin sync status コマンドを実行すると、シャードの回復が見られることがあります。データの同期の場合には、レプリケーションログのシャードが 128 個あり、それぞれ個別に処理されます。これらのレプリケーションログイベントによってトリガーされたアクションのいずれかがネットワーク、ストレージ、またはその他の場所から発生した場合、これらのエラーは追跡されるため、操作を後で再試行できます。特定のシャードに再試行が必要なエラーがある場合、radosgw-admin sync status コマンドはそのシャードを 回復中 として報告します。この回復は自動的に行われるため、Operator が介入して問題を解決する必要はありません。
上記で実行した同期ステータスの結果がログシャードのレポートより遅れている場合は、shard-id を X に置き換えて次のコマンドを実行します。
構文
radosgw-admin data sync status --shard-id=X --source-zone=ZONE_NAME
radosgw-admin data sync status --shard-id=X --source-zone=ZONE_NAME
例
出力には、次に同期されるバケットが表示され、あれば以前のエラーによりリトライされるバケットが表示されます。
X をバケット ID に置き換えて、次のコマンドを使用して個々のバケットのステータスを検査します。
構文
radosgw-admin bucket sync status --bucket=X.
radosgw-admin bucket sync status --bucket=X.
X は、バケットの ID 番号に置き換えます。
その結果、ソースゾーンの背後にあるバケットインデックスログシャードが表示されます。
同期の一般的なエラーは EBUSY です。これは同期がすでに進行中であることを意味します。多くの場合は別のゲートウェイで行われます。同期エラーログに書き込まれたエラーを読み取ります。これは以下のコマンドで読み取りできます。
radosgw-admin sync error list
radosgw-admin sync error list
同期プロセスは成功するまで再試行されます。介入が必要なエラーが発生することもあります。
6.3. マルチサイトの Ceph Object Gateway データ同期のパフォーマンスカウンター リンクのコピーリンクがクリップボードにコピーされました!
Ceph Object Gateway のマルチサイト設定では、データの同期を測定するために以下のパフォーマンスカウンターが使用できます。
-
poll_latencyは、リモートレプリケーションログに対する要求のレイテンシーを測定します。 -
fetch_bytesは、データ同期によってフェッチされるオブジェクト数およびバイト数を測定します。
パフォーマンスカウンターの現在のメトリックデータを表示するには、ceph --admin-daemon コマンドを使用します。
構文
ceph --admin-daemon /var/run/ceph/ceph-client.rgw.RGW_ID.asok perf dump data-sync-from-ZONE_NAME
ceph --admin-daemon /var/run/ceph/ceph-client.rgw.RGW_ID.asok perf dump data-sync-from-ZONE_NAME
例
デーモンを実行するノードから ceph --admin-daemon コマンドを実行する必要があります。
関連情報
- パフォーマンスカウンターの詳細は Red Hat Ceph Storage 管理ガイド の パフォーマンスカウンター の章を参照してください。
6.4. マルチサイトの Ceph Object Gateway 設定でのデータ同期 リンクのコピーリンクがクリップボードにコピーされました!
ストレージクラスターのマルチサイト Ceph Object Gateway 設定では、フェイルオーバーおよびフェイルバックにより、データの同期が停止します。radosgw-admin sync status コマンドは、データ同期が長期間遅れていることを報告します。
radosgw-admin data sync init コマンドを実行してサイト間でデータを同期してから、Ceph Object Gateway を再起動できます。このコマンドは実際のオブジェクトデータには触れず、指定されたソースゾーンのデータ同期を開始します。これにより、ゾーンはソースゾーンから完全同期を再開します。
data sync init コマンドを実行する前に、Red Hat サポート にお問い合わせください。
同期を完全に再開する場合、およびソースゾーンで同期が必要なデータが大量にある場合は、帯域幅の消費が高くなるため、それに応じて計画する必要があります。
ユーザーがセカンダリーサイトのバケットを誤って削除した場合は、サイトで metadata sync init コマンドを使用してデータを同期できます。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- 少なくとも 2 つのサイトで設定された Ceph Object Gateway。
手順
サイト間の同期ステータスを確認します。
例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow セカンダリーゾーンからデータを同期します。
例
[ceph: root@host04 /]# radosgw-admin data sync init --source-zone primary
[ceph: root@host04 /]# radosgw-admin data sync init --source-zone primaryCopy to Clipboard Copied! Toggle word wrap Toggle overflow サイトですべての Ceph Object Gateway デーモンを再起動します。
例
[ceph: root@host04 /]# ceph orch restart rgw.myrgw
[ceph: root@host04 /]# ceph orch restart rgw.myrgwCopy to Clipboard Copied! Toggle word wrap Toggle overflow
第7章 Ceph 配置グループのトラブルシューティング リンクのコピーリンクがクリップボードにコピーされました!
このセクションには、Ceph Placement Group (PG) に関連する最も一般的なエラーを修正するための情報が含まれています。
前提条件
- ネットワーク接続を確認します。
- Monitor がクォーラムを形成できることを確認します。
-
すべての正常な OSD が
upしてinであり、バックフィルおよびリカバリープロセスが完了したことを確認します。
7.1. 最も一般的な Ceph 配置グループエラー リンクのコピーリンクがクリップボードにコピーされました!
以下の表では、ceph health detail コマンドで返される最も一般的なエラーメッセージを一覧表示しています。この表には、エラーを説明し、問題を修正するための特定の手順を示す、対応セクションへのリンクがあります。
さらに、最適でない状態に陥っている配置グループをリストできます。詳細は、「配置グループのリスト表示 (stale、inactive、または unclean 状態)」 を参照してください。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- 実行中の Ceph Object Gateway。
7.1.1. 配置グループのエラーメッセージ リンクのコピーリンクがクリップボードにコピーされました!
一般的な配置グループエラーメッセージの表およびその修正方法。
| エラーメッセージ | 参照 |
|---|---|
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
7.1.2. 古い配置グループ リンクのコピーリンクがクリップボードにコピーされました!
ceph health コマンドは、一部の配置グループ (PG) を stale リストで表示します。
HEALTH_WARN 24 pgs stale; 3/300 in osds are down
HEALTH_WARN 24 pgs stale; 3/300 in osds are down
エラー内容:
モニターは、配置グループが動作しているセットのプライマリー OSD からステータスの更新を受け取らない場合や、プライマリー OSD が down していると他の OSD が報告されない場合に、配置グループを stale とマークします。
通常、PG はストレージクラスターを起動し、ピアリングプロセスが完了するまで、stale 状態になります。ただし、PG が想定よりも stale である (古くなっている) 場合は、PG のプライマリー OSD が ダウン しているか、PG 統計をモニターに報告していないことを示す可能性があります。古い PG を保存するプライマリー OSD が up に戻ると、Ceph は PG の復元を開始します。
mon_osd_report_timeout の設定は、OSD が PG の統計をモニターに報告する頻度を決定します。デフォルトでは、このパラメーターは 0.5 に設定されています。これは、OSD が 0.5 秒ごとに統計を報告することを意味します。
この問題を解決するには、以下を行います。
古いPG とそれらが保存される OSD を特定します。エラーメッセージには、次の例のような情報が含まれています。例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
downとマークされている OSD の問題のトラブルシューティング。詳細は、Down OSDs を参照してください。
7.1.3. 一貫性のない配置グループ リンクのコピーリンクがクリップボードにコピーされました!
一部の配置グループは active + clean + inconsistent とマークされ、ceph health detail は以下のようなエラーメッセージを返します。
HEALTH_ERR 1 pgs inconsistent; 2 scrub errors pg 0.6 is active+clean+inconsistent, acting [0,1,2] 2 scrub errors
HEALTH_ERR 1 pgs inconsistent; 2 scrub errors
pg 0.6 is active+clean+inconsistent, acting [0,1,2]
2 scrub errors
エラー内容:
Ceph は、配置グループ内のオブジェクトの 1 つ以上のレプリカで不整合を検出すると、配置グループに inconsistent のマークを付けます。最も一般的な不整合は以下のとおりです。
- オブジェクトのサイズが正しくない。
- リカバリーが終了後、あるレプリカのオブジェクトが失われた。
ほとんどの場合、スクラビング中のエラーが原因で、配置グループ内の不整合が発生します。
この問題を解決するには、以下を行います。
Cephadm シェルにログインします。
例
cephadm shell
[root@host01 ~]# cephadm shellCopy to Clipboard Copied! Toggle word wrap Toggle overflow どの配置グループが
一貫性のない状態かを決定します。[ceph: root@host01 /]# ceph health detail HEALTH_ERR 1 pgs inconsistent; 2 scrub errors pg 0.6 is active+clean+inconsistent, acting [0,1,2] 2 scrub errors
[ceph: root@host01 /]# ceph health detail HEALTH_ERR 1 pgs inconsistent; 2 scrub errors pg 0.6 is active+clean+inconsistent, acting [0,1,2] 2 scrub errorsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 配置グループに
inconsistentな理由を決定します。配置グループでディープスクラビングプロセスを開始します。
構文
ceph pg deep-scrub ID
ceph pg deep-scrub IDCopy to Clipboard Copied! Toggle word wrap Toggle overflow IDを、以下のようにinconsistent配置グループの ID に置き換えます。[ceph: root@host01 /]# ceph pg deep-scrub 0.6 instructing pg 0.6 on osd.0 to deep-scrub
[ceph: root@host01 /]# ceph pg deep-scrub 0.6 instructing pg 0.6 on osd.0 to deep-scrubCopy to Clipboard Copied! Toggle word wrap Toggle overflow ceph -wの出力で、その配置グループに関連するメッセージを探します。構文
ceph -w | grep ID
ceph -w | grep IDCopy to Clipboard Copied! Toggle word wrap Toggle overflow IDを、以下のようにinconsistent配置グループの ID に置き換えます。[ceph: root@host01 /]# ceph -w | grep 0.6 2022-05-26 01:35:36.778215 osd.106 [ERR] 0.6 deep-scrub stat mismatch, got 636/635 objects, 0/0 clones, 0/0 dirty, 0/0 omap, 0/0 hit_set_archive, 0/0 whiteouts, 1855455/1854371 bytes. 2022-05-26 01:35:36.788334 osd.106 [ERR] 0.6 deep-scrub 1 errors
[ceph: root@host01 /]# ceph -w | grep 0.6 2022-05-26 01:35:36.778215 osd.106 [ERR] 0.6 deep-scrub stat mismatch, got 636/635 objects, 0/0 clones, 0/0 dirty, 0/0 omap, 0/0 hit_set_archive, 0/0 whiteouts, 1855455/1854371 bytes. 2022-05-26 01:35:36.788334 osd.106 [ERR] 0.6 deep-scrub 1 errorsCopy to Clipboard Copied! Toggle word wrap Toggle overflow
出力に以下のようなエラーメッセージが含まれる場合は、
inconsistent配置グループを修復できます。詳細は、一貫性のない配置グループの修正 を参照してください。構文
PG.ID shard OSD: soid OBJECT missing attr , missing attr _ATTRIBUTE_TYPE PG.ID shard OSD: soid OBJECT digest 0 != known digest DIGEST, size 0 != known size SIZE PG.ID shard OSD: soid OBJECT size 0 != known size SIZE PG.ID deep-scrub stat mismatch, got MISMATCH PG.ID shard OSD: soid OBJECT candidate had a read error, digest 0 != known digest DIGEST
PG.ID shard OSD: soid OBJECT missing attr , missing attr _ATTRIBUTE_TYPE PG.ID shard OSD: soid OBJECT digest 0 != known digest DIGEST, size 0 != known size SIZE PG.ID shard OSD: soid OBJECT size 0 != known size SIZE PG.ID deep-scrub stat mismatch, got MISMATCH PG.ID shard OSD: soid OBJECT candidate had a read error, digest 0 != known digest DIGESTCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力に以下のようなエラーメッセージが含まれる場合は、データが失われる可能性があるため、
inconsistentのない配置グループを修正しても安全ではありません。この場合、サポートチケットを作成します。詳細は、Red Hat サポートへの問い合わせ を参照してください。PG.ID shard OSD: soid OBJECT digest DIGEST != known digest DIGEST PG.ID shard OSD: soid OBJECT omap_digest DIGEST != known omap_digest DIGEST
PG.ID shard OSD: soid OBJECT digest DIGEST != known digest DIGEST PG.ID shard OSD: soid OBJECT omap_digest DIGEST != known omap_digest DIGESTCopy to Clipboard Copied! Toggle word wrap Toggle overflow
7.1.4. 不適切な配置グループ リンクのコピーリンクがクリップボードにコピーされました!
ceph health コマンドは、以下のようなエラーメッセージを返します。
HEALTH_WARN 197 pgs stuck unclean
HEALTH_WARN 197 pgs stuck unclean
エラー内容:
Ceph 設定ファイルの mon_pg_stuck_threshold パラメーターで指定された秒数について、active+clean の状態を満たさない場合には、Ceph 配置グループは unclean とマーク付けされます。mon_pg_stuck_threshold のデフォルト値は 300 秒です。
配置グループが unclean である場合は、osd_pool_default_size パラメーターで指定された回数複製されないオブジェクトが含まれます。osd_pool_default_size のデフォルト値は 3 で、Ceph はレプリカを 3 つ作成します。
通常、unclean 配置グループは、一部の OSD が down している可能性があることを意味します。
この問題を解決するには、以下を行います。
downになっている OSD を特定します。[ceph: root@host01 /]# ceph osd tree
[ceph: root@host01 /]# ceph osd treeCopy to Clipboard Copied! Toggle word wrap Toggle overflow - OSD の問題をトラブルシューティングし、修正します。詳細は、Down OSD を参照してください。
7.1.5. 非アクティブな配置グループ リンクのコピーリンクがクリップボードにコピーされました!
ceph health コマンドは、以下のようなエラーメッセージを返します。
HEALTH_WARN 197 pgs stuck inactive
HEALTH_WARN 197 pgs stuck inactive
エラー内容:
Ceph 設定ファイルの mon_pg_stuck_threshold パラメーターで指定された秒数について、配置グループが非表示になっていない場合、Ceph はその配置グループを inactive とマークします。mon_pg_stuck_threshold のデフォルト値は 300 秒です。
通常、inactive な配置グループは一部の OSD が down となっている可能性があることを示します。
この問題を解決するには、以下を行います。
downになっている OSD を特定します。ceph osd tree
# ceph osd treeCopy to Clipboard Copied! Toggle word wrap Toggle overflow - OSD の問題をトラブルシューティングし、修正します。
関連情報
- 配置グループの一覧表示が、古い非アクティブな状態または不完全な状態
- 詳細は、Down OSD を参照してください。
7.1.6. down している配置グループ リンクのコピーリンクがクリップボードにコピーされました!
ceph health detail コマンドは、一部の配置グループが down していると報告します。
エラー内容:
場合によっては、ピアリングプロセスがブロックされ、配置グループがアクティブになって使用できなくなることがあります。通常、OSD の障害が原因でピアリングの障害が発生します。
この問題を解決するには、以下を行います。
ピアリング処理をブロックしている原因を判断します。
構文
ceph pg ID query
ceph pg ID query
ID を down している配置グループの ID に置き換えます。
例
recovery_state セクションには、ピアリングプロセスがブロックされた理由が含まれます。
-
出力には
peering is blocked due to down osdsエラーメッセージが含まれているため Down OSD を参照してください。 - 他のエラーメッセージが表示された場合は、サポートチケットを作成します。詳細は、Red Hat サポートサービスへの問い合わせ を参照してください。
7.1.7. 不明なオブジェクト リンクのコピーリンクがクリップボードにコピーされました!
ceph health コマンドは、unfound キーワードを含む以下のようなエラーメッセージを返します。
HEALTH_WARN 1 pgs degraded; 78/3778 unfound (2.065%)
HEALTH_WARN 1 pgs degraded; 78/3778 unfound (2.065%)
エラー内容:
これらのオブジェクトまたは新しいコピーが分かっている場合には、Ceph のマークは unfound とマークしますが、オブジェクトが見つからないと判断できません。そのため、Ceph はそのようなオブジェクトを回復できず、リカバリープロセスを続行できません。
状況例
配置グループは、osd.1 および osd.2 にデータを格納します。
-
osd.1はdownします。 -
osd.2は一部の書き込み操作を処理します。 -
osd.1がupとないります。 -
osd.1とosd.2の間のピアリングプロセスは開始し、osd.1にないオブジェクトはリカバリーのためにキューに置かれます。 -
Ceph が新規オブジェクトをコピーする前に、
osd.2がdownとなります。
その結果、osd.1 はこれらのオブジェクトが存在することを認識しますが、オブジェクトのコピーを持つ OSD はありません。
このシナリオでは、Ceph は障害が発生したノードが再びアクセス可能になるのを待機しており、未使用の unfound によりリカバリープロセスがブロックされます。
この問題を解決するには、以下を行います。
Cephadm シェルにログインします。
例
cephadm shell
[root@host01 ~]# cephadm shellCopy to Clipboard Copied! Toggle word wrap Toggle overflow unfoundオブジェクトが含まれる配置グループを決定します。[ceph: root@host01 /]# ceph health detail HEALTH_WARN 1 pgs recovering; 1 pgs stuck unclean; recovery 5/937611 objects degraded (0.001%); 1/312537 unfound (0.000%) pg 3.8a5 is stuck unclean for 803946.712780, current state active+recovering, last acting [320,248,0] pg 3.8a5 is active+recovering, acting [320,248,0], 1 unfound recovery 5/937611 objects degraded (0.001%); **1/312537 unfound (0.000%)**
[ceph: root@host01 /]# ceph health detail HEALTH_WARN 1 pgs recovering; 1 pgs stuck unclean; recovery 5/937611 objects degraded (0.001%); 1/312537 unfound (0.000%) pg 3.8a5 is stuck unclean for 803946.712780, current state active+recovering, last acting [320,248,0] pg 3.8a5 is active+recovering, acting [320,248,0], 1 unfound recovery 5/937611 objects degraded (0.001%); **1/312537 unfound (0.000%)**Copy to Clipboard Copied! Toggle word wrap Toggle overflow 配置グループに関する詳細情報を表示します。
構文
ceph pg ID query
ceph pg ID queryCopy to Clipboard Copied! Toggle word wrap Toggle overflow IDを、unfoundオブジェクトを含む配置グループの ID に置き換えます。例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow might_have_unfoundセクションには、Ceph がunfoundオブジェクトの検索を試行する OSD が含まれます。-
already probedステータスは、Ceph が OSD 内でunfoundオブジェクトを検出できないことを示します。 -
osd is down状態は、Ceph が OSD と通信できないことを示します。
-
-
downとマークされている OSD のトラブルシューティング詳細は、Down OSD を参照してください。 -
OSD が
downとなる問題を修正できない場合は、サポートチケットを作成してください。詳細は、サービスについて Red Hat サポートへの問い合わせ を参照してください。
7.2. 配置グループのリスト表示 (stale、inactive、または unclean 状態) リンクのコピーリンクがクリップボードにコピーされました!
失敗した後、配置グループは degraded や peering などの状態になります。この状態は、障害リカバリープロセスが正常に進行していることを示しています。
しかし、ある配置グループが予想よりも長い期間これらの状態のいずれかになる場合、より大きな問題の兆候である可能性があります。配置グループが最適ではない状態のままになると、Monitor が報告します。
Ceph 設定ファイルの mon_pg_stuck_threshold オプションにより、配置グループが inactive、unclean、または stale とみなされるまでの秒数を決定します。
以下の表は、これらの状態と簡単な説明を示しています。
| 状態 | 意味 | 最も一般的な原因 | 参照 |
|---|---|---|---|
|
| PG は読み取り/書き込み要求に対応できません。 |
| |
|
| PG には、必要な回数を複製されていないオブジェクトが含まれます。何かが PG の回復を妨げている。 |
| |
|
|
PG のステータスは、 |
|
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- ノードへのルートレベルのアクセス。
手順
Cephadm シェルにログインします。
例
cephadm shell
[root@host01 ~]# cephadm shellCopy to Clipboard Copied! Toggle word wrap Toggle overflow スタックした PG をリストします。
例
[ceph: root@host01 /]# ceph pg dump_stuck inactive [ceph: root@host01 /]# ceph pg dump_stuck unclean [ceph: root@host01 /]# ceph pg dump_stuck stale
[ceph: root@host01 /]# ceph pg dump_stuck inactive [ceph: root@host01 /]# ceph pg dump_stuck unclean [ceph: root@host01 /]# ceph pg dump_stuck staleCopy to Clipboard Copied! Toggle word wrap Toggle overflow
7.3. 配置グループ不整合のリスト表示 リンクのコピーリンクがクリップボードにコピーされました!
rados ユーティリティーを使用して、オブジェクトのさまざまなレプリカで不整合を一覧表示します。より詳細な出力をリスト表示するには、--format=json-pretty オプションを使用します。
このセクションでは、以下を取り上げます。
- プールへの一貫性のない配置グループ
- 配置グループの一貫性のないオブジェクト
- 配置グループにおける一貫性のないスナップショットセット
前提条件
- 健全な状態で稼働中の Red Hat Ceph Storage クラスター。
- ノードへのルートレベルのアクセス。
手順
プール内の一貫性のない配置グループをすべて表示します。
構文
rados list-inconsistent-pg POOL --format=json-pretty
rados list-inconsistent-pg POOL --format=json-prettyCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
[ceph: root@host01 /]# rados list-inconsistent-pg data --format=json-pretty [0.6]
[ceph: root@host01 /]# rados list-inconsistent-pg data --format=json-pretty [0.6]Copy to Clipboard Copied! Toggle word wrap Toggle overflow ID を持つ配置グループ内の一貫性のないオブジェクトを表示します。
構文
rados list-inconsistent-obj PLACEMENT_GROUP_ID
rados list-inconsistent-obj PLACEMENT_GROUP_IDCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 不整合の原因を特定するには、以下のフィールドが重要になります。
-
name: 一貫性のないレプリカを持つオブジェクトの名前。 -
nspace: プールを論理的に分離する名前空間。デフォルトでは空です。 -
locator: 配置のオブジェクト名の代わりに使用されるキー。 -
snap: オブジェクトのスナップショット ID。オブジェクトの書き込み可能な唯一のバージョンはheadと呼ばれます。オブジェクトがクローンの場合、このフィールドにはそのシーケンシャル ID が含まれます。 -
version: 一貫性のないレプリカを持つオブジェクトのバージョン ID。オブジェクトへの書き込み操作ごとにインクリメントされます。 errors: シャードの不一致を判別することなくシャード間の不整合を示すエラーのリスト。エラーをさらに調べるには、shardアレイを参照してください。-
data_digest_mismatch: 1 つの OSD から読み取られるレプリカのダイジェストは他の OSD とは異なります。 -
size_mismatch: クローンのサイズまたはheadオブジェクトが期待したサイズと一致しない。 -
read_error: このエラーは、ディスクエラーが発生したために不整合が発生したことを示しています。
-
union_shard_error: シャードに固有のすべてのエラーの結合。これらのエラーは、問題のあるシャードに関連しています。oiで終わるエラーは、障害のあるオブジェクトからの情報と、選択したオブジェクトとの情報を比較する必要があることを示しています。エラーをさらに調べるには、shardアレイを参照してください。上記の例では、
osd.2に保存されているオブジェクトレプリカは、osd.0およびosd.1に保存されているレプリカとは異なるダイジェストを持ちます。具体的には、レプリカのダイジェストは、osd.2から読み取るシャードから計算した0xffffffffではなく、0xe978e67fです。さらに、osd.2から読み込むレプリカのサイズは 0 ですが、osd.0およびosd.1によって報告されるサイズは 968 です。
-
一貫性のないスナップショットのセットを一覧表示します
構文
rados list-inconsistent-snapset PLACEMENT_GROUP_ID
rados list-inconsistent-snapset PLACEMENT_GROUP_IDCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow このコマンドは、以下のエラーを返します。
-
ss_attr_missing: 1 つ以上の属性がありません。属性とは、スナップショットに関する情報で、キーと値のペアのリストとしてスナップショットセットにエンコードされます。 -
ss_attr_corrupted: 1 つ以上の属性がデコードできません。 -
clone_missing: クローンがありません。 -
snapset_mismatch: スナップショットセット自体に一貫性がありません。 -
head_mismatch: スナップショットセットは、headが存在するか、存在しない場合はスクラブ結果を報告します。 -
headless: スナップショットセットのheadがありません。 -
size_mismatch: クローンのサイズまたはheadオブジェクトが期待したサイズと一致しない。
-
7.4. 不整合な配置グループの修正 リンクのコピーリンクがクリップボードにコピーされました!
ディープスクラビング中のエラーにより、一部の配置グループの整合性が失われる可能性があります。Ceph は、配置グループの inconsistent をとります。
HEALTH_ERR 1 pgs inconsistent; 2 scrub errors pg 0.6 is active+clean+inconsistent, acting [0,1,2] 2 scrub errors
HEALTH_ERR 1 pgs inconsistent; 2 scrub errors
pg 0.6 is active+clean+inconsistent, acting [0,1,2]
2 scrub errors
特定の不整合のみを修復できます。
Ceph のログに以下のエラーが含まれている場合は、配置グループを修復しないでください。
_PG_._ID_ shard _OSD_: soid _OBJECT_ digest _DIGEST_ != known digest _DIGEST_ _PG_._ID_ shard _OSD_: soid _OBJECT_ omap_digest _DIGEST_ != known omap_digest _DIGEST_
_PG_._ID_ shard _OSD_: soid _OBJECT_ digest _DIGEST_ != known digest _DIGEST_
_PG_._ID_ shard _OSD_: soid _OBJECT_ omap_digest _DIGEST_ != known omap_digest _DIGEST_
代わりにサポートチケットを作成してください。詳細は、サービスについて Red Hat サポートへの問い合わせ を参照してください。
前提条件
- Ceph Monitor ノードへの root レベルのアクセス。
手順
inconsistent配置グループを修復します。構文
ceph pg repair ID
ceph pg repair IDCopy to Clipboard Copied! Toggle word wrap Toggle overflow IDを、inconsistent配置グループの ID に置き換えます。
7.5. 配置グループの増加 リンクのコピーリンクがクリップボードにコピーされました!
配置グループ (PG) 数が十分でないと、Ceph クラスターおよびデータ分散のパフォーマンスに影響します。これは、nearfull osds エラーメッセージの主な原因の 1 つです。
推奨される比率は、OSD 1 つに対して 100 から 300 個の PG です。この比率は、OSD をクラスターに追加すると減らすことができます。
pg_num パラメーターおよび pgp_num パラメーターにより、PG 数が決まります。これらのパラメーターは各プールごとに設定されるため、PG 数が少ないプールは個別に調整する必要があります。
PG 数を増やすことは、Ceph クラスターで実行できる最も負荷のかかる処理です。このプロセスは、ゆっくりと計画的に行わないと、パフォーマンスに深刻な影響を与える可能性があります。pgp_num を増やすと、プロセスを停止したり元に戻したりすることはできず、完了する必要があります。ビジネスクリティカルな処理時間の割り当て以外で PG 数を増やすことを検討し、パフォーマンスに影響を与える可能性があることをすべてのクライアントに警告します。クラスターが HEALTH_ERR 状態にある場合は、PG 数を変更しないでください。
前提条件
- 健全な状態で稼働中の Red Hat Ceph Storage クラスター。
- ノードへのルートレベルのアクセス。
手順
データの再分配やリカバリーが個々の OSD や OSD ホストに与える影響を軽減します。
osd max backfills、osd_recovery_max_active、およびosd_recovery_op_priorityパラメーターの値を減らします。[ceph: root@host01 /]# ceph tell osd.* injectargs '--osd_max_backfills 1 --osd_recovery_max_active 1 --osd_recovery_op_priority 1'
[ceph: root@host01 /]# ceph tell osd.* injectargs '--osd_max_backfills 1 --osd_recovery_max_active 1 --osd_recovery_op_priority 1'Copy to Clipboard Copied! Toggle word wrap Toggle overflow シャローおよびディープスクラビングを無効にします。
[ceph: root@host01 /]# ceph osd set noscrub [ceph: root@host01 /]# ceph osd set nodeep-scrub
[ceph: root@host01 /]# ceph osd set noscrub [ceph: root@host01 /]# ceph osd set nodeep-scrubCopy to Clipboard Copied! Toggle word wrap Toggle overflow
-
Ceph Placement Groups (PGs) per Pool Calculator を使用して、
pg_numパラメーターおよびpgp_numパラメーターの最適な値を計算します。 必要な値に達するまで、
pg_numの値を少し増やします。- インクリメントの開始値を決定します。2 の累乗である非常に低い値を使用し、クラスターへの影響を判断して増やします。最適な値は、プールサイズ、OSD 数、クライアント I/O 負荷によって異なります。
pg_numの値を増やします。構文
ceph osd pool set POOL pg_num VALUE
ceph osd pool set POOL pg_num VALUECopy to Clipboard Copied! Toggle word wrap Toggle overflow プール名と新しい値を指定します。例を以下に示します。
例
[ceph: root@host01 /]# ceph osd pool set data pg_num 4
[ceph: root@host01 /]# ceph osd pool set data pg_num 4Copy to Clipboard Copied! Toggle word wrap Toggle overflow クラスターのステータスを監視します。
例
[ceph: root@host01 /]# ceph -s
[ceph: root@host01 /]# ceph -sCopy to Clipboard Copied! Toggle word wrap Toggle overflow PG の状態は、
creatingからactive+cleanに変わります。すべての PG がactive+cleanの状態になるまで待ちます。
必要な値に達するまで、
pgp_numの値を少し増やします。- インクリメントの開始値を決定します。2 の累乗である非常に低い値を使用し、クラスターへの影響を判断して増やします。最適な値は、プールサイズ、OSD 数、クライアント I/O 負荷によって異なります。
pgp_numの値を増やします。構文
ceph osd pool set POOL pgp_num VALUE
ceph osd pool set POOL pgp_num VALUECopy to Clipboard Copied! Toggle word wrap Toggle overflow プール名と新しい値を指定します。例を以下に示します。
[ceph: root@host01 /]# ceph osd pool set data pgp_num 4
[ceph: root@host01 /]# ceph osd pool set data pgp_num 4Copy to Clipboard Copied! Toggle word wrap Toggle overflow クラスターのステータスを監視します。
[ceph: root@host01 /]# ceph -s
[ceph: root@host01 /]# ceph -sCopy to Clipboard Copied! Toggle word wrap Toggle overflow PG の状態は、
peering、wait_backfill、backfilling、recoverなどによって変わります。すべての PG がactive+cleanの状態になるまで待ちます。
- PG 数が不足しているすべてのプールに対して、前の手順を繰り返します。
osd max backfills、osd_recovery_max_active、およびosd_recovery_op_priorityをデフォルト値に設定します。[ceph: root@host01 /]# ceph tell osd.* injectargs '--osd_max_backfills 1 --osd_recovery_max_active 3 --osd_recovery_op_priority 3'
[ceph: root@host01 /]# ceph tell osd.* injectargs '--osd_max_backfills 1 --osd_recovery_max_active 3 --osd_recovery_op_priority 3'Copy to Clipboard Copied! Toggle word wrap Toggle overflow シャローおよびディープスクラビングを有効にします。
[ceph: root@host01 /]# ceph osd unset noscrub [ceph: root@host01 /]# ceph osd unset nodeep-scrub
[ceph: root@host01 /]# ceph osd unset noscrub [ceph: root@host01 /]# ceph osd unset nodeep-scrubCopy to Clipboard Copied! Toggle word wrap Toggle overflow
- 詳細は、3章ネットワークの問題のトラブルシューティング を参照してください。
- Ceph Monitor に関連する最も一般的なエラーのトラブルシューティングについては、4章Ceph Monitor のトラブルシューティング を参照してください。
- Ceph OSD に関連する最も一般的なエラーのトラブルシューティングに関する情報は、5章Ceph OSD のトラブルシューティング を参照してください。
- PG オートスケーラーの詳細については、Red Hat Ceph Storage ストレージ戦略ガイドの 配置グループの自動スケーリング セクションを参照してください。
第8章 Ceph オブジェクトのトラブルシューティング リンクのコピーリンクがクリップボードにコピーされました!
ストレージ管理者は、ceph-objectstore-tool ユーティリティーを使用して高レベルまたは低レベルのオブジェクト操作を実行することができます。ceph-objectstore-tool ユーティリティーは、特定の OSD または配置グループ内のオブジェクトに関する問題のトラブルシューティングに役立ちます。
オブジェクトを操作すると、回復不能なデータ損失が発生する可能性があります。ceph-objectstore-tool ユーティリティーを使用する前に、Red Hat サポートにお問い合わせください。
前提条件
- ネットワーク関連の問題がないことを確認します。
8.1. ハイレベルなオブジェクト操作のトラブルシューティング リンクのコピーリンクがクリップボードにコピーされました!
ストレージ管理者は、ceph-objectstore-tool ユーティリティーを使用して高レベルのオブジェクト操作を実行することができます。ceph-objectstore-tool ユーティリティーは、以下の高レベルのオブジェクト操作をサポートします。
- オブジェクトのリスト表示
- 失われたオブジェクトのリスト表示
- 失われたオブジェクトの修正
オブジェクトを操作すると、回復不能なデータ損失が発生する可能性があります。ceph-objectstore-tool ユーティリティーを使用する前に、Red Hat サポートにお問い合わせください。
前提条件
- Ceph OSD ノードへのルートレベルのアクセス。
8.1.1. オブジェクトのリスト表示 リンクのコピーリンクがクリップボードにコピーされました!
OSD には、ゼロ対多の配置グループを含めることができ、1 つの配置グループ (PG) 内にゼロ対多のオブジェクトを含めることができます。ceph-objectstore-tool ユーティリティーでは、OSD に保存されているオブジェクトをリスト表示することができます。
前提条件
- Ceph OSD ノードへのルートレベルのアクセス。
-
ceph-osdデーモンの停止。
手順
適切な OSD がダウンしていることを確認します。
構文
systemctl status ceph-FSID@osd.OSD_ID
systemctl status ceph-FSID@osd.OSD_IDCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
systemctl status ceph-b404c440-9e4c-11ec-a28a-001a4a0001df@osd.0.service
[root@host01 ~]# systemctl status ceph-b404c440-9e4c-11ec-a28a-001a4a0001df@osd.0.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow OSD コンテナーにログインします。
構文
cephadm shell --name osd.OSD_ID
cephadm shell --name osd.OSD_IDCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
cephadm shell --name osd.0
[root@host01 ~]# cephadm shell --name osd.0Copy to Clipboard Copied! Toggle word wrap Toggle overflow 配置グループに関係なく、OSD 内のすべてのオブジェクトを特定します。
構文
ceph-objectstore-tool --data-path PATH_TO_OSD --op list
ceph-objectstore-tool --data-path PATH_TO_OSD --op listCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
[ceph: root@host01 /]# ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-0 --op list
[ceph: root@host01 /]# ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-0 --op listCopy to Clipboard Copied! Toggle word wrap Toggle overflow 配置グループ内のすべてのオブジェクトを特定します。
構文
ceph-objectstore-tool --data-path PATH_TO_OSD --pgid PG_ID --op list
ceph-objectstore-tool --data-path PATH_TO_OSD --pgid PG_ID --op listCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
[ceph: root@host01 /]# ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-0 --pgid 0.1c --op list
[ceph: root@host01 /]# ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-0 --pgid 0.1c --op listCopy to Clipboard Copied! Toggle word wrap Toggle overflow オブジェクトが属する PG を特定します。
構文
ceph-objectstore-tool --data-path PATH_TO_OSD --op list OBJECT_ID
ceph-objectstore-tool --data-path PATH_TO_OSD --op list OBJECT_IDCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
[ceph: root@host01 /]# ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-0 --op list default.region
[ceph: root@host01 /]# ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-0 --op list default.regionCopy to Clipboard Copied! Toggle word wrap Toggle overflow
8.1.2. 失われたオブジェクトの修正 リンクのコピーリンクがクリップボードにコピーされました!
ceph-objectstore-tool ユーティリティーを使用して、Ceph OSD に保存されている 失われたオブジェクトおよび存在しないオブジェクト をリスト表示し、修正することができます。この手順は、レガシーオブジェクトにのみ適用されます。
前提条件
- Ceph OSD ノードへのルートレベルのアクセス。
-
ceph-osdデーモンの停止。
手順
適切な OSD がダウンしていることを確認します。
構文
systemctl status ceph-FSID@osd.OSD_ID
systemctl status ceph-FSID@osd.OSD_IDCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
systemctl status ceph-b404c440-9e4c-11ec-a28a-001a4a0001df@osd.0.service
[root@host01 ~]# systemctl status ceph-b404c440-9e4c-11ec-a28a-001a4a0001df@osd.0.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow OSD コンテナーにログインします。
構文
cephadm shell --name osd.OSD_ID
cephadm shell --name osd.OSD_IDCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
cephadm shell --name osd.0
[root@host01 ~]# cephadm shell --name osd.0Copy to Clipboard Copied! Toggle word wrap Toggle overflow 失われたレガシーオブジェクトをすべてリスト表示します。
構文
ceph-objectstore-tool --data-path PATH_TO_OSD --op fix-lost --dry-run
ceph-objectstore-tool --data-path PATH_TO_OSD --op fix-lost --dry-runCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
[ceph: root@host01 /]# ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-0 --op fix-lost --dry-run
[ceph: root@host01 /]# ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-0 --op fix-lost --dry-runCopy to Clipboard Copied! Toggle word wrap Toggle overflow ceph-objectstore-toolユーティリティーを使用して、失われたおよび未使用 のオブジェクトを修正します。適切な状況を選択します。失われたオブジェクトをすべて修正します。
構文
ceph-objectstore-tool --data-path PATH_TO_OSD --op fix-lost
ceph-objectstore-tool --data-path PATH_TO_OSD --op fix-lostCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
[ceph: root@host01 /]# ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-0 --op fix-lost
[ceph: root@host01 /]# ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-0 --op fix-lostCopy to Clipboard Copied! Toggle word wrap Toggle overflow 配置グループ内の失われたオブジェクトをすべて修正します。
構文
ceph-objectstore-tool --data-path PATH_TO_OSD --pgid PG_ID --op fix-lost
ceph-objectstore-tool --data-path PATH_TO_OSD --pgid PG_ID --op fix-lostCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
[ceph: root@host01 /]# ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-0 --pgid 0.1c --op fix-lost
[ceph: root@host01 /]# ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-0 --pgid 0.1c --op fix-lostCopy to Clipboard Copied! Toggle word wrap Toggle overflow 失われたオブジェクトを識別子で修正します。
構文
ceph-objectstore-tool --data-path PATH_TO_OSD --op fix-lost OBJECT_ID
ceph-objectstore-tool --data-path PATH_TO_OSD --op fix-lost OBJECT_IDCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
[ceph: root@host01 /]# ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-0 --op fix-lost default.region
[ceph: root@host01 /]# ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-0 --op fix-lost default.regionCopy to Clipboard Copied! Toggle word wrap Toggle overflow
8.2. 低レベルのオブジェクト操作のトラブルシューティング リンクのコピーリンクがクリップボードにコピーされました!
ストレージ管理者は、ceph-objectstore-tool ユーティリティーを使用して低レベルのオブジェクト操作を実行することができます。ceph-objectstore-tool ユーティリティーは、以下の低レベルのオブジェクト操作をサポートします。
- オブジェクトの内容の操作
- オブジェクトの削除
- オブジェクトマップ (OMAP) のリスト表示
- OMAP ヘッダーの操作
- OMAP キーの操作
- オブジェクトの属性のリスト表示
- オブジェクトの属性キーの操作
オブジェクトを操作すると、回復不能なデータ損失が発生する可能性があります。ceph-objectstore-tool ユーティリティーを使用する前に、Red Hat サポートにお問い合わせください。
前提条件
- Ceph OSD ノードへのルートレベルのアクセス。
8.2.1. オブジェクトの内容の操作 リンクのコピーリンクがクリップボードにコピーされました!
ceph-objectstore-tool ユーティリティーを使用すると、オブジェクトのバイトを取得または設定できます。
オブジェクトにバイト数を設定すると、回復できないデータ損失が発生する可能性があります。データの損失を防ぐには、オブジェクトのバックアップコピーを作成します。
前提条件
- Ceph OSD ノードへのルートレベルのアクセス。
-
ceph-osdデーモンの停止。
手順
適切な OSD がダウンしていることを確認します。
構文
systemctl status ceph-FSID@osd.OSD_ID
systemctl status ceph-FSID@osd.OSD_IDCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
systemctl status ceph-b404c440-9e4c-11ec-a28a-001a4a0001df@osd.0.service
[root@host01 ~]# systemctl status ceph-b404c440-9e4c-11ec-a28a-001a4a0001df@osd.0.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow OSD コンテナーにログインします。
構文
cephadm shell --name osd.OSD_ID
cephadm shell --name osd.OSD_IDCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
cephadm shell --name osd.0
[root@host01 ~]# cephadm shell --name osd.0Copy to Clipboard Copied! Toggle word wrap Toggle overflow - OSD または配置グループ (PG) のオブジェクトをリスト表示してオブジェクトを見つけます。
オブジェクトにバイトを設定する前に、そのオブジェクトのバックアップと作業コピーを作成します。
構文
ceph-objectstore-tool --data-path PATH_TO_OSD --pgid PG_ID \ OBJECT \ get-bytes > OBJECT_FILE_NAME
ceph-objectstore-tool --data-path PATH_TO_OSD --pgid PG_ID \ OBJECT \ get-bytes > OBJECT_FILE_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 作業コピーオブジェクトファイルを編集し、それに応じてオブジェクトの内容を変更します。
オブジェクトのバイトを設定します。
構文
ceph-objectstore-tool --data-path PATH_TO_OSD --pgid PG_ID \ OBJECT \ set-bytes < OBJECT_FILE_NAME
ceph-objectstore-tool --data-path PATH_TO_OSD --pgid PG_ID \ OBJECT \ set-bytes < OBJECT_FILE_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
[ceph: root@host01 /]# ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-0 --pgid 0.1c \ '{"oid":"zone_info.default","key":"","snapid":-2,"hash":235010478,"max":0,"pool":11,"namespace":""}' \ set-bytes < zone_info.default.working-copy[ceph: root@host01 /]# ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-0 --pgid 0.1c \ '{"oid":"zone_info.default","key":"","snapid":-2,"hash":235010478,"max":0,"pool":11,"namespace":""}' \ set-bytes < zone_info.default.working-copyCopy to Clipboard Copied! Toggle word wrap Toggle overflow
8.2.2. オブジェクトの削除 リンクのコピーリンクがクリップボードにコピーされました!
ceph-objectstore-tool ユーティリティーを使用してオブジェクトを削除します。オブジェクトを削除すると、そのコンテンツと参照は配置グループ (PG) から削除されます。
オブジェクトが削除されると、再作成できません。
前提条件
- Ceph OSD ノードへのルートレベルのアクセス。
-
ceph-osdデーモンの停止。
手順
OSD コンテナーにログインします。
構文
cephadm shell --name osd.OSD_ID
cephadm shell --name osd.OSD_IDCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
cephadm shell --name osd.0
[root@host01 ~]# cephadm shell --name osd.0Copy to Clipboard Copied! Toggle word wrap Toggle overflow オブジェクトの削除
構文
ceph-objectstore-tool --data-path PATH_TO_OSD --pgid PG_ID \ OBJECT \ remove
ceph-objectstore-tool --data-path PATH_TO_OSD --pgid PG_ID \ OBJECT \ removeCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
[ceph: root@host01 /]# ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-0 --pgid 0.1c \ '{"oid":"zone_info.default","key":"","snapid":-2,"hash":235010478,"max":0,"pool":11,"namespace":""}' \ remove[ceph: root@host01 /]# ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-0 --pgid 0.1c \ '{"oid":"zone_info.default","key":"","snapid":-2,"hash":235010478,"max":0,"pool":11,"namespace":""}' \ removeCopy to Clipboard Copied! Toggle word wrap Toggle overflow
8.2.3. オブジェクトマップのリスト表示 リンクのコピーリンクがクリップボードにコピーされました!
ceph-objectstore-tool ユーティリティーを使用して、オブジェクトマップ (OMAP) の内容をリスト表示します。この出力では、キーのリストが表示されます。
前提条件
- Ceph OSD ノードへのルートレベルのアクセス。
-
ceph-osdデーモンの停止。
手順
適切な OSD がダウンしていることを確認します。
構文
systemctl status ceph-osd@OSD_ID
systemctl status ceph-osd@OSD_IDCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
systemctl status ceph-b404c440-9e4c-11ec-a28a-001a4a0001df@osd.0.service
[root@host01 ~]# systemctl status ceph-b404c440-9e4c-11ec-a28a-001a4a0001df@osd.0.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow OSD コンテナーにログインします。
構文
cephadm shell --name osd.OSD_ID
cephadm shell --name osd.OSD_IDCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
cephadm shell --name osd.0
[root@host01 ~]# cephadm shell --name osd.0Copy to Clipboard Copied! Toggle word wrap Toggle overflow オブジェクトマップをリスト表示します。
構文
ceph-objectstore-tool --data-path PATH_TO_OSD --pgid PG_ID \ OBJECT \ list-omap
ceph-objectstore-tool --data-path PATH_TO_OSD --pgid PG_ID \ OBJECT \ list-omapCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
[ceph: root@host01 /]# ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-0 --pgid 0.1c \ '{"oid":"zone_info.default","key":"","snapid":-2,"hash":235010478,"max":0,"pool":11,"namespace":""}' \ list-omap[ceph: root@host01 /]# ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-0 --pgid 0.1c \ '{"oid":"zone_info.default","key":"","snapid":-2,"hash":235010478,"max":0,"pool":11,"namespace":""}' \ list-omapCopy to Clipboard Copied! Toggle word wrap Toggle overflow
8.2.4. オブジェクトマップヘッダーの操作 リンクのコピーリンクがクリップボードにコピーされました!
ceph-objectstore-tool ユーティリティーは、オブジェクトのキーに関連付けられた値と共にオブジェクトマップ (OMAP) ヘッダーを出力します。
前提条件
- Ceph OSD ノードへのルートレベルのアクセス。
-
ceph-osdデーモンの停止。
手順
適切な OSD がダウンしていることを確認します。
構文
systemctl status ceph-FSID@osd.OSD_ID
systemctl status ceph-FSID@osd.OSD_IDCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
systemctl status ceph-b404c440-9e4c-11ec-a28a-001a4a0001df@osd.0.service
[root@host01 ~]# systemctl status ceph-b404c440-9e4c-11ec-a28a-001a4a0001df@osd.0.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow OSD コンテナーにログインします。
構文
cephadm shell --name osd.OSD_ID
cephadm shell --name osd.OSD_IDCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
cephadm shell --name osd.0
[root@host01 ~]# cephadm shell --name osd.0Copy to Clipboard Copied! Toggle word wrap Toggle overflow オブジェクトマップヘッダーを取得します。
構文
ceph-objectstore-tool --data-path PATH_TO_OSD \ --pgid PG_ID OBJECT \ get-omaphdr > OBJECT_MAP_FILE_NAME
ceph-objectstore-tool --data-path PATH_TO_OSD \ --pgid PG_ID OBJECT \ get-omaphdr > OBJECT_MAP_FILE_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
[ceph: root@host01 /]# ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-0 \ --pgid 0.1c '{"oid":"zone_info.default","key":"","snapid":-2,"hash":235010478,"max":0,"pool":11,"namespace":""}' \ get-omaphdr > zone_info.default.omaphdr.txt[ceph: root@host01 /]# ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-0 \ --pgid 0.1c '{"oid":"zone_info.default","key":"","snapid":-2,"hash":235010478,"max":0,"pool":11,"namespace":""}' \ get-omaphdr > zone_info.default.omaphdr.txtCopy to Clipboard Copied! Toggle word wrap Toggle overflow オブジェクトマップヘッダーを設定します。
構文
ceph-objectstore-tool --data-path PATH_TO_OSD \ --pgid PG_ID OBJECT \ get-omaphdr < OBJECT_MAP_FILE_NAME
ceph-objectstore-tool --data-path PATH_TO_OSD \ --pgid PG_ID OBJECT \ get-omaphdr < OBJECT_MAP_FILE_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
[ceph: root@host01 /]# ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-0 \ --pgid 0.1c '{"oid":"zone_info.default","key":"","snapid":-2,"hash":235010478,"max":0,"pool":11,"namespace":""}' \ set-omaphdr < zone_info.default.omaphdr.txt[ceph: root@host01 /]# ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-0 \ --pgid 0.1c '{"oid":"zone_info.default","key":"","snapid":-2,"hash":235010478,"max":0,"pool":11,"namespace":""}' \ set-omaphdr < zone_info.default.omaphdr.txtCopy to Clipboard Copied! Toggle word wrap Toggle overflow
8.2.5. オブジェクトマップキーの操作 リンクのコピーリンクがクリップボードにコピーされました!
ceph-objectstore-tool ユーティリティーを使用して、オブジェクトマップ (OMAP) キーを変更します。OMAP では、データパス、配置グループ識別子 (PG ID)、オブジェクト、およびキーを指定する必要があります。
前提条件
- Ceph OSD ノードへのルートレベルのアクセス。
-
ceph-osdデーモンの停止。
手順
OSD コンテナーにログインします。
構文
cephadm shell --name osd.OSD_ID
cephadm shell --name osd.OSD_IDCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
cephadm shell --name osd.0
[root@host01 ~]# cephadm shell --name osd.0Copy to Clipboard Copied! Toggle word wrap Toggle overflow オブジェクトマップキーを取得します。
構文
ceph-objectstore-tool --data-path PATH_TO_OSD \ --pgid PG_ID OBJECT \ get-omap KEY > OBJECT_MAP_FILE_NAME
ceph-objectstore-tool --data-path PATH_TO_OSD \ --pgid PG_ID OBJECT \ get-omap KEY > OBJECT_MAP_FILE_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
[ceph: root@host01 /]# ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-0 \ --pgid 0.1c '{"oid":"zone_info.default","key":"","snapid":-2,"hash":235010478,"max":0,"pool":11,"namespace":""}' \ get-omap "" > zone_info.default.omap.txt[ceph: root@host01 /]# ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-0 \ --pgid 0.1c '{"oid":"zone_info.default","key":"","snapid":-2,"hash":235010478,"max":0,"pool":11,"namespace":""}' \ get-omap "" > zone_info.default.omap.txtCopy to Clipboard Copied! Toggle word wrap Toggle overflow オブジェクトマップキーを設定します。
構文
ceph-objectstore-tool --data-path PATH_TO_OSD \ --pgid PG_ID OBJECT \ set-omap KEY < OBJECT_MAP_FILE_NAME
ceph-objectstore-tool --data-path PATH_TO_OSD \ --pgid PG_ID OBJECT \ set-omap KEY < OBJECT_MAP_FILE_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
[ceph: root@host01 /]# ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-0 \ --pgid 0.1c '{"oid":"zone_info.default","key":"","snapid":-2,"hash":235010478,"max":0,"pool":11,"namespace":""}' \ set-omap "" < zone_info.default.omap.txt[ceph: root@host01 /]# ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-0 \ --pgid 0.1c '{"oid":"zone_info.default","key":"","snapid":-2,"hash":235010478,"max":0,"pool":11,"namespace":""}' \ set-omap "" < zone_info.default.omap.txtCopy to Clipboard Copied! Toggle word wrap Toggle overflow オブジェクトマップキーを削除します。
構文
ceph-objectstore-tool --data-path PATH_TO_OSD \ --pgid PG_ID OBJECT \ rm-omap KEY
ceph-objectstore-tool --data-path PATH_TO_OSD \ --pgid PG_ID OBJECT \ rm-omap KEYCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
[ceph: root@host01 /]# ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-0 \ --pgid 0.1c '{"oid":"zone_info.default","key":"","snapid":-2,"hash":235010478,"max":0,"pool":11,"namespace":""}' \ rm-omap ""[ceph: root@host01 /]# ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-0 \ --pgid 0.1c '{"oid":"zone_info.default","key":"","snapid":-2,"hash":235010478,"max":0,"pool":11,"namespace":""}' \ rm-omap ""Copy to Clipboard Copied! Toggle word wrap Toggle overflow
8.2.6. オブジェクトの属性のリスト表示 リンクのコピーリンクがクリップボードにコピーされました!
ceph-objectstore-tool ユーティリティーを使用して、オブジェクトの属性をリスト表示します。この出力には、オブジェクトのキーと値が表示されます。
前提条件
- Ceph OSD ノードへのルートレベルのアクセス。
-
ceph-osdデーモンの停止。
手順
適切な OSD がダウンしていることを確認します。
構文
systemctl status ceph-FSID@osd.OSD_ID
systemctl status ceph-FSID@osd.OSD_IDCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
systemctl status ceph-b404c440-9e4c-11ec-a28a-001a4a0001df@osd.0.service
[root@host01 ~]# systemctl status ceph-b404c440-9e4c-11ec-a28a-001a4a0001df@osd.0.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow OSD コンテナーにログインします。
構文
cephadm shell --name osd.OSD_ID
cephadm shell --name osd.OSD_IDCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
cephadm shell --name osd.0
[root@host01 ~]# cephadm shell --name osd.0Copy to Clipboard Copied! Toggle word wrap Toggle overflow オブジェクトの属性をリスト表示します。
構文
ceph-objectstore-tool --data-path PATH_TO_OSD \ --pgid PG_ID OBJECT \ list-attrs
ceph-objectstore-tool --data-path PATH_TO_OSD \ --pgid PG_ID OBJECT \ list-attrsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
[ceph: root@host01 /]# ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-0 \ --pgid 0.1c '{"oid":"zone_info.default","key":"","snapid":-2,"hash":235010478,"max":0,"pool":11,"namespace":""}' \ list-attrs[ceph: root@host01 /]# ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-0 \ --pgid 0.1c '{"oid":"zone_info.default","key":"","snapid":-2,"hash":235010478,"max":0,"pool":11,"namespace":""}' \ list-attrsCopy to Clipboard Copied! Toggle word wrap Toggle overflow
8.2.7. オブジェクト属性キーの操作 リンクのコピーリンクがクリップボードにコピーされました!
ceph-objectstore-tool ユーティリティーを使用してオブジェクトの属性を変更します。オブジェクトの属性を操作するには、オブジェクトの属性のデータパス、配置グループ識別子 (PG ID)、オブジェクト、およびキーが必要です。
前提条件
- Ceph OSD ノードへのルートレベルのアクセス。
-
ceph-osdデーモンを停止します。
手順
適切な OSD がダウンしていることを確認します。
構文
systemctl status ceph-FSID@osd.OSD_ID
systemctl status ceph-FSID@osd.OSD_IDCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
systemctl status ceph-b404c440-9e4c-11ec-a28a-001a4a0001df@osd.0.service
[root@host01 ~]# systemctl status ceph-b404c440-9e4c-11ec-a28a-001a4a0001df@osd.0.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow OSD コンテナーにログインします。
構文
cephadm shell --name osd.OSD_ID
cephadm shell --name osd.OSD_IDCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
cephadm shell --name osd.0
[root@host01 ~]# cephadm shell --name osd.0Copy to Clipboard Copied! Toggle word wrap Toggle overflow オブジェクトの属性を取得します。
構文
ceph-objectstore-tool --data-path PATH_TO_OSD \ --pgid PG_ID OBJECT \ get-attr KEY > OBJECT_ATTRS_FILE_NAME
ceph-objectstore-tool --data-path PATH_TO_OSD \ --pgid PG_ID OBJECT \ get-attr KEY > OBJECT_ATTRS_FILE_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
[ceph: root@host01 /]# ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-0 \ --pgid 0.1c '{"oid":"zone_info.default","key":"","snapid":-2,"hash":235010478,"max":0,"pool":11,"namespace":""}' \ get-attr "oid" > zone_info.default.attr.txt[ceph: root@host01 /]# ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-0 \ --pgid 0.1c '{"oid":"zone_info.default","key":"","snapid":-2,"hash":235010478,"max":0,"pool":11,"namespace":""}' \ get-attr "oid" > zone_info.default.attr.txtCopy to Clipboard Copied! Toggle word wrap Toggle overflow オブジェクトの属性を設定します。
構文
ceph-objectstore-tool --data-path PATH_TO_OSD \ --pgid PG_ID OBJECT \ set-attr KEY < OBJECT_ATTRS_FILE_NAME
ceph-objectstore-tool --data-path PATH_TO_OSD \ --pgid PG_ID OBJECT \ set-attr KEY < OBJECT_ATTRS_FILE_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
[ceph: root@host01 /]# ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-0 \ --pgid 0.1c '{"oid":"zone_info.default","key":"","snapid":-2,"hash":235010478,"max":0,"pool":11,"namespace":""}' \ set-attr "oid" < zone_info.default.attr.txt[ceph: root@host01 /]# ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-0 \ --pgid 0.1c '{"oid":"zone_info.default","key":"","snapid":-2,"hash":235010478,"max":0,"pool":11,"namespace":""}' \ set-attr "oid" < zone_info.default.attr.txtCopy to Clipboard Copied! Toggle word wrap Toggle overflow オブジェクトの属性を削除します。
構文
ceph-objectstore-tool --data-path PATH_TO_OSD \ --pgid PG_ID OBJECT \ rm-attr KEY
ceph-objectstore-tool --data-path PATH_TO_OSD \ --pgid PG_ID OBJECT \ rm-attr KEYCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
[ceph: root@host01 /]# ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-0 \ --pgid 0.1c '{"oid":"zone_info.default","key":"","snapid":-2,"hash":235010478,"max":0,"pool":11,"namespace":""}' \ rm-attr "oid"[ceph: root@host01 /]# ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-0 \ --pgid 0.1c '{"oid":"zone_info.default","key":"","snapid":-2,"hash":235010478,"max":0,"pool":11,"namespace":""}' \ rm-attr "oid"Copy to Clipboard Copied! Toggle word wrap Toggle overflow
第9章 ストレッチモードでのクラスターのトラブルシューティング リンクのコピーリンクがクリップボードにコピーされました!
障害が発生したタイブレーカーモニターを交換および削除できます。必要に応じて、クラスターを強制的に回復モードまたは正常モードにすることもできます。
9.1. タイブレーカーをクォーラム内のモニターに置き換える リンクのコピーリンクがクリップボードにコピーされました!
タイブレーカーモニターに障害が発生した場合は、それをクォーラム内の既存のモニターに置き換えて、クラスターから削除できます。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- クラスターでストレッチモードが有効になっている
手順
自動化されたモニターのデプロイメントを無効にします。
例
[ceph: root@host01 /]# ceph orch apply mon --unmanaged Scheduled mon update…
[ceph: root@host01 /]# ceph orch apply mon --unmanaged Scheduled mon update…Copy to Clipboard Copied! Toggle word wrap Toggle overflow クォーラムでモニターを表示します。
例
[ceph: root@host01 /]# ceph -s mon: 5 daemons, quorum host01, host02, host04, host05 (age 30s), out of quorum: host07
[ceph: root@host01 /]# ceph -s mon: 5 daemons, quorum host01, host02, host04, host05 (age 30s), out of quorum: host07Copy to Clipboard Copied! Toggle word wrap Toggle overflow モニターを新しいタイブレーカーとしてクォーラムに設定します。
構文
ceph mon set_new_tiebreaker NEW_HOST
ceph mon set_new_tiebreaker NEW_HOSTCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
[ceph: root@host01 /]# ceph mon set_new_tiebreaker host02
[ceph: root@host01 /]# ceph mon set_new_tiebreaker host02Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要モニターが既存の非タイブレーカーモニターと同じ場所にある場合、エラーメッセージが表示されます。
例
[ceph: root@host01 /]# ceph mon set_new_tiebreaker host02 Error EINVAL: mon.host02 has location DC1, which matches mons host02 on the datacenter dividing bucket for stretch mode.
[ceph: root@host01 /]# ceph mon set_new_tiebreaker host02 Error EINVAL: mon.host02 has location DC1, which matches mons host02 on the datacenter dividing bucket for stretch mode.Copy to Clipboard Copied! Toggle word wrap Toggle overflow その場合は、モニターの場所を変更します。
構文
ceph mon set_location HOST datacenter=DATACENTER
ceph mon set_location HOST datacenter=DATACENTERCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
[ceph: root@host01 /]# ceph mon set_location host02 datacenter=DC3
[ceph: root@host01 /]# ceph mon set_location host02 datacenter=DC3Copy to Clipboard Copied! Toggle word wrap Toggle overflow 障害が発生したタイブレーカーモニターを削除します。
構文
ceph orch daemon rm FAILED_TIEBREAKER_MONITOR --force
ceph orch daemon rm FAILED_TIEBREAKER_MONITOR --forceCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
[ceph: root@host01 /]# ceph orch daemon rm mon.host07 --force Removed mon.host07 from host 'host07'
[ceph: root@host01 /]# ceph orch daemon rm mon.host07 --force Removed mon.host07 from host 'host07'Copy to Clipboard Copied! Toggle word wrap Toggle overflow モニターがホストから削除されたら、モニターを再デプロイします。
構文
ceph mon add HOST IP_ADDRESS datacenter=DATACENTER ceph orch daemon add mon HOST
ceph mon add HOST IP_ADDRESS datacenter=DATACENTER ceph orch daemon add mon HOSTCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
[ceph: root@host01 /]# ceph mon add host07 213.222.226.50 datacenter=DC1 [ceph: root@host01 /]# ceph orch daemon add mon host07
[ceph: root@host01 /]# ceph mon add host07 213.222.226.50 datacenter=DC1 [ceph: root@host01 /]# ceph orch daemon add mon host07Copy to Clipboard Copied! Toggle word wrap Toggle overflow クォーラムに 5 つのモニターがあることを確認します。
例
[ceph: root@host01 /]# ceph -s mon: 5 daemons, quorum host01, host02, host04, host05, host07 (age 15s)
[ceph: root@host01 /]# ceph -s mon: 5 daemons, quorum host01, host02, host04, host05, host07 (age 15s)Copy to Clipboard Copied! Toggle word wrap Toggle overflow すべてが正しく設定されていることを確認します。
例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow モニターを再デプロイします。
構文
ceph orch apply mon --placement="HOST_1, HOST_2, HOST_3, HOST_4, HOST_5”
ceph orch apply mon --placement="HOST_1, HOST_2, HOST_3, HOST_4, HOST_5”Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
[ceph: root@host01 /]# ceph orch apply mon --placement="host01, host02, host04, host05, host07" Scheduled mon update...
[ceph: root@host01 /]# ceph orch apply mon --placement="host01, host02, host04, host05, host07" Scheduled mon update...Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9.2. タイブレーカーを新しいモニターに交換する リンクのコピーリンクがクリップボードにコピーされました!
タイブレーカーモニターに障害が発生した場合は、それを新しいモニターに置き換えて、クラスターから削除できます。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- クラスターでストレッチモードが有効になっている
手順
新しいモニターをクラスターに追加します。
crush_locationを新しいモニターに手動で追加します。構文
ceph mon add NEW_HOST IP_ADDRESS datacenter=DATACENTER
ceph mon add NEW_HOST IP_ADDRESS datacenter=DATACENTERCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
[ceph: root@host01 /]# ceph mon add host06 213.222.226.50 datacenter=DC3 adding mon.host06 at [v2:213.222.226.50:3300/0,v1:213.222.226.50:6789/0]
[ceph: root@host01 /]# ceph mon add host06 213.222.226.50 datacenter=DC3 adding mon.host06 at [v2:213.222.226.50:3300/0,v1:213.222.226.50:6789/0]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記新しいモニターは、既存の非タイブレーカーモニターとは別の場所に配置する必要があります。
自動化されたモニターのデプロイメントを無効にします。
例
[ceph: root@host01 /]# ceph orch apply mon --unmanaged Scheduled mon update…
[ceph: root@host01 /]# ceph orch apply mon --unmanaged Scheduled mon update…Copy to Clipboard Copied! Toggle word wrap Toggle overflow 新しいモニターをデプロイします。
構文
ceph orch daemon add mon NEW_HOST
ceph orch daemon add mon NEW_HOSTCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
[ceph: root@host01 /]# ceph orch daemon add mon host06
[ceph: root@host01 /]# ceph orch daemon add mon host06Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6 つのモニターがあり、そのうちの 5 つがクォーラムにあることを確認します。
例
[ceph: root@host01 /]# ceph -s mon: 6 daemons, quorum host01, host02, host04, host05, host06 (age 30s), out of quorum: host07
[ceph: root@host01 /]# ceph -s mon: 6 daemons, quorum host01, host02, host04, host05, host06 (age 30s), out of quorum: host07Copy to Clipboard Copied! Toggle word wrap Toggle overflow 新しいモニターを新しいタイブレーカーとして設定します。
構文
ceph mon set_new_tiebreaker NEW_HOST
ceph mon set_new_tiebreaker NEW_HOSTCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
[ceph: root@host01 /]# ceph mon set_new_tiebreaker host06
[ceph: root@host01 /]# ceph mon set_new_tiebreaker host06Copy to Clipboard Copied! Toggle word wrap Toggle overflow 障害が発生したタイブレーカーモニターを削除します。
構文
ceph orch daemon rm FAILED_TIEBREAKER_MONITOR --force
ceph orch daemon rm FAILED_TIEBREAKER_MONITOR --forceCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
[ceph: root@host01 /]# ceph orch daemon rm mon.host07 --force Removed mon.host07 from host 'host07'
[ceph: root@host01 /]# ceph orch daemon rm mon.host07 --force Removed mon.host07 from host 'host07'Copy to Clipboard Copied! Toggle word wrap Toggle overflow すべてが正しく設定されていることを確認します。
例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow モニターを再デプロイします。
構文
ceph orch apply mon --placement="HOST_1, HOST_2, HOST_3, HOST_4, HOST_5”
ceph orch apply mon --placement="HOST_1, HOST_2, HOST_3, HOST_4, HOST_5”Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
[ceph: root@host01 /]# ceph orch apply mon --placement="host01, host02, host04, host05, host06" Scheduled mon update…
[ceph: root@host01 /]# ceph orch apply mon --placement="host01, host02, host04, host05, host06" Scheduled mon update…Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9.3. ストレッチクラスターを強制的に回復モードまたは正常モードにする リンクのコピーリンクがクリップボードにコピーされました!
Stretch Degraded モードの場合、切断されたデータセンターが復旧すると、クラスターは自動的に回復モードになります。それが起こらない場合、または回復モードを早期に有効にしたい場合は、ストレッチクラスターを強制的に回復モードにすることができます。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- クラスターでストレッチモードが有効になっている
手順
ストレッチクラスターを強制的に回復モードにします。
例
[ceph: root@host01 /]# ceph osd force_recovery_stretch_mode --yes-i-really-mean-it
[ceph: root@host01 /]# ceph osd force_recovery_stretch_mode --yes-i-really-mean-itCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記回復状態では、クラスターは
HEALTH_WARN状態になります。回復モードの場合、配置グループが正常になった後、クラスターは通常のストレッチモードに戻る必要があります。それが起こらない場合は、ストレッチクラスターを強制的に正常モードにすることができます。
例
[ceph: root@host01 /]# ceph osd force_healthy_stretch_mode --yes-i-really-mean-it
[ceph: root@host01 /]# ceph osd force_healthy_stretch_mode --yes-i-really-mean-itCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記クロスデータセンターピアリングを早期に強制する必要があり、データダウンタイムのリスクを許容する場合、またはすべての配置グループが完全に復旧していなくてもピアリングできることを個別に確認している場合にも、このコマンドを実行できます。
また、回復状態によって生成される
HEALTH_WARN状態を削除するために、正常モードを呼び出すこともできます。注記force_recovery_stretch_modeおよびforce_recovery_healthy_modeコマンドは、予期しない状況を管理するプロセスに含まれているため、必要ありません。
第10章 Red Hat サポートへのサービスの問い合わせ リンクのコピーリンクがクリップボードにコピーされました!
この章では、このガイドの情報で問題が解決しなかった場合に Red Hat のサポートサービスに連絡する方法を説明します。
前提条件
- Red Hat サポートアカウント
10.1. Red Hat サポートエンジニアへの情報提供 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Ceph Storage に関連する問題を解決できない場合は、Red Hat サポートサービスに連絡し、サポートエンジニアが迅速にトラブルシューティングできるように多くの情報を提供します。
前提条件
- ノードへのルートレベルのアクセス。
- Red Hat サポートアカウント
手順
- Red Hat カスタマーポータル でサポートチケットを作成します。
-
理想的には、
sosreportをチケットに割り当てます。詳細は、What is an sosreport and how to create one in Red Hat Enterprise Linux? を参照してください。 - Ceph デーモンにセグメンテーション違反で失敗した場合には、人間が判読できるコアダンプファイルの生成を検討してください。詳細は 読み取り可能なコアダンプファイルの生成 を参照してください。
10.2. 判読可能なコアダンプファイルの生成 リンクのコピーリンクがクリップボードにコピーされました!
Ceph デーモンがセグメンテーション違反で突然終了した場合は、その障害に関する情報を収集し、Red Hat サポートエンジニアに提供します。
このような情報は初期調査を迅速化します。また、サポートエンジニアは、コアダンプファイルの情報を Red Hat Ceph Storage クラスターの既知の問題と比較できます。
前提条件
debuginfo パッケージがインストールされていない場合はインストールしておく。
次のリポジトリーを有効にして、必要な debuginfo パッケージをインストールしておく。
例
subscription-manager repos --enable=rhceph-6-tools-for-rhel-9-x86_64-rpms yum --enable=rhceph-6-tools-for-rhel-9-x86_64-debug-rpms
[root@host01 ~]# subscription-manager repos --enable=rhceph-6-tools-for-rhel-9-x86_64-rpms [root@host01 ~]# yum --enable=rhceph-6-tools-for-rhel-9-x86_64-debug-rpmsCopy to Clipboard Copied! Toggle word wrap Toggle overflow リポジトリーを有効にすると、サポートされるパッケージのこの一覧から必要な debug info パッケージをインストールできます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
gdbパッケージがインストールされていることを確認します。インストールされていない場合は、インストールします。例
dnf install gdb
[root@host01 ~]# dnf install gdbCopy to Clipboard Copied! Toggle word wrap Toggle overflow
10.2.1. コンテナー化されたデプロイメントでの判読可能なコアダンプファイルの生成 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Ceph Storage 6 のコアダンプファイルを生成できます。これには、コアダンプファイルをキャプチャーする 2 つのシナリオが含まれます。
- SIGILL、SIGTRAP、SIGABRT、または SIGSEGV エラーにより、Ceph プロセスが予期せず終了した場合。
または
- 手動の場合。たとえば、Ceph プロセスが高い CPU サイクルを消費したり、応答がないなど、問題を手動でデバッグする場合。
前提条件
- Ceph コンテナーを実行するコンテナーノードへの root レベルのアクセス。
- 適切なデバッグパッケージのインストール
-
GNU Project Debugger (
gdb) パッケージのインストール。 - ホストに 8 GB 以上の RAM があることを確認します。ホストに複数のデーモンがある場合は、Red Hat は RAM を増やすことを推奨します。
手順
SIGILL、SIGTRAP、SIGABRT、または SIGSEGV エラーにより、Ceph プロセスが予期せず終了した場合。
障害の発生した Ceph プロセスのあるコンテナーが実行しているノードの
systemd-coredumpサービスにコアパターンを設定します。例
echo "| /usr/lib/systemd/systemd-coredump %P %u %g %s %t %c %h %e" > /proc/sys/kernel/core_pattern
[root@mon]# echo "| /usr/lib/systemd/systemd-coredump %P %u %g %s %t %c %h %e" > /proc/sys/kernel/core_patternCopy to Clipboard Copied! Toggle word wrap Toggle overflow Ceph プロセスが原因でコンテナーに関する次の障害の有無を確認し、
/var/lib/systemd/coredump/ディレクトリーでコアダンプファイルを検索します。例
ls -ltr /var/lib/systemd/coredump
[root@mon]# ls -ltr /var/lib/systemd/coredump total 8232 -rw-r-----. 1 root root 8427548 Jan 22 19:24 core.ceph-osd.167.5ede29340b6c4fe4845147f847514c12.15622.1584573794000000.xzCopy to Clipboard Copied! Toggle word wrap Toggle overflow
Ceph OSD および Ceph Monitors のコアダンプファイルを手動でキャプチャーするには、以下を実行します。
MONITOR_ID または OSD_ID を取得して、コンテナーを入力します。
構文
podman ps podman exec -it MONITOR_ID_OR_OSD_ID bash
podman ps podman exec -it MONITOR_ID_OR_OSD_ID bashCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
podman ps podman exec -it ceph-1ca9f6a8-d036-11ec-8263-fa163ee967ad-osd-2 bash
[root@host01 ~]# podman ps [root@host01 ~]# podman exec -it ceph-1ca9f6a8-d036-11ec-8263-fa163ee967ad-osd-2 bashCopy to Clipboard Copied! Toggle word wrap Toggle overflow procps-ngパッケージおよびgdbパッケージをコンテナーにインストールします。例
dnf install procps-ng gdb
[root@host01 ~]# dnf install procps-ng gdbCopy to Clipboard Copied! Toggle word wrap Toggle overflow プロセス ID を検索します。
構文
ps -aef | grep PROCESS | grep -v run
ps -aef | grep PROCESS | grep -v runCopy to Clipboard Copied! Toggle word wrap Toggle overflow PROCESS は、実行中のプロセスの名前に置き換えます (例:
ceph-monまたはceph-osd)。例
ps -aef | grep ceph-mon | grep -v run
[root@host01 ~]# ps -aef | grep ceph-mon | grep -v run ceph 15390 15266 0 18:54 ? 00:00:29 /usr/bin/ceph-mon --cluster ceph --setroot ceph --setgroup ceph -d -i 5 ceph 18110 17985 1 19:40 ? 00:00:08 /usr/bin/ceph-mon --cluster ceph --setroot ceph --setgroup ceph -d -i 2Copy to Clipboard Copied! Toggle word wrap Toggle overflow コアダンプファイルを生成します。
構文
gcore ID
gcore IDCopy to Clipboard Copied! Toggle word wrap Toggle overflow ID を、前の手順で取得したプロセスの ID に置き換えます (例:
18110)。例
gcore 18110
[root@host01 ~]# gcore 18110 warning: target file /proc/18110/cmdline contained unexpected null characters Saved corefile core.18110Copy to Clipboard Copied! Toggle word wrap Toggle overflow コアダンプファイルが正しく生成されていることを確認します。
例
ls -ltr
[root@host01 ~]# ls -ltr total 709772 -rw-r--r--. 1 root root 726799544 Mar 18 19:46 core.18110Copy to Clipboard Copied! Toggle word wrap Toggle overflow Ceph Monitor コンテナー外部でコアダンプファイルをコピーします。
構文
podman cp ceph-mon-MONITOR_ID:/tmp/mon.core.MONITOR_PID /tmp
podman cp ceph-mon-MONITOR_ID:/tmp/mon.core.MONITOR_PID /tmpCopy to Clipboard Copied! Toggle word wrap Toggle overflow MONITOR_ID を Ceph Monitor の ID 番号に置き換え、MONITOR_PID をプロセス ID 番号に置き換えます。
他の Ceph デーモンのコアダンプファイルを手動でキャプチャーするには、以下を実行します。
cephadmシェルにログインします。例
cephadm shell
[root@host03 ~]# cephadm shellCopy to Clipboard Copied! Toggle word wrap Toggle overflow デーモンの
ptraceを有効にします。例
[ceph: root@host01 /]# ceph config set mgr mgr/cephadm/allow_ptrace true
[ceph: root@host01 /]# ceph config set mgr mgr/cephadm/allow_ptrace trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow デーモンサービスを再デプロイします。
構文
ceph orch redeploy SERVICE_ID
ceph orch redeploy SERVICE_IDCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
[ceph: root@host01 /]# ceph orch redeploy mgr [ceph: root@host01 /]# ceph orch redeploy rgw.rgw.1
[ceph: root@host01 /]# ceph orch redeploy mgr [ceph: root@host01 /]# ceph orch redeploy rgw.rgw.1Copy to Clipboard Copied! Toggle word wrap Toggle overflow cephadm shellを終了し、デーモンがデプロイされているホストにログインします。例
ssh root@10.0.0.11
[ceph: root@host01 /]# exit [root@host01 ~]# ssh root@10.0.0.11Copy to Clipboard Copied! Toggle word wrap Toggle overflow DAEMON_ID を取得して、コンテナーを入力します。
例
podman ps podman exec -it ceph-1ca9f6a8-d036-11ec-8263-fa163ee967ad-rgw-rgw-1-host04 bash
[root@host04 ~]# podman ps [root@host04 ~]# podman exec -it ceph-1ca9f6a8-d036-11ec-8263-fa163ee967ad-rgw-rgw-1-host04 bashCopy to Clipboard Copied! Toggle word wrap Toggle overflow procps-ngパッケージおよびgdbパッケージをインストールします。例
dnf install procps-ng gdb
[root@host04 /]# dnf install procps-ng gdbCopy to Clipboard Copied! Toggle word wrap Toggle overflow プロセスの PID を取得します。
例
ps aux | grep rados
[root@host04 /]# ps aux | grep rados ceph 6 0.3 2.8 5334140 109052 ? Sl May10 5:25 /usr/bin/radosgw -n client.rgw.rgw.1.host04 -f --setuser ceph --setgroup ceph --default-log-to-file=false --default-log-to-stderr=true --default-log-stderr-prefix=debugCopy to Clipboard Copied! Toggle word wrap Toggle overflow コアダンプを収集します。
構文
gcore PID
gcore PIDCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
gcore 6
[root@host04 /]# gcore 6Copy to Clipboard Copied! Toggle word wrap Toggle overflow コアダンプファイルが正しく生成されていることを確認します。
例
ls -ltr
[root@host04 /]# ls -ltr total 108798 -rw-r--r--. 1 root root 726799544 Mar 18 19:46 core.6Copy to Clipboard Copied! Toggle word wrap Toggle overflow コンテナー外でコアダンプファイルをコピーします。
構文
podman cp ceph-mon-DAEMON_ID:/tmp/mon.core.PID /tmp
podman cp ceph-mon-DAEMON_ID:/tmp/mon.core.PID /tmpCopy to Clipboard Copied! Toggle word wrap Toggle overflow DAEMON_ID は Ceph デーモンの ID 番号に、PID はプロセス ID 番号に置き換えます。
systemd-coredump がクラッシュした ceph デーモンのコアダンプを正常に保存できるようにするには、次の手順を実行します。/etc/systemd/system.confでDefaultLimitCORE を無限大 に設定して、クラッシュしたプロセスのコアダンプ収集を許可します。構文
cat /etc/systemd/system.conf DefaultLimitCORE=infinity
# cat /etc/systemd/system.conf DefaultLimitCORE=infinityCopy to Clipboard Copied! Toggle word wrap Toggle overflow systemdまたはノードを再起動して、更新されたsystemd設定を適用します。構文
sudo systemctl daemon-reexec
# sudo systemctl daemon-reexecCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以前のデーモンのクラッシュに関連するコアダンプファイルを確認します。
構文
ls -ltr /var/lib/systemd/coredump/
# ls -ltr /var/lib/systemd/coredump/Copy to Clipboard Copied! Toggle word wrap Toggle overflow
- Red Hat サポートケースに分析用のコアダンプファイルをアップロードします。詳細は、Red Hat サポートエンジニアへの情報の提供 を参照してください。
付録A Ceph サブシステムのデフォルトログレベルの値 リンクのコピーリンクがクリップボードにコピーされました!
さまざまな Ceph サブシステムにおけるデフォルトのログレベル値の表
| サブシステム | ログレベル | メモリーレベル |
|---|---|---|
|
| 1 | 5 |
|
| 1 | 5 |
|
| 0 | 0 |
|
| 0 | 5 |
|
| 0 | 5 |
|
| 1 | 5 |
|
| 0 | 5 |
|
| 0 | 5 |
|
| 1 | 5 |
|
| 1 | 5 |
|
| 1 | 5 |
|
| 1 | 5 |
|
| 0 | 5 |
|
| 1 | 5 |
|
| 0 | 5 |
|
| 1 | 5 |
|
| 1 | 5 |
|
| 1 | 5 |
|
| 1 | 5 |
|
| 1 | 5 |
|
| 1 | 5 |
|
| 0 | 5 |
|
| 1 | 5 |
|
| 0 | 5 |
|
| 0 | 5 |
|
| 0 | 5 |
|
| 0 | 0 |
|
| 0 | 5 |
|
| 0 | 5 |
|
| 0 | 5 |
|
| 1 | 5 |
|
| 0 | 5 |
|
| 0 | 5 |
|
| 1 | 5 |
|
| 1 | 5 |
|
| 0 | 5 |
|
| 0 | 5 |
付録B Ceph クラスターの正常性メッセージ リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Ceph Storage クラスターが出力する可能性のある正常性メッセージには限りがあります。これらは、固有の識別子を持つヘルスチェックとして定義されています。識別子は、ツールが正常性チェックを理解し、その意味を反映する方法でそれらを提示できるようにすることを目的とした、簡潔な疑似人間可読文字列です。
| 正常性コード | 説明 |
|---|---|
|
| すべてのデーモンで古いバージョンの Ceph が実行されている場合は警告します。複数のバージョンが検出された場合は、正常性エラーが発生します。 |
|
| 1 つまたは複数の Ceph Monitor デーモンが現在ダウンしています。 |
|
|
|
|
|
|
|
| 1 つまたは複数の Ceph Monitor のディスク領域が不足しています。 |
|
| 1 つまたは複数の Ceph Monitor のディスク領域が極端に少なくなっています。 |
|
| 1 つまたは複数の Ceph Monitor のデータベースサイズが非常に大きくなっています。 |
|
|
Ceph Monitor への再接続時に |
|
|
Ceph は現在、 |
| 正常性コード | 説明 |
|---|---|
|
| すべての Ceph Manager デーモンは現在ダウンしています。 |
|
| 有効な Ceph Manager モジュールが依存関係のチェックに失敗しています。 |
|
| Ceph Manager モジュールに予期せぬエラーが発生しました。通常、これは、モジュールのサーブ関数から未処理の例外が発生したことを意味します。 |
| 正常性コード | 説明 |
|---|---|
|
| 1 つまたは複数の OSD がダウンとマークされています。 |
|
| 特定の CRUSH サブツリー内のすべての OSD が down とマークされています。たとえば、あるホスト上のすべての OSD が down とマークされます。たとえば、OSD_HOST_DOWN および OSD_ROOT_DOWN です。 |
|
|
CRUSH マップの階層で OSD が参照されていますが、存在していません。 |
|
|
nearfull、backfillfull、full、または failsafefull の使用率のしきい値は昇順ではありません。 |
|
|
1 つ以上の OSD が完全なしきい値を超えており、ストレージクラスターが書き込みを処理できないようになっています。わずかなマージン |
|
| 1 つ以上の OSD が backfillfull しきい値を超えたため、データをこのデバイスにリバランスできなくなります。 |
|
| 1 つまたは複数の OSD が nearfull の閾値を超えました。 |
|
|
1 つまたは複数のストレージクラスターフラグが設定されています。これらのフラグには、full、pauserd、pausewr、noup、nodown、noin、noout、nobackfill、norecover、norebalance、noscrub、nodeep_scrub、および notieragent が含まれます。full 以外は、 |
|
| 1 つ以上の OSD または CRUSH に対象のフラグが設定されています。これらのフラグには、noup、nodown、noin、および noout があります。 |
|
| CRUSH マップは非常に古い設定を使用しているため、更新する必要があります。 |
|
|
CRUSH マップでは、 |
|
|
1 つ以上のキャッシュプールは、使用率を追跡するためのヒットセットで設定されていません。これにより、階層化エージェントがコールドオブジェクトを識別してフラッシュし、キャッシュから削除することができなくなります。 |
|
|
|
|
|
1 つまたは複数のプールがクォータに達し、書き込みを許可しなくなりました。 |
|
|
BlueStore バックエンドを使用する 1 つ以上の OSD には db パーティションが割り当てられていますが、その領域が満杯になっているため、メタデータが通常の低速デバイスに “あふれ出て” います。 |
|
| この出力では、BDEV_DB free、BDEV_SLOW free、および available_from_bluestore の 3 つの値が得られます。 |
|
|
BlueStore File System (BlueFS) の空き容量が少なく、 |
|
| BlueStore が動作すると、基盤となるストレージの空き領域が断片化されます。これは正常なことであり、避けられないことですが、過度のフラグメント化は速度低下の原因となります。 |
|
|
BlueStore は、プールごとの詳細ベースで内部使用統計を追跡し、1 つ以上の OSD に BlueStore ボリュームがあります。 |
|
|
BlueStore では、プールごとの omap 領域の使用状況を追跡しています。 |
|
|
BlueStore では、PG による omap 領域の利用状況を把握しています。 |
|
| BlueStore を使用している 1 つまたは複数の OSD で、物理デバイスのサイズとそのサイズを追跡するメタデータの間に内部不整合があります。 |
|
|
1 つまたは複数の OSD が、BlueStore 圧縮プラグインを読み込むことができません。これは、 |
|
| BlueStore を使用する 1 つ以上の OSD が、メインデバイスで誤った読み取りエラーを検出します。BlueStore はこれらのエラーに対して、ディスクの読み取りを再試行することで回復しました。 |
| 正常性コード | 説明 |
|---|---|
|
|
1 つ以上のデバイスが近日中に故障することが予想され、警告のしきい値が |
|
|
1 つ以上のデバイスがまもなく故障すると予想され |
|
|
すぐに障害が発生するデバイスが多すぎると予想され、 |
| 正常性コード | 説明 |
|---|---|
|
| データの可用性が低下します。つまり、ストレージクラスター内の一部のデータに対する潜在的な読み取りまたは書き込み要求に対応できなくなります。 |
|
| 一部のデータでデータの冗長性が低下します。これは、複製プールやイレイジャーコードフラグメントについて、ストレージクラスターに必要な数の複製がないことを意味します。 |
|
|
ストレージクラスターの空き領域が不足しているため、データの冗長性が低下するか、一部のデータのリスクにさらされる可能性があります。具体的には、1 つ以上の PG に |
|
|
ストレージクラスターの空き領域が不足しているため、データの冗長性が低下するか、一部のデータのリスクにさらされる可能性があります。具体的には、1 つ以上の PG に |
|
|
データスクラビングにより、ストレージクラスター内のデータの整合性に関するいくつかの問題が発見されました。具体的には、1 つ以上の PG で不整合フラグまたは |
|
| 最近の OSD のスクラブでは、矛盾点が明らかになりました。 |
|
| 読み取りエラーが発生し、別のレプリカが利用可能な場合は、そのレプリカを使用してエラーを直ちに修復し、クライアントがオブジェクトデータを取得できるようにします。 |
|
|
|
|
|
キャッシュ層のプールがほぼ満杯です。 |
|
|
ストレージクラスターで使用されている PG の数が、OSD ごとの |
|
|
1 つ以上のプールの |
|
|
プールに現在保存されているデータの量に基づいて、1 つ以上のプールにおそらくより多くの PG が必要です。 |
|
|
ストレージクラスターで使用されている PG の数が、OSD ごとの |
|
|
プールに現在保存されているデータの量に基づいて、1 つ以上のプールにおそらくより多くの PG が必要です。 |
|
|
1 つまたは複数のプールに、プールの予想サイズを推定するための |
|
|
1 つ以上のプールに |
|
|
ストレージクラスター内の OSD 数が、設定可能なしきい値である |
|
|
1 つまたは複数のプールの |
|
|
1 つ以上のプールには、PG ごとのオブジェクトの平均数があり、ストレージクラスター全体の平均よりもはるかに高くなっています。具体的なしきい値は、 |
|
|
1 つまたは複数のオブジェクトを含むプールが存在しますが、特定のアプリケーションで使用するためのタグが付けられていません。この警告を解決するには、 |
|
|
1 つ以上のプールがクォーターに達しています。このエラー状態を引き起こすための閾値は、 |
|
|
1 つまたは複数のプールが、設定された満杯のしきい値に近づいています。 |
|
| ストレージクラスターの 1 つまたは複数のオブジェクトが、ストレージクラスターが保存したいノードに保存されていません。これは、最近行われたストレージクラスターの変更によるデータの移行が完了していないことを示しています。 |
|
| ストレージクラスター内に 1 つ以上のオブジェクトが見つかりません。具体的には、OSD はオブジェクトの新しいコピーまたは更新されたコピーが存在する必要があることを認識していますが、そのバージョンのオブジェクトのコピーが現在オンラインの OSD で見つかりません。 |
|
| 1 つ以上の OSD またはモニター要求の処理に長い時間がかかっている。これは、極端な負荷、遅いストレージデバイス、またはソフトウェアのバグを示している可能性があります。 |
|
|
1 つ以上の PG が最近スクラブされていません。PG は通常、 |
|
|
1 つ以上の PG が最近ディープスクラビングされていません。 |
|
| 1 つまたは複数の PG のスナップショットトリムキューが、設定された警告しきい値を超えました。これは、非常に多くのスナップショットが最近削除されたか、OSD が新しいスナップショットの削除率に追いつくのに十分な速さでスナップショットをトリミングできないことを示しています。 |
| 正常性コード | 説明 |
|---|---|
|
| 1 つ以上の Ceph デーモンが最近クラッシュしましたが、そのクラッシュは管理者によってまだ確認されていません。 |
|
| テレメトリーが有効になっていますが、その時点からテレメトリーレポートの内容が変更されているため、テレメトリーレポートは送信されません。 |
|
|
1 つまたは複数の認証ユーザーに、モニターが解析できない機能があります。 |
|
|
|
|
|
ダッシュボードのデバッグモードが有効になっています。つまり、REST API 要求の処理中にエラーが発生した場合、HTTP エラーレスポンスには Python のトレースバックが含まれています。 |