10.6. mClock プロファイル


mClock プロファイルは構成設定です。実行中の Red Hat Ceph Storage クラスターに適用すると、バックグラウンドリカバリー、scrubsnap trimclient oppg deletion などの各種クライアントクラスに属する IOPS 操作のスロットリングが可能になります。

mClock プロファイルは、容量制限とユーザーが選択した mClock プロファイルタイプを使用して、下位レベルの mClock リソース制御設定パラメーターを決定し、それらを透過的に適用します。その他の Red Hat Ceph Storage 設定パラメーターも適用されます。下位レベルの mClock リソース制御パラメーターとは、リソース共有を制御する予約、制限、重みです。mClock プロファイルは、クライアントタイプごとにこれらのパラメーターを割り当てます。

10.6.1. mClock プロファイルのタイプ

mClock プロファイルは、ビルトイン プロファイルと カスタム プロファイルに分類できます。

いずれかの mClock プロファイルがアクティブな場合、次の Red Hat Ceph Storage 設定のスリープオプションは 0 に設定され、無効になります。

  • osd_recovery_sleep
  • osd_recovery_sleep_hdd
  • osd_recovery_sleep_ssd
  • osd_recovery_sleep_hybrid
  • osd_scrub_sleep
  • osd_delete_sleep
  • osd_delete_sleep_hdd
  • osd_delete_sleep_ssd
  • osd_delete_sleep_hybrid
  • osd_snap_trim_sleep
  • osd_snap_trim_sleep_hdd
  • osd_snap_trim_sleep_ssd
  • osd_snap_trim_sleep_hybrid

これは、mClock スケジューラーが操作キューから次の操作を選択して操作シーケンサーに転送するタイミングを決定できるようにするためです。その結果、すべてのクライアントで意図した QoS が提供されます。

カスタム プロファイル

このプロファイルにより、ユーザーはすべての mClock 設定パラメーターを完全に制御できます。これは注意して使用する必要があり、mClock および Red Hat Ceph Storage 関連の設定オプションを理解している上級ユーザーを対象としています。

ビルトイン プロファイル

ビルトイン プロファイルが有効になっている場合、mClock スケジューラーは、クライアントタイプごとに有効なプロファイルに基づき、下位レベルの mClock パラメーター (つまり予約、重み、制限) を計算します。

mClock パラメーターは、事前に提供された Ceph OSD の最大容量に基づいて計算されます。そのため、ビルトインプロファイルを使用している場合、以下の mClock 設定オプションは変更できません。

  • osd_mclock_scheduler_client_res
  • osd_mclock_scheduler_client_wgt
  • osd_mclock_scheduler_client_lim
  • osd_mclock_scheduler_background_recovery_res
  • osd_mclock_scheduler_background_recovery_wgt
  • osd_mclock_scheduler_background_recovery_lim
  • osd_mclock_scheduler_background_best_effort_res
  • osd_mclock_scheduler_background_best_effort_wgt
  • osd_mclock_scheduler_background_best_effort_lim

    注記

    これらのデフォルトは、config setconfig daemonconfig tell コマンドなどの config サブシステムコマンドを使用して変更することはできません。上記のコマンドは成功を報告しますが、mClock QoS パラメーターはそれぞれの組み込みプロファイルのデフォルトに戻ります。

次のリカバリーおよびバックフィル関連の Ceph オプションは、mClock のデフォルトにオーバーライドされます。

警告

組み込みプロファイルはこれらのオプションに基づいて最適化されるため、これらのオプションを変更しないでください。これらのデフォルトを変更すると、予期しないパフォーマンス結果が生じる可能性があります。

  • osd_max_backfills
  • osd_recovery_max_active
  • osd_recovery_max_active_hdd
  • osd_recovery_max_active_ssd

次のオプションは、フォアグラウンドクライアント操作のパフォーマンスを最大化するための現在のデフォルトと同じ mClock のデフォルトを示します。

osd_max_backfills
元のデフォルト
1
mClock のデフォルト
1
osd_recovery_max_active
元のデフォルト
0
mClock のデフォルト
0
osd_recovery_max_active_hdd
元のデフォルト
3
mClock のデフォルト
3
osd_recovery_max_active_sdd
元のデフォルト
10
mClock のデフォルト
10
注記

上記の mClock のデフォルトは、デフォルトで false に設定されている osd_m Clock_override_recovery_settings を有効にすることで、必要な場合にのみ変更できます。これらのパラメーターを変更する場合は、バックフィルおよびリカバリーオプションの変更 を参照してください。

ビルトイン プロファイルタイプ

ユーザーは、次の built-in プロファイルタイプから選択できます。

  • balanced (デフォルト)
  • high_client_ops
  • high_recovery_ops
注記

以下のリストに記載されている値は、サービスタイプに割り当てられた Ceph OSD の合計 IOPS 容量の割合を表します。

  • balanced:

デフォルトの mClock プロファイルは、クライアント IO とリカバリー IO の優先順位の妥協点を表すため、balanced に設定されています。クライアント操作とバックグラウンド回復操作に同等の予約または優先度を割り当てます。バックグラウンドのベストエフォート操作には低い予約が与えられるため、競合する操作がある場合には完了までに時間がかかります。このプロファイルは、外部クライアントのパフォーマンス要件が重要ではなく、OSD 内で注意が必要な他のバックグラウンド操作がある場合の、クラスターの通常または定常状態の要件を満たします。

場合によっては、クライアント操作または回復操作のいずれかに高い優先順位を与える必要がある場合があります。このような要件を満たすには、クライアント IO を優先する high_client_ops プロファイル、またはリカバリー IO を優先する high_recovery_ops プロファイルのいずれかを選択できます。これらのプロファイルについては、以下でさらに説明します。

サービスの種類: クライアント
予約
50%
Limit
最大
重み
1
サービスの種類: バックグラウンドリカバリー
予約
50%
Limit
最大
重み
1
サービスタイプ: バックグラウンドベストエフォート
予約
最小
Limit
90%
重み

1

  • high_client_ops

このプロファイルは、Ceph OSD のバックグラウンド操作と比較して、より多くの予約と制限をクライアント操作に割り当てることにより、バックグラウンドアクティビティーでのクライアントパフォーマンスを最適化します。たとえば、このプロファイルを有効にすると、回復が遅くなる代わりに、I/O 集中型のアプリケーションに必要なパフォーマンスを持続的に提供できます。以下のリストは、プロファイルによって設定されるリソース制御パラメーターを示しています。

サービスの種類: クライアント
予約
60%
Limit
最大
重み
2
サービスの種類: バックグラウンドリカバリー
予約
40%
Limit
最大
重み
1
サービスタイプ: バックグラウンドベストエフォート
予約
最小
Limit
70%
重み

1

  • high_recovery_ops

このプロファイルは、外部クライアントや Ceph OSD 内の他のバックグラウンド操作と比較して、バックグラウンドリカバリーパフォーマンスを最適化します。

たとえば、管理者が一時的に有効にして、非ピーク時間中にバックグラウンド回復を加速することができます。以下のリストは、プロファイルによって設定されるリソース制御パラメーターを示しています。

サービスの種類: クライアント
予約
30%
Limit
最大
重み
1
サービスの種類: バックグラウンドリカバリー
予約
70%
Limit
最大
重み
2
サービスタイプ: バックグラウンドベストエフォート
予約
最小
Limit
最大
重み
1

関連情報

10.6.2. mClock プロファイルの変更

デフォルトの mClock プロファイルは Balanced に設定されています。組み込み プロファイルの他のタイプは、high_client_ops および high_recovery_ops です。

注記

上級ユーザーでない限り、カスタム プロファイルは推奨しません。

前提条件

  • 稼働中の Red Hat Ceph Storage クラスターがある。
  • Ceph Monitor ホストへの root レベルのアクセス。

手順

  1. Cephadm シェルにログインします。

    [root@host01 ~]# cephadm shell

  2. osd_mclock_profile オプションを設定します。

    構文

    ceph config set osd.OSD_ID osd_mclock_profile VALUE

    [ceph: root@host01 /]# ceph config set osd.0 osd_mclock_profile high_recovery_ops

    この例では、プロファイルを変更して、osd.0 でのリカバリーを高速化します。

    注記

    最適なパフォーマンスを得るには、次のコマンドを使用して、すべての Ceph OSD でプロファイルを設定する必要があります。

    構文

    ceph config set osd osd_mclock_profile VALUE

10.6.3. ビルトイン プロファイルと カスタム プロファイルの切り替え

次の手順では、ビルトイン プロファイルから カスタム プロファイル、およびその逆の切り替えを説明します。

すべての mClock 設定オプションを完全に制御したい場合は、カスタム プロファイルに切り替えます。ただし、カスタム プロファイルの使用は、上級ユーザーにのみ推奨しています。

前提条件

  • 稼働中の Red Hat Ceph Storage クラスターがある。
  • Ceph Monitor ホストへの root レベルのアクセス。

ビルトイン プロファイルから カスタム プロファイルへの切り替え

  1. Cephadm シェルにログインします。

    [root@host01 ~]# cephadm shell

  2. カスタム プロファイルに切り替えます。

    構文

    ceph config set osd.OSD_ID osd_mclock_profile custom

    [ceph: root@host01 /]# ceph config set osd.0 osd_mclock_profile custom

    注記

    最適なパフォーマンスを得るには、次のコマンドを使用して、すべての Ceph OSD でプロファイルを設定する必要があります。

    [ceph: root@host01 /]# ceph config set osd osd_mclock_profile custom

  3. オプション: カスタム プロファイルに切り替えた後、mClock 設定オプションを変更します。

    構文

    ceph config set osd.OSD_ID MCLOCK_CONFIGURATION_OPTION VALUE

    [ceph: root@host01 /]# ceph config set osd.0 osd_mclock_scheduler_client_res 0.5

    この例では、特定の OSD osd.0 のクライアント予約 IOPS 比を 0.5 (50%) に変更します。

    重要

    予約の合計が OSD の IOPS 容量の最大割合 (1.0) を超えないように、バックグラウンドリカバリーやバックグラウンドベストエフォートなどの他のサービスの予約を適宜変更します。

カスタム プロファイルから ビルトイン プロファイルへの切り替え

  1. cephadm シェルにログインします。

    [root@host01 ~]# cephadm shell

  2. ビルトイン プロファイルを設定します。

    構文

    ceph config set osd osd_mclock_profile MCLOCK_PROFILE

    [ceph: root@host01 /]# ceph config set osd osd_mclock_profile high_client_ops

    この例では、すべての Ceph OSD で ビルトイン プロファイルを high_client_ops に設定します。

  3. データベース内の既存のカスタム mClock 設定を決定します。

    [ceph: root@host01 /]# ceph config dump

  4. 前の手順で決定したカスタム mClock 設定を削除します。

    構文

    ceph config rm osd MCLOCK_CONFIGURATION_OPTION

    [ceph: root@host01 /]# ceph config rm osd osd_mclock_scheduler_client_res

    この例では、すべての Ceph OSD で設定された設定オプション osd_mclock_scheduler_client_res を削除します。

    すべての既存のカスタム mClock 設定がセントラル設定データベースから削除されると、high_client_ops に関連する設定が適用されます。

  5. Ceph OSD の設定を確認します。

    構文

    ceph config show osd.OSD_ID

    [ceph: root@host01 /]# ceph config show osd.0

関連情報

10.6.4. mClock プロファイルの一時的な切り替え

このセクションでは、mClock プロファイルを一時的に切り替える手順を説明しています。

警告

これは、上級ユーザー向け、または実験的なテスト用のセクションです。予期しない結果が生じる可能性があるため、実行中のストレージクラスターでは以下のコマンドを使用しないでください。

注記

以下のコマンドを使用した Ceph OSD の設定変更は一時的なものであり、Ceph OSD を再起動すると失われます。

重要

このセクションで説明されている、コマンドを使用してオーバーライドされる設定オプションは、ceph config set osd.OSD_ID コマンドを使用しても変更できません。変更は、Ceph OSD が再起動されるまで有効になりません。これは、設定サブシステムの設計に基づく意図的なものです。ただし、これらのコマンドを使用して一時的に変更するこさらに変更を加えることができます。

前提条件

  • 稼働中の Red Hat Ceph Storage クラスターがある。
  • Ceph Monitor ホストへの root レベルのアクセス。

手順

  1. Cephadm シェルにログインします。

    [root@host01 ~]# cephadm shell

  2. 次のコマンドを実行して、mClock 設定をオーバーライドします。

    構文

    ceph tell osd.OSD_ID injectargs '--MCLOCK_CONFIGURATION_OPTION=VALUE'

    [ceph: root@host01 /]# ceph tell osd.0 injectargs '--osd_mclock_profile=high_recovery_ops'

    この例では、osd.0osd_mclock_profile オプションがオーバーライドされます。

  3. オプション: 前述の ceph tell osd.OSD_ID injectargs の代わりに使用できます。

    構文

    ceph daemon osd.OSD_ID config set MCLOCK_CONFIGURATION_OPTION VALUE

    [ceph: root@host01 /]# ceph daemon osd.0 config set osd_mclock_profile high_recovery_ops

注記

上記のコマンドを使用して、カスタム プロファイルの個々の QoS 関連の設定オプションを一時的に変更することもできます。

10.6.5. mClock プロファイルを使用した劣化および置き忘れたオブジェクトの回復率

劣化したオブジェクトのリカバリーは、バックグラウンドリカバリーバケットに分類されます。すべての mClock プロファイルにおいて、劣化したオブジェクトのリカバリーは、置き忘れられたオブジェクトのリカバリーよりも高い優先順位が与えられます。これは、劣化したオブジェクトには、単なる置き忘れられたオブジェクトには存在しないデータの安全性の問題が存在するためです。

バックフィルまたは置き忘れたオブジェクトの回復操作は、バックグラウンドのベストエフォートバケットに分類されます。balanced および high_client_ops mClock プロファイルによれば、バックグラウンドベストエフォートクライアントは予約 (ゼロに設定) によって制約されませんが、他に競合するサービスがない場合、参加している OSD の容量の一部を使用するように制限されます。

したがって、balanced または high_client_ops プロファイルを使用し、他のバックグラウンドで競合するサービスがアクティブな場合、以前の WeightedPriorityQueue (WPQ) スケジューラーと比較すると、バックフィル速度が遅くなることが予想されます。

より高いバックフィル率が必要な場合は、以下のセクションに記載されている手順に従ってください。

埋め戻し率の向上

balanced または high_client_ops プロファイルを使用するときにバックフィル速度を速くするには、次の手順に従います。

  • バックフィルの間、'high_recovery_ops' mClock プロファイルに切り替えます。これを実現するには、mClock プロファイルの変更 を参照してください。バックフィルフェーズが完了したら、mClock プロファイルを以前にアクティブだったプロファイルに切り替えます。'high_recovery_ops' プロファイルを使用してもバックフィル率に大幅な改善が見られない場合は、次のステップに進みます。
  • mClock プロファイルを以前にアクティブだったプロファイルに戻します。
  • 'osd_max_backfills' をより高い値 (たとえば、3) に変更します。これを実現するには、バックフィルとリカバリーオプションの変更 を参照してください。
  • バックフィルが完了したら、手順 3 で説明したのと同じ手順に従って、'osd_max_backfills' をデフォルト値の 1 にリセットできます。
警告

osd_max_backfills を変更すると、他の操作が発生する可能性があることに注意してください。たとえば、バックフィルフェーズ中にクライアント操作の遅延が長くなる可能性があります。したがって、クラスター内の他の操作へのパフォーマンスへの影響を最小限に抑えるために、osd_max_backfills を少しずつ増やすことを推奨します。

10.6.6. backfills および recovery オプションの変更

ceph config set コマンドを使用して、backfills および recovery オプションを変更します。

変更可能なバックフィルまたはリカバリーオプションは、mClock プロファイルのタイプ に一覧表示されています。

警告

これは、上級ユーザー向け、または実験的なテスト用のセクションです。予期しない結果が生じる可能性があるため、実行中のストレージクラスターでは以下のコマンドを使用しないでください。

実験的なテスト場合、クラスターが値を処理できない場合、またはデフォルト設定でパフォーマンスが低下する場合にのみ値を変更してください。

重要

mClock のデフォルトのバックフィルまたはリカバリーオプションの変更は、osd_mclock_override_recovery_settings オプションによって制限され、デフォルトで false に設定されています。

osd_mclock_override_recovery_settingstrue に設定せずにデフォルトのバックフィルまたはリカバリーオプションを変更しようとすると、オプションは mClock のデフォルトにリセットされ、クラスターログに警告メッセージが記録されます。

前提条件

  • 稼働中の Red Hat Ceph Storage クラスターがある。
  • Ceph Monitor ホストへの root レベルのアクセス。

手順

  1. Cephadm シェルにログインします。

    [root@host01 ~]# cephadm shell

  2. すべての Ceph OSD で osd_mclock_override_recovery_settings 設定オプションを true に設定します。

    [ceph: root@host01 /]# ceph config set osd osd_mclock_override_recovery_settings true

  3. backfills または recovery オプションを設定します。

    構文

    ceph config set osd OPTION VALUE

    [ceph: root@host01 /]# ceph config set osd osd_max_backfills_ 5

  4. 数秒待ってから、特定の OSD の設定を確認します。

    構文

    ceph config show osd.OSD_ID_ | grep OPTION

    [ceph: root@host01 /]# ceph config show osd.0 | grep osd_max_backfills

  5. すべての OSD で osd_mclock_override_recovery_settings 設定オプションを false にリセットします。

    [ceph: root@host01 /]# ceph config set osd osd_mclock_override_recovery_settings false

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.