付録B Ceph クラスターの正常性メッセージ

Red Hat Ceph Storage クラスターが出力する可能性のある正常性メッセージには限りがあります。これらは、固有の識別子を持つヘルスチェックとして定義されています。識別子は、ツールが正常性チェックを理解し、その意味を反映する方法でそれらを提示できるようにすることを目的とした、簡潔な疑似人間可読文字列です。

表B.1 Monitor

正常性コード説明

DAEMON_OLD_VERSION

すべてのデーモンで古いバージョンの Ceph が実行されている場合は警告します。複数のバージョンが検出された場合は、正常性エラーが発生します。

MON_DOWN

1 つまたは複数の Ceph Monitor デーモンが現在ダウンしています。

MON_CLOCK_SKEW

ceph-mon デーモンを実行しているノードのクロックが十分に同期されていません。ntpdchrony でクロックを同期させることで解決します。

MON_MSGR2_NOT_ENABLED

ms_bind_msgr2 オプションは有効ですが、1 つまたは複数の Ceph Monitor がクラスターの monmap で v2 ポートにバインドするように設定されていません。ceph mon enable-msgr2 コマンドを実行して解決します。

MON_DISK_LOW

1 つまたは複数の Ceph Monitor のディスク領域が不足しています。

MON_DISK_CRIT

1 つまたは複数の Ceph Monitor のディスク領域が極端に少なくなっています。

MON_DISK_BIG

1 つまたは複数の Ceph Monitor のデータベースサイズが非常に大きくなっています。

AUTH_INSECURE_GLOBAL_ID_RECLAIM

Ceph Monitor への再接続時に global_id を安全に再要求していないクライアントまたはデーモンが 1 つ以上ストレージクラスターに接続されています。

AUTH_INSECURE_GLOBAL_ID_RECLAIM_ALLOWED

Ceph は現在、auth_allow_insecure_global_id_reclaim 設定が true に設定されているため、クライアントが安全でないプロセスを使用してモニターに再接続し、以前の global_id を再取得できるように設定されています。

表B.2 Manager

正常性コード説明

MGR_DOWN

すべての Ceph Manager デーモンは現在ダウンしています。

MGR_MODULE_DEPENDENCY

有効な Ceph Manager モジュールが依存関係のチェックに失敗しています。

MGR_MODULE_ERROR

Ceph Manager モジュールに予期せぬエラーが発生しました。通常、これは、モジュールのサーブ関数から未処理の例外が発生したことを意味します。

表B.3 OSD

正常性コード説明

OSD_DOWN

1 つまたは複数の OSD がダウンとマークされています。

OSD_CRUSH_TYPE_DOWN

特定の CRUSH サブツリー内のすべての OSD が down とマークされています。たとえば、あるホスト上のすべての OSD が down とマークされます。たとえば、OSD_HOST_DOWN および OSD_ROOT_DOWN です。

OSD_ORPHAN

CRUSH マップの階層で OSD が参照されていますが、存在していません。ceph osd crush rm osd._OSD_ID コマンドを実行して、OSD を削除します。

OSD_OUT_OF_ORDER_FULL

nearfullbackfillfullfull、または failsafefull の使用率のしきい値は昇順ではありません。ceph osd set-nearfull-ratio RATIOceph osd set-backfillfull-ratio RATIO、および ceph osd set-full-ratio RATIO を実行して、しきい値を調整します。

OSD_FULL

1 つ以上の OSD が完全なしきい値を超えており、ストレージクラスターが書き込みを処理できないようになっています。わずかなマージン ceph osd set-full-ratio RATIO で完全なしきい値を上げることにより、書き込みの可用性を復元します。

OSD_BACKFILLFULL

1 つ以上の OSD が backfillfull しきい値を超えたため、データをこのデバイスにリバランスできなくなります。

OSD_NEARFULL

1 つまたは複数の OSD が nearfull の閾値を超えました。

OSDMAP_FLAGS

1 つまたは複数のストレージクラスターフラグが設定されています。これらのフラグには、fullpauserdpausewrnoupnodownnoinnooutnobackfillnorecovernorebalancenoscrubnodeep_scrub、および notieragent が含まれます。full 以外は、ceph osd set FLAG コマンドおよび ceph osd unset FLAG コマンドでフラグをクリアできます。

OSD_FLAGS

1 つ以上の OSD または CRUSH に対象のフラグが設定されています。これらのフラグには、noupnodownnoin、および noout があります。

OLD_CRUSH_TUNABLES

CRUSH マップは非常に古い設定を使用しているため、更新する必要があります。

OLD_CRUSH_STRAW_CALC_VERSION

CRUSH マップでは、straw バケットの中間重量値を計算するのに、古くて最適ではない方法を使用しています。

CACHE_POOL_NO_HIT_SET

1 つ以上のキャッシュプールは、使用率を追跡するためのヒットセットで設定されていません。これにより、階層化エージェントがコールドオブジェクトを識別してフラッシュし、キャッシュから削除することができなくなります。ceph osd pool set_POOL_NAME_ hit_set_type TYPEceph osd pool set POOL_NAME hit_set_period PERIOD_IN_SECONDSceph osd pool set POOL_NAME hit_set_count NUMBER_OF_HIT_SETS、および ceph osd pool set POOL_NAME hit_set_fpp TARGET_FALSE_POSITIVE_RATE コマンドを使用して、キャッシュプールのヒットセットを設定します。

OSD_NO_SORTBITWISE

sortbitwise フラグが設定されていません。ceph osd set sortbitwise コマンドでフラグを設定します。

POOL_FULL

1 つまたは複数のプールがクォータに達し、書き込みを許可しなくなりました。ceph osd pool set-quota POOL_NAME max_objects NUMBER_OF_OBJECTS および ceph osd pool set-quota POOL_NAME max_bytes BYTES を使用してプールのクォータを増やすか、一部の既存のデータを削除して使用率を下げます。

BLUEFS_SPILLOVER

BlueStore バックエンドを使用する 1 つ以上の OSD には db パーティションが割り当てられていますが、その領域が満杯になっているため、メタデータが通常の低速デバイスにあふれ出ています。ceph config set osd bluestore_warn_on_bluefs_spillover false コマンドで無効にします。

BLUEFS_AVAILABLE_SPACE

この出力では、BDEV_DB freeBDEV_SLOW free、および available_from_bluestore の 3 つの値が得られます。

BLUEFS_LOW_SPACE

BlueStore File System (BlueFS) の空き容量が少なく、available_from_bluestore が少ない場合は、BlueFS のアロケーションユニットのサイズを小さくすることを検討できます。

BLUESTORE_FRAGMENTATION

BlueStore が動作すると、基盤となるストレージの空き領域が断片化されます。これは正常なことであり、避けられないことですが、過度のフラグメント化は速度低下の原因となります。

BLUESTORE_LEGACY_STATFS

BlueStore は、プールごとの詳細ベースで内部使用統計を追跡し、1 つ以上の OSD に BlueStore ボリュームがあります。ceph config set global bluestore_warn_on_legacy_statfs false コマンドで警告を無効にします。

BLUESTORE_NO_PER_POOL_OMAP

BlueStore では、プールごとの omap 領域の使用状況を追跡しています。ceph config set global bluestore_warn_on_no_per_pool_omap false コマンドで警告を無効にします。

BLUESTORE_NO_PER_PG_OMAP

BlueStore では、PG による omap 領域の利用状況を把握しています。ceph config set global bluestore_warn_on_no_per_pg_omap false コマンドで警告を無効にします。

BLUESTORE_DISK_SIZE_MISMATCH

BlueStore を使用している 1 つまたは複数の OSD で、物理デバイスのサイズとそのサイズを追跡するメタデータの間に内部不整合があります。

BLUESTORE_NO_COMPRESSION `

1 つまたは複数の OSD が、BlueStore 圧縮プラグインを読み込むことができません。これは、ceph-osd バイナリーが圧縮プラグインと一致しないインストールの失敗、または ceph-osd デーモンの再起動を含まない最近のアップグレードが原因である可能性があります。

BLUESTORE_SPURIOUS_READ_ERRORS

BlueStore を使用する 1 つ以上の OSD が、メインデバイスで誤った読み取りエラーを検出します。BlueStore はこれらのエラーに対して、ディスクの読み取りを再試行することで回復しました。

表B.4 デバイスの正常性

正常性コード説明

DEVICE_HEALTH

1 つ以上のデバイスが近日中に故障することが予想され、警告のしきい値が mgr/devicehealth/warn_threshold 設定オプションで制御されます。データを移行するためにデバイスを out とマークし、ハードウェアを交換します。

DEVICE_HEALTH_IN_USE

1 つ以上のデバイスがまもなく故障すると予想され mgr/devicehealth/mark_out_threshold に基づいてストレージクラスターから out とマークされていますが、まだ 1 つ以上の PG に参加しています。

DEVICE_HEALTH_TOOMANY

すぐに障害が発生するデバイスが多すぎると予想され、mgr/devicehealth/self_heal 動作が有効になります。これにより、すべての障害のあるデバイスを out マークすると、クラスターの mon_osd_min_in_ratio が超えられ、OSD が多すぎて自動的に out とマークされなくなります。

表B.5 プールおよび配置グループ

正常性コード説明

PG_AVAILABILITY

データの可用性が低下します。つまり、ストレージクラスター内の一部のデータに対する潜在的な読み取りまたは書き込み要求に対応できなくなります。

PG_DEGRADED

一部のデータでデータの冗長性が低下します。これは、複製プールやイレイジャーコードフラグメントについて、ストレージクラスターに必要な数の複製がないことを意味します。

PG_RECOVERY_FULL

ストレージクラスターの空き領域が不足しているため、データの冗長性が低下するか、一部のデータのリスクにさらされる可能性があります。具体的には、1 つ以上の PG に recovery_toofull フラグが設定されています。これは、1 つまたは複数の PG が原因でデータを移行または回復できないことを意味します。より多くの OSD が full しきい値を超えています。

PG_BACKFILL_FULL

ストレージクラスターの空き領域が不足しているため、データの冗長性が低下するか、一部のデータのリスクにさらされる可能性があります。具体的には、1 つ以上の PG に backfill_toofull フラグが設定されています。これは、1 つまたは複数の PG が原因でデータを移行または回復できないことを意味します。より多くの OSD が backfillfull しきい値を超えています。

PG_DAMAGED

データスクラビングにより、ストレージクラスター内のデータの整合性に関するいくつかの問題が発見されました。具体的には、1 つ以上の PG で不整合フラグまたは snaptrim_error フラグが設定されています。これは、以前のスクラブ操作で問題が検出されたこと、または repair フラグが設定されていることを示します。そのような矛盾は現在進行中です。

OSD_SCRUB_ERRORS

最近の OSD のスクラブでは、矛盾点が明らかになりました。

OSD_TOO_MANY_REPAIRS

読み取りエラーが発生し、別のレプリカが利用可能な場合は、そのレプリカを使用してエラーを直ちに修復し、クライアントがオブジェクトデータを取得できるようにします。

LARGE_OMAP_OBJECTS

osd_deep_scrub_large_omap_object_key_threshold または osd_deep_scrub_large_omap_object_value_sum_threshold、もしくはその両方によって決定されるように、1 つまたは複数のプールに大きな omap オブジェクトが含まれています。ceph config set osd osd_deep_scrub_large_omap_object_key_threshold KEYS コマンドおよび ceph config set osd osd_deep_scrub_large_omap_object_value_sum_threshold BYTES コマンドでしきい値を調整します。

CACHE_POOL_NEAR_FULL

キャッシュ層のプールがほぼ満杯です。ceph osd pool set CACHE_POOL_NAME target_max_bytes BYTES コマンドおよび ceph osd pool set CACHE_POOL_NAME target_max_bytes BYTES コマンドを使用して、キャッシュプールのターゲットサイズを調整します。

TOO_FEW_PGS

ストレージクラスターで使用されている PG の数が、OSD ごとの mon_pg_warn_min_per_osd PG の設定可能なしきい値を下回っています。

POOL_PG_NUM_NOT_POWER_OF_TWO

1 つ以上のプールの pg_num の値が 2 の累乗ではありません。ceph config set global mon_warn_on_pool_pg_num_not_power_of_two false コマンドで警告を無効にします。

POOL_TOO_FEW_PGS

プールに現在保存されているデータの量に基づいて、1 つ以上のプールにおそらくより多くの PG が必要です。ceph osd pool set POOL_NAME pg_autoscale_mode off コマンドで PG の自動スケーリングを無効にするか、ceph osd pool set POOL_NAME pg_autoscale_mode on コマンドで PG の数を自動的に調整するか、ceph osd pool set POOL_NAME pg_num _NEW_PG_NUMBER コマンドで PG の数を手動で設定します。

TOO_MANY_PGS

ストレージクラスターで使用されている PG の数が、OSD ごとの mon_max_pg_per_osd PG の設定可能なしきい値を超えています。ハードウェアを追加して、クラスター内の OSD の数を増やします。

POOL_TOO_MANY_PGS

プールに現在保存されているデータの量に基づいて、1 つ以上のプールにおそらくより多くの PG が必要です。ceph osd pool set POOL_NAME pg_autoscale_mode off コマンドで PG の自動スケーリングを無効にするか、ceph osd pool set POOL_NAME pg_autoscale_mode on コマンドで PG の数を自動的に調整するか、ceph osd pool set POOL_NAME pg_num _NEW_PG_NUMBER コマンドで PG の数を手動で設定します。

POOL_TARGET_SIZE_BYTES_OVERCOMMITTED

1 つまたは複数のプールに、プールの予想サイズを推定するための target_size_bytes プロパティーが設定されていますが、その値が利用可能なストレージの合計を超えています。ceph osd pool set POOL_NAME target_size_bytes 0 コマンドで、プールの値を 0 に設定します。

POOL_HAS_TARGET_SIZE_BYTES_AND_RATIO

1 つ以上のプールに target_size_bytes and target_size_ratio の両方が設定されており、プールの予想されるサイズを推定しています。ceph osd pool set POOL_NAME target_size_bytes 0 コマンドで、プールの値を 0 に設定します。

TOO_FEW_OSDS

ストレージクラスター内の OSD 数が、設定可能なしきい値である o`sd_pool_default_size を下回っています。

SMALLER_PGP_NUM

1 つまたは複数のプールの pgp_num の値が pg_num 未満です。これは通常、PG 数が増加しても、配置動作が増加していないことを示しています。ceph osd pool set POOL_NAME pgp_num PG_NUM_VALUE コマンドを使用して、pgp_numpg_num と一致させるように設定することで、この問題を解決します。

MANY_OBJECTS_PER_PG

1 つ以上のプールには、PG ごとのオブジェクトの平均数があり、ストレージクラスター全体の平均よりもはるかに高くなっています。具体的なしきい値は、mon_pg_warn_max_object_skew 設定値によって制御されます。

POOL_APP_NOT_ENABLED

1 つまたは複数のオブジェクトを含むプールが存在しますが、特定のアプリケーションで使用するためのタグが付けられていません。この警告を解決するには、rbd pool init POOL_NAME コマンドでアプリケーションが使用するプールをラベル付けします。

POOL_FULL

1 つ以上のプールがクォーターに達しています。このエラー状態を引き起こすための閾値は、mon_pool_quota_crit_threshold 設定オプションで制御されます。

POOL_NEAR_FULL

1 つまたは複数のプールが、設定された満杯のしきい値に近づいています。ceph osd pool set-quota POOL_NAME max_objects NUMBER_OF_OBJECTS コマンドおよび ceph osd pool set-quota POOL_NAME max_bytes BYTES コマンドでプールのクォータを調整します。

OBJECT_MISPLACED

ストレージクラスターの 1 つまたは複数のオブジェクトが、ストレージクラスターが保存したいノードに保存されていません。これは、最近行われたストレージクラスターの変更によるデータの移行が完了していないことを示しています。

OBJECT_UNFOUND

ストレージクラスター内に 1 つ以上のオブジェクトが見つかりません。具体的には、OSD はオブジェクトの新しいコピーまたは更新されたコピーが存在する必要があることを認識していますが、そのバージョンのオブジェクトのコピーが現在オンラインの OSD で見つかりません。

SLOW_OPS

1 つ以上の OSD またはモニター要求の処理に長い時間がかかっている。これは、極端な負荷、遅いストレージデバイス、またはソフトウェアのバグを示している可能性があります。

PG_NOT_SCRUBBED

1 つ以上の PG が最近スクラブされていません。PG は通常、osd_scrub_max_interval でグローバルに指定された設定間隔でスクラブされます。ceph pg scrub PG_ID コマンドでスクラブを開始します。

PG_NOT_DEEP_SCRUBBED

1 つ以上の PG が最近ディープスクラビングされていません。ceph pg deep-scrub PG_ID コマンドでスクラブを開始します。PG は通常、osd_deep_scrub_interval 秒ごとにスクラブされます。この警告は、間隔の mon_warn_pg_not_deep_scrubbed_ratio パーセンテージが、期限が切れてからスクラブなしで経過したときにトリガーされます。

PG_SLOW_SNAP_TRIMMING

1 つまたは複数の PG のスナップショットトリムキューが、設定された警告しきい値を超えました。これは、非常に多くのスナップショットが最近削除されたか、OSD が新しいスナップショットの削除率に追いつくのに十分な速さでスナップショットをトリミングできないことを示しています。

表B.6 その他

正常性コード説明

RECENT_CRASH

1 つ以上の Ceph デーモンが最近クラッシュしましたが、そのクラッシュは管理者によってまだ確認されていません。

TELEMETRY_CHANGED

テレメトリーが有効になっていますが、その時点からテレメトリーレポートの内容が変更されているため、テレメトリーレポートは送信されません。

AUTH_BAD_CAPS

1 つまたは複数の認証ユーザーに、モニターが解析できない機能があります。ceph auth ENTITY_NAME DAEMON_TYPE CAPS コマンドでユーザーの能力を更新します。

OSD_NO_DOWN_OUT_INTERVAL

mon_osd_down_out_interval オプションがゼロに設定されています。これは、OSD に障害が発生した後、システムが修復操作を自動的に実行しないことを意味します。ceph config global mon mon_warn_on_osd_down_out_interval_zero false コマンドで間隔をなくします。

DASHBOARD_DEBUG

ダッシュボードのデバッグモードが有効になっています。つまり、REST API 要求の処理中にエラーが発生した場合、HTTP エラーレスポンスには Python のトレースバックが含まれています。ceph dashboard debug disable コマンドでデバッグモードを無効にします。