第 3 章 新功能
本节列出了本 Red Hat Ceph Storage 版本中引入的所有主要更新、增强功能和新功能。
3.1. Cephadm 实用程序
用户现在可以在 idmap.conf
中配置各种 NFS 选项
有了这个增强,在 idmap.conf
中引入了配置 NFS 选项的功能,如 "Domain", "Nobody-User", "Nobody-Group" 和 like like。
现在,可以通过 NFS 的新 haproxy 协议模式进行客户端 IP 限制
在以前的版本中,客户端 IP 限制无法在通过 NFS 使用 haproxy 的设置中工作。
在这个版本中,Cephadm 部署的 NFS 支持 haproxy 协议。如果用户将 enable_haproxy_protocol: True
添加到其 ingress 和 haproxy 规格,或将 pass-ingress-mode haproxy-protocol
添加到 ceph nfs cluster create
命令,则 NFS 守护进程将使用 haproxy 协议。
用户现在必须输入用户名和密码来访问 Grafana API URL
在以前的版本中,可以连接到 Grafana API URL 的任何人都可以访问它,而无需任何凭证。
在这个版本中,Cephadm 部署的 Grafana 使用用户名和密码设置,供用户访问 Grafana API URL。
带有 NFS 后端的 Ingress 服务现在可以设置为只使用 keepalived
为 NFS 守护进程创建一个虚拟 IP (VIP)来绑定,而无需涉及 HAProxy 层
在这个版本中,带有 NFS 后端的 ingress 服务只能设置为使用 keepalived
为要绑定到的 NFS 守护进程创建一个虚拟 IP,而无需涉及 HAProxy 层。当 NFS 守护进程被移动,且客户端不需要使用不同的 IP 来连接它时,这非常有用。
Cephadm 部署 keepalived
来设置 VIP,然后 NFS 守护进程绑定到该 VIP。这也可以通过 ceph nfs cluster create
命令使用 NFS 模块进行设置,使用 flags- ingress --ingress-mode keepalive-only --virtual-ip <VIP>
。
规格文件类似如下:
service_type: ingress service_id: nfs.nfsganesha service_name: ingress.nfs.nfsganesha placement: count: 1 label: foo spec: backend_service: nfs.nfsganesha frontend_port: 12049 monitor_port: 9049 virtual_ip: 10.8.128.234/24 virtual_interface_networks: 10.8.128.0/24 keepalive_only: true
这包括 keepalive_ony: true
设置。
NFS 规格如下:
networks: - 10.8.128.0/21 service_type: nfs service_id: nfsganesha placement: count: 1 label: foo spec: virtual_ip: 10.8.128.234 port: 2049
这包括与入口规格中的 VIP 匹配的 virtual_ip
字段。
HAProxy 守护进程仅绑定到附带的 keepalived 创建的 VIP 上的前端端口
在这个版本中,HAProxy 守护进程将只绑定到由附带 keepalived 创建的 VIP 的前端端口,而不是 0.0.0.0。Cephadm 部署的 HAProxy 将将其前端端口绑定到 VIP,允许其他服务(如 NFS 守护进程)绑定到同一节点上的其他 IP 端口 2049。
现在,ingress 服务的 HAProxy 健康检查间隔可以自定义
在以前的版本中,在某些情况下,两个默认健康检查间隔太频繁,并导致不必要的流量。
在这个版本中,ingress 服务的 HAProxy 健康检查间隔可以自定义。通过应用包含 health_check_interval
字段的 ingress 规格,服务的每个 HAProxy 守护进程生成的 HAProxy 配置将包括健康检查间隔的值。
Ingress 规格文件:
service_type: ingress service_id: rgw.my-rgw placement: hosts: ['ceph-mobisht-7-1-07lum9-node2', 'ceph-mobisht-7-1-07lum9-node3'] spec: backend_service: rgw.my-rgw virtual_ip: 10.0.208.0/22 frontend_port: 8000 monitor_port: 1967 health_check_interval: 3m
有效间隔单位为: microseconds ms
: milliseconds s
: seconds m
: minutes h
: hours d
: days
Grafana 现在绑定到主机上的特定网络中的 IP,而不是始终绑定到 0.0.0.0
在这个版本中,使用包含网络部分的 Grafana 规格文件与 Grafana 绑定到 IP 的网络,以及规格的 "spec" 部分中包含的 only_bind_port_on_networks: true
,Cephadm 会将 Grafana 守护进程配置为绑定到该网络中的 IP,而不是 0.0.0.0。这可让用户使用 Grafana 用于另一个服务但在主机上的不同 IP 的同一端口。如果它是一个规格更新,不会导致它们全部被移动,则可以运行 ceph orch redeploy grafana
来获取对设置的更改。
Grafana 规格文件:
service_type: grafana service_name: grafana placement: count: 1 networks: 192.168.122.0/24 spec: anonymous_access: true protocol: https only_bind_port_on_networks: true
现在,所有 bootstrap CLI 参数都可用于 cephadm-ansible
模块
在以前的版本中,只有 bootstrap CLI 参数的子集可用,它限制了模块用量。
在这个版本中,所有 bootstrap CLI 参数都可用于 cephadm-ansible
模块。
Prometheus scrape 配置被添加到 nfs-ganesha 导出器
在这个版本中,Prometheus 提取配置被添加到 nfs-ganesha 导出器中。这样做可将 nfs-ganesha prometheus exporter 公开的指标提取到 Ceph 中运行的 Prometheus 实例中,这将由 Grafana Dashboards 进一步使用。
Prometheus 现在绑定到主机上的特定网络中的 IP,而不是始终绑定到 0.0.0.0
在这个版本中,使用包含网络部分的 Prometheus 规格文件与 Prometheus 绑定到 IP 的网络,以及规格的 "spec" 部分中包含的 only_bind_port_on_networks: true
,Cephadm 会将 Prometheus 守护进程配置为绑定到该网络中的 IP,而不是 0.0.0.0。这可让用户使用 Prometheus 用于另一个服务但在主机上的不同 IP 的同一端口。如果它是一个规格更新,不会导致它们全部被移动,则可以运行 ceph orch redeploy prometheus
来获取对设置的更改。
Prometheus 规格文件:
service_type: prometheus service_name: prometheus placement: count: 1 networks: - 10.0.208.0/22 spec: only_bind_port_on_networks: true
用户现在可以挂载快照(在 .snap 目录中导出)
有了这个增强,用户可以挂载快照(在 .snap
目录中导出)以 RO 模式查看。使用 NFS MGR 模块创建的 NFS 导出现在包含 cmount_path
设置(无法配置,并应保留为"/"),允许挂载快照。
zonegroup 主机名现在可以使用 ceph rgw realm bootstrap…
命令中提供的规格文件来设置
在这个版本中,在继续到 Ceph 对象网关多站点设置的自动化中,用户现在可以通过 bootstrap 命令 ceph rgw realm bootstrap…
传递的初始规格文件来设置 zonegroup 主机名。
例如,
zonegroup_hostnames: - host1 - host2
如果用户将上述部分添加到 realm bootstrap 命令传递的 Ceph 对象网关规范文件的"特定"部分中,Cephadm 将在 Ceph 对象网关模块完成 realm/zonegroup/zone 的规范中定义的 zonegroup 中自动将这些主机名添加到规范中定义的 zonegroup 中。请注意,这可能需要几分钟时间来看 Cephadm 模块当前完成的其他活动。