Menu Close

Red Hat Training

A Red Hat training course is available for Red Hat Ceph Storage

9.5. 添加使用 BlueStore 的 OSD

本节介绍如何使用 BlueStore 后端安装新的 Ceph OSD 节点。

先决条件

流程

在 Ansible 管理节点上使用以下命令:

  1. 将新的 OSD 节点添加到 Ansible 清单文件中的 [osds] 部分中,默认位于 /etc/ansible/hosts

    [osds]
    node1
    node2
    node3
    <hostname>

    替换:

    • <hostname> OSD 节点的名称

    例如:

    [osds]
    node1
    node2
    node3
    node4
  2. 进入 /usr/share/ceph-ansible/ 目录。

    [user@admin ~]$ cd /usr/share/ceph-ansible
  3. 创建 host_vars 目录。

    [root@admin ceph-ansible] mkdir host_vars
  4. host_vars 中为新添加的 OSD 创建 配置文件。

    [root@admin ceph-ansible] touch host_vars/<hostname>.yml

    替换:

    • <hostname> 新添加的 OSD 的主机名

    例如:

    [root@admin ceph-ansible] touch host_vars/node4.yml
  5. 在新创建的文件中添加以下设置:

    osd_objectstore: bluestore
    注意

    要将 BlueStore 用于所有 OSD,请将 osd_objectstore:bluestore 添加到 group_vars/all.yml 文件中。

  6. 可选。如果要将 block.walblock.db 分区存储在专用设备中,请按如下所示编辑 host_vars/<hostname>.yml 文件。

    1. 要将专用设备用于 block.wal

      osd_scenario: non-collocated
      
      bluestore_wal_devices:
         - <device>
         - <device>

      替换:

      • <device> 使用到该设备的路径

      例如:

      osd_scenario: non-collocated
      
      bluestore_wal_devices:
         - /dev/sdf
         - /dev/sdg
    2. 要将专用设备用于 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.walblock.db 分区将使用与 devices 参数相同的设备。详情请参阅 Red Hat Enterprise Linux 或 Ubuntu 的 Red Hat Ceph Storage 3 l 安装指南中的安装 Red Hat Ceph Storage Cluster 部分。

      注意

      要将 BlueStore 用于所有 OSD,请将上述参数添加到 group_vars/osds.yml 文件中。

    3. 覆盖 group_vars/all.yml 文件中的 block.dbblock.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
  7. 要配置基于 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
  8. 可选。如果要将 block.walblock.db 存储在专用逻辑卷中,请按如下方式编辑 host_vars/<hostname>.yml 文件:

    osd_scenario: lvm
    lvm_volumes:
      - data: <datalv>
        wal: <wallv>
        wal_vg: <vg>
        db: <dblv>
        db_vg: <vg>

    替换:

    • <datalv> 带有应包含数据的逻辑卷
    • 带有 write-ahead-log 的逻辑卷的 <wallv>
    • WAL 和/或 DB 设备 LV 的卷组 <vg>
    • 应包含 BlueStore 内部元数据的逻辑卷的 <dblv>

    例如:

    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 字典必须至少包含 data。定义 waldb 时,它必须同时具有 LV 名称和 VG 名称(dbwal 不需要)。这允许四个组合:仅数据、数据和 wal、数据和 wal 和 wal 和 db,或者数据和 db。数据可以是裸设备、lv 或 分区。waldb 可以是 lv 或 分区。当指定原始设备或者分区 ceph-volume 时,会在其上面放置逻辑卷。

    注意

    目前,ceph-ansible 不会创建卷组或者逻辑卷。这必须在运行 Anisble playbook 之前完成。

  9. 打开并编辑 group_vars/all.yml 文件,并取消注释 osd_memory_target 选项。调整您希望 OSD 使用的内存量的值。

    注意

    osd_memory_target 选项的默认值是 4000000000,即 4 GB。这个选项将 BlueStore 缓存固定在内存中。

    重要

    osd_memory_target 选项只适用于由 BlueStore 支持的 OSD。

  10. 使用 ansible-playbook

    [user@admin ceph-ansible]$ ansible-playbook site.yml
  11. 从 monitor 节点,验证新 OSD 是否已成功添加:

    [root@monitor ~]# ceph osd tree

其它资源