11.7. 使用规格文件为 CephFS/NFS 部署 HA
您可以首先部署 NFS 服务,然后部署到相同 NFS 服务的 ingress 来使用规格文件部署 HA。
先决条件
- 一个正在运行的 Red Hat Ceph Storage 集群。
- 主机添加到集群中。
- 部署所有管理器、监控和 OSD 守护进程。
- 确保启用了 NFS 模块。
流程
登录到 Cephadm shell:
示例
[root@host01 ~]# cephadm shell确定启用了 NFS 模块:
示例
[ceph: root@host01 /]# ceph mgr module ls | more退出 Cephadm shell 并创建
nfs.yaml文件:示例
[root@host01 ~]# touch nfs.yaml编辑
nfs.yaml文件,使其包含以下详情:语法
service_type: nfs service_id: SERVICE_ID placement: hosts: - HOST_NAME_1 - HOST_NAME_2 count: COUNT spec: port: PORT_NUMBER注意为 NFS 服务分配的主机数量必须大于您要部署的活跃 NFS 服务器数量,由
placement: count参数指定。示例
service_type: nfs service_id: cephfsnfs placement: hosts: - host02 - host03 count: 1 spec: port: 12345在本例中,服务器在非默认端口
12345中运行,而不是默认端口2049,在 host02 和 host03 上运行。将 YAML 文件挂载到容器中的一个目录下:
示例
[root@host01 ~]# cephadm shell --mount nfs.yaml:/var/lib/ceph/nfs.yaml登录 Cephadm shell 并导航至该目录:
示例
[ceph: root@host01 /]# cd /var/lib/ceph/使用服务规格部署 NFS 服务:
语法
ceph orch apply -i FILE_NAME.yaml示例
[ceph: root@host01 ceph]# ceph orch apply -i nfs.yaml注意NFS 服务部署是异步的,在服务完全启动前可能会返回该命令。
检查 NFS 服务是否已成功启动:
语法
ceph orch ls --service_name=nfs.CLUSTER_ID示例
[ceph: root@host01 /]# ceph orch ls --service_name=nfs.cephfsnfs NAME PORTS RUNNING REFRESHED AGE PLACEMENT nfs.cephfsnfs ?:12345 2/2 3m ago 13m host02;host03退出 Cephadm shell 并创建
ingress.yaml文件:示例
[root@host01 ~]# touch ingress.yaml编辑
ingress.yaml文件,使其包含以下详情:语法
service_type: SERVICE_TYPE service_id: SERVICE_ID placement: count: PLACEMENT spec: backend_service: SERVICE_ID_BACKEND frontend_port: FRONTEND_PORT monitor_port: MONITOR_PORT virtual_ip: VIRTUAL_IP_WITH_CIDR示例
service_type: ingress service_id: nfs.cephfsnfs placement: count: 2 spec: backend_service: nfs.cephfsnfs frontend_port: 2049 monitor_port: 9000 virtual_ip: 10.10.128.75/22注意在本例中,
placement: count: 2在随机节点上部署keepalived和haproxy服务。要指定要在其上部署keepalived和haproxy的节点,请使用placement: hosts选项:示例
service_type: ingress service_id: nfs.cephfsnfs placement: hosts: - host02 - host03将 YAML 文件挂载到容器中的一个目录下:
示例
[root@host01 ~]# cephadm shell --mount ingress.yaml:/var/lib/ceph/ingress.yaml登录 Cephadm shell 并导航至该目录:
示例
[ceph: root@host01 /]# cd /var/lib/ceph/使用服务规格部署
入口服务:语法
ceph orch apply -i FILE_NAME.yaml示例
[ceph: root@host01 ceph]# ceph orch apply -i ingress.yaml检查 ingress 服务是否已成功启动:
语法
ceph orch ls --service_name=ingress.nfs.CLUSTER_ID示例
[ceph: root@host01 /]# ceph orch ls --service_name=ingress.nfs.cephfsnfs NAME PORTS RUNNING REFRESHED AGE PLACEMENT ingress.nfs.cephfsnfs 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 cephfsnfs { "cephfsnfs": { "virtual_ip": "10.10.128.75", "backend": [ { "hostname": "host02", "ip": "10.10.128.69", "port": 12345 }, { "hostname": "host03", "ip": "10.10.128.70", "port": 12345 } ], "port": 2049, "monitor_port": 9049 } }列出主机和进程:
示例
[ceph: root@host01 /]# ceph orch ps | grep nfs haproxy.nfs.cephfsnfs.host01.ruyyhq host01 *:2049,9000 running (27m) 6m ago 34m 9.85M - 2.2.19-7ea3822 5e6a41d77b38 328d27b3f706 haproxy.nfs.cephfsnfs.host02.ctrhha host02 *:2049,9000 running (34m) 6m ago 34m 4944k - 2.2.19-7ea3822 5e6a41d77b38 4f4440dbfde9 keepalived.nfs.cephfsnfs.host01.fqgjxd host01 running (27m) 6m ago 34m 31.2M - 2.1.5 18fa163ab18f 0e22b2b101df keepalived.nfs.cephfsnfs.host02.fqzkxb host02 running (34m) 6m ago 34m 17.5M - 2.1.5 18fa163ab18f c1e3cc074cf8 nfs.cephfsnfs.0.0.host02.emoaut host02 *:12345 running (37m) 6m ago 37m 82.7M - 3.5 91322de4f795 2d00faaa2ae5 nfs.cephfsnfs.1.0.host03.nsxcfd host03 *:12345 running (37m) 6m ago 37m 81.1M - 3.5 91322de4f795 d4bda4074f17