5.4. プールで 3 つのアベイラビリティーゾーンを有効にする


この情報を使用して、一般的なストレッチクラスター設定内で 3 つのアベイラビリティーゾーンを有効にして統合します。

前提条件

始める前に、次の前提条件が満たされていることを確認してください。* ノードへの root レベルのアクセス。* CRUSH ロケーションがはホストに設定されている。

手順

  1. 最新の CRUSH マップを取得し、マップをテキストファイルに逆コンパイルします。

    構文

    ceph osd getcrushmap > COMPILED_CRUSHMAP_FILENAME
    crushtool -d COMPILED_CRUSHMAP_FILENAME -o DECOMPILED_CRUSHMAP_FILENAME

    [ceph: root@host01 /]# ceph osd getcrushmap > crush.map.bin
    [ceph: root@host01 /]# crushtool -d crush.map.bin -o crush.map.txt

  2. 新しい CRUSH ルールを、以前の CRUSH マップファイルの逆コンパイルされた CRUSH マップファイルに追加します。この例では、ルール名は 3az_rule です。

    構文

    rule 3az_rule {
             id 1
             type replicated
             step take default
             step choose firstn 3 type datacenter
             step chooseleaf firstn 2 type host
             step emit
     }

    このルールにより、配置グループは 3 つのデータセンターのそれぞれに 2 つのコピーでレプリケートされます。

  3. CRUSH マップを注入して、クラスターでルールを使用できるようにします。

    構文

    crushtool -c DECOMPILED_CRUSHMAP_FILENAME -o COMPILED_CRUSHMAP_FILENAME
    ceph osd setcrushmap -i COMPILED_CRUSHMAP_FILENAME

    [ceph: root@host01 /]# crushtool -c crush.map.txt -o crush2.map.bin
    [ceph: root@host01 /]# ceph osd setcrushmap -i crush2.map.bin

    次の手順を使用して、ルールが正常に注入されたことを確認できます。

    1. クラスター上のルールをリスト表示します。

      構文

      ceph osd crush rule ls

      [ceph: root@host01 /]# ceph osd crush rule ls
      replicated_rule
      ec86_pool
      3az_rule

  4. CRUSH ルールをダンプします。

    構文

    ceph osd crush rule dump CRUSH_RULE

    [ceph: root@host01 /]# ceph osd crush rule dump 3az_rule
    {
        "rule_id": 1,
        "rule_name": "3az_rule",
        "type": 1,
        "steps": [
            {
                "op": "take",
                "item": -1,
                "item_name": "default"
            },
            {
                "op": "choose_firstn",
                "num": 3,
                "type": "datacenter"
            },
            {
                "op": "chooseleaf_firstn",
                "num": 2,
                "type": "host"
            },
            {
                "op": "emit"
            }
        ]
    }

  5. MON 選択ストラテジーを接続性に設定します。

    構文

    ceph mon set election_strategy connectivity

    更新が正常に行われると、election_strategy は 3 に更新されます。デフォルトの election_strategy は 1 です。

  6. オプション: 前の手順で設定した選択ストラテジーを確認します。

    構文

    ceph mon dump

    すべての mon デーモンが出力に含まれており、正しい CRUSH ロケーションが追加されていることを確認します。

    [ceph: root@host01 /]# ceph mon dump
    epoch 19
    fsid b556497a-693a-11ef-b9d1-fa163e841fd7
    last_changed 2024-09-03T12:47:08.419495+0000
    created 2024-09-02T14:50:51.490781+0000
    min_mon_release 19 (squid)
    election_strategy: 3
    0: [v2:10.0.67.43:3300/0,v1:10.0.67.43:6789/0] mon.host01-installer; crush_location {datacenter=DC1}
    1: [v2:10.0.67.20:3300/0,v1:10.0.67.20:6789/0] mon.host02; crush_location {datacenter=DC1}
    2: [v2:10.0.64.242:3300/0,v1:10.0.64.242:6789/0] mon.host03; crush_location {datacenter=DC1}
    3: [v2:10.0.66.17:3300/0,v1:10.0.66.17:6789/0] mon.host06; crush_location {datacenter=DC2}
    4: [v2:10.0.66.228:3300/0,v1:10.0.66.228:6789/0] mon.host09; crush_location {datacenter=DC3}
    5: [v2:10.0.65.125:3300/0,v1:10.0.65.125:6789/0] mon.host05; crush_location {datacenter=DC2}
    6: [v2:10.0.66.252:3300/0,v1:10.0.66.252:6789/0] mon.host07; crush_location {datacenter=DC3}
    7: [v2:10.0.64.145:3300/0,v1:10.0.64.145:6789/0] mon.host08; crush_location {datacenter=DC3}
    8: [v2:10.0.64.125:3300/0,v1:10.0.64.125:6789/0] mon.host04; crush_location {datacenter=DC2}
    dumped monmap epoch 19

  7. プールを 3 つのアベイラビリティーゾーンストレッチクラスターに関連付けるように設定します。使用可能なプール値の詳細は、Red Hat Ceph Storage ストレージストラテジーガイドの プール値 を参照してください。

    構文

    ceph osd pool stretch set _POOL_NAME_ _PEERING_CRUSH_BUCKET_COUNT_ _PEERING_CRUSH_BUCKET_TARGET_ _PEERING_CRUSH_BUCKET_BARRIER_ _CRUSH_RULE_ _SIZE_ _MIN_SIZE_ [--yes-i-really-mean-it]

    変数を次のように置き換えます。

    POOL_NAME
    プールの名前。既存のプールである必要があります。このコマンドは新しいプールを作成しません。
    PEERING_CRUSH_BUCKET_COUNT
    この値は、peering_crush_bucket_barrier と合わせて使用され、選択したアクティングセットの OSD が相互にピアリングできるかどうかを判断します。これは、アクティングセット内の個別のバケット数をもとにします。
    PEERING_CRUSH_BUCKET_TARGET
    この値は、peering_crush_bucket_barrier および size とともに使用され、value bucket_max の値を算出します。この値により、同じバケット内の OSD の数を制限して、PG のアクティングセットに選ばれないようにします。
    PEERING_CRUSH_BUCKET_BARRIER
    プールを分散するバケットの種類。たとえば、ラック、行、データセンターなどです。
    CRUSH_RULE
    ストレッチプールに使用するクラッシュルール。プールのタイプは、crush_rule のタイプ (レプリケートまたはイレイジャー) と一致する必要があります。
    SIZE
    ストレッチプール内のオブジェクトのレプリカの数。
    MIN_SIZE

    ストレッチプール内の I/O に必要なレプリカの最小数。

    重要

    PEERING_CRUSH_BUCKET_COUNTPEERING_CRUSH_BUCKET_TARGET を CRUSH マップ内のバケット数より大きく設定する場合は、`--yes-i-really-mean-it フラグが必要です。オプションのフラグを使用して、安全性チェックをバイパスし、ストレッチプールの値を設定することを確認します。

    [ceph: root@host01 /]# ceph osd pool stretch set pool01 2 3 datacenter 3az_rule 6 3

    注記

    プールを非ストレッチクラスターに戻すには、ceph osd pool stretch unset POOL_NAME コマンドを使用します。このコマンドを使用しても、crush_rulesize、および min_size の値は設定解除されません。必要に応じて、これらを手動でリセットする必要があります。

    プールのストレッチ値が正しく設定されたことを示す成功メッセージが表示されます。

  8. オプション: ceph osd pool stretch show コマンドを使用して、ストレッチクラスターに関連付けられているプールを確認します。

    [ceph: root@host01 /]# ceph osd pool stretch show pool01
    pool: pool01
    pool_id: 1
    is_stretch_pool: 1
    peering_crush_bucket_count: 2
    peering_crush_bucket_target: 3
    peering_crush_bucket_barrier: 8
    crush_rule: 3az_rule
    size: 6
    min_size: 3

Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

会社概要

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

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

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

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

Legal Notice

Theme

© 2026 Red Hat
トップに戻る