6.2.2. 恢复 /dev/log 的原始标签值


注意

只有在您将环境从 Red Hat Container Native Storage 3.9 升级到 Red Hat Openshift Container Storage 3.11.8 时,才应按照以下步骤操作。

如果您要将环境从 Red Hat Openshift Container Storage 3.10 及以上升级到 Red Hat Openshift Container Storage 3.11.8,请跳过此步骤。

要恢复原始 selinux 标签,请执行以下命令:

  1. 在运行 gluster pod 的所有节点上创建目录和软链接:

    # mkdir /srv/<directory_name>
    # cd /srv/<directory_name>/   # same dir as above
    # ln -sf /dev/null systemd-tmpfiles-setup-dev.service
    # ln -sf /dev/null systemd-journald.service
    # ln -sf /dev/null systemd-journald.socket
  2. 编辑 daemonset,它将在具有 oc 客户端的节点上创建 glusterfs pod:

    # oc edit daemonset <daemonset_name>

    在 volumeMounts 部分添加卷的映射:

    - mountPath: /usr/lib/systemd/system/systemd-journald.service
      name: systemd-journald-service
    - mountPath: /usr/lib/systemd/system/systemd-journald.socket
      name: systemd-journald-socket
    - mountPath: /usr/lib/systemd/system/systemd-tmpfiles-setup-dev.service
    name: systemd-tmpfiles-setup-dev-service

    在 volumes 部分为列出的每个服务添加新主机路径:

    注意

    此处提到的路径应与第 1 步中所述相同。

    - hostPath:
       path: /srv/<directory_name>/systemd-journald.socket
       type: ""
      name: systemd-journald-socket
    - hostPath:
       path: /srv/<directory_name>/systemd-journald.service
       type: ""
      name: systemd-journald-service
    - hostPath:
       path: /srv/<directory_name>/systemd-tmpfiles-setup-dev.service
       type: ""
    name: systemd-tmpfiles-setup-dev-service
  3. 在运行 gluster pod 的所有节点上运行以下命令。这将重置标签:

    # restorecon /dev/log
  4. 执行以下命令检查所有卷的自我修复状态:

    # oc rsh <gluster_pod_name>
    # for each_volume in `gluster volume list`; do gluster volume heal $each_volume info ; done  | grep  "Number of entries: [^0]$"

    等待自我修复完成。

  5. 执行以下命令并确保 brick 不超过 90%:

    # df -kh | grep -v ^Filesystem | awk '{if(int($5)>90) print $0}'
    注意

    如果 brick 接近 100% 利用率,则这些 brick 的逻辑卷管理器(LVM)激活可能需要很长时间,或者在 pod 或节点重启后可能会卡住。建议关闭该 brick 的利用率或扩展使用逻辑卷(LV)的物理卷。

    注意

    df 命令不适用于属于块卷(BHV)的 brick。在 BHV 上,由 df 命令生成的 brick 的 used 大小是该 Gluster 卷的 blockvolumes 添加的大小,它不是 blockvolumes 中驻留的数据量。如需更多信息,请参阅 Openshift Container Storage 中如何识别块卷和块卷

  6. 在 gluster pod 中的任何一个节点上执行以下命令,以设置可在 glusterfsd 进程的单一实例上运行的 brick(250)的最大数量:

    # gluster volume set all cluster.max-bricks-per-process 250
    1. 在 gluster pod 中的任何一个节点上执行以下命令来确保正确设置了选项:

      # gluster volume get all cluster.max-bricks-per-process

      例如:

      # gluster volume get all cluster.max-bricks-per-process
      cluster.max-bricks-per-process 250
  7. 在具有 oc 客户端的节点上执行以下命令,以删除 gluster pod:

    # oc delete pod <gluster_pod_name>
  8. 要验证 pod 是否已就绪,请执行以下命令:

    # oc get pods -l glusterfs=registry-pod
  9. 登录托管 pod 的节点,再检查 /dev/log 的 selinux 标签

    # ls -lZ /dev/log

    输出应该显示 devlog_t 标签

    例如:

    #  ls -lZ /dev/log
    srw-rw-rw-. root root system_u:object_r:devlog_t:s0    /dev/log

    退出节点。

  10. 在 gluster pod 中,检查标签值是否为 devlog_t:

    # oc rsh <gluster_pod_name>
    # ls -lZ /dev/log

    例如:

    #  ls -lZ /dev/log
    srw-rw-rw-. root root system_u:object_r:devlog_t:s0    /dev/log
  11. 为其他 pod 执行这些步骤 4 到 9。
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2026 Red Hat
返回顶部