搜索

B.2. 手动安装 Ceph Manager

download PDF

通常,在部署 Red Hat Ceph Storage 集群时,Ansible 自动化实用程序会安装 Ceph Manager 守护进程 (ceph-mgr)。但是,如果您不使用 Ansible 管理红帽 Ceph 存储,您可以手动安装 Ceph Manager。红帽建议在同一节点上并置 Ceph 管理器和 Ceph 监控守护进程。

先决条件

  • 正常工作的 Red Hat Ceph Storage 集群
  • rootsudo 访问权限
  • rhel-7-server-rhceph-3-mon-els-rpms 存储库已启用
  • 如果使用防火墙,需要在公共网络上打开端口 6800-7300

流程

在要部署 ceph-mgr 的节点上,以 root 用户身份或通过 sudo 实用程序,使用以下命令。

  1. 安装 ceph-mgr 软件包:

    [root@node1 ~]# yum install ceph-mgr
  2. 创建 /var/lib/ceph/mgr/ceph-hostname/ 目录:

    mkdir /var/lib/ceph/mgr/ceph-hostname

    使用部署 ceph-mgr 守护进程的节点的主机名替换 hostname,例如:

    [root@node1 ~]# mkdir /var/lib/ceph/mgr/ceph-node1
  3. 在新创建的目录中,为 ceph-mgr 守护进程创建一个身份验证密钥:

    [root@node1 ~]# ceph auth get-or-create mgr.`hostname -s` mon 'allow profile mgr' osd 'allow *' mds 'allow *' -o /var/lib/ceph/mgr/ceph-node1/keyring
  4. /var/lib/ceph/mgr/ 目录的所有者和组更改为 ceph:ceph

    [root@node1 ~]# chown -R ceph:ceph /var/lib/ceph/mgr
  5. 启用 ceph-mgr 目标:

    [root@node1 ~]# systemctl enable ceph-mgr.target
  6. 启用并启动 ceph-mgr 实例:

    systemctl enable ceph-mgr@hostname
    systemctl start ceph-mgr@hostname

    使用部署 ceph-mgr 的节点的主机名替换 hostname,例如:

    [root@node1 ~]# systemctl enable ceph-mgr@node1
    [root@node1 ~]# systemctl start ceph-mgr@node1
  7. 验证 ceph-mgr 守护进程是否已成功启动:

    ceph -s

    输出将在 services 部分下包括类似如下的行:

        mgr: node1(active)
  8. 安装更多 ceph-mgr 守护进程以作为备用守护进程(如果当前活跃守护进程失败)处于活跃状态。

OSD Bootstrapping

运行初始监控器后,您可以开始添加对象存储设备 (OSD)。直到有足够的 OSD 来处理对象的副本数时,您的集群才会达到 active + clean 状态。

对象的默认副本数为三个。至少需要三个 OSD 节点:但是,如果您只需要一个对象的两个副本,因此仅添加两个 OSD 节点,然后更新 Ceph 配置文件中的 osd pool default sizeosd pool default min size 设置。

如需了解更多详细信息,请参阅 Red Hat Ceph Storage 3 配置指南中的OSD 配置参考一节。

在引导初始监控器后,集群具有默认的 CRUSH map。但是,CRUSH map 没有任何 Ceph OSD 守护进程映射到 Ceph 节点。

要添加 OSD 到集群并更新默认的 CRUSH map,请在每个 OSD 节点上执行以下内容:

  1. 启用 Red Hat Ceph Storage 3 OSD 存储库:

    [root@osd ~]# subscription-manager repos --enable=rhel-7-server-rhceph-3-osd-els-rpms
  2. root 用户身份,在 Ceph OSD 节点上安装 ceph-osd 软件包:

    # yum install ceph-osd
  3. 将 Ceph 配置文件和管理密钥环文件从初始 Monitor 节点复制到 OSD 节点:

    语法

    # scp <user_name>@<monitor_host_name>:<path_on_remote_system> <path_to_local_file>

    示例

    # scp root@node1:/etc/ceph/ceph.conf /etc/ceph
    # scp root@node1:/etc/ceph/ceph.client.admin.keyring /etc/ceph

  4. 为 OSD 生成通用唯一标识符 (UUID):

    $ uuidgen
    b367c360-b364-4b1d-8fc6-09408a9cda7a
  5. root 用户身份,创建 OSD 实例:

    语法

    # ceph osd create <uuid> [<osd_id>]

    示例

    # ceph osd create b367c360-b364-4b1d-8fc6-09408a9cda7a
    0

    注意

    此命令输出后续步骤所需的 OSD 编号标识符。

  6. root 用户身份,为新 OSD 创建默认目录:

    语法

    # mkdir /var/lib/ceph/osd/<cluster_name>-<osd_id>

    示例

    # mkdir /var/lib/ceph/osd/ceph-0

  7. root 用户身份,准备好将驱动器用作 OSD,并将它挂载到您刚才创建的目录中。为 Ceph 数据和日志创建一个分区。日志和数据分区可以位于同一磁盘上。这个示例使用 15 GB 磁盘:

    语法

    # parted <path_to_disk> mklabel gpt
    # parted <path_to_disk> mkpart primary 1 10000
    # mkfs -t <fstype> <path_to_partition>
    # mount -o noatime <path_to_partition> /var/lib/ceph/osd/<cluster_name>-<osd_id>
    # echo "<path_to_partition>  /var/lib/ceph/osd/<cluster_name>-<osd_id>   xfs defaults,noatime 1 2" >> /etc/fstab

    示例

    # parted /dev/sdb mklabel gpt
    # parted /dev/sdb mkpart primary 1 10000
    # parted /dev/sdb mkpart primary 10001 15000
    # mkfs -t xfs /dev/sdb1
    # mount -o noatime /dev/sdb1 /var/lib/ceph/osd/ceph-0
    # echo "/dev/sdb1 /var/lib/ceph/osd/ceph-0  xfs defaults,noatime 1 2" >> /etc/fstab

  8. root 用户身份,初始化 OSD 数据目录:

    语法

    # ceph-osd -i <osd_id> --mkfs --mkkey --osd-uuid <uuid>

    示例

    # ceph-osd -i 0 --mkfs --mkkey --osd-uuid b367c360-b364-4b1d-8fc6-09408a9cda7a
    ... auth: error reading file: /var/lib/ceph/osd/ceph-0/keyring: can't open /var/lib/ceph/osd/ceph-0/keyring: (2) No such file or directory
    ... created new key in keyring /var/lib/ceph/osd/ceph-0/keyring

    注意

    在使用 --mkkey 选项运行 ceph-osd 之前,目录必须为空。如果您有自定义集群名称,ceph-osd 实用程序需要 --cluster 选项。

  9. root 身份,注册 OSD 身份验证密钥。如果集群名称与 ceph 不同,请插入集群名称:

    语法

    # ceph auth add osd.<osd_id> osd 'allow *' mon 'allow profile osd' -i /var/lib/ceph/osd/<cluster_name>-<osd_id>/keyring

    示例

    # ceph auth add osd.0 osd 'allow *' mon 'allow profile osd' -i /var/lib/ceph/osd/ceph-0/keyring
    added key for osd.0

  10. root 用户身份,将 OSD 节点添加到 CRUSH map:

    语法

    # ceph [--cluster <cluster_name>] osd crush add-bucket <host_name> host

    示例

    # ceph osd crush add-bucket node2 host

  11. root 用户身份,将 OSD 节点放在 default CRUSH 树下:

    语法

    # ceph [--cluster <cluster_name>] osd crush move <host_name> root=default

    示例

    # ceph osd crush move node2 root=default

  12. root 用户身份,将 OSD 磁盘添加到 CRUSH map

    语法

    # ceph [--cluster <cluster_name>] osd crush add osd.<osd_id> <weight> [<bucket_type>=<bucket-name> ...]

    示例

    # ceph osd crush add osd.0 1.0 host=node2
    add item id 0 name 'osd.0' weight 1 at location {host=node2} to crush map

    注意

    您也可以解译 CRUSH map,并将 OSD 添加到设备列表中。将 OSD 节点添加为 bucket,然后将设备添加为 OSD 节点中的项目,为 OSD 分配一个权重,重新编译 CRUSH map,并且设置 CRUSH map。如需了解更多详细信息,请参阅 Red Hat Ceph Storage 3 的存储策略指南中的编辑 CRUSH map 部分。

  13. root 用户身份,更新新创建的目录和文件的所有者和组权限:

    语法

    # chown -R <owner>:<group> <path_to_directory>

    示例

    # chown -R ceph:ceph /var/lib/ceph/osd
    # chown -R ceph:ceph /var/log/ceph
    # chown -R ceph:ceph /var/run/ceph
    # chown -R ceph:ceph /etc/ceph

  14. 对于带有自定义名称的存储集群,以 root 用户身份在 /etc/sysconfig/ceph 文件中添加以下行:

    语法

    # echo "CLUSTER=<custom_cluster_name>" >> /etc/sysconfig/ceph

    示例

    # echo "CLUSTER=test123" >> /etc/sysconfig/ceph

  15. OSD 节点位于 Ceph 存储集群配置中。不过,OSD 守护进程为 downin。新 OSD 的状态必须为 up 后才能开始接收数据。以 root 用户身份,启用并启动 OSD 过程:

    语法

    # systemctl enable ceph-osd.target
    # systemctl enable ceph-osd@<osd_id>
    # systemctl start ceph-osd@<osd_id>

    示例

    # systemctl enable ceph-osd.target
    # systemctl enable ceph-osd@0
    # systemctl start ceph-osd@0

    启动 OSD 守护进程后,它就为 upin

现在,您已启动并运行 Monitor 和一些 OSD。您可以执行以下命令来观察放置组对等点:

$ ceph -w

要查看 OSD 树,请执行以下命令:

$ ceph osd tree

示例

ID  WEIGHT    TYPE NAME        UP/DOWN  REWEIGHT  PRIMARY-AFFINITY
-1       2    root default
-2       2        host node2
 0       1            osd.0         up         1                 1
-3       1        host node3
 1       1            osd.1         up         1                 1

若要通过添加新 OSD 到存储集群来扩展存储容量,请参阅 Red Hat Ceph Storage 3 管理指南中的添加 OSD 部分。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.