galaxyproject.slurm

Slurm

在 RHEL/CentOS 或 Debian/Ubuntu 服务器上安装和配置 Slurm 集群

角色变量

所有变量都是可选的。如果没有设置,角色将安装 Slurm 客户端程序、munge,并创建一个包含单个 localhost 节点和 debug 分区的 slurm.conf 文件。有关示例,请参见 defaults示例剧本

对于 Slurm 节点可以扮演的不同角色,您可以设置组名,或将值添加到列表 slurm_roles 中。

  • 组 slurmservers 或 slurm_roles: ['controller']
  • 组 slurmexechosts 或 slurm_roles: ['exec']
  • 组 slurmdbdservers 或 slurm_roles: ['dbd']

用于 slurm.conf 的一般配置选项放在 slurm_config 中,这是一个哈希。键是 Slurm 配置选项名称。

分区和节点放在 slurm_partitionsslurm_nodes 中,都是哈希列表。哈希中唯一必需的键是 name,它将成为该行的 PartitionNameNodeName。所有其他键/值将被放置在该分区或节点的行中。

附加配置文件 acct_gather.confcgroup.confgres.conf 的选项可以分别在 slurm_acct_gather_configslurm_cgroup_config(两个都是哈希)和 slurm_gres_config(哈希列表)中指定。

slurm_upgrade 设置为 true 以升级已安装的 Slurm 软件包。

您可以使用 slurm_user(一个哈希)和 slurm_create_user(一个布尔值)预先创建一个 Slurm 用户,以使 UID 匹配。

请注意,此角色需要 root 访问权限,因此请在您的剧本/命令行中全局启用 become,或者仅为该角色启用,如 下例所示

依赖

无。

示例剧本

最小设置,所有服务在一个节点上:

- name: Slurm 一体化安装
  hosts: all
  vars:
    slurm_roles: ['controller', 'exec', 'dbd']
  roles:
    - role: galaxyproject.slurm
      become: True

更详细的示例:

- name: Slurm 执行主机
  hosts: all
  roles:
    - role: galaxyproject.slurm
      become: True
  vars:
    slurm_cgroup_config:
      CgroupMountpoint: "/sys/fs/cgroup"
      CgroupAutomount: yes
      ConstrainCores: yes
      TaskAffinity: no
      ConstrainRAMSpace: yes
      ConstrainSwapSpace: no
      ConstrainDevices: no
      AllowedRamSpace: 100
      AllowedSwapSpace: 0
      MaxRAMPercent: 100
      MaxSwapPercent: 100
      MinRAMSpace: 30
    slurm_config:
      AccountingStorageType: "accounting_storage/none"
      ClusterName: cluster
      GresTypes: gpu
      JobAcctGatherType: "jobacct_gather/none"
      MpiDefault: none
      ProctrackType: "proctrack/cgroup"
      ReturnToService: 1
      SchedulerType: "sched/backfill"
      SelectType: "select/cons_res"
      SelectTypeParameters: "CR_Core"
      SlurmctldHost: "slurmctl"
      SlurmctldLogFile: "/var/log/slurm/slurmctld.log"
      SlurmctldPidFile: "/var/run/slurmctld.pid"
      SlurmdLogFile: "/var/log/slurm/slurmd.log"
      SlurmdPidFile: "/var/run/slurmd.pid"
      SlurmdSpoolDir: "/var/spool/slurmd"
      StateSaveLocation: "/var/spool/slurmctld"
      SwitchType: "switch/none"
      TaskPlugin: "task/affinity,task/cgroup"
      TaskPluginParam: Sched
    slurm_create_user: yes
    slurm_gres_config:
      - File: /dev/nvidia[0-3]
        Name: gpu
        NodeName: gpu[01-10]
        Type: tesla
    slurm_munge_key: "../../../munge.key"
    slurm_nodes:
      - name: "gpu[01-10]"
        CoresPerSocket: 18
        Gres: "gpu:tesla:4"
        Sockets: 2
        ThreadsPerCore: 2
    slurm_partitions:
      - name: gpu
        Default: YES
        MaxTime: UNLIMITED
        Nodes: "gpu[01-10]"
    slurm_roles: ['exec']
    slurm_user:
      comment: "Slurm 工作负载管理器"
      gid: 888
      group: slurm
      home: "/var/lib/slurm"
      name: slurm
      shell: "/usr/sbin/nologin"
      uid: 888

许可证

MIT

作者信息

查看 GitHub 上的贡献者

关于项目

Install and manage the Slurm Workload Manager

安装
ansible-galaxy install galaxyproject.slurm
许可证
Unknown
下载
14.9k
拥有者
Galaxy is an open, web-based platform for data-intensive research.