第 4 章 程序错误修复
本节论述了在这个 Red Hat Ceph Storage 发行版本中修复的用户有严重影响的错误。此外,部分还包括之前版本中发现的固定已知问题的描述。
4.1. Cephadm 实用程序 复制链接链接已复制到粘贴板!
如果在初始 Ceph 配置中作为公共网络传递了以逗号分隔的 IP 列表,则 bootstrap 不再会失败
在以前的版本中,如果列表被用引号括起,cephadm
bootstrap 会错误地解析以逗号分隔的 IP 地址列表。因此,如果以逗号分隔的 IP 地址列表(如 '172.120.3.0/24,172.117.3.0/24,172.118.3.0/24,172.119.3.0/24),则 bootstrap 将失败,在初始 Ceph 配置中以 public_network
提供,使用 --config
参数传递给 bootstrap。
在这个版本中,您可以将以逗号分隔的 IP 列表输入传递给 public_network
或 cluster_network
的 bootstrap 的初始 Ceph 配置,它可以正常工作。
Cephadm
不再尝试解析提供的 yaml 文件
在以前的版本中,cephadm
bootstrap 会尝试手动解析提供的 yaml 文件。因此,有时即使用户为 cephadm
bootstrap 提供了有效的 yaml 文件,手动解析也会失败,具体取决于单个规格,从而导致整个规格被丢弃。
在这个版本中,cephadm
不再尝试解析 yaml 超过必要值。主机规格仅针对分散 SSH 密钥的目的而进行搜索。否则,规格只传递给 manager 模块。cephadm bootstrap --apply-spec
命令现在可以使用任何有效的规格按预期工作。
host.containers.internal
条目不再添加到已部署容器的 /etc/hosts
文件中
在以前的版本中,某些 podman 版本默认会在部署的容器的 /etc/hosts
文件中添加 host.containers.internal
条目。因此,在某些与这个条目相关的服务中存在一个问题,因为它被误认为代表实际节点的 FQDN。
在这个版本中,Cephadm 在部署容器时挂载主机的 /etc/hosts
文件。容器中 /etc/hosts
文件中的 host.containers.internal
条目不再存在,避免与该条目相关的所有错误,但用户仍然可以看到主机的 /etc/hosts
,以获取容器内的名称解析。
Cephadm
现在仅在发生实际更改时记录设备信息
在以前的版本中,cephadm'would 比较报告 OSD 的所有字段,以检查新的或更改的设备。但是,其中一个字段包含一个时间戳,每次都有所不同。因此,'cephadm
每次刷新主机设备时都会记录它"Detected new or changed devices",无论是否存在实际变化。
在这个版本中,设备信息与之前的信息的比较不再会考虑时间戳字段来持续更改。Cephadm
现在仅在设备中存在实际更改时进行日志。
生成的 Prometheus URL 现在可以访问
在以前的版本中,如果主机没有 FQDN,则生成的 Prometheus URL 为 http://_host-shortname:9095_,它无法访问。
在这个版本中,如果没有 FQDN 可用,则在短名称中使用主机 IP。为 Prometheus 生成的 URL 现在是一个可访问的格式,即使主机 Prometheus 部署到没有 FQDN 可用的服务中。
在将文件写入主机时,cephadm 不再有权限问题
在以前的版本中,cephadm 首先在 /tmp
目录中创建文件,然后将其移到其最终位置。因此,在某些设置中,编写文件时会出现权限问题,使 cephadm 有效地运行,直到修改权限为止。
在这个版本中,cephadm 使用 '/tmp 中的子目录将文件写入没有相同权限问题的主机。