Red Hat Training

A Red Hat training course is available for Red Hat Ceph Storage

6.3. スクラブ

Ceph は、オブジェクトの複数のコピーを作成するだけでなく、配置グループをスクラビングすることでデータの整合性を確保します。Ceph のスクラブは、オブジェクトストレージ層の fsck コマンドに似ています。

各配置グループについて、Ceph はすべてのオブジェクトのカタログを生成し、各プライマリーオブジェクトとそのレプリカを比較して、オブジェクトの欠落や不一致がないことを確認します。

ライトスクラビング (毎日) では、オブジェクトのサイズや属性をチェックします。ディープスクラビング (毎週) は、データを読み込んでチェックサムでデータの整合性を確保します。

スクラビングはデータの整合性を保つために重要ですが、パフォーマンスを低下させる可能性があります。以下の設定を調整して、スクラブ動作を増減させます。

osd_max_scrubs
詳細
Ceph OSD ごとの同時スクラブ操作の最大数
32 ビット整数
デフォルト
1
osd_scrub_thread_timeout
詳細
スクラブスレッドがタイムアウトするまでの最大時間 (秒単位)
32 ビット整数
デフォルト
60
osd_scrub_finalize_thread_timeout
詳細
スクラブ最終スレッドがタイムアウトするまでの最大時間 (秒単位)
32 ビット整数
デフォルト
60*10
osd_scrub_begin_hour
詳細
軽いスクラブや深いスクラブを始めることができる最も早い時間。これは、スクラビングの時間枠を定義するために osd scrub end hour パラメーターと共に使用し、スクラビングをオフピーク時間に制限できるようにします。設定は、24 時間サイクルの時間を指定するために整数を取ります。たとえば、0 は午前 12:01 から午前 1:00 までを表し、13 は午後 1:01 から午後 2:00 までを表します。
32 ビット整数
デフォルト
0 (午前 12:01 から 1:00)
osd_scrub_end_hour
詳細
軽いスクラブや深いスクラブを始めることができる最も遅い時間。これは、osd scrub begin hour パラメーターとともに使用してスクラブタイムウィンドウを定義し、スクラブをオフピーク時間に制限します。設定は、24 時間サイクルの時間を指定するために整数を取ります。たとえば、0 は午前 12:01 から午前 1:00 までを表し、13 は午後 1:01 から午後 2:00 までを表します。end 時間は、begin 時間よりも大きくなければなりません。
32 ビット整数
デフォルト
24 (午後 11:01 から午前 12:00)
osd_scrub_load_threshold
詳細
最大の負荷。(getloadavg() 関数で定義された) システムの負荷がこの数値よりも大きい場合、Ceph はスクラブを実行しません。デフォルトは 0.5 です。
浮動小数点 (Float)
デフォルト
0.5
osd_scrub_min_interval
説明
Red Hat Ceph Storageクラスターの負荷が低いときに、Ceph OSD をスクラブする最小の間隔 (秒単位)
タイプ
浮動小数点 (Float)
デフォルト
1 日 1 回。60*60*24
osd_scrub_max_interval
詳細
クラスター負荷に関わらず Ceph OSD をスクラビングする最大の間隔 (秒単位)。
浮動小数点 (Float)
デフォルト
1 週間に 1 回になります。7*60*60*24
osd_scrub_interval_randomize_ratio
詳細
比率を取り、osd scrub min interval および osd scrub max interval の間隔の間でスケジュールされたスクラブをランダム化します。
浮動小数点 (Float)
デフォルト
0.5
mon_warn_not_scrubbed
詳細
スクラブされていない PG について警告する osd_scrub_interval からの秒数。
整数
デフォルト
0 (警告なし)。
osd_scrub_chunk_min
詳細
オブジェクトストアは、ハッシュの境界で終わるチャンクに分割されています。チャンキースクラブの場合、Ceph はオブジェクトを 1 チャンクずつスクラブし、そのチャンクへの書き込みをブロックします。osd scrub chunk min 設定は、スクラビングするチャンクの最小数を表します。
32 ビット整数
デフォルト
5
osd_scrub_chunk_max
詳細
スクラブするチャンクの最大数
32 ビット整数
デフォルト
25
osd_scrub_sleep
詳細
ディープスクラブ操作の間のスリープ時間
浮動小数点 (Float)
デフォルト
0 (またはオフ)
osd_scrub_during_recovery
詳細
リカバリー時のスクラブを可能にします。
ブール (Bool)
デフォルト
false
osd_scrub_invalid_stats
詳細
無効と判定された統計情報を修正するために、強制的に追加のスクラブを実行します。
ブール (Bool)
デフォルト
true
osd_scrub_priority
詳細
クライアント I/O に対するスクラブ操作のキューの優先順位を制御します。
32 ビット符号なし整数
デフォルト
5
osd_scrub_cost
詳細
キューのスケジューリングのために、スクラブ操作のコストをメガバイト単位で表したもの。
32 ビット符号なし整数
デフォルト
50 << 20
osd_deep_scrub_interval
詳細
すべてのデータを完全に読み込むディープスクラビングのための間隔。osd scrub load threshold パラメーターは、この設定には影響を与えません。
浮動小数点 (Float)
デフォルト
1 週間に 1 回になります。60*60*24*7
osd_deep_scrub_stride
詳細
デープスクラブを実施する際の読み取りサイズ
32 ビット整数
デフォルト
512 KB。524288
mon_warn_not_deep_scrubbed
詳細
スクラビングされていない PG について警告する osd_deep_scrub_interval からの秒数。
整数
デフォルト
0 (警告なし)。
osd_deep_scrub_randomize_ratio
詳細
スクラブが無作為にディープスクラビングになる変化 (osd_deep_scrub_interval が経過する可能性も)
浮動小数点 (Float)
デフォルト
0.15 または 15%。
osd_deep_scrub_update_digest_min_age
詳細
スクラブがオブジェクト全体のダイジェストを更新するまでに、オブジェクトが何秒経過していなければならないか。
整数
デフォルト
120 (2 時間)。