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_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下を置き換えます。
-
HOST_NAMEは、OSD ノードの名前に置き換えます。
例
[osds] node1 node2 node3 node4
[osds] node1 node2 node3 node4Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
/usr/share/ceph-ansibleディレクトリーに移動します。cd /usr/share/ceph-ansible
[user@admin ~]$ cd /usr/share/ceph-ansibleCopy to Clipboard Copied! Toggle word wrap Toggle overflow host_varsディレクトリーを作成します。[root@admin ceph-ansible] mkdir host_vars
[root@admin ceph-ansible] mkdir host_varsCopy 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.ymlCopy 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.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
新規作成されたファイルに以下の設定を追加します。
osd_objectstore: bluestore
osd_objectstore: bluestoreCopy 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: DATAVGlvm_volumes: - data: DATALV data_vg: DATAVGCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下を置き換えます。
-
DATALVを、データ論理ボリューム名に置き換えます。 -
DATAVGを、データ論理ボリュームグループ名に置き換えます。
例
lvm_volumes: - data: data-lv1 data_vg: vg1lvm_volumes: - data: data-lv1 data_vg: vg1Copy 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: VALUEceph_conf_overrides: osd: bluestore_block_db_size: VALUECopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
ceph_conf_overrides: osd: bluestore_block_db_size: 24336000000ceph_conf_overrides: osd: bluestore_block_db_size: 24336000000Copy 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.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow Ceph Monitor ノードから、新規 OSD が正常に追加されたことを確認します。
ceph osd tree
[root@mon ~]# ceph osd treeCopy to Clipboard Copied! Toggle word wrap Toggle overflow