第 6 章 程序错误修复


本节论述了在这个 Red Hat Ceph Storage 发行版本中修复的用户有严重影响的错误。此外,部分还包括之前版本中发现的固定已知问题的描述。

6.1. Ceph Ansible 实用程序

现在,可以在 Ceph 集群部署后修改复制池的大小

在以前的版本中,在使用 director 部署 Ceph 集群后增加复制池的大小会失败。这是因为任务负责自定义池大小的问题会阻止它在 playbook 重新运行时执行。在这个版本中,您可以在集群部署后修改池大小。

(BZ#1743242)

Ceph Ansible 在 Ceph 仪表板部署期间支持多个 grafana 实例

在以前的版本中,在多节点环境中,ceph-ansible 无法配置多个 grafana 实例,因为只支持一个节点,保留剩余的节点未配置。在这个版本中,ceph-ansible 支持多个实例,并在 Ceph 控制面板部署期间将 Ceph 特定布局注入到所有 Ceph 监控节点上。

(BZ#1784011)

当禁用仪表板功能时,运行 Ansible purge-cluster.yml playbook 不再会失败

在以前的版本中,当仪表板功能被禁用时,使用 purge-cluster-yml playbook 清除集群会失败,并显示以下错误消息:

registry.redhat.io/openshift4/ose-prometheus-node-exporter:v4.1
  msg: '[Errno 2] No such file or directory'

这是因为 dashboard_enabled 变量被忽略。在这个版本中,dashboard_enabled 变量会被正确处理,purge-cluster.yml 会成功运行。

(BZ#1785736)

在 Red Hat OpenStack Platform 上安装 Red Hat Ceph Storage 不再失败

在以前的版本中,当尝试使用 Red Hat OpenStack Platform 16 安装 Red Hat Ceph Storage 时,ceph-ansible 工具会变得无响应,它会返回类似如下的错误:

'Error: unable to exec into ceph-mon-dcn1-computehci1-2: no container with name or ID ceph-mon-dcn1-computehci1-2 found: no such container'

这是因为 ceph-ansible 从 handler_osds.yml 中错误的节点读取事实 container_exec_cmd 的值

在这个版本中,ceph-ansible 从正确的节点读取 container_exec_cmd 的值,安装可以成功。

(BZ#1792320)

Ansible 在完成后取消设置 norebalance 标志

在以前的版本中,Ansible 没有取消设置 norebalance 标志,它必须手动取消设置。在这个版本中,rolling-update.yml Ansible playbook 会在完成后自动取消设置 norebalance 标志,且不需要手动取消设置。

(BZ#1793564)

启用控制面板时,Ansible 会升级多站点 Ceph 对象网关

在以前的版本中,当启用 Red Hat Ceph Storage Dashboard 且尝试使用 Ansible 升级到更新的 Red Hat Ceph Storage 版本时,在多站点设置中升级到辅助 Ceph 对象网关站点会失败。在这个版本中,在 Red Hat Ceph Storage 中升级次要站点可以正常工作。

(BZ#1794351)

Ceph Ansible 使用 Ansible 2.9

在以前的版本中,ceph-ansible 版本 4.0 和更高版本不适用于 Ansible 2.9 版本。这是因为 ceph-validate 角色不允许针对 Ansible 2.9 运行 ceph-ansible。在这个版本中,ceph-ansible 可以与 Ansible 2.9 一起工作。

(BZ#1807085)

使用自定义软件存储库的 Ceph 安装不再失败

在以前的版本中,不允许使用自定义软件仓库安装 Ceph。这是因为 redhat_custom_repository.yml 文件已被删除。在这个版本中,包含 redhat_custom_repository.yml 文件,自定义存储库可用于安装 Red Hat Ceph Storage。

注意

只有红帽签名的软件包可以使用自定义软件存储库来安装 Ceph。不支持自定义第三方软件存储库。

(BZ#1808362)

如果没有安装仪表板,ceph-ansible purge playbook 不会失败

在以前的版本中,当没有部署仪表板时,清除 playbook 会在清除集群时失败,因为它会尝试删除不存在的仪表板相关资源。因此,清除 playbook 表示部署了仪表板,清除失败。在这个版本中,如果不是部署的一部分,ceph-ansible 不会清除仪表板相关资源,清除可以成功完成。

(BZ#1808988)

将独立的 nfs-ganesha 守护进程与外部 Ceph 存储集群搭配使用,在部署期间不再无法复制密钥环

在以前的版本中,在由独立 nfs-ganesha 守护进程和外部 Ceph 存储集群组成的配置中,Ceph 密钥环不会在 Ceph Ansible 部署期间复制到 /etc/ceph。

在这个版本中,Ceph 密钥环被复制到 /etc/ceph/ 目录中。

(BZ#1814942)

Ceph Ansible 在初始安装后更新仪表板 admin 用户的特权

在以前的版本中,ceph-ansible 只能在首次创建时设置仪表板用户的特权。在安装过程中更改 dashboard_admin_user_ro: false 后运行 playbook 不会更新用户的特权。在 Red Hat Ceph Storage 4.1z1 中,ceph-ansible 已更新,以支持在 playbook 成功运行时更改仪表板用户特权。

(BZ#1826002)

docker-to-podman.yml playbook 现在迁移仪表板容器

在以前的版本中,运行 docker-to-podman.yml playbook 将所有守护进程从 docker 迁移到 podman,但 grafana-server 和仪表板容器除外。在这个版本中,运行 docker-to-podman.yml 会成功迁移所有守护进程。

(BZ#1829389)

删除旧容器中的存储目录

在以前的版本中,旧容器的存储目录不会被删除。这可能导致大量磁盘用量。如果安装了 Red Hat Ceph Storage、清除它并重新安装它,可能会看到它。在 Red Hat Ceph Storage 4.1z1 中,不再使用的容器的存储目录会被删除,且不会发生过量磁盘用量。

(BZ#1834974)

在 Red Hat Enterprise Linux 8.1 上将容器化集群从 4.0 升级到 4.1 不再失败

在以前的版本中,当将 Red Hat Ceph Storage 集群从 4.0 升级到 4.1 时,升级可能会失败,并显示 set_fact ceph_osd_image_repodigest_before_pulling 的错误。由于容器镜像标签更新方式存在问题,ceph-ansible 可能会失败。在 Red Hat Ceph Storage 4.1z1 ceph-ansible 中,它不再会失败,升级可以正常工作。

(BZ#1844496)

在现有 OpenStack 环境中启用 Ceph 仪表板失败

在现有的 OpenStack 环境中,在启用 Ceph Manager 仪表板模块后配置 Ceph 控制面板的 IP 地址和端口时,这会导致与 HAProxy 配置冲突。为避免这种冲突,请在启用 Ceph Manager 仪表板模块前配置 Ceph 控制面板的 IP 地址和端口。

(BZ#1851455)

在部署 Ceph 对象网关次要站点时,Red Hat Ceph Storage Dashboard 会失败

在以前的版本中,Red Hat Ceph Storage Dashboard 无法在 Ceph 对象网关多站点部署中部署二级站点,因为当 Ceph Ansible 运行 radosgw-admin user create 命令时,命令会返回错误。在这个版本中,部署过程中的 Ceph Ansible 任务被分成两个不同的任务。这样做可让 Red Hat Ceph Storage 控制面板成功部署 Ceph 对象网关次要站点。

(BZ#1851764)

当使用 --limit 选项运行 playbook 时,Ceph 文件系统元数据服务器安装会失败

一些事实没有在第一个 Ceph 监控器上设置,但这些事实已在所有对应的 Ceph 监控节点上设置。使用 --limit 选项运行 playbook 时,如果 Ceph 监控器不是批处理的一部分,则在 Ceph monitor 上不会设置这些事实。当这些事实用于 Ceph Monitor 的任务中使用时,这会导致 playbook 失败。在这个版本中,Ceph Monitor 上设置了这些事实,该 playbook 是否使用 --limit 选项。

(BZ#1852796)

升级时添加新的 Ceph Ojbect Gateway 实例

radosgw_frontend_port 选项没有考虑多个 Ceph 对象网关实例,并且为所有实例配置了端口 8080。在这个版本中,每个 Ceph 对象网关实例增加了 radosgw_frontend_port 选项,允许您使用多个 Ceph 对象网关实例。

(BZ#1859872)

当在容器化环境中使用 FileStore 时,Ceph Ansible 的 shrink-osd.yml playbook 会失败

Ceph Ansible 的 shrink-osd.yml playbook 缺少默认值,这会导致在容器化环境中缩小由 FileStore 支持的 Ceph OSD 时失败。以前使用 ceph-diskdmcrypt 准备的 Ceph OSD 将 加密密钥 保留在对应的 Ceph OSD 文件中。在这个版本中,添加了一个默认值,以便 Ceph Ansible shrink-osd.yml playbook 可以在容器化环境中使用 dmcrypt 准备的 Ceph OSD 上运行。

(BZ#1862416)

使用 HTTPS 会破坏对 Prometheus 和警报管理器的访问

dashboard_protocol 选项设置为 https 会导致 Red Hat Ceph Storage Dashboard 尝试并访问 Prometheus API,它不支持 TLS。在这个版本中,当将 dashboard_protocol 选项设置为 https 时,Prometheus 和警报管理器需要使用 HTTP 协议。

(BZ#1866006)

Ceph Ansible shrink-osd.yml playbook 无法正确清理 Ceph OSD

ceph_volume 模块执行的 zap 操作不处理 osd_fsid 参数。这会导致 Ceph OSD 通过在底层设备上保留逻辑卷来正确切换。在这个版本中,zap 操作可以正确地处理 osd_fsid 参数,并在缩小后正确清理 Ceph OSD。

(BZ#1873010)

当存在多个存储集群时,Red Hat Ceph Storage 滚动更新会失败

当配置了多个存储集群时,运行 Ceph Ansible rolling_update.yml playbook 会导致滚动更新失败,因为无法指定存储集群名称。在这个版本中,rolling_update.yml playbook 使用 --cluster 选项来允许特定存储集群名称。

(BZ#1876447)

在进行滚动更新时,hosts 字段具有无效的值

Red Hat Ceph Storage 滚动更新失败,因为评估 Ceph Ansible rolling_update.yml playbook 中的 hosts 值的语法已改变。在这个版本中,当 playbook 中指定 hosts 字段时,对代码的修复会正确更新语法。

(BZ#1876803)

运行 rolling_update.yml playbook 不会检索存储集群 fsid

在运行 rolling_update.yml playbook 时,Ceph Ansible 清单没有定义 Ceph 监控节点,例如在外部场景中,不会检索存储集群 fsid。这会导致 rolling_update.yml playbook 失败。在这个版本中,当清单中没有定义 Ceph monitor 时跳过 fsid 检索,允许 rolling_update.yml playbook 在不存在 Ceph monitor 时执行。

(BZ#1877426)

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.