9.5. 添加 Ceph BlueStore OSD
这部分论述了如何使用 BlueStore 后端对象存储安装新的 Ceph OSD 节点。
前提条件
- 一个正在运行的 Red Hat Ceph Storage 集群。
- 节点的根级别访问权限。
流程
添加新的 OSD 节点到 Ansible 清单文件中的
[osds]
部分,默认为位于/etc/ansible/hosts
。[osds] node1 node2 node3 HOST_NAME
替换:
-
HOST_NAME
为 OSD 节点的名称
Example
[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
在
host_vars
中为新添加的 OSD 创建配置文件。[root@admin ceph-ansible] touch host_vars/HOST_NAME.yml
替换:
-
带有新添加 OSD 的主机名的
HOST_NAME
Example
[root@admin ceph-ansible] touch host_vars/node4.yml
-
带有新添加 OSD 的主机名的
在新创建的文件中添加以下设置:
osd_objectstore: bluestore
注意要将 BlueStore 用于所有 OSD,请将
osd_objectstore:bluestore
添加到group_vars/all.yml
文件中。在
host_vars/HOST_NAME.yml
中配置 BlueStore OSD:语法
lvm_volumes: - data: DATALV data_vg: DATAVG
替换:
-
带有数据逻辑卷名称的
DATALV
-
带有数据逻辑卷组名称的
DATAVG
Example
lvm_volumes: - data: data-lv1 data_vg: vg1
-
带有数据逻辑卷名称的
可选。如果要将
block.wal
和block.db
存储在专用逻辑卷中,请编辑host_vars/HOST_NAME.yml
文件,如下所示:lvm_volumes: - data: DATALV wal: WALLV wal_vg: VG db: DBLV db_vg: VG
替换:
- 带有数据逻辑卷的 DATALV
- WALLV 及应该包含 write-ahead-log 的逻辑卷
- 带有 WAL 和/或 DB 设备 LV 所在卷组的 VG
- 包含 BlueStore 内部元数据的 DBLV
Example
lvm_volumes: - data: data-lv3 wal: wal-lv1 wal_vg: vg3 db: db-lv3 db_vg: vg3
注意当使用
lvm_volumes:
withosd_objectstore: bluestore
时,LVM_volumes
YAML 字典中必须至少包含数据
。定义wal
或db
时,它必须同时具有 LV 名称和 VG 名称(不需要db
和wal
)。这允许四个组合:只包括数据、数据和 wal、数据和 Wal 和 db,或者 data 和 db。数据可以是裸设备、lv 或分区。wal
和db
可以是 lv 或 partition。当指定裸设备或分区ceph-volume
时,会将逻辑卷放在其中。注意目前,
ceph-ansible
不会创建卷组或逻辑卷。这必须在运行 Anisble playbook 之前完成。可选:您可以在
group_vars/all.yml
文件中覆盖block.db
默认大小:语法
ceph_conf_overrides: osd: bluestore_block_db_size: VALUE
Example
ceph_conf_overrides: osd: bluestore_block_db_size: 24336000000
注意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:
[user@admin ceph-ansible]$ ansible-playbook site.yml
在 Ceph 监控节点中,验证新 OSD 是否已成功添加:
[root@mon ~]# ceph osd tree