設定ガイド

Red Hat Ceph Storage 4

Red Hat Ceph Storage の設定

Red Hat Ceph Storage Documentation Team

概要

本書では、Red Hat Ceph Storage のブート時およびランタイム設定方法について説明します。また、設定リファレンス情報も提供します。

第1章 Ceph 設定の基本

ストレージ管理者は、Ceph 設定を表示する方法や、Red Hat Ceph Storage クラスターの Ceph 設定オプションを設定する方法についての基本的な理解が必要です。ランタイム時に Ceph 設定オプションを表示して設定できます。

1.1. 前提条件

  • Red Hat Ceph Storage ソフトウェアのインストール

1.2. Ceph の設定

すべての Red Hat Ceph Storage クラスターには、以下を定義する設定があります。

  • クラスター ID
  • 認証設定
  • Ceph デーモン
  • ネットワーク設定
  • ノード名とアドレス
  • キーリングへのパス
  • OSD ログファイルへのパス
  • その他のランタイムオプション

Ansible などのデプロイメントツールは、通常、初期 Ceph 設定ファイルを作成します。ただし、デプロイメントツールを使用せずに Red Hat Ceph Storage クラスターをブートストラップする場合は、独自に作成することができます。

1.3. Ceph 設定ファイル

Ceph 設定ファイルは起動時に Ceph デーモンを設定します。これにより、デフォルト値が上書きされます。

ヒント

各 Ceph デーモンには、ceph/src/common/config_opts.h ファイルで設定されるデフォルト値が連続して設定されます。

Ceph のデフォルト設定ファイルの場所は /etc/ceph/ceph.conf です。別のパスを設定するには、以下を行います。

  • $CEPH_CONF 環境変数のパスの設定。
  • -c コマンドライン引数 例: -c path/ceph.conf) を指定します。

Ceph 設定ファイルには、ini スタイルの構文を使用します。コメントの前にシャープ記号(#)またはセミコロン(;)を付けてコメントを追加できます。

# <--A pound sign (#) sign precedes a comment.
# Comments always follow a semi-colon (;) or a pound (#) on each line.
# The end of the line terminates a comment.
# We recommend that you provide comments in your configuration file(s).
; A comment may be anything.

設定ファイルでは、Ceph Storage クラスター内のすべての Ceph デーモン、または開始時の特定タイプのすべての Ceph デーモンを設定できます。一連のデーモンを設定するには、以下のように設定を受け取るプロセスの下に設定を追加する必要があります。

[global]
詳細
[global] の設定は、Ceph Storage クラスターのすべてのデーモンに影響します。
auth supported = cephx
[osd]
詳細
[osd] の設定は、Ceph Storage クラスター内のすべての ceph-osd デーモンに影響し、[global] で同じ設定を上書きします。
[mon]
詳細
[mon] の下にある設定は、Ceph Storage クラスター内のすべての ceph-mon デーモンに影響し、[global] で同じ設定を上書きします。
mon host = hostname1,hostname2,hostname3 mon addr = 10.0.0.101:6789
[client]
詳細
[client] の下にある設定は、すべての Ceph クライアントに影響します。たとえば、マウントされた Ceph ブロックデバイス、Ceph オブジェクトのゲートウェイなどです。
log file = /var/log/ceph/radosgw.log

グローバル設定は、Ceph Storage クラスター内のすべてのデーモンのすべてのインスタンスに影響を及ぼします。[global] の見出しは、Ceph Storage クラスターのすべてのデーモンに共通する値に使用します。以下のように各 [global] オプションを上書きできます。

  • 特定のプロセスタイプのオプションを変更します。

    [osp][mon]

または

  • 特定のプロセスのオプションを変更します。

    [osd.1]

グローバル設定を上書きすると、特定のデーモンで明示的に上書きした場合を除き、すべての子プロセスに影響します。

一般的なグローバル設定には、認証を有効にします。

[global]
#Enable authentication between hosts within the cluster.
auth_cluster_required = cephx
auth_service_required = cephx
auth_client_required = cephx

特定のタイプのデーモンに適用される設定を指定できます。特定のインスタンスを指定せずに [osd] または [mon] で設定を指定すると、設定はすべての OSD またはモニターのデーモンにそれぞれ適用されます。デーモン全体の設定例の 1 つに osd memory ターゲットがあります。

[osd]
osd_memory_target = 5368709120

デーモンの特定インスタンスの設定を指定できます。ピリオド(.)およびインスタンス ID 区切りで、インスタンスのタイプを指定できます。Ceph OSD デーモンのインスタンス ID は常に数値ですが、Ceph モニターでは英数字を使用することができます。

[osd.1]
# settings affect osd.1 only.

[mon.a]
# settings affect mon.a only.

通常の Ceph 設定ファイルには、少なくとも以下の設定があります。

[global]
fsid = UNIQUE_CLUSTER_ID
mon_initial_members = NODE_NAME[, NODE_NAME]
mon_host = IP_ADDRESS[, IP_ADDRESS]

#All clusters have a front-side public network.
#If you have two NICs, you can configure a back side cluster
#network for OSD object replication, heart beats, backfilling,
#recovery, and so on
public_network = PUBLIC_NET[, PUBLIC_NET]
#cluster_network = PRIVATE_NET[, PRIVATE_NET]

#Clusters require authentication by default.
auth_cluster_required = cephx
auth_service_required = cephx
auth_client_required = cephx

#Choose reasonable numbers for your number of replicas
#and placement groups.
osd_pool_default_size = NUM  # Write an object n times.
osd_pool_default_min_size = NUM # Allow writing n copy in a degraded state.
osd_pool_default_pg_num = NUM
osd_pool_default_pgp_num = NUM

#Choose a reasonable crush leaf type.
#0 for a 1-node cluster.
#1 for a multi node cluster in a single rack
#2 for a multi node, multi chassis cluster with multiple hosts in a chassis
#3 for a multi node cluster with hosts across racks, and so on
osd_crush_chooseleaf_type = NUM

1.4. Ceph メタ変数の使用

Metavariables は、Ceph ストレージクラスターの設定を大幅に簡略化します。metavariable が設定値に設定されると、Ceph は metavariable を具体的な値に展開します。

メタ変数は、Ceph 設定ファイルの [global] セクション、[osd] セクション、[mon] セクション、または [client] セクション内で使用すると非常に強力です。ただし、管理ソケットで使用することもできます。Ceph metavariables は、Bash シェル拡張に似ています。

Ceph は以下のメタ変数をサポートします。

$cluster
詳細
Ceph Storage クラスター名にを展開します。同じハードウェアで複数の Ceph Storage クラスターを実行する場合に便利です。
/etc/ceph/$cluster.keyring
デフォルト
ceph
$type
詳細
インスタントデーモンのタイプに応じて、osd または mon のいずれかに展開します。
/var/lib/ceph/$type
$id
詳細
デーモン識別子にを展開します。osd.0 の場合、これは 0 になります。
/var/lib/ceph/$type/$cluster-$id
$host
詳細
インスタントデーモンのホスト名に拡張します。
$name
詳細
$type.$id まで展開します。
/var/run/ceph/$cluster-$name.asok

1.5. ランタイム時に Ceph 設定を一覧表示

Ceph 設定ファイルは、ブート時およびランタイム時に表示できます。

前提条件

  • Ceph ノードへのルートレベルのアクセス
  • 管理キーリングへのアクセス

手順

  1. ランタイム設定を表示するには、デーモンを実行している Ceph ノードにログインして以下のコマンドを実行します。

    構文

    ceph daemon DAEMON_TYPE.ID config show

    osd.0 の設定を確認するには、osd.0 を含むノードにログインして以下のコマンドを実行します。

    [root@osd ~]# ceph daemon osd.0 config show

  2. 追加のオプションについては、デーモンと help を指定します。

    [root@osd ~]# ceph daemon osd.0 help

1.6. ランタイム時の特定の設定の表示

Red Hat Ceph Storage の設定は、Ceph Monitor ノードからランタイム時に表示できます。

前提条件

  • 稼働中の Red Hat Ceph Storage クラスター
  • Ceph Monitor ノードへのルートレベルのアクセス。

手順

  1. Ceph ノードにログインして、以下のコマンドを実行します。

    構文

    ceph daemon DAEMON_TYPE.ID config get PARAMETER

    [root@mon ~]# ceph daemon osd.0 config get public_addr

1.7. ランタイム時の特定の設定の設定

ランタイム設定を設定する一般的な方法は 2 つあります。

  • Ceph Monitor の使用
  • Ceph 管理ソケットの使用

tell および injectargs コマンドを使用してモニターと通信すると、Ceph ランタイム設定オプションを設定できます。

前提条件

  • 稼働中の Red Hat Ceph Storage クラスター
  • Ceph Monitor ノードまたは OSD ノードへのルートレベルのアクセス

手順

  1. オプションを注入して Ceph Monitor を使用します。

    ceph tell DAEMON_TYPE.DAEMON_ID or * injectargs --NAME VALUE [--NAME VALUE]

    DAEMON_TYPEosd または mon のいずれかに置き換えます。

    ランタイム設定は、* を使用して特定タイプのすべてのデーモンに適用するか、特定の DAEMON_ID (数字または名前) を指定できます。

    たとえば、osd.0 という名前の ceph-osd デーモンのデバッグロギングを 0/5 に変更するには、以下のコマンドを実行します。

    [root@osd ~]# ceph tell osd.0 injectargs '--debug-osd 0/5'
    注記

    tell コマンドは複数の引数を取るため、tell の各引数は一重引用符で囲み、構成の前に2つのダッシュを付けます ('--NAME VALUE [--NAME VALUE]' ['--NAME VALUE [--NAME VALUE]'])。ceph tell コマンドはモニターを通過します。

    モニターにバインドできない場合には、Ceph 管理ソケットを使用して変更を行うことができます。

  2. 設定を変更するデーモンのノードにログインします。

    1. 設定変更を Ceph デーモンに直接発行します。

      [root@osd ~]# ceph osd.0 config set debug_osd 0/5
      注記

      引用符には引数を 1 つしか指定しないため、daemon コマンドには引用符は必要ありません。

1.8. OSD メモリーターゲット

BlueStore は、osd_memory_target 設定オプションを使用して、OSD ヒープメモリーの使用を指定されたターゲットサイズで保持します。

osd_memory_target オプションは、システムで利用可能な RAM に基づいて OSD メモリーを設定します。デフォルトでは Anisble は値を 4 GB に設定します。デーモンをデプロイする際に、/usr/share/ceph-ansible/group_vars/all.yml ファイルで、バイト単位で示している値を変更できます。

例: osd_memory_target を 6000000000 バイトに設定

ceph_conf_overrides:
  osd:
    osd_memory_target=6000000000

キャッシュヒットの利点は、ソリッドステートドライブよりも高いので、ブロックデバイス(従来のハードドライブなど)に Ceph OSD メモリーをキャッシュする方が重要です。ただし、ハイパーコンバージドインフラストラクチャー(HCI)またはその他のアプリケーションなど、OSD を他のサービスと共存させるには、重み付けする必要があります。

注記

osd_memory_target の値は、従来のハードドライブデバイス用のデバイスごとに 1 つの OSD、NVMe SSD デバイス用のデバイスごとに 2 つの OSD です。osds_per_devicegroup_vars/osds.yml ファイルで定義されます。

関連情報

1.9. MDS メモリーキャッシュの制限

MDS サーバーは、そのメタデータを別のストレージプール (cephfs_metadata) に保持し、Ceph OSD のユーザーです。Ceph File Systems では、MDS サーバーはストレージクラスター内の単一のストレージデバイスだけでなく、Red Hat Ceph Storage クラスター全体をサポートする必要があるため、特にワークロードが中規模の小さいファイル(メタデータとデータの比率がはるかに高くなる場合に)メモリーの要件が大幅になる可能性があります。

例: mds_cache_memory_limit を 2000000000 バイトに設定

ceph_conf_overrides:
  osd:
    mds_cache_memory_limit=2000000000
注記

メタデータ集中型のワークロードがある大規模な Red Hat Ceph Storage クラスターの場合には、DSM サーバーをその他のメモリー集中型サービスと同じノードに配置することはできません。これにより、100 GB を超えるサイズなど、MDS により多くのメモリーを割り当てるオプションが提供されます。

関連情報

1.10. 関連情報

  • オプションの詳細や使用方法は、付録 A の一般的な Ceph 設定オプションを参照してください。

第2章 Ceph ネットワーク設定

ストレージ管理者は、Red Hat Ceph Storage クラスターが動作するネットワーク環境を理解し、それに応じて Red Hat Ceph Storage を設定する必要があります。Ceph ネットワークオプションについての理解および設定により、ストレージクラスター全体の最適なパフォーマンスと信頼性が確保されます。

2.1. 前提条件

  • ネットワーク接続。
  • Red Hat Ceph Storage ソフトウェアのインストール

2.2. Ceph のネットワーク設定

高パフォーマンスの Red Hat Ceph Storage クラスターをビルドするには、ネットワーク設定が重要です。Ceph Storage クラスターは、Ceph クライアントの代わりに要求のルーティングまたはディスパッチを実行しません。その代わりに、Ceph クライアントは Ceph OSD デーモンに直接要求を行います。Ceph OSD は、Ceph クライアントの代わりにデータのレプリケーションを実行します。したがって、レプリケーションやその他の要因により、Ceph Storage クラスターのネットワークに追加負荷がかかることになります。

すべての Ceph クラスターはパブリックネットワークを使用する必要があります。ただし、内部クラスターネットワークを指定しない限り、Ceph は単一のパブリックネットワークを想定します。Ceph はパブリックネットワークでのみ機能しますが、大規模なストレージクラスターの場合、2 つ目のプライベートネットワークを使用すると、クラスター関連のトラフィックのみを適用するのにパフォーマンスが大幅に改善されます。

重要

Red Hat は、2 つのネットワークを持つ Ceph Storage クラスターを実行することを推奨します。1 つのパブリックネットワークと 1 つのプライベートネットワーク

2 つのネットワークをサポートするには、各 Ceph ノードには複数のネットワークインターフェースカード(NIC)が必要です。

ネットワークアーキテクチャー

2 つのネットワークを運用することを検討する理由は複数あります。

  • パフォーマンス: Ceph OSD は Ceph クライアントのデータレプリケーションを処理します。Ceph OSD で複数のデータを複製する場合、Ceph OSD 間のネットワーク負荷は、Ceph クライアントと Ceph ストレージクラスター間のネットワーク負荷を簡単に破損します。これにより、レイテンシーが発生し、パフォーマンスの問題が生じる可能性があります。また、パブリックネットワークでの復旧とリバランスにより、かなりのレイテンシーが発生する可能性もあります。
  • セキュリティー: 通常、多くのユーザーはサービス拒否 (DoS) 攻撃と呼ばれる攻撃に関与します。Ceph OSD 間のトラフィックが中断されると、ピアリングが失敗し、配置グループが active + clean 状態を反映しなくなり、ユーザーがデータを読み書きできなくなる可能性があります。このような攻撃を阻止するには、インターネットに直接接続しない完全に別のクラスターネットワークを維持する方法があります。

ネットワーク設定は必要ありません。Ceph はパブリックネットワークでのみ機能します。この場合、Ceph デーモンを実行する全ホストにパブリックネットワークが設定されていることを前提としています。ただし、Ceph では、より具体的な基準を確立することができます。これには、複数の IP ネットワークおよびパブリックネットワークのサブネットマスクが含まれます。また、OSD ハートビート、オブジェクトレプリケーション、およびリカバリートラフィックを処理するために、別のクラスターネットワークを確立することもできます。

設定に設定した IP アドレスとパブリック向け IP アドレスネットワーククライアントは、サービスへのアクセスに使用する IP アドレスを混同しないようにしてください。通常、内部 IP ネットワークは 192.168.0.0 または 10.0.0.0 です。

注記

Ceph はサブネットに CIDR 表記を使用します (例: 10.0.0.0/24)。

重要

パブリックネットワークまたはプライベートネットワークのいずれかに、複数の IP アドレスとサブネットマスクを指定する場合、ネットワーク内のサブネットは相互にルーティングできなければなりません。また、IP アドレスとサブネットを IP テーブルに追加し、必要に応じてポートを開いてください。

ネットワークを設定する際に、クラスターを再起動するか、各デーモンを再起動することができます。Ceph デーモンは動的にバインドされるため、ネットワーク設定を変更する場合には、クラスター全体を一度に再起動する必要はありません。

2.3. Ceph デーモンの設定要件

Ceph には、全デーモンに適用されるネットワーク設定の要件が 1 つあります。Ceph 設定ファイルは、各デーモンに host を指定する必要があります。

重要

一部のデプロイメントユーティリティーで、設定ファイルが作成される場合があります。deployment ユーティリティーが実行する場合は、これらの値を設定しないでください。

重要

host オプションは、FQDN ではなく、ノードの短縮名です。IP アドレスではありません。

ホスト名を指定して、デーモンがある場所の host 名と IP アドレスを設定できます。

[mon.a]
    host = HOSTNAME
    mon_addr = IP_ADDRESS:6789

[osd.0]
    host = HOSTNAME

デーモンのノード IP アドレスを設定する必要はありません。これはオプションです。静的 IP 設定と、パブリックネットワークとプライベートネットワークの両方が実行している場合は、Ceph 設定ファイルが各デーモンのノードの IP アドレスを指定する可能性があります。デーモンの静的 IP アドレスの設定は、Ceph 設定ファイルのデーモンインスタンスセクションに表示される必要があります。

[osd.0]
    public_addr = NODE_PUBLIC_IP_ADDRESS
    cluster_addr = NODE_PRIVATE_IP_ADDRESS

OSD ホストを強制することで、単一の NIC を持つ OSD ホストを 2 つのネットワークを持つクラスターにデプロイできます。Ceph 設定ファイルの [osd.n] セクションに public addr エントリーを追加することにより、OSD ホストを強制的にパブリックネットワークで操作できます。n は、1 つの NIC を持つ OSD の数を示します。さらに、パブリックネットワークおよびクラスターネットワークはトラフィックを相互にルーティングできなければなりません。これは、Red Hat はセキュリティー上の理由から推奨しません。

重要

Red Hat は、セキュリティー上の理由から、2 つのネットワークを持つ単一の NIC を持つ OSD ノードをデプロイすることは推奨していません。

関連情報

  • 具体的なオプションの説明や使用方法は、『Red Hat Ceph Storage 設定ガイド』「付録 B」のホストオプションを参照してください。
  • 具体的なオプションの説明や使用方法は、『Red Hat Ceph Storage 設定ガイド』「付録 B」の共通オプションを参照してください。

2.4. Ceph network messenger

Static は Ceph ネットワーク層の実装です。Red Hat は、2 つのメssenger タイプをサポートします。

  • simple
  • async

Red Hat Ceph Storage 3 以降では、async がデフォルトの messenger タイプです。messenger タイプを変更するには、Ceph 設定ファイルの [global] セクションに ms_type 設定を指定します。

注記

async mesenger では、Red Hat は posix トランスポートタイプをサポートしますが、現在 rdma または dpdk をサポートしていません。デフォルトでは、Red Hat Ceph Storage 3 以降の ms_type 設定は async+posix を反映します。ここで、async は messenger タイプで、posix はトランスポートタイプになります。

SimpleMessenger

SimpleMessenger 実装は、1 ソケットあたり 2 つのスレッドを持つ TCP ソケットを使用します。Ceph は各論理セッションを接続に関連付けます。パイプは、各メッセージの入出力を含む接続を処理します。SimpleMessenger は、posix トランスポートタイプに有効ですが、rdmadpdk などの他のトランスポートタイプには有効ではありません。

AsyncMessenger

したがって、AsyncMessenger は、Red Hat Ceph Storage 3 以降のデフォルトのメッセンジャータイプです。Red Hat Ceph Storage 3 以降では、AsyncMessenger 実装は、接続用に固定サイズのスレッドプールを持つ TCP ソケットを使用します。これは、レプリカまたはイレイジャーコードチャンクの最大数と同じでなければなりません。スレッド数は、CPU 数が少ないためにパフォーマンスが低下するか、サーバーごとの OSD 数が多い場合に、低い値に設定できます。

注記

現時点で、Red Hat は rdmadpdk などの他のトランスポートタイプをサポートしていません。

関連情報

  • 具体的なオプションの説明と使用方法は、『Red Hat Ceph Storage 設定』「付録 B」の AsyncMessenger オプションを参照してください。
  • Ceph messenger バージョン 2 プロトコルを使用した 「ネットワーク上の暗号化」の使用に関する詳細は、『Red Hat Ceph Storage アーキテクチャーガイド』を参照してください。

2.5. パブリックネットワークの設定

パブリックネットワーク設定により、パブリックネットワークの IP アドレスとサブネットを具体的に定義できます。特定のデーモンの public addr 設定を使用して、静的 IP アドレスまたは public network 設定をオーバーライドできます。

前提条件

  • Red Hat Ceph Storage ソフトウェアのインストール

手順

  1. Ceph 設定ファイルの [global] セクションに、以下の設定を追加します。
[global]
    ...
    public_network = PUBLIC-NET/NETMASK

関連情報

  • 具体的なオプションの説明や使用方法は、『Red Hat Ceph Storage 設定ガイド』「付録 B」の共通オプションを参照してください。

2.6. プライベートネットワークの設定

クラスターネットワークを宣言すると、OSD はハートビート、オブジェクトレプリケーション、およびリカバリートラフィックをクラスターネットワーク上でルーティングします。これにより、単一のネットワークを使用する場合に比べパフォーマンスが向上します。

重要

セキュリティーを強化するために、クラスターネットワークはパブリックネットワークまたはインターネットから到達できないことが推奨されます。

クラスターネットワーク設定により、クラスターネットワークを宣言し、クラスターネットワークの IP アドレスおよびサブネットを具体的に定義できます。特定の OSD デーモンの cluster addr 設定を使用して、静的 IP アドレスを割り当てるか、または cluster network 設定を上書きすることができます。

前提条件

  • 稼働中の Red Hat Ceph Storage クラスター
  • Ceph ソフトウェアリポジトリーへのアクセス

手順

  1. Ceph 設定ファイルの [global] セクションに、以下の設定を追加します。
[global]
    ...
    cluster_network = CLUSTER-NET/NETMASK

2.7. ファイアウォール設定の確認

デフォルトでは、デーモンは 6800:7100 範囲内のポートにバインドされます。この範囲は、ユーザーの判断で設定することができます。ファイアウォールを設定する前に、デフォルトのファイアウォール設定を確認してください。

前提条件

  • 稼働中の Red Hat Ceph Storage クラスター
  • Ceph ソフトウェアリポジトリーへのアクセス
  • Ceph Monitor ノードへのルートレベルのアクセス。

手順

  1. この範囲は、ユーザーの判断で設定することができます。

    [root@mon ~]# sudo iptables -L
  2. firewalld デーモンの場合は、以下のコマンドを実行します。

    [root@mon ~]# firewall-cmd --list-all-zones

    一部の Linux ディストリビューションには、全ネットワークインターフェースから SSH を除くすべてのインバウンド要求を拒否するルールが含まれます。

    REJECT all -- anywhere anywhere reject-with icmp-host-prohibited

2.8. Ceph Monitor ノードのファイアウォール設定

Ceph モニターはデフォルトでポート 6789 をリッスンします。また、Ceph モニターは常にパブリックネットワーク上で動作します。

前提条件

  • 稼働中の Red Hat Ceph Storage クラスター
  • Ceph ソフトウェアリポジトリーへのアクセス
  • Ceph Monitor ノードへのルートレベルのアクセス。

手順

  1. 以下の例を使用してルールを追加します。

    [root@mon ~]# sudo iptables -A INPUT -i IFACE -p tcp -s IP-ADDRESS/NETMASK --dport 6789 -j ACCEPT
    1. IFACE は、パブリックネットワークインターフェース (例: eth0eth1 など) に置き換えます。
    2. IP-ADDRESS は、パブリックネットワークの IP アドレスに、NETMASK は、パブリックネットワークのネットマスクに置き換えます。
  2. firewalld デーモンの場合は、以下のコマンドを実行します。

    [root@mon ~]# firewall-cmd --zone=public --add-port=6789/tcp
    [root@mon ~]# firewall-cmd --zone=public --add-port=6789/tcp --permanent

2.9. Ceph OSD のファイアウォール設定

デフォルトでは、Ceph OSD はポート 6800 で始まる Ceph ノード上の最初の利用可能なポートにバインドされます。ノードで実行される OSD ごとにポート 6800 で始まるポートを少なくとも 4 つ開くようにしてください。

  • 1 つはクライアントと通信し、パブリックネットワーク上の監視用です。
  • 1 つはクラスターネットワーク上の他の OSD にデータを送信します。
  • 2(クラスターネットワーク上でハートビートパケットを送信する場合)。
OSD ファイアウォール

ポートはノード固有のものです。ただし、プロセスが再起動し、バインドされたポートが解放されない場合に、Ceph デーモンが必要なポート数よりも多くのポートを開放しなければならない場合があります。再起動したデーモンが新しいポートにバインドされるようにポートを解放せずにデーモンが失敗し、再起動した場合には、追加のポートを開くことを検討してください。また、各 OSD ノードでポート範囲 6800:7300 を開くことを検討してください。

別のパブリックネットワークおよびクラスターネットワークを設定する場合は、パブリックネットワークとクラスターネットワークの両方のルールを追加する必要があります。クライアントはパブリックネットワークと他の Ceph OSD デーモンを使用して接続し、クラスターネットワークを使用して接続するためです。

前提条件

  • 稼働中の Red Hat Ceph Storage クラスター
  • Ceph ソフトウェアリポジトリーへのアクセス
  • Ceph OSD ノードへのルートレベルのアクセス。

手順

  1. 以下の例を使用してルールを追加します。

    [root@mon ~]# sudo iptables -A INPUT -i IFACE  -m multiport -p tcp -s IP-ADDRESS/NETMASK --dports 6800:6810 -j ACCEPT
    1. IFACE は、パブリックネットワークインターフェース (例: eth0eth1 など) に置き換えます。
    2. IP-ADDRESS は、パブリックネットワークの IP アドレスに、NETMASK は、パブリックネットワークのネットマスクに置き換えます。
  2. firewalld デーモンの場合は、次のコマンドを実行します。

    [root@mon ~] # firewall-cmd --zone=public --add-port=6800-6810/tcp
    [root@mon ~] # firewall-cmd --zone=public --add-port=6800-6810/tcp --permanent

クラスターネットワークを別のゾーンに配置する場合は、必要に応じてそのゾーン内のポートを開きます。

2.10. 関連情報

  • オプションの詳細や使用方法は、「付録 B」の Red Hat Ceph Storage ネットワーク設定オプションを参照してください。
  • Ceph messenger バージョン 2 プロトコルを使用した 「ネットワーク上の暗号化」の使用に関する詳細は、『Red Hat Ceph Storage アーキテクチャーガイド』を参照してください。

第3章 Ceph Monitor の設定

ストレージ管理者は、Ceph Monitor のデフォルト設定値を使用するか、必要なワークロードに応じてそれらをカスタマイズすることができます。

3.1. 前提条件

  • Red Hat Ceph Storage ソフトウェアのインストール

3.2. Ceph Monitor の設定

Ceph Monitor の設定方法を理解することは、信頼できる Red Hat Ceph Storage クラスターを構築する上で重要です。すべてのクラスターには、1 つ以上のモニターがあります。通常、モニター設定はかなり一貫性がありますが、クラスター内のモニターを追加、削除、または置き換えることができます。

Ceph モニターはクラスターマップの「マスターコピー」を維持します。つまり、Ceph クライアントは 1 つの Ceph モニターに接続し、現在のクラスターマップを取得するだけで、すべての Ceph モニターと Ceph OSD の場所を判断することができます。

Ceph クライアントが Ceph OSD からの読み取りまたは書き込みを行うには、最初に Ceph monitor に接続する必要があります。クラスターマップと CRUSH アルゴリズムの現在のコピーを使用して、Ceph クライアントは任意のオブジェクトの場所を計算できます。オブジェクトの場所を計算する機能により、Ceph クライアントは Ceph OSD と直接対話することができます。これは、Ceph の高スケーラビリティーおよびパフォーマンスの非常に重要な部分です。

Ceph monitor の主なロールは、クラスターマップのマスターコピーの維持です。Ceph モニターは、認証およびロギングサービスを提供します。Ceph モニターはモニターサービス内のすべての変更を 1 つの Paxos インスタンスに書き込みます。また、Paxos は、強力な一貫性を確保するために、キーと値のストアに変更を書き込みます。Ceph モニターは、同期操作時に最新バージョンのクラスターマッピングにクエリーすることができます。Ceph モニターは、(leveldb データベースを使用した) キー値ストアのスナップショットやイテレーターを使用して、ストア全体の同期を実行します。

Paxos

3.3. Ceph クラスターのマッピング

クラスターマップは、モニターマップ、OSD マップ、配置グループマップなど、マップの複合です。クラスターマップは、数多くの重要なイベントを追跡します。

  • どのプロセスが Red Hat Ceph Storage クラスター内 (in) にあるか。
  • Red Hat Ceph Storage クラスター内 in にあるプロセスが up で稼働しているか、down であるか。
  • 配置グループが active または inactiveclean な、または他の一部の状態にあるかどうか。
  • クラスターの現在の状態を反映するその他の詳細。以下に例を示します。

    • ストレージ容量の合計
    • 使用されるストレージの量。

クラスターの状態に大きな変更がある場合(例: Ceph OSD がダウンし、配置グループは degraded 状態など)します。クラスターマップは、クラスターの現在の状態を反映するように更新されます。また、Ceph モニターはクラスターの以前の状態の履歴も維持します。モニターマップ、OSD マップ、および配置グループマップは、それぞれマップバージョンの履歴を維持します。各バージョンは エポック と呼ばれます。

Red Hat Ceph Storage クラスターを運用する場合には、これらの状態を追跡することは、クラスター管理の重要な部分です。

3.4. Ceph Monitor クォーラム

クラスターは、1 台のモニターを使用して適切に実行されます。ただし、1 つのモニターが単一障害点となります。実稼働 Ceph Storage クラスターで高可用性を確保するには、複数のモニターを使用して Ceph を実行し、1 台のモニターで障害が発生してもストレージクラスター全体が機能しなくなります。

Ceph Storage クラスターが複数の Ceph Monitor を高可用性のために実行する場合、Ceph Monitors は Paxos アルゴリズムを使用してマスタークラスターのマッピングについての合意を確立します。合意には、クラスターマップに関する合意のクォーラムを確立するために、ほとんどのモニターを実行する必要があります。たとえば、1、2 out of 3、5 中 3、4 out of 6 などになります。

Red Hat は、高可用性を確保するために少なくとも 3 つの Ceph Monitor を指定して実稼働用の Red Hat Ceph Storage クラスターを実行することを推奨します。複数のモニターを実行する場合は、クォーラムを確立するためにストレージクラスターのメンバーである必要がある初期モニターを指定できます。これにより、ストレージクラスターがオンラインになるまでの時間が短縮される可能性があります。

[mon]
mon_initial_members = a,b,c
注記

クォーラムを確立するには、ストレージクラスター内のモニターの 大半 が相互に到達できる必要があります。mon_initial_members オプションでクォーラムを確立するモニターの最初の数を減らすことができます。

3.5. Ceph Monitor の整合性

Ceph 設定ファイルにモニター設定を追加する場合には、Ceph Monitor のアーキテクチャーに関する機能の一部を認識しておく必要があります。クラスター内の別の Ceph Monitor を検出する際に、Ceph Monitor に厳密な整合性要件を設ける。Ceph クライアントおよびその他の Ceph デーモンは、Ceph 設定ファイルを使用してモニターを検出し、Ceph 設定ファイルではなくモニターマップ (monmap) を使用して相互を検出します。

Ceph Monitor は、Red Hat Ceph Storage クラスター内で他の Ceph Monitor を検出する際に、モニターマップのローカルコピーを常に参照します。Ceph 設定ファイルの代わりにモニターマップを使用すると、クラスターが破損する可能性のあるエラーが発生しないようにします。たとえば、モニターのアドレスまたはポートを指定する際には、Ceph 設定ファイルに入力を入力します。モニターは検出にモニターマップを使用し、モニターマップをクライアントおよびその他の Ceph デーモンと共有します。そのため、モニターマップはモニターで合意が有効であるという厳密な保証を提供します。

更新をモニターマップに適用する際の厳密な一貫性

Ceph Monitor の他の更新と同様に、モニターマップへの変更は常に Paxos と呼ばれる分散されたコンシグネスアルゴリズムで実行されます。クォーラム内の各モニターのモニターマップのバージョンが同じであるようにするため、Ceph Monitor は、Ceph Monitor の追加または削除など、モニターマップへの各更新に同意する必要があります。モニターマップへの更新は増分なので、Ceph Monitor はバージョンと以前のバージョンセットに最新の合意を持ちます。

履歴の維持

履歴を維持することで、モニターマップの古いバージョンを持つ Ceph Monitor が、Red Hat Ceph Storage クラスターの現在の状態に追い付くことができます。

Ceph Monitors がモニターマップではなく Ceph 設定ファイルで相互を検出した場合には、Ceph 設定ファイルは更新されて自動的に配布されないため、追加のリスクが発生します。Ceph Monitor は、誤って古い Ceph 設定ファイルを使用する、Ceph Monitor を認識できない、クォーラムから抜け出す、または Paxos がシステムの現在の状態を正確に判断できない状況を開発する可能性があります。

3.6. Ceph Monitor のブートストラップ

ほとんどの設定およびデプロイメントのケースでは、Ansible などの Ceph をデプロイするツールは、モニターマップを生成して Ceph モニターのブートストラップに役立つ場合があります。

Ceph モニターには、いくつかの明示的な設定が必要です。

  • ファイルシステム ID: fsid は、オブジェクトストアの一意識別子です。同じハードウェアで複数のストレージクラスターを実行することができるため、モニターのブートストラップ時にオブジェクトストアの一意の ID を指定する必要があります。Ansible などのデプロイメントツールを使用すると、ファイルシステムの識別子が生成されますが、fsid も手動で指定できます。
  • モニター ID: モニター ID は、クラスター内の各モニターに割り当てられる一意の ID です。これは英数字の値であり、識別子は通常アルファベット順のインクリメントに従います。たとえば、ab などです。これは、Ceph 設定ファイルで設定することができます。例: [mon.a][mon.b] など、デプロイメントツール、または ceph コマンドの使用です。
  • キー: モニターには秘密鍵が必要です。

3.7. 設定ファイルの Ceph Monitor セクション

クラスター全体に設定を適用するには、[global] セクションに構成設定を入力します。クラスター内のすべてのモニターに設定を適用するには、[mon] セクションに構成設定を入力します。特定のモニターに設定を適用するには、監視インスタンスを指定します。

[mon.a]

通常、インスタンス名を監視するには、アルファ表記を使用します。

[global]

[mon]

[mon.a]

[mon.b]

[mon.c]

3.8. Ceph Monitor の最小設定

Ceph 設定ファイルの Ceph monitor の最小限のモニター設定には、DNS およびモニターアドレス用に設定されていない場合には、各モニターのホスト名が含まれます。これらの設定は、[mon] の下、または特定のモニターのエントリーの下で設定できます。

[mon]
mon_host = hostname1,hostname2,hostname3
mon_addr = 10.0.0.10:6789,10.0.0.11:6789,10.0.0.12:6789

または

[mon.a]
host = hostname1
mon_addr = 10.0.0.10:6789
注記

このモニターの最小設定は、デプロイメントツールが fsidmon. キーを生成することを前提としています。

重要

Ceph クラスターをデプロイしたら、モニターの IP アドレスを変更しないでください。

RHCS 2.4 の時点では、クラスターが DNS サーバー経由でモニターを検索するように設定されている場合に、Ceph では mon_host は必要ありません。DNS ルックアップ用に Ceph クラスターを設定するには、Ceph 設定ファイルの mon_dns_srv_name 設定を設定します。

設定後、DNS を設定します。DNS ゾーン内のモニター用の IPv4(A)または IPv6(AAAA)を作成します。

#IPv4
mon1.example.com. A 192.168.0.1
mon2.example.com. A 192.168.0.2
mon3.example.com. A 192.168.0.3

#IPv6
mon1.example.com. AAAA 2001:db8::100
mon2.example.com. AAAA 2001:db8::200
mon3.example.com. AAAA 2001:db8::300

ここで、example.com は DNS 検索ドメインになります。

次に、3 つのモニターを指す mon_dns_srv_name 設定名で SRV TCP レコードを作成します。以下の例では、デフォルトの ceph-mon 値を使用しています。

_ceph-mon._tcp.example.com. 60 IN SRV 10 60 6789 mon1.example.com.
_ceph-mon._tcp.example.com. 60 IN SRV 10 60 6789 mon2.example.com.
_ceph-mon._tcp.example.com. 60 IN SRV 10 60 6789 mon3.example.com.

モニターはデフォルトでポート 6789 で稼働し、その優先度と重みはすべて前述の例でそれぞれ 10 および 60 に設定されます。

3.9. Ceph の一意識別子

各 Red Hat Ceph Storage クラスターには固有の ID (fsid) があります。指定した場合には、通常は設定ファイルの [global] セクションに表示されます。デプロイメントツールは通常、fsid を生成してモニターマップに保存するため、値は設定ファイルに表示されない可能性があります。fsid を使用すると、同じハードウェア上で複数のクラスターに対してデーモンを実行できます。

注記

この値を行うデプロイメントツールを使用する場合は、この値を設定しないでください。

3.10. Ceph Monitor データストア

Ceph は、Ceph モニターがデータを格納するデフォルトのパスを提供します。

重要

Red Hat では、実稼働用の Red Hat Ceph Storage クラスターで最適なパフォーマンスを得るために、Ceph モニターを Ceph OSD から別のホストおよびドライブで実行することを推奨します。

Ceph モニターは fsync() 関数を頻繁に呼び出します。これは、Ceph OSD ワークロードに干渉する可能性があります。

Ceph モニターは、データをキーと値のペアとして保存します。データストアを使用すると、Ceph モニターで Paxos を通じて破損したバージョンを実行できなくなります。また、複数の変更操作を 1 つのアトミックバッチで 1 つのアトミックバッチで実行することができます。

重要

Red Hat は、デフォルトのデータの場所を変更することを推奨しません。デフォルトの場所を変更する場合は、設定ファイルの [mon] セクションにそれを設定して、Ceph モニター全体で統一します。

3.11. Ceph ストレージ容量

Red Hat Ceph Storage クラスターが最大容量 (mon_osd_full_ratio パラメーターにより指定) に近くなると、データの損失を防ぐために安全対策として Ceph OSD への書き込みや読み取りができなくなります。したがって、実稼働用の Red Hat Ceph Storage クラスターでは高可用性を犠牲にするため、完全な比率をアプローチすることは適切ではありません。デフォルトの完全比率は、.95 (容量の 95%) です。これは、OSD の数が少ないテストクラスターの非常に集中的な設定です。

ヒント

クラスターをモニタリングする際に、nearfull な比率に関連する警告にアラートしてください。つまり、OSD に障害が発生すると、1 つ以上の OSD が失敗するとサービスが一時的に中断する可能性があります。ストレージ容量を増やすために OSD を追加することを検討してください。

テストクラスターの一般的なシナリオでは、システム管理者が Red Hat Ceph Storage クラスターから Ceph OSD を削除して、クラスターのリバランスを監視する必要があります。次に、Red Hat Ceph Storage クラスターが完全な比率に達するまで、別の Ceph OSD を削除します。

重要

Red Hat は、テストクラスターでも、少しの容量プランニングを推奨しています。計画により、高可用性を維持するために必要な予備の容量を測定することができます。

理想的には、Ceph OSD を直ちに置き換えることなく、クラスターが active + clean な状態に復元できる Ceph OSD の一連の障害を計画する必要があります。クラスターを active + degraded の状態で実行できますが、これは通常の動作条件には理想的ではありません。

以下の図は、ホストごとに 1 つの Ceph OSD を持つ 33 Ceph ノードを含む、単純化された Red Hat Ceph Storage クラスターを示しています。各 Ceph OSD デーモンは、3TB ドライブから読み取り/書き込みを行います。したがって、この使用可能な Red Hat Ceph Storage クラスターの実際の容量は 99TB です。mon osd full ratio0.95 の場合は、Red Hat Ceph Storage クラスターが空き容量が 5 TB になると、Ceph クライアントはデータの読み取りと書き込みを許可しません。そのため、Red Hat Ceph Storage クラスターの稼働容量は 99 TB ではなく 95 TB になります。

ストレージ容量

1 つまたは 2 つの OSD が失敗するため、通常はこのようなクラスターにあります。頻度は低くなりますが、合理的なシナリオではラックのルーターまたは電源の障害が発生します。これにより、OSD 7 - 12 など、複数の OSD が同時に停止します。このようなシナリオでは、さらに OSD のあるホストを短い順序で追加する場合でも、動作し続け、active + clean な状態を実現するクラスターを試す必要があります。容量の使用率が高すぎると、データを失わない可能性がありますが、クラスターの容量使用率が最大率を超えても、障害ドメイン内で停止した場合でもデータの可用性を犠牲にできます。このため、Red Hat は少なくともある程度の容量計画を推奨しています。

クラスターの 2 つの番号を特定します。

  • OSD 数
  • クラスターの合計容量

クラスター内の OSD の平均容量を判断するには、クラスターの合計容量をクラスター内の OSD 数で除算します。通常の操作時に(比較的少ない数)同時に失敗したと予想される OSD の数で、その数を掛けてください。最後に、クラスターの容量をフル比で乗算して、最大動作容量に達します。次に、想定されている OSD からのデータ量を、妥当な完全比率で減算します。反復プロセスを繰り返し、OSD の障害(例: OSD のラック)を増やして、ほぼフル比率で妥当な数に達します。

3.12. Ceph heartbeat

Ceph モニターは、各 OSD からレポートを要求することでクラスターを認識し、OSD からそれらの近傍の OSD のステータスについてのレポートを受信することで認識します。Ceph は、モニターと OSD 間の対話に妥当なデフォルト設定を提供しますが、必要に応じて変更できます。

3.13. Ceph Monitor 同期ロール

推奨される複数のモニターで実稼働用のクラスターを実行する場合は、各モニターが、近傍モニターにより新しいバージョンのクラスターマップがあるかどうかを確認します。たとえば、インスタントモニターの地図の最新エポックよりも 1 つ以上のエポック番号が高い近傍モニターのマップです。クラスター内の 1 つのモニターは、クォーラムを離れなければならない時点まで他のモニターに先行し、クラスターに関する最新情報を取得するために同期し、クォーラムに再度参加させる必要がある場合があります。

同期ロール

同期の目的で、モニターは 3 つのロールのいずれかを想定できます。

  • リーダー: リーダーは、クラスターマップの最新の Paxos バージョンを実現する最初のモニターです。
  • プロバイダー: プロバイダーは最新バージョンのクラスターマップを持つモニターですが、最新バージョンを最初に達成したわけではありません。
  • リクエスター: リクエスターはリーダーの背後に置かれたモニターで、クォーラムに再参加する前にクラスターに関する最新情報を取得するために同期する必要があります。

これらのロールにより、リーダーは同期ロールをプロバイダーに委譲できます。これにより、同期要求がリーダーにオーバーロードせず、パフォーマンスが向上します。以下の図では、リクエスターが他のモニターの背後にあることを確認しています。リクエスターはリーダーに同期を要求するように要求し、リーダーは要求側にプロバイダーとの同期を指示します。

同期の監視

同期の監視

同期は、新規モニターがクラスターに参加すると常に行われます。ランタイム操作中、モニターはクラスターマップへの更新を異なるタイミングで受信できます。つまり、リーダーロールとプロバイダーロールがあるモニターから別のモニターに移行できることを意味します。たとえば、プロバイダーがリーダーの背後に置かれているなど、同期中にこれが発生すると、プロバイダーはリクエスターとの同期を終了することができます。

同期が完了したら、Ceph ではクラスター全体でトリミングする必要があります。トリミングを行うには、配置グループが active + clean である必要があります。

3.14. 時間同期

Ceph デーモンは重要なメッセージを相互に渡し、デーモンがタイムアウトのしきい値に達する前に処理する必要があります。Ceph モニターのクロックが同期されない場合には、異常が生じる可能性があります。

以下に例を示します。

  • デーモンは、古いタイムスタンプなどの受信メッセージを無視します。
  • メッセージが時間内に受信されなかった場合、タイムアウトが早すぎるか遅すぎる。
ヒント

Ceph monitor ホストに NTP をインストールして、監視クラスターが同期されたクロックで動作するようにします。

不一致がまだ有害ではない場合でも、NTP ではクロックのドリフトに気付く場合があります。NTP が妥当な同期レベルを維持している場合でも、Ceph クロックのドリフトとクロックスキューの警告がトリガーされる可能性があります。このような状況では、クロックのドリフトを増やすことは容認できる場合があります。ただし、Paxos を保証せずに許容できるクロックのドリフトのレベルに影響を与える可能性のある、ワークロード、ネットワークレイテンシー、他の同期オプションなど、多くの要因があります。

関連情報

3.15. 関連情報

  • 特定のオプションの説明や使用方法は、「付録 C」に記載されるすべての Red Hat Ceph Storage Monitor 設定オプションを参照してください。

第4章 Ceph 認証の設定

ストレージ管理者は、Red Hat Ceph Storage クラスターのセキュリティーにおいて、ユーザーとサービスの認証が重要になります。Red Hat Ceph Storage には、暗号化認証のデフォルトとして Cephx プロトコルと、ストレージクラスターで認証を管理するツールが含まれます。

4.1. 前提条件

  • Red Hat Ceph Storage ソフトウェアのインストール

4.2. cephx 認証

cephx プロトコルはデフォルトで有効になっています。暗号化認証は、通常非常に少ない計算コストが発生します。クライアントとホストを接続するネットワーク環境が安全であるとみなされ、認証計算コストを支払うことができない場合は、これを無効にできます。Ceph Storage クラスターをデプロイする際に、デプロイメントツールは client.admin ユーザーおよびキーリングを作成します。

重要

Red Hat は、認証の使用を推奨しています。

注記

認証を無効にすると、仲介者攻撃がクライアントとサーバーのメッセージを変更するリスクにさらされる可能性があり、セキュリティーに関する重大な問題が発生する可能性があります。

Cephx の有効化と無効化

Cephx を有効にするには、Ceph Monitor および OSD のキーをデプロイしている必要があります。Cephx 認証のオン/オフを切り替える場合には、デプロイメントの手順を繰り返す必要はありません。

4.3. Cephx の有効化

cephx が有効な場合には、Ceph はデフォルトの検索パス /etc/ceph/$cluster.$name.keyring を含む) でキーリングを探します。Ceph 設定ファイルの [global] セクションに keyring オプションを追加することで、この場所を上書きすることができますが、これは推奨されません。

認証が無効になっているクラスターで cephx を有効にするには、以下の手順を実行します。またはデプロイメントユーティリティーで鍵を生成している場合は、キーの生成手順を省略できます。

前提条件

  • 稼働中の Red Hat Ceph Storage クラスター
  • Ceph Monitor ノードへのルートレベルのアクセス。

手順

  1. client.admin キーを作成し、クライアントホストのキーのコピーを保存します。

    [root@mon ~]# ceph auth get-or-create client.admin mon 'allow *' osd 'allow *' -o /etc/ceph/ceph.client.admin.keyring
    警告

    これにより、既存の /etc/ceph/client.admin.keyring ファイルの内容が消去されます。デプロイメントツールがすでに実行している場合は、この手順を実行しないでください。

  2. monitor クラスターのキーリングを作成し、モニターのシークレットキーを生成します。

    [root@mon ~]# ceph-authtool --create-keyring /tmp/ceph.mon.keyring --gen-key -n mon. --cap mon 'allow *'
  3. すべてのモニターの mon data ディレクトリーの ceph.mon.keyring ファイルにモニターキーリングをコピーします。たとえば、これをクラスターcephmon.a にコピーするには、以下のコマンドを使用します。

    [root@mon ~]# cp /tmp/ceph.mon.keyring /var/lib/ceph/mon/ceph-a/keyring
  4. すべての OSD に秘密鍵を生成します。ここで、ID は OSD 番号です。

    ceph auth get-or-create osd.ID mon 'allow rwx' osd 'allow *' -o /var/lib/ceph/osd/ceph-ID/keyring
  5. デフォルトでは、cephx 認証プロトコルは有効になっています。

    注記

    認証オプションを none に設定して cephx 認証プロトコルが無効にされていた場合には、Ceph 設定ファイル (/etc/ceph/ceph.conf) の [global] セクションの下にある以下の行を削除して、cephx 認証プロトコルを再度有効にします。

    auth_cluster_required = none
    auth_service_required = none
    auth_client_required = none
  6. Ceph Storage クラスターを起動または再起動します。

    重要

    cephx を有効にするには、クラスターを完全に再起動する必要があるか、クライアントの I/O が無効になったときにシャットダウンしてから起動する必要があるため、ダウンタイムが必要です。

    ストレージクラスターの再起動またはシャットダウン前に、これらのフラグを設定する必要があります。

    [root@mon ~]# ceph osd set noout
    [root@mon ~]# ceph osd set norecover
    [root@mon ~]# ceph osd set norebalance
    [root@mon ~]# ceph osd set nobackfill
    [root@mon ~]# ceph osd set nodown
    [root@mon ~]# ceph osd set pause

    cephx が有効になり、すべての PG がアクティブかつクリーンな状態になったら、フラグの設定を解除します。

    [root@mon ~]# ceph osd unset noout
    [root@mon ~]# ceph osd unset norecover
    [root@mon ~]# ceph osd unset norebalance
    [root@mon ~]# ceph osd unset nobackfill
    [root@mon ~]# ceph osd unset nodown
    [root@mon ~]# ceph osd unset pause

4.4. Cephx の無効化

以下の手順では、Cephx を無効にする方法を説明します。クラスター環境が比較的安全である場合は、認証の実行の計算コストをオフセットできます。

重要

Red Hat は、認証を有効にすることを推奨します。

ただし、設定時やトラブルシューティング中に認証を一時的に無効にする方が簡単な場合があります。

前提条件

  • 稼働中の Red Hat Ceph Storage クラスター
  • Ceph Monitor ノードへのルートレベルのアクセス。

手順

  1. Ceph 設定ファイルの [global] セクションに以下のオプションを設定して、cephx 認証を無効にします。

    auth_cluster_required = none
    auth_service_required = none
    auth_client_required = none
  2. Ceph Storage クラスターを起動または再起動します。

4.5. cephx ユーザーキーリング

認証が有効な Ceph を実行する場合には、Ceph Storage クラスターにアクセスするために ceph 管理コマンドおよび Ceph クライアントに認証キーが必要です。

ceph 管理コマンドおよびクライアントにこれらの鍵を提供する最も一般的な方法は、/etc/ceph/ ディレクトリーの下に Ceph キーリングを追加することです。ファイル名は通常 ceph.client.admin.keyring または $cluster.client.admin.keyring です。/etc/ceph/ ディレクトリーにキーリングを含める場合は、Ceph 設定ファイルで keyring エントリーを指定する必要はありません。

重要

Red Hat は、client.admin キーが含まれるため、Red Hat Ceph Storage クラスターのキーリングファイルを管理コマンドを実行するノードにコピーすることを推奨します。

それを行うには、以下のコマンドを実行します。

# scp USER@HOSTNAME:/etc/ceph/ceph.client.admin.keyring /etc/ceph/ceph.client.admin.keyring

USER を、ホストで使用されるユーザー名に client.admin キーを使用し、HOSTNAME をそのホストのホスト名に置き換えます。

注記

ceph.keyring ファイルに、クライアントマシンに適切なパーミッションが設定されていることを確認します。

推奨されていない key 設定を使用して、Ceph 設定ファイルにキー自体を指定したり、keyfile 設定を使用してキーファイルへのパスを指定することができます。

4.6. cephx デーモンキーリング

管理ユーザーまたはデプロイメントツールは、ユーザーキーリングの生成と同じ方法でデーモンキーリングを生成する場合があります。デフォルトでは、Ceph はデーモンをデータディレクトリー内に保存します。デフォルトのキーリングの場所と、デーモンが機能するために必要な機能。

注記

モニターキーリングにはキーが含まれていますが、機能はなく、Ceph Storage クラスターの auth データベースの一部ではありません。

デーモンデータのディレクトリーの場所は、デフォルトの形式のディレクトリーです。

/var/lib/ceph/$type/CLUSTER-ID

/var/lib/ceph/osd/ceph-12

この場所は上書きできますが、推奨されません。

4.7. cephx メッセージの署名

Ceph では、クライアントと Ceph 間のサービスメッセージの署名を有効または無効にするため、粒度の細かい制御が提供されます。Ceph デーモン間のメッセージの署名を有効または無効にすることができます。

重要

Red Hat では、初期認証に設定されたセッションキーを使用して、エンティティー間で実行中のメッセージをすべて認証することを推奨します。

注記

Ceph カーネルモジュールは署名をサポートしていません。

4.8. 関連情報

  • 特定のオプションの説明や使用方法は、「付録 D」の Red Hat Ceph Storage Cephx のすべての設定オプションを参照してください。

第5章 プール、配置グループ、および CRUSH 設定

ストレージ管理者は、プール、配置グループ、CRUSH アルゴリズムに Red Hat Ceph Storage のデフォルトオプションを使用するか、または目的のワークロード用にカスタマイズすることを選択できます。

5.1. 前提条件

  • Red Hat Ceph Storage ソフトウェアのインストール

5.2. プールの配置グループおよび CRUSH

プールを作成し、プールの配置グループの数を設定する場合、デフォルト値を具体的にオーバーライドしない場合には Ceph はデフォルト値を使用します。

重要

Red Hat は、一部のデフォルトを上書きすることを推奨します。具体的には、プールのレプリカサイズを設定し、配置グループのデフォルト数を上書きします。

プールのコマンドを実行する際に、これらの値を設定できます。Ceph 設定ファイルの [global] セクションに新規のものを追加して、デフォルト値を上書きすることもできます。

[global]

# By default, Ceph makes 3 replicas of objects. If you want to set 4
# copies of an object as the default value--a primary copy and three replica
# copies--reset the default values as shown in 'osd pool default size'.
# If you want to allow Ceph to write a lesser number of copies in a degraded
# state, set 'osd pool default min size' to a number less than the
# 'osd pool default size' value.

osd_pool_default_size = 4  # Write an object 4 times.
osd_pool_default_min_size = 1 # Allow writing one copy in a degraded state.

# Ensure you have a realistic number of placement groups. We recommend
# approximately 100 per OSD. E.g., total number of OSDs multiplied by 100
# divided by the number of replicas (i.e., osd pool default size). So for
# 10 OSDs and osd pool default size = 4, we'd recommend approximately
# (100 * 10) / 4 = 250.

osd_pool_default_pg_num = 250
osd_pool_default_pgp_num = 250

5.3. 関連情報

  • 特定のオプションの説明と使用方法は、「付録 E」の Red Hat Ceph Storage プール、配置グループ、および CRUSH 設定オプションをすべて参照してください。

第6章 Ceph Object Storage Daemon(OSD)の設定

ストレージ管理者は、Ceph Object Storage Daemon(OSD)を、目的のワークロードに基づいて冗長かつ最適化するように設定できます。

6.1. 前提条件

  • Red Hat Ceph Storage ソフトウェアのインストール

6.2. Ceph OSD の設定

すべての Ceph クラスターには、以下を定義する設定があります。

  • クラスター ID
  • 認証設定
  • クラスター内の Ceph デーモンメンバーシップ
  • ネットワーク設定
  • ホスト名およびアドレス
  • キーリングへのパス
  • OSD ログファイルへのパス
  • その他のランタイムオプション

Red Hat Ceph Storage Console や Ansible などのデプロイメントツールは、通常、初期 Ceph 設定ファイルを作成します。ただし、デプロイメントツールを使用せずにクラスターをブートストラップする場合は、独自に作成できます。

便宜上、各デーモンにはデフォルト値のセットがあります。その多くは ceph/src/common/config_opts.h スクリプトで設定されます。これらの設定は、Ceph 設定ファイル、またはランタイム時にモニターの tell コマンドを使用するか、Ceph ノード上のデーモンソケットに直接接続して上書きできます。

重要

Red Hat では、デフォルトのパスを変更することは推奨していません。これは、後で Ceph のトラブルシューティングを行う上でより問題となるためです。

6.3. OSD のスクラビング

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

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

スクラビング(徐々にスクラビング)は、オブジェクトサイズと属性を確認します。ディープスクラビング(週)はデータを読み取り、チェックサムを使用してデータの整合性を確保します。

スクラビングはデータの整合性の維持に重要ですが、パフォーマンスが低下する可能性があります。スクラビング操作を増減するには、以下の設定を調整します。

6.4. OSD のバックフィル

Ceph OSD をクラスターに追加するか、またはクラスターから削除する場合、CRUSH アルゴリズムは配置グループを Ceph OSD との間で移動または Ceph OSD から移行してバランスを復元します。配置グループと、それに含まれるオブジェクトを移行するプロセスにより、クラスターのパフォーマンスが大幅に低下する可能性があります。運用パフォーマンスを維持するために、Ceph は「バックフィル」プロセスでこの移行を実行します。これにより、Ceph はリクエストよりも低い優先順位にデータを読み書きすることができます。

6.5. OSD リカバリー

クラスターが起動するか、または Ceph OSD が予期せずに終了して再起動すると、書き込み操作が発生する前に OSD が他の Ceph OSD とのピアリングを開始します。

Ceph OSD がクラッシュし、オンラインに戻る場合、通常は配置グループ内のより新しいバージョンのオブジェクトが含まれる他の Ceph OSD との同期がなくなります。これが発生すると、Ceph OSD はリカバリーモードになり、データの最新コピーを取得してそのマップを最新の状態に戻します。Ceph OSD がダウンしている期間によっては、OSD のオブジェクトおよび配置グループが大幅に古くなる場合があります。また、ラックなどの障害ドメインがダウンした場合には、複数の Ceph OSD が同時にオンラインに戻る可能性があります。これにより、リカバリープロセスに時間がかかり、リソースが大量に消費する可能性があります。

運用パフォーマンスを維持するために、Ceph はリカバリー要求数、スレッド、およびオブジェクトチャンクサイズの制限によりリカバリーを実行します。これにより、Ceph のパフォーマンスが低下した状態で適切に実行できるようになります。

6.6. 関連情報

  • 特定のオプションの説明や使用方法は、「付録 F」の Red Hat Ceph Storage Ceph OSD 設定オプションをすべて参照してください。

第7章 Ceph Monitor および OSD の対話設定

ストレージ管理者は、Ceph Monitor と OSD 間の対話を適切に設定して、安定した作業環境を確保する必要があります。

7.1. 前提条件

  • Red Hat Ceph Storage ソフトウェアのインストール

7.2. Ceph Monitor および OSD の対話

Ceph の初期設定を完了したら、Ceph をデプロイして実行することができます。ceph healthceph -s などのコマンドを実行すると、Ceph Monitor は Ceph Storage クラスターの現在の状態を報告します。Ceph Monitor は、各 Ceph OSD デーモンからのレポートを要求し、Ceph OSD デーモンから近傍の Ceph OSD デーモンのステータスに関するレポートを受信することで、Ceph Storage クラスターを認識します。Ceph Monitor がレポートを受信しない場合や、Ceph Storage クラスター内の変更のレポートを受信する場合には、Ceph Monitor は Ceph クラスターのマップのステータスを更新します。

Ceph は、Ceph Monitor および OSD の対話に妥当なデフォルト設定を提供します。ただし、デフォルトを上書きできます。以降のセクションで、Ceph Storage クラスターを監視する目的で Ceph Monitor および Ceph OSD デーモンがどのように対話するかについて説明します。

7.3. OSD ハートビート

各 Ceph OSD デーモンは、他の Ceph OSD デーモンのハートビートを 6 秒ごとにチェックします。ハートビートの間隔を変更するには、Ceph 設定ファイルの [osd] セクションに osd heartbeat interval 設定を追加するか、ランタイム時にその値を変更します。

近傍の Ceph OSD デーモンが 20 秒の猶予期間内にハートビートパケットを送信しない場合、Ceph OSD デーモンは近傍の Ceph OSD デーモンが down であるとみなされる可能性があります。Ceph クラスターマップを更新する Ceph Monitor に報告し直すことができます。この猶予期間を変更するには、Ceph 設定ファイルの [osd] セクションに osd heartbeat grace 設定を追加するか、ランタイム時にの値を設定します。

ハートビートの確認

7.4. OSD をダウンとして報告

デフォルトでは、異なるホスト の 2 つの Ceph OSD デーモンは、報告された Ceph OSD デーモンが down していることを Ceph モニターが確認する前に、別の CephOSD デーモンが down していることを Ceph モニターに報告する必要があります。

ただし、障害を報告しているすべての OSD が、ラック内の異なるホストにあり、OSD 間で接続に問題が発生する可能性が高くなります。

「誤ったアラーム」を避けるため、Ceph は同様のラグのある「サブクラスター」のプロキシーとして障害を報告することを検討してください。これは常に当てはまるわけではありませんが、管理者が、適切に動作しないシステムのサブセットに対して猶予の修正を現地語化しやすくなります。

Ceph は mon_osd_reporter_subtree_level 設定を使用して、CRUSH マップの共通の先復元タイプでピアを「subcluster」にグループ化します。

デフォルトでは、異なるサブツリーからわずか 2 つのレポートは、他の Ceph OSD デーモン down を報告する必要があります。管理者は、Ceph 設定ファイルの [mon] セクションの下で、mon_osd_min_down_reporters 設定および mon_osd_reporter_subtree_level 設定を追加するか、ランタイム時に値を設定することで、Ceph Monitor に Ceph OSD Daemon down を報告するために必要な固有のサブツリーと共通の祖先型からレポーターの数を変更することができます。

ダウン OSD の報告

7.5. ピアリングの失敗の報告

Ceph OSD デーモンが、Ceph 設定ファイルまたはクラスターマップで定義された Ceph OSD デーモンのいずれかとピアできない場合は、30 秒ごとに最新のクラスターマップのコピーを Ceph Monitor に ping します。Ceph Monitor ハートビートの間隔は、Ceph 設定ファイルの [osd] セクションに osd mon heartbeat interval 設定を追加するか、ランタイムに値を設定して変更できます。

ピアリング失敗の報告

7.6. OSD レポートのステータス

Ceph OSD デーモンが Ceph Monitor に報告しない場合、Ceph Monitor は mon osd report timeout 後に down した Ceph OSD デーモンを考慮します。Ceph OSD デーモンは、障害、配置グループ統計の変更、up_thru の変更、または 5 秒以内にブートするなどの報告可能なイベント時に、Ceph Monitor にレポートを送信します。Ceph OSD Daemon の最小レポート間隔を変更するには、Ceph 設定ファイルの [osd] セクションに osd mon report interval min 設定を追加するか、ランタイムに値を設定します。

Ceph OSD デーモンは、主な変更の有無に関わらず、120 秒ごとにレポートを Ceph Monitor に送信します。Ceph Monitor のレポート間隔を変更するには、Ceph 設定ファイルの [osd] セクションに osd mon report interval max 設定を追加するか、値をランタイムに設定します。

110 Ceph 設定更新 0720 10

7.7. 関連情報

  • 特定のオプションの説明や使用方法は、「付録 G」にあるすべての Red Hat Ceph Storage Ceph Monitor および OSD 設定オプションを参照してください。

第8章 Ceph のデバッグおよびロギングの設定

ストレージ管理者は、デバッグおよびロギング情報の量を増やして、Red Hat Ceph Storage の問題の診断に役立てることができます。

8.1. 前提条件

  • Red Hat Ceph Storage ソフトウェアのインストール

8.2. Ceph のデバッグおよびロギング

デバッグ設定は Ceph 設定ファイルでは必須ではありませんが、ロギングを最適化するために追加することができます。Ceph のロギング設定の変更は通常、問題が発生した場合にランタイム時に行われますが、Ceph 設定ファイル内で変更される可能性があります。たとえば、クラスターの起動時に問題が発生した場合には、Ceph 設定ファイルのログ設定を増やすことを検討してください。問題が解決したら、設定を削除するか、ランタイム操作に最適な設定に復元します。

デフォルトでは、/var/log/ceph の下にある Ceph ログファイルを表示します。

ヒント

デバッグの出力がクラスターの速度を下げると、レイテンシーが競合状態を非表示にする可能性があります。

ロギングはリソースを大量に消費します。クラスターの特定の領域に問題が発生した場合には、クラスターのその領域のロギングを有効にします。たとえば、OSD は問題なく稼働していますが Ceph Object Gateway が実行されていない場合は、特定のゲートウェイインスタンスのデバッグロギングを有効にして開始します。必要に応じて各サブシステムのロギングを増減します。

重要

詳細なロギングは、1 時間あたり 1 GB 以上のデータを生成することができます。OS ディスクの容量に達すると、ノードが機能しなくなります。

Ceph ロギングが有効な場合やロギングのレートを増やす場合には、OS ディスクに十分な容量があることを確認してください。

クラスターが適切に実行されている場合には、不要なデバッグ設定を削除して、クラスターが最適に実行されるようにします。デバッグ出力メッセージのロギングは比較的遅く、クラスター操作時にリソースが無駄になります。

8.3. 関連情報

  • 特定のオプションの説明や使用方法は、「付録 J」の Red Hat Ceph Storage Ceph のデバッグおよびログの設定オプションをすべて参照してください。

付録A 一般的な設定オプション

以下は、Ceph の全般的な設定オプションです。

注記

通常、これらは Ansible などのデプロイメントツールによって自動的に設定されます。

fsid
詳細
ファイルシステム ID。クラスターごとに 1 つ。
UUID
必須
いいえ
デフォルト
該当なし。通常、デプロイメントツールで生成されます。
admin_socket
詳細
Ceph モニターがクォーラムを確立したかどうかに関わらず、デーモン上で管理コマンドを実行するソケット。
文字列
必須
いいえ
デフォルト
/var/run/ceph/$cluster-$name.asok
pid_file
詳細
モニターまたは OSD が PID を書き込むファイル。たとえば、/var/run/$cluster/$type.$id.pid は、ceph クラスターで実行している id a を持つ mon の /var/run/ceph/mon.a.pid を作成します。pid file は、デーモンが正常に停止すると削除されます。プロセスがデーモン化されていない場合 (つまり、-f オプションまたは -d オプションで実行)、pid file は作成されません。
文字列
必須
いいえ
デフォルト
いいえ
chdir
詳細
ディレクトリー Ceph デーモンは、稼働しているとに変わります。デフォルトの / ディレクトリーが推奨されます。
文字列
必須
いいえ
デフォルト
/
max_open_files
詳細
これが設定されている場合には、Red Hat Ceph Storage クラスターが起動すると Ceph は OS レベルで max_open_fds を設定します (つまりファイル記述子の最大数 #)。これは、Ceph OSD がファイル記述子が不足しているのを防ぐのに役立ちます。
64 ビット整数
必須
いいえ
デフォルト
0
fatal_signal_handlers
詳細
これが設定されている場合は、SEGV、ABRT、BUS、ILL、FPE、XCPU、XFSZ、SYS シグナルのシグナルハンドラーをインストールして、有用なログメッセージを生成します。
ブール値
デフォルト
true

付録B Ceph ネットワーク設定オプション

これらは、Ceph の一般的なネットワーク設定オプションです。

public_network
詳細
パブリック (フロントエンド) ネットワークの IP アドレスとネットマスク (例: 192.168.0.0/24)。[global] に設定します。コンマ区切りのサブネットを指定することができます。
<ip-address>/<netmask> [, <ip-address>/<netmask>]
必須
いいえ
デフォルト
該当なし
public_addr
詳細
パブリック(フロントエンド)ネットワークの IP アドレス。各デーモンにを設定します。
IP アドレス
必須
いいえ
デフォルト
該当なし
cluster_network
詳細
クラスターネットワークの IP アドレスとネットマスク (例: 10.0.0.0/24)。[global] に設定します。コンマ区切りのサブネットを指定することができます。
<ip-address>/<netmask> [, <ip-address>/<netmask>]
必須
いいえ
デフォルト
該当なし
cluster_addr
詳細
クラスターネットワークの IP アドレス。各デーモンにを設定します。
アドレス
必須
いいえ
デフォルト
該当なし
ms_type
詳細
ネットワークトランスポート層用の messenger タイプ。Red Hat は、posix セマンティクスを使用した、messenger タイプ simple および async をサポートします。
文字列。
必須
いいえ
デフォルト
async+posix
ms_public_type
詳細
パブリックネットワークのネットワークトランスポート層用の messenger タイプ。これは ms_type と同じように動作しますが、パブリックネットワークまたはフロントエンドネットワークにのみ適用されます。この設定により、Ceph はパブリックまたはフロントエンド、クラスター、またはバックサイドネットワークに異なるメッセンジャータイプを使用できます。
文字列。
必須
いいえ
デフォルト
なし。
ms_cluster_type
詳細
クラスターネットワークのネットワークトランスポート層用の messenger タイプ。これは ms_type と同じように動作しますが、クラスターまたはバックサイドネットワークにのみ適用されます。この設定により、Ceph はパブリックまたはフロントエンド、クラスター、またはバックサイドネットワークに異なるメッセンジャータイプを使用できます。
文字列。
必須
いいえ
デフォルト
なし。

ホストオプション

宣言された各モニターの下に mon addr 設定を指定して、Ceph 設定ファイル内で少なくとも 1 つの Ceph Monitor を宣言する必要があります。Ceph では、Ceph 設定ファイルの宣言されたモニター、メタデータサーバー、および OSD の下に host の設定が必要です。

重要

localhost は使用しないでください。完全修飾ドメイン名(FQDN)ではなく、ノードの短縮名を使用します。ノード名を取得するサードパーティーのデプロイメントシステムを使用する場合は、host の値を指定しないでください。

mon_addr
詳細
クライアントが Ceph モニターへの接続に使用できる <hostname>:<port> エントリーの一覧。設定していない場合には、Ceph は [mon.*] セクションを検索します。
文字列
必須
いいえ
デフォルト
該当なし
host
詳細
ホスト名。この設定は、特定のデーモンインスタンス ([osd.0]など) に使用します。
文字列
必須
はい。デーモンインスタンスの場合:
デフォルト
localhost

TCP オプション

Ceph は、デフォルトで TCP バッファーを無効にします。

ms_tcp_nodelay
詳細
Ceph は ms_tcp_nodelay を有効化して、各リクエストが即時に送信されます (バッファーなし)。Nagle アルゴリズムを無効にするとネットワークトラフィックが増え、輻輳が生じる可能性があります。小さいパケットが多数ある場合は、ms_tcp_nodelay を無効にしてみてください。ただし、通常はこれを無効にすると待ち時間が長くなることに注意してください。
ブール値
必須
いいえ
デフォルト
true
ms_tcp_rcvbuf
詳細
ネットワーク接続の受信側のソケットバッファーサイズ。デフォルトでは無効です。
32 ビット整数
必須
いいえ
デフォルト
0
ms_tcp_read_timeout
詳細
クライアントまたはデーモンが別の Ceph デーモンへの要求を行い、未使用の接続を解除しない場合、tcp read timeout は、指定した秒数後に接続をアイドル状態として定義します。
署名なし 64 ビット整数
必須
いいえ
デフォルト
900 15 分。

バインドオプション

bind オプションは、Ceph OSD デーモンのデフォルトのポート範囲を設定します。デフォルトの範囲は 6800:7100 です。また、Ceph デーモンを有効にして IPv6 アドレスにバインドすることもできます。

重要

ファイアウォール設定で、設定したポート範囲を使用できることを確認します。

ms_bind_port_min
詳細
OSD デーモンがバインドする最小ポート番号。
32 ビット整数
デフォルト
6800
必須
いいえ
ms_bind_port_max
詳細
OSD デーモンがバインドする最大ポート番号。
32 ビット整数
デフォルト
7300
必須
いいえ
ms_bind_ipv6
詳細
IPv6 アドレスにバインドする Ceph デーモンを有効にします。
ブール値
デフォルト
false
必須
いいえ

非同期メssenger オプション

これらの Ceph messenger オプションは、AsyncMessenger の動作を設定します。

ms_async_transport_type
詳細
AsyncMessenger が使用するトランスポートタイプ。Red Hat は posix 設定をサポートしますが、現時点では dpdk 設定または rdma 設定をサポートしません。POSIX は標準の TCP/IP ネットワークを使用し、デフォルト値です。その他のトランスポートタイプは実験的なもので、サポートされて いません
文字列
必須
いいえ
デフォルト
posix
ms_async_op_threads
詳細
AsyncMessenger インスタンスによって使用されるワーカースレッドの初期数。この設定は、レプリカまたはイレイジャーコードチャンクの数に等しく なければならない が、CPU コア数が低い場合や、単一のサーバ上での OSD の数が高い場合には低く設定することもできます。
64 ビット未署名の整数
必須
いいえ
デフォルト
3
ms_async_max_op_threads
詳細
AsyncMessenger インスタンスによって使用されるワーカースレッドの最大数。OSD ホストの CPU 数が制限されている場合は小さい値に設定され、Ceph の CPU 使用率が低い場合にはこの値を増やします。
64 ビット未署名の整数
必須
いいえ
デフォルト
5
ms_async_set_affinity
詳細
AsyncMessenger ワーカーを特定の CPU コアにバインドするには、true に設定します。
ブール値
必須
いいえ
デフォルト
true
ms_async_affinity_cores
詳細
ms_async_set_affinitytrue の場合、この文字列は AsyncMessengerワーカーを CPU コアにバインドする方法を指定します。たとえば、0,2 はそれぞれワーカー #1 と #2 を CPU コア #0 および #2 にバインドします。注記: アフィニティーを手動で設定する場合は、ハイパースレッディングや同様のテクノロジーが原因で作成された仮想 CPU にワーカーを割り当てないようにしてください。これは、物理 CPU コアよりも遅いためです。
文字列
必須
いいえ
デフォルト
(empty)
ms_async_send_inline
詳細
キューイングや AsyncMessenger スレッドから送信せずに、生成したスレッドからメッセージを直接送信します。このオプションは、CPU コアが多数搭載されているシステムのパフォーマンスが低下することが知られているため、デフォルトでは無効になっています。
ブール値
必須
いいえ
デフォルト
false

付録C Ceph Monitor 設定オプション

デプロイメント中に設定できる Ceph monitor の設定オプションは以下のとおりです。

mon_initial_members
詳細
起動時のクラスター内の初期モニターの ID。指定されている場合には、初期クォーラム(例: 3)を形成するために Ceph のモニター数が必要です。
文字列
デフォルト
なし
mon_force_quorum_join
詳細
以前にマップから削除された場合でもクォーラムを強制的に参加させる
ブール値
デフォルト
False
mon_dns_srv_name
詳細
モニターホスト/アドレスの DNS のクエリーに使用されるサービス名。
文字列
デフォルト
ceph-mon
fsid
詳細
クラスター ID。クラスターごとに 1 つ。
UUID
必須
はい。
デフォルト
該当なし。指定がない場合は、デプロイメントツールで生成できます。
mon_data
詳細
モニターのデータの場所。
文字列
デフォルト
/var/lib/ceph/mon/$cluster-$id
mon_data_size_warn
詳細
Ceph は、モニターのデータストアがこのしきい値に達すると、クラスターログで HEALTH_WARN ステータスを発行します。デフォルト値は 15GB です。
整数
デフォルト
15*1024*1024*1024*`
mon_data_avail_warn
詳細
Ceph は、モニターのデータストアで利用可能なディスク領域がこの割合以下になると、クラスターログに HEALTH_WARN ステータスを発行します。
整数
デフォルト
30
mon_data_avail_crit
詳細
Ceph は、モニターのデータストアで利用可能なディスク領域がこの割合以下になると、クラスターログに HEALTH_ERR ステータスを発行します。
整数
デフォルト
5
mon_warn_on_cache_pools_without_hit_sets
詳細
キャッシュプールに hit_set_type パラメーターが設定されていないと、Ceph はクラスターログで HEALTH_WARN ステータスを発行します。
ブール値
デフォルト
True
mon_warn_on_crush_straw_calc_version_zero
詳細
CRUSH の straw_calc_version がゼロの場合、Ceph はクラスターログの HEALTH_WARN ステータスを発行します。詳細は、「CRUSH 設定可能なパラメーター」を参照してください。
ブール値
デフォルト
True
mon_warn_on_legacy_crush_tunables
詳細
CRUSH の調整可能なパラメーターが古くなり過ぎた場合 (mon_min_crush_required_version よりも古い場合)、Ceph はクラスターログで HEALTH_WARN ステータスを発行します。
ブール値
デフォルト
True
mon_crush_min_required_version
詳細
この設定は、クラスターに必要な最小の調整可能なプロファイルバージョンを定義します。
文字列
デフォルト
firefly
mon_warn_on_osd_down_out_interval_zero
詳細
mon_osd_down_out_interval 設定がゼロの場合、Ceph はクラスターログで HEALTH_WARN ステータスを発行します。これは、noout フラグが設定されている場合にもリーダーと同様の動作をするためです。管理者は、noout フラグを設定してクラスターのトラブルシューティングが容易になります。Ceph は警告を発行し、管理者が設定がゼロであることを認識できるようにします。
ブール値
デフォルト
True
mon_cache_target_full_warn_ratio
詳細
cache_target_fulltarget_max_object の比率で、Ceph により警告が表示されます。
浮動小数点 (Float)
デフォルト
0.66
mon_health_data_update_interval
詳細
クォーラム内のモニターがピアとヘルスステータスを共有する頻度(秒単位)。負の値を指定すると、ヘルス更新が無効になります。
浮動小数点 (Float)
デフォルト
60
mon_health_to_clog
詳細
この設定により、Ceph はヘルスサマリーをクラスターログに定期的に送信できます。
ブール値
デフォルト
True
mon_health_to_clog_tick_interval
詳細
モニターが健全性の概要をクラスターログに送信する頻度(秒単位)。正数以外の数値を指定すると、その数字は無効になります。現在のヘルスサマリーが空であるか、または最後に同じ場合、モニターはステータスをクラスターログに送信しません。
整数
デフォルト
3600
mon_health_to_clog_interval
詳細
モニターが健全性の概要をクラスターログに送信する頻度(秒単位)。正数以外の数値を指定すると、その数字は無効になります。モニターは常に概要をクラスターログに送信します。
整数
デフォルト
60
mon_osd_full_ratio
詳細
OSD が full とみなされるまでのディスク領域のパーセンテージ。
float:
デフォルト
.95
mon_osd_nearfull_ratio
詳細
OSD がほぼ nearfull とみなされるまでのディスク領域のパーセンテージ。
浮動小数点 (Float)
デフォルト
.85
mon_sync_trim_timeout
詳細,
double
デフォルト
30.0
mon_sync_heartbeat_timeout
詳細,
double
デフォルト
30.0
mon_sync_heartbeat_interval
詳細,
double
デフォルト
5.0
mon_sync_backoff_timeout
詳細,
double
デフォルト
30.0
mon_sync_timeout
詳細
モニターが同期プロバイダーからの次の更新メッセージを待機する秒数。
double
デフォルト
30.0
mon_sync_max_retries
詳細,
整数
デフォルト
5
mon_sync_max_payload_size
詳細
同期ペイロードの最大サイズ(バイト単位)。
32 ビット整数
デフォルト
1045676
paxos_max_join_drift
詳細
最初にモニターデータストアを同期するまでの最大 Paxos 反復。モニターがピアの対応が大きすぎると検出すると、移行する前に最初にデータストアと同期します。
整数
デフォルト
10
paxos_stash_full_interval
詳細
PaxosService の状態の完全なコピーを停止する頻度(コミット)。現在、この設定は mdsmonauth、および mgr PaxosServices のみに影響します。
整数
デフォルト
25
paxos_propose_interval
詳細
マップの更新をプロモートする前に、この期間の更新を収集します。
double
デフォルト
1.0
paxos_min
詳細
保持する paxos 状態の最小数
整数
デフォルト
500
paxos_min_wait
詳細
非アクティブになってから更新を収集する最小時間。
double
デフォルト
0.05
paxos_trim_min
詳細
トリムする前に許容される追加のプロポーザルの数
整数
デフォルト
250
paxos_trim_max
詳細
1 度にトリミングする追加プロポーザルの最大数。
整数
デフォルト
500
paxos_service_trim_min
詳細
トリミングをトリガーするバージョンの最小数(0 は無効に)
整数
デフォルト
250
paxos_service_trim_max
詳細
1 つのプロポーザルでトリミングするバージョンの最大数(0 は無効に)
整数
デフォルト
500
mon_max_log_epochs
詳細
1 つのプロポーザルでトリミングするログエポックの最大数
整数
デフォルト
500
mon_max_pgmap_epochs
詳細
1 つのプロポーザルでトリミングする pgmap エポックの最大量。
整数
デフォルト
500
mon_mds_force_trim_to
詳細
監視がこの時点で mdsmap をトリミングするように強制します(0 は無効になり、注意して使用してください)。
整数
デフォルト
0
mon_osd_force_trim_to
詳細
指定されたエポックで PG がクリーンアップされていない場合でも、モニターがこの時点に osdmap をトリミングするように強制します(0 は無効にし、注意して使用します)。
整数
デフォルト
0
mon_osd_cache_size
詳細
osdmaps キャッシュのサイズ。基礎となるストアのキャッシュに依存しません。
整数
デフォルト
10
mon_election_timeout
詳細
選択提案では、すべての ACK の最大待機時間を秒単位で設定します。
浮動小数点 (Float)
デフォルト
5
mon_lease
詳細
モニターのバージョンにおけるリースの長さ(秒単位)。
浮動小数点 (Float)
デフォルト
5
mon_lease_renew_interval_factor
詳細
mon lease * mon lease renew interval factor は、リーダーが他のモニターのリースを更新する間隔になります。係数は 1.0 未満でなければなりません。
浮動小数点 (Float)
デフォルト
0.6
mon_lease_ack_timeout_factor
詳細
リーダーは、プロバイダーがリース拡張を承認するまで mon lease * mon lease ack timeout factor を待機します。
浮動小数点 (Float)
デフォルト
2.0
mon_accept_timeout_factor
詳細
Leader は mon lease * mon accept timeout factor を待ち、リクエスターが Paxos の更新を受け入れるのを待機します。また、同様の目的で Paxos リカバリーフェーズで使用されます。
浮動小数点 (Float)
デフォルト
2.0
mon_min_osdmap_epochs
詳細
常に保持する OSD マップの最小数。
32 ビット整数
デフォルト
500
mon_max_pgmap_epochs
詳細
モニターが保持する PG マップエポックの最大数。
32 ビット整数
デフォルト
500
mon_max_log_epochs
詳細
モニターが保持するログエポックの最大数。
32 ビット整数
デフォルト
500
clock_offset
詳細
システムクロックをオフセットする時間。詳細は、Clock.cc を参照してください。
double
デフォルト
0
mon_tick_interval
詳細
モニターのティック間隔(秒単位)。
32 ビット整数
デフォルト
5
mon_clock_drift_allowed
詳細
モニター間で許容されるクロックのドリフト(秒単位)。
浮動小数点 (Float)
デフォルト
.050
mon_clock_drift_warn_backoff
詳細
クロックドリフト警告の指数関数的バックオフ。
浮動小数点 (Float)
デフォルト
5
mon_timecheck_interval
詳細
リーダーの時間チェック間隔(クロックドリフト確認)
浮動小数点 (Float)
デフォルト
300.0
mon_timecheck_skew_interval
詳細
Leader にスキューがある場合の時間チェック間隔(クロックドリフト確認)(秒単位)。
浮動小数点 (Float)
デフォルト
30.0
mon_max_osd
詳細
クラスターで許可される OSD の最大数。
32 ビット整数
デフォルト
10000
mon_globalid_prealloc
詳細
クラスター内のクライアントおよびデーモンに事前に割り当てるグローバル ID の数。
32 ビット整数
デフォルト
100
mon_sync_fs_threshold
詳細
指定された数のオブジェクトを書き込む際に、ファイルシステムと同期します。無効にするには 0 に設定します。
32 ビット整数
デフォルト
5
mon_subscribe_interval
詳細
サブスクリプションの更新間隔(秒単位)。サブスクリプションメカニズムを使用すると、クラスターマップおよびログ情報を取得できます。
double
デフォルト
300
mon_stat_smooth_intervals
詳細
最後の N PG マップに対する統計は、Ceph によりスムーズになります。
整数
デフォルト
2
mon_probe_timeout
詳細
モニターがピアを見つけるまで待機する秒数。
double
デフォルト
2.0
mon_daemon_bytes
詳細
メタデータサーバーおよび OSD メッセージのメッセージメモリー上限(バイト単位)。
64 ビット整数未署名
デフォルト
400ul << 20
mon_max_log_entries_per_event
詳細
イベントごとのログエントリーの最大数。
整数
デフォルト
4096
mon_osd_prime_pg_temp
詳細
OSD がクラスターに戻る際に、以前の OSD で PGMap のプライムを有効または無効にします。true 設定では、クライアントは、PG のピア化として OSD で新たに実行するまで、以前の OSD を引き続き使用します。
ブール値
デフォルト
true
mon_osd_prime_pg_temp_max_time
詳細
OSD がクラスターに戻る際にモニターが PGMap の交差試行に費やす時間(秒単位)。
浮動小数点 (Float)
デフォルト
0.5
mon_osd_prime_pg_temp_max_time_estimate
詳細
すべての PG を並行して使用する前に各 PG に費やされた時間の最大推定時間。
浮動小数点 (Float)
デフォルト
0.25
mon_osd_allow_primary_affinity
詳細
osdmap で primary_affinity を設定できるようにします。
ブール値
デフォルト
False
mon_osd_pool_ec_fast_read
詳細
プールで高速読み取りを有効にするかどうか。作成時に fast_read が指定されていない場合に、新たに作成されたイレイジャープールのデフォルト設定として使用します。
ブール値
デフォルト
False
mon_mds_skip_sanity
詳細
引き続きバグが発生した場合に FSMap の安全アサーションをスキップします。FSMap のサニティチェックに失敗した場合、監視は終了しますが、このオプションを有効にすると無効にすることができます。
ブール値
デフォルト
False
mon_max_mdsmap_epochs
詳細
1 つのプロポーザルでトリミングする mdsmap エポックの最大数。
整数
デフォルト
500
mon_config_key_max_entry_size
詳細
config-key エントリーの最大サイズ(バイト単位)。
整数
デフォルト
4096
mon_scrub_interval
詳細
モニターは保存されたチェックサムと、保存されたすべての鍵の計算済み鍵を比較することで、ストアをスクラビングする頻度(秒単位)。
整数
デフォルト
3600*24
mon_scrub_max_keys
詳細
毎回スクラビングするキーの最大数。
整数
デフォルト
100
mon_compact_on_start
詳細
ceph-mon の起動時に Ceph Monitor ストアとして使用されるデータベースを圧縮します。手動圧縮は、監視データベースを縮小し、通常の圧縮が機能しない場合にデータベースのパフォーマンスを改善するのに役立ちます。
ブール値
デフォルト
False
mon_compact_on_bootstrap
詳細
ブートストラップで Ceph Monitor ストアとして使用されるデータベースを圧縮します。Monitor は、ブートストラップ後にクォーラムを作成するために相互のプローブを開始します。クォーラムに参加する前にタイムアウトすると、それ自体が再開し、再度ブートストラップされます。
ブール値
デフォルト
False
mon_compact_on_trim
詳細
古い状態をトリミングする際に、特定のプレフィックス(paxos を含む)を圧縮します。
ブール値
デフォルト
True
mon_cpu_threads
詳細
モニターで CPU 集中型作業を実行するためのスレッドの数。
ブール値
デフォルト
True
mon_osd_mapping_pgs_per_chunk
詳細
配置グループからチャンクの OSD へのマッピングを計算します。このオプションは、チャンクごとの配置グループの数を指定します。
整数
デフォルト
4096
mon_osd_max_split_count
詳細
Split create を可能にする「involved」 OSD ごとの最大 PG 数。プールの pg_num を増やすと、配置グループは、そのプールを提供するすべての OSD で分割されます。PG 分割で過剰な乗数を避けたいと考えています。
整数
デフォルト
300
mon_session_timeout
詳細
監視は、この時間制限を超えて非アクティブセッションがアイドル状態のままになります。
整数
デフォルト
300

付録D cephx 設定オプション

デプロイメント中に設定できる Cephx 設定オプションは以下のとおりです。

auth_cluster_required
詳細
これが有効な場合には、Red Hat Ceph Storage クラスターデーモン ceph-mon および ceph-osd は相互に認証する必要があります。有効な設定は cephx または none です。
文字列
必須
いいえ
デフォルト
cephx.
auth_service_required
詳細
有効にすると、Red Hat Ceph Storage クラスターデーモンでは、Ceph サービスにアクセスするために Ceph クライアントが Red Hat Ceph Storage クラスターとの認証を必要とします。有効な設定は cephx または none です。
文字列
必須
いいえ
デフォルト
cephx.
auth_client_required
詳細
有効にする場合、Ceph クライアントでは Ceph クライアントとの認証に Red Hat Ceph Storage クラスターが必要です。有効な設定は cephx または none です。
文字列
必須
いいえ
デフォルト
cephx.
keyring
詳細
キーリングファイルへのパス。
文字列
必須
いいえ
デフォルト
/etc/ceph/$cluster.$name.keyring,/etc/ceph/$cluster.keyring,/etc/ceph/keyring,/etc/ceph/keyring.bin
keyfile
詳細
キーファイルへのパス(つまり、キーのみが含まれるファイル)
文字列
必須
いいえ
デフォルト
なし
key
詳細
キー(つまり、キー自体のテキスト文字列)非推奨。
文字列
必須
いいえ
デフォルト
なし
ceph-mon
場所
$mon_data/keyring
ケイパビリティー
mon 'allow *'
ceph-osd
場所
$osd_data/keyring
ケイパビリティー
mon 'allow profile osd' osd 'allow *'
radosgw
場所
$rgw_data/keyring
ケイパビリティー
mon 'allow rwx' osd 'allow rwx'
cephx_require_signatures
詳細
true に設定した場合には、Ceph クライアントと Red Hat Ceph Storage クラスター間の全メッセージトラフィック、および Red Hat Ceph Storage クラスターを構成するデーモン間での署名が必要です。
ブール値
必須
いいえ
デフォルト
false
cephx_cluster_require_signatures
詳細
true に設定した場合には、Ceph では、Red Hat Ceph Storage クラスターを構成する Ceph デーモン間のすべてのメッセージトラフィックに対する署名が必要です。
ブール値
必須
いいえ
デフォルト
false
cephx_service_require_signatures
詳細
true に設定した場合には、Ceph クライアントと Red Hat Ceph Storage クラスター間のすべてのメッセージトラフィックに対する署名が必要です。
ブール値
必須
いいえ
デフォルト
false
cephx_sign_messages
詳細
Ceph のバージョンがメッセージの署名をサポートする場合、Ceph はすべてのメッセージに署名します。これにより、なりすましができなくなります。
ブール値
デフォルト
true
auth_service_ticket_ttl
詳細
Red Hat Ceph Storage クラスターが Ceph クライアント認証のチケットを送信すると、クラスターはチケットをライブに割り当てます。
double
デフォルト
60*60

関連情報

  • <additional resource 1>
  • <additional resource 2>

付録E プール、配置グループ、および CRUSH 設定オプション

プール、配置グループ、および CRUSH アルゴリズムを制御する Ceph オプション。

mon_allow_pool_delete
詳細
モニターによるプールの削除を許可します。RHCS 3 以降のリリースでは、デフォルトではモニターはデータを保護するための追加手段としてプールを削除することはできません。
ブール値
デフォルト
false
mon_max_pool_pg_num
詳細
プール 1 台あたりの配置グループの最大数。
整数
デフォルト
65536
mon_pg_create_interval
詳細
同じ Ceph OSD デーモンでの PG 作成の間隔(秒単位)。
浮動小数点 (Float)
デフォルト
30.0
mon_pg_stuck_threshold
詳細
PG がスタックしているとみなされる秒数。
32 ビット整数
デフォルト
300
mon_pg_min_inactive
詳細
Ceph は、mon_pg_stuck_threshold より長く非アクティブのままの PG の数がこの設定を超える場合に、クラスターログに HEALTH_ERR ステータスを発行します。デフォルト設定は 1 つの PG です。正数以外の数値を指定すると、この設定は無効になります。
整数
デフォルト
1
mon_pg_warn_min_per_osd
詳細
Ceph は、クラスター内の OSD ごとの PG の平均数がこの設定よりも小さい場合に、クラスターログで HEALTH_WARN ステータスを発行します。正数以外の数値を指定すると、この設定は無効になります。
整数
デフォルト
30
mon_pg_warn_max_per_osd
詳細
Ceph は、クラスター内の OSD ごとの PG の平均数がこの設定よりも大きい場合に、クラスターログの HEALTH_WARN ステータスを発行します。正数以外の数値を指定すると、この設定は無効になります。
整数
デフォルト
300
mon_pg_warn_min_objects
詳細
クラスター内のオブジェクトの合計数がこの数を下回る場合は警告しないでください。
整数
デフォルト
1000
mon_pg_warn_min_pool_objects
詳細
オブジェクト番号がこの数を下回るプールでは警告しないでください。
整数
デフォルト
1000
mon_pg_check_down_all_threshold
詳細
down OSD のしきい値 (パーセント) で、Ceph はすべての PG をチェックして、それらがスタックまたは古くなっていることを確認します。
浮動小数点 (Float)
デフォルト
0.5
mon_pg_warn_max_object_skew
詳細
プール内のオブジェクトの平均数 mon pg warn max object skew を超える場合、Ceph はクラスターログで HEALTH_WARN ステータスを発行します。正数以外の数値を指定すると、この設定は無効になります。
浮動小数点 (Float)
デフォルト
10
mon_delta_reset_interval
詳細
Ceph が PG 差分をゼロにリセットするまでの非アクティブの秒数。Ceph は、各プールに使用される領域の差異を追跡し、管理者がリカバリーおよびパフォーマンスの進捗を評価するのに役立つようにします。
整数
デフォルト
10
mon_osd_max_op_age
詳細
HEALTH_WARN ステータスを発行する前に操作が完了するまでの最大期間 (秒単位)。
浮動小数点 (Float)
デフォルト
32.0
osd_pg_bits
詳細
Ceph OSD デーモンごとの配置グループビット。
32 ビット整数
デフォルト
6
osd_pgp_bits
詳細
配置グループ(PGP)向けの Ceph OSD デーモンごとのビット数。
32 ビット整数
デフォルト
6
osd_crush_chooseleaf_type
詳細
CRUSH ルールで chooseleaf に使用するバケットタイプ。名前ではなく、通常のランクを使用します。
32 ビット整数
デフォルト
1.通常、1 つ以上の Ceph OSD デーモンが含まれるホスト。
osd_pool_default_crush_replicated_ruleset
詳細
レプリケートされたプールの作成時に使用するデフォルトの CRUSH ルールセット。
8 ビット整数
デフォルト
0
osd_pool_erasure_code_stripe_unit
詳細
イレイジャーコード化されたプールのオブジェクトのストライプのデフォルトサイズをバイト単位で設定します。サイズ S のすべてのオブジェクトは N ストライプとして格納され、各データチャンクは stripe unit バイトを受け取ります。N * stripe unit バイトの各ストライプは、個別にエンコード/エンコードされます。このオプションは、イレイジャーコードプロファイルの stripe_unit 設定で上書きできます。
32 ビット符号なし整数
デフォルト
4096
osd_pool_default_size
詳細
プール内のオブジェクトのレプリカ数を設定します。デフォルト値は、ceph osd pool set {pool-name} size {size} と同じです。
32 ビット整数
デフォルト
3
osd_pool_default_min_size
詳細
クライアントへの書き込み操作を承認するために、プール内のオブジェクト用に書き込まれたレプリカの最小数を設定します。最小数が満たされない場合、Ceph はクライアントへの書き込みを承認しません。この設定により、degraded モードで動作している場合にレプリカの最小数を確保できます。
32 ビット整数
デフォルト
0 (これは、特定の最小値がないことを意味します)0 の場合、最小は size - (size / 2) になります。
osd_pool_default_pg_num
詳細
プールの配置グループのデフォルト数。デフォルト値は、mkpoolpg_num と同じです。
32 ビット整数
デフォルト
8
osd_pool_default_pgp_num
詳細
プールの配置グループのデフォルト数。デフォルト値は、mkpoolpgp_num と同じです。PG と PGP は等しくなければなりません。
32 ビット整数
デフォルト
8
osd_pool_default_flags
詳細
新しいプールのデフォルトフラグ。
32 ビット整数
デフォルト
0
osd_max_pgls
詳細
表示する配置グループの最大数。多数の番号を要求するクライアントは、Ceph OSD Daemon を関連付けることができます。
署名なし 64 ビット整数
デフォルト
1024
備考
デフォルトは fine です。
osd_min_pg_log_entries
詳細
ログファイルをトリミングする際に維持する配置グループログの最小数。
32 ビット署名なし
デフォルト
1000
osd_default_data_pool_replay_window
詳細
OSD がクライアントが要求を再実行するまで待機する時間(秒単位)。
32 ビット整数
デフォルト
45

付録F Object Storage Daemon(OSD)設定オプション

以下は、デプロイメント時に設定できる Ceph Object Storage Daemon(OSD)の設定オプションです。

osd_uuid
詳細
Ceph OSD の UUID(Universally Unique Identifier)
UUID
デフォルト
UUID
備考
osd uuid は単一の Ceph OSD に適用されます。fsid はクラスター全体に適用されます。
osd_data
詳細

OSD のデータへのパス。Ceph のデプロイ時にディレクトリーを作成する必要があります。このマウントポイントで、OSD データ用のドライブをマウントします。

IMPORTANT: Red Hat does not recommend changing the default.
文字列
デフォルト
/var/lib/ceph/osd/$cluster-$id
osd_max_write_size
詳細
書き込みの最大サイズ(メガバイト単位)。
32 ビット整数
デフォルト
90
osd_client_message_size_cap
詳細
メモリー内で許可される最大クライアントデータメッセージ。
64 ビット整数未署名
デフォルト
デフォルトは 500MB です。500*1024L*1024L
osd_class_dir
詳細
RADOS クラスプラグインのクラスパス。
文字列
デフォルト
$libdir/rados-classes
osd_max_scrubs
詳細
Ceph OSD の同時スクラビング操作の最大数。
32 ビット Int
デフォルト
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 回。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 回。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
詳細
scrub がオブジェクトダイジェスト全体を更新するまでの秒数。
整数
デフォルト
120 (2 時間)。
osd_op_num_shards
詳細
クライアント操作のシャードの数。
32 ビット整数
デフォルト
0
osd_op_num_threads_per_shard
詳細
クライアント操作のシャードごとのスレッド数。
32 ビット整数
デフォルト
0
osd_op_num_shards_hdd
詳細
HDD 操作のシャードの数。
32 ビット整数
デフォルト
5
osd_op_num_threads_per_shard_hdd
詳細
HDD 操作に対するシャードごとのスレッド数。
32 ビット整数
デフォルト
1
osd_op_num_shards_ssd
詳細
SSD 操作のシャードの数。
32 ビット整数
デフォルト
8
osd_op_num_threads_per_shard_ssd
詳細
SSD 操作用のシャードごとのスレッド数。
32 ビット整数
デフォルト
2
osd_client_op_priority
詳細
クライアント操作の優先度。これは、osd recovery op priority と相対的になります。
32 ビット整数
デフォルト
63
有効な範囲
1-63
osd_recovery_op_priority
詳細
リカバリー操作の優先度セット。これは、osd client op priority と相対的になります。
32 ビット整数
デフォルト
3
有効な範囲
1-63
osd_op_thread_timeout
詳細
Ceph OSD 操作スレッドのタイムアウト(秒単位)。
32 ビット整数
デフォルト
30
osd_op_complaint_time
詳細
指定された秒数が経過すると、操作には影響がありません。
浮動小数点 (Float)
デフォルト
30
osd_disk_threads
詳細
ディスクスレッドの数。これは、スクラビングやスナップショットのトリミングなどのバックグラウンドディスク集約型 OSD 操作を実行するために使用されます。
32 ビット整数
デフォルト
1
osd_disk_thread_ioprio_class
詳細

ディスクスレッドに ioprio_set(2) I/O スケジューリング class を設定します。使用できる値は次のとおりです。

  • idle
  • be
  • rt + idle クラスは、ディスクスレッドが OSD の他のスレッドよりも低いことを意味します。これは、クライアント操作をビジー処理している OSD でスクラブの速度を下げるのに役立ちます。+ be クラスはデフォルトであり、OSD 内の他のすべてのスレッドと同じ優先度です。+ rt クラスは、ディスクスレッドが OSD 内の他のすべてのスレッドに優先することを意味します。これは、スクラビングが非常に必要で、クライアント操作の代償で進捗する必要がある場合に役立ちます。
文字列
デフォルト
空の文字列
osd_disk_thread_ioprio_priority
詳細
ディスクスレッドの ioprio_set(2) I/O スケジューリングの priority を 0 (最高) から 7 (最低) に設定します。指定のホストの OSD がすべて idle クラスで、コントローラーが輻輳により I/O に対して競合している場合には、1 つの OSD のディスクスレッド優先度を 7 に下げ、優先度が 0 の別の OSD をよりスクラビングすることが可能になります。+
0 から 7 までの範囲の整数、または使用されない場合は -1。
デフォルト
-1
重要

osd disk thread ioprio class および osd disk thread ioprio priority オプションは、両方がデフォルト値以外の値に設定されている場合にのみ使用されます。また、Linux Kernel CFQ スケジューラーでのみ動作します。

osd_op_history_size
詳細
追跡する完了済み操作の最大数。
32 ビット未署名の整数
デフォルト
20
osd_op_history_duration
詳細
追跡する最も古い完了した操作。
32 ビット未署名の整数
デフォルト
600
osd_op_log_threshold
詳細
一度に表示する操作ログの数。
32 ビット整数
デフォルト
5
osd_op_timeout
詳細
OSD 操作がタイムアウトするまでの時間(秒単位)。
整数
デフォルト
0
重要

クライアントが結果に対応できない限り、osd op timeout オプションを設定しないでください。たとえば、仮想マシンで実行しているクライアントにこのパラメーターを設定すると、仮想マシンがこのタイムアウトをハードウェア障害として解釈するため、データが破損する可能性があります。

osd_max_backfills
詳細
1 つの OSD との間で許容されるバックフィル操作の最大数。
64 ビット未署名の整数
デフォルト
1
osd_backfill_scan_min
詳細
バックフィルスキャンごとのオブジェクトの最小数。
32 ビット整数
デフォルト
64
osd_backfill_scan_max
詳細
バックフィルスキャンごとのオブジェクトの最大数。
32 ビット整数
デフォルト
512
osd_backfill_full_ratio
詳細
Ceph OSD の完全な比率がこの値を超えると、バックフィル要求を許可しません。
浮動小数点 (Float)
デフォルト
0.85
osd_backfill_retry_interval
詳細
バックフィル要求を再試行するまで待機する秒数。
double
デフォルト
10.0
osd_map_dedup
詳細
OSD マップの重複の削除を有効にします。
ブール値
デフォルト
true
osd_map_cache_size
詳細
OSD マップキャッシュのサイズ(メガバイト単位)。
32 ビット整数
デフォルト
50
osd_map_cache_bl_size
詳細
OSD デーモンのインメモリー OSD マップキャッシュのサイズ。
32 ビット整数
デフォルト
50
osd_map_cache_bl_inc_size
詳細
OSD デーモンのインメモリー OSD マップキャッシュ増分のサイズ。
32 ビット整数
デフォルト
100
osd_map_message_max
詳細
MOSDMap メッセージごとに許可されるマップエントリーの最大数。
32 ビット整数
デフォルト
40
osd_snap_trim_thread_timeout
詳細
スナップショットトリムスレッドをタイムアウトする前の最大時間(秒単位)。
32 ビット整数
デフォルト
60*60*1
osd_pg_max_concurrent_snap_trims
詳細
Parallel snap trims/PG の最大数。これは、一度にトリミングする PG あたりオブジェクトの数を制御します。
32 ビット整数
デフォルト
2
osd_snap_trim_sleep
詳細
PG の問題処理ごとにスリープ状態を挿入します。
32 ビット整数
デフォルト
0
osd_max_trimming_pgs
詳細
トリミング PG の最大数。
32 ビット整数
デフォルト
2
osd_backlog_thread_timeout
詳細
バックログスレッドをタイムアウトする前の最大時間(秒単位)。
32 ビット整数
デフォルト
60*60*1
osd_default_notify_timeout
詳細
OSD のデフォルト通知タイムアウト(秒単位)。
32 ビット整数未署名
デフォルト
30
osd_check_for_log_corruption
詳細
ログファイルで破損の有無を確認します。計算にコストがかかる場合があります。
ブール値
デフォルト
false
osd_remove_thread_timeout
詳細
削除 OSD スレッドをタイムアウトするまでの最大時間(秒単位)。
32 ビット整数
デフォルト
60*60
osd_command_thread_timeout
詳細
コマンドスレッドをタイムアウトする前の最大時間(秒単位)。
32 ビット整数
デフォルト
10*60
osd_command_max_records
詳細
失われるオブジェクトの数を制限します。
32 ビット整数
デフォルト
256
osd_auto_upgrade_tmap
詳細
古いオブジェクトの omaptmap を使用します。
ブール値
デフォルト
true
osd_tmapput_sets_users_tmap
詳細
デバッグにだけ tmap を使用します。
ブール値
デフォルト
false
osd_preserve_trimmed_log
詳細
トリミングされたログファイルを保持しますが、より多くのディスク領域を使用します。
ブール値
デフォルト
false
osd_recovery_delay_start
詳細
ピアリングが完了すると、Ceph は指定の秒数後にオブジェクトのリカバリーを開始するまで遅延します。
浮動小数点 (Float)
デフォルト
0
osd_recovery_max_active
詳細
1 OSD あたりの 1 度にアクティブなリカバリー要求の数。要求が増えるとリカバリーが加速されますが、要求によりクラスターにかかる負荷が増大します。
32 ビット整数
デフォルト
3
osd_recovery_max_chunk
詳細
プッシュするデータの復元済みチャンクの最大サイズ。
64 ビット整数未署名
デフォルト
8 << 20
osd_recovery_threads
詳細
データをリカバリーするスレッドの数。
32 ビット整数
デフォルト
1
osd_recovery_thread_timeout
詳細
リカバリースレッドのタイムアウトまでの最大時間(秒単位)。
32 ビット整数
デフォルト
30
osd_recover_clone_overlap
詳細
復旧中にクローンの重複を保持します。常に true に設定する必要があります。
ブール値
デフォルト
true

付録G Ceph Monitor および OSD 設定オプション

ハートビート設定を変更する際には、Ceph 設定ファイルの [global] セクションにその設定を含めます。

mon_osd_min_up_ratio
詳細
Ceph が Ceph OSD デーモンを down とマークする前に up となる Ceph OSD デーモンの最小比率。
double
デフォルト
.3
mon_osd_min_in_ratio
詳細
Ceph が Ceph OSD デーモンを out とマークを付ける前に in となる Ceph OSD デーモンの最小比率。
double
デフォルト
.3
mon_osd_laggy_halflife
詳細
laggy 予測の秒数が減ります。
整数
デフォルト
60*60
mon_osd_laggy_weight
詳細
laggy 予測の減少時の新しいサンプルの重み。
double
デフォルト
0.3
mon_osd_laggy_max_interval
詳細
ラグ推定値の laggy_interval の最大値 (秒単位)。モニターは適応アプローチを使用して特定の OSD の laggy_interval を評価します。この値は、OSD の猶予時間を計算するために使用されます。
整数
デフォルト
300
mon_osd_adjust_heartbeat_grace
詳細
true に設定すると、Ceph は laggy推定値に基づいてスケーリングします。
ブール値
デフォルト
true
mon_osd_adjust_down_out_interval
詳細
true に設定すると、Ceph は laggy 推定値に基づいてスケーリングされます。
ブール値
デフォルト
true
mon_osd_auto_mark_in
詳細
Ceph は、Ceph OSD デーモンのブートを、Ceph Storage Cluster の in とマークします。
ブール値
デフォルト
false
mon_osd_auto_mark_auto_out_in
詳細
Ceph は、Ceph Storage クラスターから自動的に out とマーク付けされた Ceph OSD デーモンの起動が、クラスター内 in にあるとマークされます。
ブール値
デフォルト
true
mon_osd_auto_mark_new_in
詳細
Ceph は、新しい Ceph OSD デーモンのブートを Ceph Storage Cluster の in とマークします。
ブール値
デフォルト
true
mon_osd_down_out_interval
詳細
Ceph が Ceph OSD デーモンを down および out マークした後に応答しない場合には、Ceph が待機する秒数。
32 ビット整数
デフォルト
300
mon_osd_downout_subtree_limit
詳細
Ceph が自動的に out とマークアウトする最大の CRUSH ユニットタイプ。
文字列
デフォルト
rack
mon_osd_reporter_subtree_level
詳細
この設定は、レポート OSD の親 CRUSH ユニットタイプを定義します。OSD は、応答しないピアを見つけると、障害レポートをモニターに送信します。モニターは報告された OSD の数を down とマークし、猶予期間後に out になる可能性があります。
文字列
デフォルト
host
mon_osd_report_timeout
詳細
応答しない Ceph OSD デーモンが down するまでの猶予期間 (秒単位)。
32 ビット整数
デフォルト
900
mon_osd_min_down_reporters
詳細
down な Ceph OSD デーモンの報告に必要な Ceph OSD デーモンの最小数。
32 ビット整数
デフォルト
2
osd_heartbeat_address
詳細
ハートビート用の Ceph OSD デーモンのネットワークアドレス。
アドレス
デフォルト
ホストのアドレス。
osd_heartbeat_interval
詳細
Ceph OSD デーモンがピアに ping する頻度(秒単位)。
32 ビット整数
デフォルト
6
osd_heartbeat_grace
詳細
Ceph OSD デーモンに Ceph Storage Cluster が down とみなすハートビートが表示されなかった場合の経過時間。
32 ビット整数
デフォルト
20
osd_mon_heartbeat_interval
詳細
Ceph OSD Daemon に Ceph OSD Daemon ピアがない場合に Ceph Monitor に ping する頻度
32 ビット整数
デフォルト
30
osd_mon_report_interval_max
詳細
Ceph OSD デーモンが Ceph Monitor に報告するまでに待機する最大時間(秒単位)。
32 ビット整数
デフォルト
120
osd_mon_report_interval_min
詳細
Ceph OSD デーモンが起動から別の報告可能なイベントから Ceph Monitor にレポートするまでの最小秒数。
32 ビット整数
デフォルト
5
有効な範囲
osd mon report interval max未満である必要があります。
osd_mon_ack_timeout
詳細
Ceph Monitor が統計の要求を確認するのを待つ秒数。
32 ビット整数
デフォルト
30

付録H Ceph のデバッグおよびロギング設定オプション

Ceph 設定ファイルでは、ロギングおよびデバッグの設定は必要ありませんが、必要に応じてデフォルト設定を上書きできます。

オプションは、チャネルに関係なくすべてのデーモンのデフォルトである単一の項目を取ります。たとえば、「info」を指定する場合は「default=info」として解釈されます。ただし、オプションには、キーと値のペアを取ることもできます。たとえば、「default=daemon audit=local0」は「default all to 'daemon'」として解釈され、'audit' を 'local0' で上書きします。

log_file
詳細
クラスターのロギングファイルの場所。
文字列
必須
いいえ
デフォルト
/var/log/ceph/$cluster-$name.log
mon_cluster_log_file
詳細
監視クラスターのログファイルの場所。
文字列
必須
いいえ
デフォルト
/var/log/ceph/$cluster.log
log_max_new
詳細
新しいログファイルの最大数。
整数
必須
いいえ
デフォルト
1000
log_max_recent
詳細
ログファイルに含める最近のイベントの最大数。
整数
必須
いいえ
デフォルト
10000
log_flush_on_exit
詳細
Ceph が終了後にログファイルをフラッシュするかどうかを決定します。
ブール値
必須
いいえ
デフォルト
true
mon_cluster_log_file_level
詳細
モニタークラスターのファイルロギングレベル。有効な設定には、debug、info、sec、warn、error などがあります。
文字列
デフォルト
"info"
log_to_stderr
詳細
ロギングメッセージが標準エラー (stderr) で表示されるかどうかを確認します。
ブール値
必須
いいえ
デフォルト
true
err_to_stderr
詳細
エラーメッセージが標準エラー (stderr) で表示されるかどうかを確認します。
ブール値
必須
いいえ
デフォルト
true
log_to_syslog
詳細
ロギングメッセージが syslog に表示されるかどうかを決定します。
ブール値
必須
いいえ
デフォルト
false
err_to_syslog
詳細
エラーメッセージが syslog に表示されるかどうかを確認します。
ブール値
必須
いいえ
デフォルト
false
clog_to_syslog
詳細
clog メッセージが syslog に送信されるかどうかを決定します。
ブール値
必須
いいえ
デフォルト
false
mon_cluster_log_to_syslog
詳細
クラスターログが syslog に出力されるかどうかを確認します。
ブール値
必須
いいえ
デフォルト
false
mon_cluster_log_to_syslog_level
詳細
モニタークラスターの syslog ロギングレベル。有効な設定には、debug、info、sec、warn、error などがあります。
文字列
デフォルト
"info"
mon_cluster_log_to_syslog_facility
詳細
syslog 出力を生成する機能。これは、通常、Ceph デーモンの「daemon」に設定されます。
文字列
デフォルト
"daemon"
clog_to_monitors
詳細
clog メッセージをモニターに送信するかどうかを決定します。
ブール値
必須
いいえ
デフォルト
true
mon_cluster_log_to_graylog
詳細
クラスターがログメッセージをグレーログに出力するかどうかを決定します。
文字列
デフォルト
"false"
mon_cluster_log_to_graylog_host
詳細
グレーログホストの IP アドレスグレーログのホストがモニターホストと異なる場合は、この設定を適切な IP アドレスで上書きします。
文字列
デフォルト
"127.0.0.1"
mon_cluster_log_to_graylog_port
詳細
Graylog ログはこのポートに送信されます。ポートがデータの受信用に開いていることを確認します。
文字列
デフォルト
"12201"
osd_preserve_trimmed_log
詳細
トリミング後にトリミングされたログを保持します。
ブール値
必須
いいえ
デフォルト
false
osd_tmapput_sets_uses_tmap
詳細
tmap を使用します。デバッグ専用です。
ブール値
必須
いいえ
デフォルト
false
osd_min_pg_log_entries
詳細
配置グループのログエントリーの最小数。
32 ビット未署名の整数
必須
いいえ
デフォルト
1000
osd_op_log_threshold
詳細
1 回のパスに表示する op ログメッセージの数。
整数
必須
いいえ
デフォルト
5

法律上の通知

Copyright © 2020 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.