11.6. 为 HA 升级独立 CephFS/NFS 集群

作为存储管理员,您可以通过在现有 NFS 服务上部署 ingress 服务,将独立存储集群升级到一个高可用性(HA)集群。

先决条件

  • 运行一个带有现有 NFS 服务的 Red Hat Ceph Storage 集群。
  • 主机添加到集群中。
  • 部署所有管理器、监控和 OSD 守护进程。
  • 确保启用了 NFS 模块。

流程

  1. 登录到 Cephadm shell:

    示例

    [root@host01 ~]# cephadm shell

  2. 列出现有的 NFS 集群:

    示例

    [ceph: root@host01 /]# ceph nfs cluster ls
    
    mynfs

    注意

    如果在一个节点上创建了独立 NFS 集群,您需要将它增加到两个或更多用于 HA 的节点。要增加 NFS 服务,请编辑 nfs.yaml 文件并增加具有相同端口号的放置。

    为 NFS 服务分配的主机数量必须大于您要部署的活跃 NFS 服务器数量,由 placement: count 参数指定。

    语法

    service_type: nfs
    service_id: SERVICE_ID
    placement:
      hosts:
        - HOST_NAME_1
        - HOST_NAME_2
      count: COUNT
    spec:
      port: PORT_NUMBER

    示例

    service_type: nfs
    service_id: mynfs
    placement:
      hosts:
        - host02
        - host03
      count: 1
    spec:
      port: 12345

    在这个示例中,现有 NFS 服务在端口 12345 中运行,另一个节点会添加到具有相同端口的 NFS 集群中。

    应用 nfs.yaml 服务规格更改以升级到两个节点 NFS 服务:

    示例

    [ceph: root@host01 ceph]# ceph orch apply -i nfs.yaml

  3. 使用现有 NFS 集群 ID 编辑 ingress.yaml 规格文件:

    语法

    service_type: SERVICE_TYPE
    service_id: SERVICE_ID
    placement:
      count: PLACEMENT
    spec:
      backend_service: SERVICE_ID_BACKEND 1
      frontend_port: FRONTEND_PORT
      monitor_port: MONITOR_PORT 2
      virtual_ip: VIRTUAL_IP_WITH_CIDR

    1
    service _ID_BACKEND 应该包括不是 2049PORT 属性,以避免与入口服务冲突,从而可以放置在同一主机上。
    2
    MONITOR_PORT 用于访问 haproxy 负载状态页面。

    示例

    service_type: ingress
    service_id: nfs.mynfs
    placement:
      count: 2
    spec:
      backend_service: nfs.mynfs
      frontend_port: 2049
      monitor_port: 9000
      virtual_ip: 10.10.128.75/22

  4. 部署入口服务:

    示例

    [ceph: root@host01 /]# ceph orch apply -i ingress.yaml

    注意

    部署 NFS 守护进程和入口服务是异步的,命令可能会在服务完全启动前返回。

  5. 检查 ingress 服务是否已成功启动:

    语法

    ceph orch ls --service_name=ingress.nfs.CLUSTER_ID

    示例

    [ceph: root@host01 /]# ceph orch ls --service_name=ingress.nfs.mynfs
    
    NAME                   PORTS                  RUNNING  REFRESHED  AGE  PLACEMENT
    ingress.nfs.mynfs  10.10.128.75:2049,9000      4/4   4m ago     22m  count:2

验证

  • 查看单个 NFS 守护进程的 IP 端点、IP 地址,以及 入口 服务的虚拟 IP:

    语法

    ceph nfs cluster info CLUSTER_ID

    示例

    [ceph: root@host01 /]# ceph nfs cluster info mynfs
    
    {
        "mynfs": {
            "virtual_ip": "10.10.128.75",
            "backend": [
                {
                    "hostname": "host02",
                    "ip": "10.10.128.69",
                    "port": 12049
                },
                {
                    "hostname": "host03",
                    "ip": "10.10.128.70",
                    "port": 12049
                }
            ],
            "port": 2049,
            "monitor_port": 9049
        }
    }

  • 列出主机和进程:

    示例

    [ceph: root@host01 /]# ceph orch ps | grep nfs
    
    haproxy.nfs.mynfs.host01.ruyyhq     host01  *:2049,9000  running (27m)     6m ago  34m    9.85M        -  2.2.19-7ea3822   5e6a41d77b38  328d27b3f706
    haproxy.nfs.mynfs.host02.ctrhha     host02  *:2049,9000  running (34m)     6m ago  34m    4944k        -  2.2.19-7ea3822   5e6a41d77b38  4f4440dbfde9
    keepalived.nfs.mynfs.host01.fqgjxd  host01               running (27m)     6m ago  34m    31.2M        -  2.1.5            18fa163ab18f  0e22b2b101df
    keepalived.nfs.mynfs.host02.fqzkxb  host02               running (34m)     6m ago  34m    17.5M        -  2.1.5            18fa163ab18f  c1e3cc074cf8
    nfs.mynfs.0.0.host02.emoaut         host02  *:12345      running (37m)     6m ago  37m    82.7M        -  3.5              91322de4f795  2d00faaa2ae5
    nfs.mynfs.1.0.host03.nsxcfd         host03  *:12345      running (37m)     6m ago  37m    81.1M        -  3.5              91322de4f795  d4bda4074f17

其他资源