你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

SELinux 和 Azure CycleCloud

大多数基于 Red Hat 的 Linux 分发版 (RHEL、CentOS) 附带 了安全增强型 Linux (SELinux) ,默认设置为 enforcing 。 SELinux 是 Linux 的安全增强功能,允许管理员更好地控制访问控制。 默认情况下,Azure CycleCloud 支持 SELinux,但为了支持许多 HPC 应用程序,CycleCloud 将代表管理员修改 SELinux 环境。

HPC 群集和 SELinux

许多 Azure Cyclecloud HPC 群集使用共享 NFS 主目录来方便提交作业,并简化计算节点之间的信息共享。 利用共享主目录的群集包括 PBS Pro、网格引擎和 Slurm。

默认 SELinux 主目录策略阻止使用 NFS 装载或主目录 的 /home 以外的任何内容。 因此,如果启用了 用户管理 ,CycleCloud 将自动运行必要的命令,以允许非标准主目录 /shared/home 以及允许 NFS 主目录。

若要启用非标准主目录,请运行以下命令,首先将安全上下文从 /home 复制到 /shared/home ,然后在新的主目录上以递归方式重置安全上下文:

semanage fcontext -a -e /home /shared/home
restorecon -R /shared/home

注意

一般来说, master 大多数 HPC 群集中的节点导出用作所有 execute 节点的主目录的文件系统。 在这种情况下, /shared/home 不是 NFS 装载, master 而是指向 /mnt/export/shared/home 的符号链接,这是通过 NFS 导出的目录。

注意

一般来说, scheduler 大多数 HPC 群集中的节点导出用作所有 execute 节点的主目录的文件系统。 在这种情况下, /shared/home 不是 NFS 装载, scheduler 而是指向 /mnt/export/shared/home 的符号链接,这是通过 NFS 导出的目录。

对于装载共享文件系统的 VM,必须显式启用 NFS 主目录,以便用户登录到 VM:

setsebool -P use_nfs_home_dirs 1

若要运行上述命令,如果某些包尚未安装在操作系统上,则会安装这些包: policycoreutils 在操作系统上提供 restoreconsetsebool 命令, policycoreutils-python 或者 policycoreutils-python-utils 根据 OS 版本提供 semanage 命令。

注意

大多数 Azure CycleCloud 群集使用 /shared/home 作为群集的主目录,但某些配置可能使用不同的路径。 如果是这种情况,则使用相同的路径而不是 /shared/home 运行相同的命令。

禁用 SELinux

在某些情况下,由于 SELinux,应用程序可能无法正常工作。 为了更轻松地调试,CycleCloud 允许群集管理员将 SELinux 模式 permissive 设置为或 disabled 通过配置选项:

cyclecloud.selinux.policy = permissive  # or `disabled`

若要更改 OS 级别的 setenforce 0 SELinux 策略,发出命令以暂时将 SELinux 设置为 permissive 模式,然后修改 /etc/selinux/config 文件以永久更改 SELinux 模式。

若要运行 setenforce 包,如果在 OS 上尚未安装,则会安装该包 libselinux-utils

重要

将 SELinux 设置为禁用后,需要重启 VM 才能完全禁用 SELinux。 VM 保持宽松模式,直到重启。