9.5. Ceph BlueStore OSD の追加
本セクションでは、BlueStore バックエンドオブジェクトストアを使用して新たな Ceph OSD ノードをインストールする方法を説明します。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- ノードへのルートレベルのアクセス。
手順
デフォルトでは、新しい OSD ノードを、(デフォルトでは
/etc/ansible/hosts
にある) Ansible インベントリーファイルの[osds]
セクションに追加します。[osds] node1 node2 node3 HOST_NAME
[osds] node1 node2 node3 HOST_NAME
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下を置き換えます。
-
HOST_NAME
は、OSD ノードの名前に置き換えます。
例
[osds] node1 node2 node3 node4
[osds] node1 node2 node3 node4
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
/usr/share/ceph-ansible
ディレクトリーに移動します。cd /usr/share/ceph-ansible
[user@admin ~]$ cd /usr/share/ceph-ansible
Copy to Clipboard Copied! Toggle word wrap Toggle overflow host_vars
ディレクトリーを作成します。[root@admin ceph-ansible] mkdir host_vars
[root@admin ceph-ansible] mkdir host_vars
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 新規に追加された OSD の設定ファイルを
host_vars
に作成します。[root@admin ceph-ansible] touch host_vars/HOST_NAME.yml
[root@admin ceph-ansible] touch host_vars/HOST_NAME.yml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下を置き換えます。
-
HOST_NAME
を、新しく追加された Ceph ノードのホスト名に置き換えます。
例
[root@admin ceph-ansible] touch host_vars/node4.yml
[root@admin ceph-ansible] touch host_vars/node4.yml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
新規作成されたファイルに以下の設定を追加します。
osd_objectstore: bluestore
osd_objectstore: bluestore
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記すべての OSD に BlueStore を使用するには、
osd_objectstore:bluestore
をgroup_vars/all.yml
ファイルに追加します。host_vars/HOST_NAME.yml
で BlueStore OSD を設定します。構文
lvm_volumes: - data: DATALV data_vg: DATAVG
lvm_volumes: - data: DATALV data_vg: DATAVG
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下を置き換えます。
-
DATALV
を、データ論理ボリューム名に置き換えます。 -
DATAVG
を、データ論理ボリュームグループ名に置き換えます。
例
lvm_volumes: - data: data-lv1 data_vg: vg1
lvm_volumes: - data: data-lv1 data_vg: vg1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
オプション。
block.wal
とblock.db
を専用の論理ボリュームに保存する場合は、host_vars/HOST_NAME.yml
ファイルを以下のように編集します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下を置き換えます。
- DATALV を、データが含まれる論理ボリュームに置き換えます。
- WALLV を、write-ahead-log が含まれる論理ボリュームに置き換えます。
- WALLV を、WAL または DB デバイス、またはその両方の論理ボリュームが含まれるボリュームグループに置き換えます。
- DBLV を、BlueStore 内部メタデータが含まれるべき論理ボリュームに置き換えます。
例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記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
ファイルでblock.db
のデフォルトサイズをオーバーライドできます。構文
ceph_conf_overrides: osd: bluestore_block_db_size: VALUE
ceph_conf_overrides: osd: bluestore_block_db_size: VALUE
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
ceph_conf_overrides: osd: bluestore_block_db_size: 24336000000
ceph_conf_overrides: osd: bluestore_block_db_size: 24336000000
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記bluestore_block_db_size
の値は 2 GB より大きくする必要があります。group_vars/all.yml
ファイルを開いて編集し、osd_memory_target
オプションのコメント設定を解除します。OSD が消費するメモリー容量に応じて値を調整します。注記osd_memory_target
オプションのデフォルト値は4000000000
( 4 GB) です。このオプションは、メモリー内の BlueStore キャッシュをピニングします。重要osd_memory_target
オプションは、BlueStore がサポートする OSD にのみ適用されます。以下の Ansible Playbook を実行します。
ansible-playbook site.yml
[user@admin ceph-ansible]$ ansible-playbook site.yml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Ceph Monitor ノードから、新規 OSD が正常に追加されたことを確認します。
ceph osd tree
[root@mon ~]# ceph osd tree
Copy to Clipboard Copied! Toggle word wrap Toggle overflow