3.3. 使用命令行界面添加 Ceph OSD


以下是手动添加 OSD 到 Red Hat Ceph Storage 的高级别工作流:

  1. 安装 ceph-osd 软件包并创建新的 OSD 实例
  2. 准备并挂载 OSD 数据和日志驱动器
  3. 将新 OSD 节点添加到 CRUSH map
  4. 更新所有者和组权限
  5. 启用并启动 ceph-osd 守护进程
重要

ceph-disk 命令已弃用。ceph-volume 命令现在是从命令行界面部署 OSD 的首选方法。目前,ceph-volume 命令只支持 lvm 插件。红帽将在本指南中将两个命令作为参考提供示例,以便存储管理员有时间将依赖 ceph-disk 的任何自定义脚本转换为 ceph-volume

有关使用 ceph-volume 命令的更多信息,请参见《红帽 Ceph 存储管理指南》

注意

对于自定义存储集群名称,在 cephceph-osd 命令中使用 --cluster $CLUSTER_NAME 选项。

先决条件

步骤

  1. 启用 Red Hat Ceph Storage 3 OSD 软件存储库。

    Red Hat Enterprise Linux

    [root@osd ~]# subscription-manager repos --enable=rhel-7-server-rhceph-3-osd- els-rpms

  2. 创建 /etc/ceph/ 目录:
  3. 在新 OSD 节点上,从其中一个 Ceph Monitor 节点上复制 Ceph 管理密钥环和配置文件:
  4. 在新的 Ceph OSD 节点上安装 ceph-osd 软件包:

    Red Hat Enterprise Linux

    [root@osd ~]# yum install ceph-osd

  5. 决定您要并置日志还是将专用日志用于新的 OSD。

    注意

    需要 --filestore 选项。

    1. 对于带有并置日志的 OSD:

      Syntax

      [root@osd ~]# docker exec $CONTAINER_ID ceph-disk --setuser ceph --setgroup ceph prepare  --filestore /dev/$DEVICE_NAME

      Example:

      [root@osd ~]# docker exec ceph-osd-osd1 ceph-disk --setuser ceph --setgroup ceph prepare  --filestore /dev/sda

    2. 对于带有专用日志的 OSD:

      Syntax

      [root@osd ~]# docker exec $CONTAINER_ID ceph-disk --setuser ceph --setgroup ceph prepare  --filestore /dev/$DEVICE_NAME /dev/$JOURNAL_DEVICE_NAME

      [root@osd ~]# docker exec $CONTAINER_ID ceph-volume lvm prepare  --filestore --data /dev/$DEVICE_NAME --journal /dev/$JOURNAL_DEVICE_NAME

      示例

      [root@osd ~]# docker exec ceph-osd-osd1 ceph-disk --setuser ceph --setgroup ceph prepare  --filestore /dev/sda /dev/sdb

      [root@osd ~]# docker exec ceph-osd-osd1 ceph-volume lvm prepare  --filestore --data /dev/vg00/lvol1 --journal /dev/sdb
  6. 设置 noup 选项:

    [root@osd ~]# ceph osd set noup
  7. 激活新的 OSD:

    Syntax

    [root@osd ~]# docker exec $CONTAINER_ID ceph-disk activate /dev/$DEVICE_NAME

    [root@osd ~]# docker exec $CONTAINER_ID ceph-volume lvm activate --filestore $OSD_ID $OSD_FSID

    示例

    [root@osd ~]# docker exec ceph-osd-osd1 ceph-disk activate /dev/sda

    [root@osd ~]# docker exec ceph-osd-osd1 ceph-volume lvm activate --filestore 0 6cc43680-4f6e-4feb-92ff-9c7ba204120e
  8. 将 OSD 添加到 CRUSH map:

    Syntax

    ceph osd crush add $OSD_ID $WEIGHT [$BUCKET_TYPE=$BUCKET_NAME ...]

    示例

    [root@osd ~]# ceph osd crush add 4 1 host=node4

    注意

    如果您指定多个存储桶,该命令将将 OSD 放置到最具体的存储桶中,它将 OSD 移到您指定的其它存储桶中。

    注意

    您还可以手动编辑 CRUSH map。请参阅 Red Hat Ceph Storage 3 的存储策略指南中的 编辑 CRUSH map 部分。

    重要

    如果仅指定 root bucket,则 OSD 将直接附加到 root,但 CRUSH 规则期望 OSD 在主机 bucket 内。

  9. 取消设置 noup 选项:

    [root@osd ~]# ceph osd unset noup
  10. 为新创建的目录更新所有者和组权限:

    Syntax

    chown -R $OWNER:$GROUP $PATH_TO_DIRECTORY

    示例

    [root@osd ~]# chown -R ceph:ceph /var/lib/ceph/osd
    [root@osd ~]# chown -R ceph:ceph /var/log/ceph
    [root@osd ~]# chown -R ceph:ceph /var/run/ceph
    [root@osd ~]# chown -R ceph:ceph /etc/ceph

  11. 如果您使用带有自定义名称的集群,请在适当的文件中添加以下行:

    Red Hat Enterprise Linux

    [root@osd ~]# echo "CLUSTER=$CLUSTER_NAME" >> /etc/sysconfig/ceph

    $CLUSTER_NAME 替换为自定义集群名称。

  12. 要确保新 OSD 已启动 并准备好接收数据,请启用并启动 OSD 服务:

    Syntax

    systemctl enable ceph-osd@$OSD_ID
    systemctl start ceph-osd@$OSD_ID

    示例

    [root@osd ~]# systemctl enable ceph-osd@4
    [root@osd ~]# systemctl start ceph-osd@4

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.