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>
[osds] node1 node2 node3 <hostname>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下を置き換えます。
-
<hostname>は 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/<hostname>.yml
[root@admin ceph-ansible] touch host_vars/<hostname>.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下を置き換えます。
-
<hostname>は、新たに追加された OSD のホスト名に置き換えます。
以下に例を示します。
[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ファイルに追加します。任意。
block.walおよびblock.dbパーティションを専用デバイスに保存する場合は、以下のようにhost_vars/<hostname>.ymlファイルを編集します。block.walに専用のデバイスを使用するには、以下を実行します。osd_scenario: non-collocated bluestore_wal_devices: - <device> - <device>
osd_scenario: non-collocated bluestore_wal_devices: - <device> - <device>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下を置き換えます。
-
<device>は、デバイスへのパスに置き換えます。
以下に例を示します。
osd_scenario: non-collocated bluestore_wal_devices: - /dev/sdf - /dev/sdg
osd_scenario: non-collocated bluestore_wal_devices: - /dev/sdf - /dev/sdgCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
block.dbに専用デバイスを使用するには、以下を実行します。osd_scenario: non-collocated dedicated_devices: - <device> - <device>
osd_scenario: non-collocated dedicated_devices: - <device> - <device>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下を置き換えます。
-
<device>は、デバイスへのパスに置き換えます。
以下に例を示します。
osd_scenario: non-collocated dedicated_devices: - /dev/sdh - /dev/sdi
osd_scenario: non-collocated dedicated_devices: - /dev/sdh - /dev/sdiCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記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>ceph_conf_overrides: osd: bluestore_block_db_size: <value> bluestore_block_wal_size: <value>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下を置き換えます。
-
<value>はサイズ (バイト単位) に置き換えます。
以下に例を示します。
ceph_conf_overrides: osd: bluestore_block_db_size: 14336000000 bluestore_block_wal_size: 2048000000ceph_conf_overrides: osd: bluestore_block_db_size: 14336000000 bluestore_block_wal_size: 2048000000Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
LVM ベースの BlueStore OSD を設定するには
host_vars/<hostname>.ymlでosd_scenario: lvmを使用します。osd_scenario: lvm lvm_volumes: - data: <datalv> data_vg: <datavg>osd_scenario: lvm lvm_volumes: - data: <datalv> data_vg: <datavg>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下を置き換えます。
-
<datalv>をデータ論理ボリューム名に置き換えます。 -
<datavg>をデータ論理ボリュームグループ名に置き換えます。
以下に例を示します。
osd_scenario: lvm lvm_volumes: - data: data-lv1 data_vg: vg1osd_scenario: lvm lvm_volumes: - data: data-lv1 data_vg: vg1Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
任意。
block.walおよびblock.dbを専用の論理ボリュームに保存する場合は、以下のようにhost_vars/<hostname>.ymlファイルを編集します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下を置き換えます。
- <datalv> をデータが含まれる必要がある論理ボリュームに置き換えます。
- <wallv> をログ先行書き込みが含まれる必要がある論理ボリュームに置き換えます。
- <vg> を WAL や DB デバイス LV があるボリュームグループに置き換えます。
- <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ファイルを開いて編集し、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 Monitor ノードから、新規 OSD が正常に追加されたことを確認します。
ceph osd tree
[root@monitor ~]# ceph osd treeCopy to Clipboard Copied! Toggle word wrap Toggle overflow