使用cgroup v2
fsched (版本fsched-10.87+) 增加了对使用cgroup v2的系统的支持。 在ubuntu22的主机上,有的情况下需要用户先手动配置systemd以确保系统使用cgroup v2
注意
- 在ubuntu22的主机上,需要先检查
/proc/1/cgroup的内容,如果只有一行, 并且内容是0::/init.scope,那么系统已经是cgroup v2,不需要做额外配置,否则需要按照以下步骤配置systemd - 修改systemd配置后,该主机不能再挂载cgroup v1,所以不能在slurm配置为使用cgroup的情况下安装老的fsched版本 (fsched-10.70之前版本),否则slurmd不能启动,节点会变成未知状态
配置systemd以确保系统使用cgroup v2
在ubuntu22的主机上,如果/proc/1/cgroup的内容包含多行或首行以非0值开头,需要按照以下步骤配置systemd以确保系统使用cgroup v2
-
检查
/proc/1/cgroup发现需要配置systemdroot@jjtest-ubuntu22-3:~# cat /proc/1/cgroup
2:cpuacct:/
1:freezer:/
0::/init.scope -
修改grub, 增加参数
systemd.unified_cgroup_hierarchy=1 systemd.legacy_systemd_cgroup_controller=0 cgroup_no_v1=all例如如果主机上当前的
GRUB_CMDLINE_LINUX如下:root@jjtest-ubuntu22-3:~# grep -w GRUB_CMDLINE_LINUX /etc/default/grub
GRUB_CMDLINE_LINUX="quiet splash net.ifnames=0 biosdevname=0"那么需要注释原
GRUB_CMDLINE_LINUX的行,新的GRUB_CMDLINE_LINUX设置为在现有选项后添加cgroup相关参数:root@jjtest-ubuntu22-3:~# sed -e 's@^GRUB_CMDLINE_LINUX=@#GRUB_CMDLINE_LINUX=@' -i /etc/default/grub
echo 'GRUB_CMDLINE_LINUX="quiet splash net.ifnames=0 biosdevname=0 systemd.unified_cgroup_hierarchy=1 systemd.legacy_systemd_cgroup_controller=0 cgroup_no_v1=all"' >> /etc/default/grub -
更新grub
root@jjtest-ubuntu22-3:~# update-grub -
重启主机以使新的命令行选项生效
-
检查
/proc/1/cgroup, 结果如下则配置成功root@jjtest-ubuntu22-3:~# cat /proc/1/cgroup
0::/init.scope