Red Hat Training

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

9.5. BlueStore を使用する OSD の追加

本項では、BlueStore バックエンドで新しい Ceph OSD ノードをインストールする方法について説明します。

前提条件

手順

Ansible 管理ノードで以下のコマンドを使用します。

  1. デフォルトでは、新しい OSD ノードを、(デフォルトでは /etc/ansible/hosts にある) Ansible インベントリーファイルの [osds] セクションに追加します。

    [osds]
    node1
    node2
    node3
    <hostname>

    以下を置き換えます。

    • <hostname> は OSD ノードの名前に置き換えます。

    以下に例を示します。

    [osds]
    node1
    node2
    node3
    node4
  2. /usr/share/ceph-ansible ディレクトリーに移動します。

    [user@admin ~]$ cd /usr/share/ceph-ansible
  3. host_vars ディレクトリーを作成します。

    [root@admin ceph-ansible] mkdir host_vars
  4. 新規に追加された OSD の設定ファイルを host_vars に作成します。

    [root@admin ceph-ansible] touch host_vars/<hostname>.yml

    以下を置き換えます。

    • <hostname> は、新たに追加された OSD のホスト名に置き換えます。

    以下に例を示します。

    [root@admin ceph-ansible] touch host_vars/node4.yml
  5. 新規作成されたファイルに以下の設定を追加します。

    osd_objectstore: bluestore
    注記

    すべての OSD に BlueStore を使用するには、osd_objectstore:bluestoregroup_vars/all.yml ファイルに追加します。

  6. 任意。block.wal および block.db パーティションを専用デバイスに保存する場合は、以下のように host_vars/<hostname>.yml ファイルを編集します。

    1. block.wal に専用のデバイスを使用するには、以下を実行します。

      osd_scenario: non-collocated
      
      bluestore_wal_devices:
         - <device>
         - <device>

      以下を置き換えます。

      • <device> は、デバイスへのパスに置き換えます。

      以下に例を示します。

      osd_scenario: non-collocated
      
      bluestore_wal_devices:
         - /dev/sdf
         - /dev/sdg
    2. block.db に専用デバイスを使用するには、以下を実行します。

      osd_scenario: non-collocated
      
      dedicated_devices:
         - <device>
         - <device>

      以下を置き換えます。

      • <device> は、デバイスへのパスに置き換えます。

      以下に例を示します。

      osd_scenario: non-collocated
      
      dedicated_devices:
         - /dev/sdh
         - /dev/sdi
      注記

      osd_scenario: collocated パラメーターを使用する場合、block.wal および block.db パーティションは devices パラメーターで指定されたデバイスと同じものを使用します。詳細は、Red Hat Ceph Storage 3『Installation Guide for Red Hat Enterprise Linux』または『Ubuntu』の「Installing a Red Hat Ceph Storage Cluster」を参照してください。

      注記

      すべての OSD に BlueStore を使用するには、前述のパラメーターを group_vars/osds.yml ファイルに追加します。

    3. group_vars/all.yml ファイルで block.db および block.wal のデフォルトサイズを上書きするには、以下を実行します。

      ceph_conf_overrides:
        osd:
          bluestore_block_db_size: <value>
          bluestore_block_wal_size: <value>

      以下を置き換えます。

      • <value> はサイズ (バイト単位) に置き換えます。

      以下に例を示します。

      ceph_conf_overrides:
        osd:
          bluestore_block_db_size: 14336000000
          bluestore_block_wal_size: 2048000000
  7. LVM ベースの BlueStore OSD を設定するにはhost_vars/<hostname>.ymlosd_scenario: lvm を使用します。

    osd_scenario: lvm
    lvm_volumes:
      - data: <datalv>
        data_vg: <datavg>

    以下を置き換えます。

    • <datalv> をデータ論理ボリューム名に置き換えます。
    • <datavg> をデータ論理ボリュームグループ名に置き換えます。

    以下に例を示します。

    osd_scenario: lvm
    lvm_volumes:
      - data: data-lv1
        data_vg: vg1
  8. 任意。block.wal および block.db を専用の論理ボリュームに保存する場合は、以下のように host_vars/<hostname>.yml ファイルを編集します。

    osd_scenario: lvm
    lvm_volumes:
      - data: <datalv>
        wal: <wallv>
        wal_vg: <vg>
        db: <dblv>
        db_vg: <vg>

    以下を置き換えます。

    • <datalv> をデータが含まれる必要がある論理ボリュームに置き換えます。
    • <wallv> をログ先行書き込みが含まれる必要がある論理ボリュームに置き換えます。
    • <vg> を WAL や DB デバイス LV があるボリュームグループに置き換えます。
    • <dblv> を BlueStore 内部メタデータが含まれる必要がある論理ボリュームに置き換えます。

    以下に例を示します。

    osd_scenario: lvm
    lvm_volumes:
      - data: data-lv3
        wal: wal-lv1
        wal_vg: vg3
        db: db-lv3
        db_vg: vg3
    注記

    lvm_volumes:osd_objectstore: bluestore と一緒に使用する場合は、lvm_volumes の YAML 辞書には少なくとも データ が含まれている必要があります。wal または db を定義する際には、LV 名と VG 名の両方が必要になります (dbwal は必要ありません)。これにより、データのみ、データおよび wal、データおよび wal および db、またはデータおよび db の 4 つの組み合わせを使用できます。データは、生のデバイス、論理ボリューム、またはパーティションにすることができます。wal および db は、論理ボリュームまたはパーティションにすることができます。生のデバイスまたはパーティションの ceph-volume を指定すると、その上に論理ボリュームが配置されます。

    注記

    現在、ceph-ansible は、ボリュームグループまたは論理ボリュームを作成しません。Anisble Playbook を実行する前に、これを実行する必要があります。

  9. group_vars/all.yml ファイルを開いて編集し、osd_memory_target オプションのコメント設定を解除します。OSD が消費するメモリー容量に応じて値を調整します。

    注記

    osd_memory_target オプションのデフォルト値は 4000000000 ( 4 GB) です。このオプションは、メモリー内の BlueStore キャッシュをピニングします。

    重要

    osd_memory_target オプションは、BlueStore がサポートする OSD にのみ適用されます。

  10. ansible-playbook を使用します。

    [user@admin ceph-ansible]$ ansible-playbook site.yml
  11. Monitor ノードから、新規 OSD が正常に追加されたことを確認します。

    [root@monitor ~]# ceph osd tree

関連情報