第 6 章 程序错误修复
本节论述了在 Red Hat Ceph Storage 发行版本中修复的具有显著用户影响的错误。此外,部分还包括之前版本中发现的固定已知问题的描述。
6.1. Cephadm 实用程序 复制链接链接已复制到粘贴板!
容器进程数限制设置为 max
在以前的版本中,容器上的进程数量限制 2048 会阻止新的进程超过限制。
在这个版本中,进程数限制被设置为 max
,它允许您根据每个目标需要创建多个 luns。但是,这个数字仍然受服务器资源的限制。
在批量创建 OSD 时,将不再使用不可用设备
在以前的版本中,带有 GPT 标头的设备不会标记为不可用。Cephadm 会尝试在这些设备上创建 OSD,以及其他有效的设备,导致批处理 OSD 创建失败,因为 OSD 无法在采用 GPT 标头的设备上创建。这不会创建 OSD。
在这个版本中,在批处理中创建 OSD 且具有 GPT 标头的设备不再阻止在有效设备中创建 OSD 时,不可用设备不再会被使用。
如果用户为 --format
参数提供了一个不支持的格式,会收到一个回溯信息
在以前的版本中,编配器会在收到一个不支持的 --format
参数时抛出异常,从而导致通过 --format
带有不支持格式的用户接收回溯信息。
在这个版本中,不支持的格式会被正确处理,为用户提供一个不支持的格式的信息,说明格式不受支持。
现在,在没有依赖项错误的情况下可以安装 ceph-common
软件包
在以前的版本中,在将 Red Hat Ceph Storage 4 升级到 Red Hat Ceph Storage 5 后,缺少几个软件包会导致依赖关系错误。
在这个版本中,删除了 Red Hat Ceph Storage 4 软件包,且可以在 preflight playbook 执行过程中安装 ceph-common
软件包,且没有任何错误。
tcmu-runner
守护进程不再报告为 stray 守护进程
在以前的版本中,tcmu-runner
守护进程不会被 cephadm
主动跟踪,因为它们被视为 iSCSI 的一部分。这会导致 tcmu-runner
守护进程被报告为 stray 守护进程,因为 cephadm
没有跟踪它们。
在这个版本中,当 tcmu-runner
守护进程与已知 iSCSI 守护进程匹配时,它不会标记为 stray 守护进程。
用户可以使用活跃的管理器重新添加主机,而无需显式 IP
在以前的版本中,当 cephadm
尝试从容器中解析当前主机的 IP 地址时,它有机会解析回送地址。如果用户希望重新添加带有活跃 Ceph Manager,则需要一个显式 IP;如果用户未提供,则用户会收到错误消息。
在当前修复中,如果未明确提供,cephadm
会在重新添加主机时重复利用旧 IP,并且名称解析返回回送地址。用户现在可以在没有显式 IP 的情况下使用活跃管理器重新添加主机。
cephadm
验证守护进程的 fsid
是否在与预期的 fsid
匹配时推断配置
在以前的版本中,在 cephadm
中,无法检查守护进程的 fsid
是否存在与预期 fsid
匹配的配置。因此,如果用户有一个 /var/lib/ceph/FSID/DAEMON_NAME
目录,它带有一个 fsid
而不是期望的,则来自该守护进程目录中的配置仍会被推断。
在这个版本中,检查是通过验证 fsid
是否与预期匹配进行的,用户不再会收到“failed to probe daemons or devices" 错误。
cephadm
支持使用不同名称复制客户端密钥环
在以前的版本中,当复制客户端密钥环 ceph.keyring
时,cephadm
会在目的地强制使用文件名。
在这个版本中,cephadm
支持使用不同名称复制客户端密钥环,从而消除复制时自动重命名的问题。
用户可使用 -c ceph.conf
选项使用多个公共网络引导集群
在以前的版本中,当 cephadm
作为 -c ceph.conf
选项的一部分提供时,cephadm 不会解析多个公共网络。因此,无法使用多个公共网络引导集群。
在这个版本中,从提供的 ceph.conf
文件中,public network
字段会被正确解析,现在可以用来填充 public_network mon
配置字段,用户可以使用 -c ceph.conf
选项让用户引导集群提供多个公共网络。
使用数字服务 ID 设置 MDS 服务会抛出错误以提醒用户
在以前的版本中,使用数字服务 ID 设置 MDS 服务会导致 MDS 守护进程崩溃。
在这个版本中,如果尝试创建带有数字服务 ID 的 MDS 服务,则会立即引发错误以警告,并警告用户不使用数字服务 ID。
ceph orch redeploy mgr
命令重新部署活跃管理器守护进程最后
在以前的版本中,ceph orch redeploy mgr
命令会导致 Ceph Manager 守护进程持续重新部署自己,而不清除调度的重新部署操作,这会导致 Ceph Manager 守护进程无法正常进行。
在这个版本中,重新部署的排序进行了调整,因此活跃的管理器守护进程始终会被重新部署,而命令 ceph orch redeploy mgr
现在只重新部署每个 Ceph Manager。
现在支持使用带有自定义名称的集群
在以前的版本中,使用带有自定义名称的 Ceph OSD 容器失败,因为 cephadm
不会在 unit.run
文件中传播自定义集群。
在这个版本中,cephadm
更改 LVM 元数据并强制实施默认集群名称"Ceph",因此使用带有自定义集群名称的集群可以正常工作。
cephadm
不再将 docker.io
添加到为 ceph orch upgrade start
命令提供的镜像名称中
在以前的版本中,cephadm
将 docker.io
添加到来自非限定 registry 的任何镜像,因此无法从非限定 registry(如本地 registry)传递镜像,因为无法拉取此镜像。
从 Red Hat Ceph Storage 5.2 开始,docker.io
不再添加到镜像名称中,除非名称对于上游 Ceph 镜像(如 ceph/ceph:v17
)匹配。在运行 ceph orch upgrade
命令时,用户可以从本地 registry 传递镜像,Cephadm
可以升级到该镜像。
从 5.2 开始,这仅适用于升级。从 5.1 升级到 5.2 仍会受到此问题的影响。
旧版守护进程中的 Cephadm
不再有意外的配置文件
在以前的版本中,Cephadm
会推断来自旧守护进程的配置文件,无论守护进程仍然存在,具体取决于存在 /var/lib/ceph/{mon|osd|mgr}
目录。这会导致某些任务(如刷新磁盘)在存在这些目录的节点中失败,因为 Cephadm
会在尝试忽略不存在的配置文件时抛出错误。
在这个版本中,Cephadm
不再从旧守护进程中推断配置文件,而是在推断前检查现有配置文件。由于旧守护进程 目录存在,Cephadm
不会在刷新主机上的守护进程或设备时遇到问题。
.rgw.root
池不再自动创建
在以前的版本中,为多站点存在 Ceph 对象网关的额外检查,即使用户删除了它,也会导致 .rgw.root
池自动创建。
从 Red Hat Ceph Storage 5.2 开始,删除了多站点检查,且 .rgw.root
池不再会被自动创建,除非用户执行 Ceph 对象网关 - 创建相关的操作。
Ceph Manager 守护进程从 cephadm
的放置规格中不再指定的主机中删除
在以前的版本中,即使当前活跃的管理器守护进程不再与管理器服务规格中指定的放置匹配,也不会从 cephadm
中删除。当用户更改服务规格时,服务规格都无法排除当前活跃管理器的主机,它们最终会遇到额外的管理器,直到它们导致故障转移。
在这个版本中,如果有一个待机可用且活动管理器位于不再与服务规格匹配的主机上,cephadm
会失败。Ceph Manager 守护进程已从 cephadm
中的放置规格中不再指定的主机中删除,即使管理器是活跃的。
因为一个不正确的 URL 造成一个 404 错误,从而导致 tracebacks 信息被记录在日志中。
在以前的版本中,cephadm
会错误地组成 prometheus 接收器的 URL,从而导致在日志中出现一个 traceback,因为尝试访问不正确的 URL 时会出现 404 错误。
在这个版本中,URL 格式化已被修复,并避免了 404 错误。追溯不再被记录。
cephadm
不再删除主机级别的 osd_memory_target
配置设置
在以前的版本中,如果将 osd_memory_target_autotune
全局关闭,cephadm
将删除用户在主机级别为 osd_memory_target
设置的值。此外,对于具有 FQDN 名称的主机,虽然 CRUSH 映射使用短名称,但 cephadm
仍然会使用 FQDN 设置配置选项。因此,用户无法在主机级别手动设置 osd_memory_target
, osd_memory_target
自动性能优化无法使用 FQDN 主机。
在这个版本中,如果 osd_memory_target_autotune
设置为 false
,osd_memory_target
配置设置在主机一级不再会被从 cephadm
中删除。在设置主机级别 osd_memory_target
时,它也始终为主机指定一个短名称。如果在主机级别 osd_memory_target_autotune
被设置为 false
,用户可以手动设置 osd_memory_target
,并可以选择不从 cephadm
中删除。另外,自动调整应该使用 FQDN 名称添加到 cephadm
中的主机。
Cephadm
使用 FQDN 构建 alertmanager Webhook URL
在以前的版本中,Cephadm
根据它为主机存储的 IP 地址选择 alertmanager Webhook URL。这会导致问题,因为这些 Webhook URL 无法用于某些部署。
在这个版本中,Cephadm
使用 FQDN 来构建 alertmanager webhook URL,启用 Webhook URL 以用于以前破坏的一些部署情况。