9.5. BlueStore を使用する OSD の追加
本項では、BlueStore バックエンドで新しい Ceph OSD ノードをインストールする方法について説明します。
前提条件
- 稼働中の Ceph クラスター。『Installation Guide for Red Hat Enterprise Linux』または『Ubuntu』を参照してください。
手順
Ansible 管理ノードで以下のコマンドを使用します。
デフォルトでは、新しい OSD ノードを、(デフォルトでは
/etc/ansible/hosts
にある) Ansible インベントリーファイルの[osds]
セクションに追加します。[osds] node1 node2 node3 <hostname>
以下を置き換えます。
-
<hostname>
は OSD ノードの名前に置き換えます。
以下に例を示します。
[osds] node1 node2 node3 node4
-
/usr/share/ceph-ansible
ディレクトリーに移動します。[user@admin ~]$ cd /usr/share/ceph-ansible
host_vars
ディレクトリーを作成します。[root@admin ceph-ansible] mkdir host_vars
新規に追加された OSD の設定ファイルを
host_vars
に作成します。[root@admin ceph-ansible] touch host_vars/<hostname>.yml
以下を置き換えます。
-
<hostname>
は、新たに追加された OSD のホスト名に置き換えます。
以下に例を示します。
[root@admin ceph-ansible] touch host_vars/node4.yml
-
新規作成されたファイルに以下の設定を追加します。
osd_objectstore: bluestore
注記すべての OSD に BlueStore を使用するには、
osd_objectstore:bluestore
をgroup_vars/all.yml
ファイルに追加します。任意。
block.wal
およびblock.db
パーティションを専用デバイスに保存する場合は、以下のようにhost_vars/<hostname>.yml
ファイルを編集します。block.wal
に専用のデバイスを使用するには、以下を実行します。osd_scenario: non-collocated bluestore_wal_devices: - <device> - <device>
以下を置き換えます。
-
<device>
は、デバイスへのパスに置き換えます。
以下に例を示します。
osd_scenario: non-collocated bluestore_wal_devices: - /dev/sdf - /dev/sdg
-
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
ファイルに追加します。-
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
-
LVM ベースの BlueStore OSD を設定するには
host_vars/<hostname>.yml
でosd_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
-
任意。
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 名の両方が必要になります (db
とwal
は必要ありません)。これにより、データのみ、データおよび wal、データおよび wal および db、またはデータおよび db の 4 つの組み合わせを使用できます。データは、生のデバイス、論理ボリューム、またはパーティションにすることができます。wal
およびdb
は、論理ボリュームまたはパーティションにすることができます。生のデバイスまたはパーティションのceph-volume
を指定すると、その上に論理ボリュームが配置されます。注記現在、
ceph-ansible
は、ボリュームグループまたは論理ボリュームを作成しません。Anisble Playbook を実行する前に、これを実行する必要があります。group_vars/all.yml
ファイルを開いて編集し、osd_memory_target
オプションのコメント設定を解除します。OSD が消費するメモリー容量に応じて値を調整します。注記osd_memory_target
オプションのデフォルト値は4000000000
( 4 GB) です。このオプションは、メモリー内の BlueStore キャッシュをピニングします。重要osd_memory_target
オプションは、BlueStore がサポートする OSD にのみ適用されます。ansible-playbook
を使用します。[user@admin ceph-ansible]$ ansible-playbook site.yml
Monitor ノードから、新規 OSD が正常に追加されたことを確認します。
[root@monitor ~]# ceph osd tree