3.5. 使用 Cephadm 进行集群引导和服务部署


cephadm 实用程序将安装并启动一个单独的 Ceph Monitor 守护进程,以及运行 cephadm bootstrap 命令本地节点上的新 Red Hat Ceph Storage 集群的 Ceph 管理器守护进程。

注意

有关 bootstrap 过程的更多信息,请参阅引导新存储集群

步骤

  1. 使用 json 文件创建 json 文件以针对容器 registry 进行身份验证,如下所示:

    $ cat <<EOF > /root/registry.json
    {
     "url":"registry.redhat.io",
     "username":"User",
     "password":"Pass"
    }
    EOF
  2. 创建 cluster-spec.yaml,将节点添加到 RHCS 集群,并为该服务应该运行下表 3.1 设置特定的标签。

    cat <<EOF > /root/cluster-spec.yaml
    service_type: host
    addr: 10.0.40.78  ## <XXX.XXX.XXX.XXX>
    hostname: ceph1   ##  <ceph-hostname-1>
    location:
      root: default
      datacenter: DC1
    labels:
      - osd
      - mon
      - mgr
    ---
    service_type: host
    addr: 10.0.40.35
    hostname: ceph2
    location:
      datacenter: DC1
    labels:
      - osd
      - mon
    ---
    service_type: host
    addr: 10.0.40.24
    hostname: ceph3
    location:
      datacenter: DC1
    labels:
      - osd
      - mds
      - rgw
    ---
    service_type: host
    addr: 10.0.40.185
    hostname: ceph4
    location:
      root: default
      datacenter: DC2
    labels:
      - osd
      - mon
      - mgr
    ---
    service_type: host
    addr: 10.0.40.88
    hostname: ceph5
    location:
      datacenter: DC2
    labels:
      - osd
      - mon
    ---
    service_type: host
    addr: 10.0.40.66
    hostname: ceph6
    location:
      datacenter: DC2
    labels:
      - osd
      - mds
      - rgw
    ---
    service_type: host
    addr: 10.0.40.221
    hostname: ceph7
    labels:
      - mon
    ---
    service_type: mon
    placement:
      label: "mon"
    ---
    service_type: mds
    service_id: fs_name
    placement:
      label: "mds"
    ---
    service_type: mgr
    service_name: mgr
    placement:
      label: "mgr"
    ---
    service_type: osd
    service_id: all-available-devices
    service_name: osd.all-available-devices
    placement:
      label: "osd"
    spec:
      data_devices:
        all: true
    ---
    service_type: rgw
    service_id: objectgw
    service_name: rgw.objectgw
    placement:
      count: 2
      label: "rgw"
    spec:
      rgw_frontend_port: 8080
    EOF
  3. 检索从 bootstrap 节点配置的 RHCS 公共网络的 NIC 的 IP。将 10.0.40.0 替换为您在 ceph 公共网络中定义的子网后,执行以下命令。

    $ ip a | grep 10.0.40

    输出示例:

    10.0.40.78
  4. root 用户身份在将作为集群中初始 monitor 节点的节点运行 Cephadm bootstrap 命令。IP_ADDRESS 选项是您用于运行 cephadm bootstrap 命令的节点 IP 地址。

    注意

    如果您配置了不同的用户而不是 root 进行免密码 SSH 访问,则使用带有 cepadm bootstrap 命令的 --ssh-user= 标志。

    $ cephadm  bootstrap --ssh-user=deployment-user --mon-ip 10.0.40.78 --apply-spec /root/cluster-spec.yaml --registry-json /root/registry.json
    重要

    如果本地节点使用完全限定域名 (FQDN),则将 --allow-fqdn-hostname 选项添加到命令行上的 cephadm bootstrap

    bootstrap 完成后,您将看到来自之前 cephadm bootstrap 命令的以下输出:

    You can access the Ceph CLI with:
    
    	sudo /usr/sbin/cephadm shell --fsid dd77f050-9afe-11ec-a56c-029f8148ea14 -c /etc/ceph/ceph.conf -k /etc/ceph/ceph.client.admin.keyring
    
    Please consider enabling telemetry to help improve Ceph:
    
    	ceph telemetry on
    
    For more information see:
    
    	https://docs.ceph.com/docs/pacific/mgr/telemetry/
  5. 使用 ceph1 中的 ceph cli 客户端,验证 Red Hat Ceph Storage 集群部署的状态:

    $ ceph -s

    输出示例:

    cluster:
      id:     3a801754-e01f-11ec-b7ab-005056838602
      health: HEALTH_OK
    
    services:
      mon: 5 daemons, quorum ceph1,ceph2,ceph4,ceph5,ceph7 (age 4m)
      mgr: ceph1.khuuot(active, since 5m), standbys: ceph4.zotfsp
      osd: 12 osds: 12 up (since 3m), 12 in (since 4m)
      rgw: 2 daemons active (2 hosts, 1 zones)
    
    data:
      pools:   5 pools, 107 pgs
      objects: 191 objects, 5.3 KiB
      usage:   105 MiB used, 600 GiB / 600 GiB avail
               105 active+clean
    注意

    启动所有服务可能需要几分钟时间。

    在您未配置任何 osds 时出现一个全局恢复事件是正常的。

    您可以使用 ceph orch psceph orch ls 来进一步检查服务的状态。

  6. 验证所有节点是否是 cephadm 集群的一部分。

    $ ceph orch host ls

    输出示例:

    HOST   ADDR          LABELS  STATUS
    ceph1  10.0.40.78    _admin osd mon mgr
    ceph2  10.0.40.35    osd mon
    ceph3  10.0.40.24    osd mds rgw
    ceph4  10.0.40.185   osd mon mgr
    ceph5  10.0.40.88    osd mon
    ceph6  10.0.40.66    osd mds rgw
    ceph7  10.0.40.221   mon
    注意

    您可以直接从主机运行 Ceph 命令,因为 ceph1cephadm-ansible 清单中配置,作为 [admin] 组的一部分。Ceph 管理密钥在 cephadm bootstrap 过程中复制到主机。

  7. 检查数据中心的 Ceph 监控服务的当前位置。

    $ ceph orch ps | grep mon | awk '{print $1 " " $2}'

    输出示例:

    mon.ceph1 ceph1
    mon.ceph2 ceph2
    mon.ceph4 ceph4
    mon.ceph5 ceph5
    mon.ceph7 ceph7
  8. 检查数据中心的 Ceph 管理器服务的当前位置。

    $ ceph orch ps | grep mgr | awk '{print $1 " " $2}'

    输出示例:

    mgr.ceph2.ycgwyz ceph2
    mgr.ceph5.kremtt ceph5
  9. 检查 ceph osd crush map 布局,以确保每个主机都配置了 OSD,其状态为 UP。此外,再次检查每个节点在表 3.1 中指定的右侧数据中心 bucket 下。

    $ ceph osd tree

    输出示例:

    ID   CLASS  WEIGHT   TYPE NAME           STATUS  REWEIGHT  PRI-AFF
    -1          0.87900  root default
    -16         0.43950      datacenter DC1
    -11         0.14650          host ceph1
      2    ssd  0.14650              osd.2       up   1.00000  1.00000
     -3         0.14650          host ceph2
      3    ssd  0.14650              osd.3       up   1.00000  1.00000
    -13         0.14650          host ceph3
      4    ssd  0.14650              osd.4       up   1.00000  1.00000
    -17         0.43950      datacenter DC2
     -5         0.14650          host ceph4
      0    ssd  0.14650              osd.0       up   1.00000  1.00000
     -9         0.14650          host ceph5
      1    ssd  0.14650              osd.1       up   1.00000  1.00000
     -7         0.14650          host ceph6
      5    ssd  0.14650              osd.5       up   1.00000  1.00000
  10. 创建并启用新的 RDB 块池。

    $ ceph osd pool create rbdpool 32 32
    $ ceph osd pool application enable rbdpool rbd
    注意

    命令末尾的数字 32 是分配给这个池的 PG 数量。PG 数量可能会因集群中的 OSD 数量、使用池的预期%的不同而有所不同。您可以使用以下计算器来确定所需的 PG 数量:Ceph Placement Groups(PG)per Pool Calculator

  11. 验证 RBD 池已创建好。

    $ ceph osd lspools | grep rbdpool

    输出示例:

     3 rbdpool
  12. 验证 MDS 服务处于活动状态,并且每个数据中心上具有一个服务。

    $ ceph orch ps | grep mds

    输出示例:

    mds.cephfs.ceph3.cjpbqo    ceph3               running (17m)   117s ago  17m    16.1M        -  16.2.9
    mds.cephfs.ceph6.lqmgqt    ceph6               running (17m)   117s ago  17m    16.1M        -  16.2.9
  13. 创建 CephFS 卷。

    $ ceph fs volume create cephfs
    注意

    ceph fs volume create 命令还会创建所需的数据和 meta CephFS 池。如需更多信息,请参阅配置和挂载 Ceph 文件系统

  14. 检查 Ceph 状态,以验证 MDS 守护进程的部署方式。确保状态为 active,其中 ceph6 是这个文件系统的主 MDS,ceph3 是次 MDS。

    $ ceph fs status

    输出示例:

    cephfs - 0 clients
    ======
    RANK  STATE           MDS             ACTIVITY     DNS    INOS   DIRS   CAPS
     0    active  cephfs.ceph6.ggjywj  Reqs:    0 /s    10     13     12      0
           POOL           TYPE     USED  AVAIL
    cephfs.cephfs.meta  metadata  96.0k   284G
    cephfs.cephfs.data    data       0    284G
        STANDBY MDS
    cephfs.ceph3.ogcqkl
  15. 验证 RGW 服务是否处于活动状态。

    $ ceph orch ps | grep rgw

    输出示例:

    rgw.objectgw.ceph3.kkmxgb  ceph3  *:8080       running (7m)      3m ago   7m    52.7M        -  16.2.9
    rgw.objectgw.ceph6.xmnpah  ceph6  *:8080       running (7m)      3m ago   7m    53.3M        -  16.2.9
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.