galaxyproject.slurm

Slurm

Instalar y configurar un clúster de Slurm en servidores RHEL/CentOS o Debian/Ubuntu

Variables del Rol

Todas las variables son opcionales. Si no se establece nada, el rol instalará los programas cliente de Slurm, munge, y creará un slurm.conf con un único nodo localhost y una partición debug. Consulta los valores predeterminados y ejemplos de playbooks para obtener ejemplos.

Para los diferentes roles que puede desempeñar un nodo de Slurm, puedes establecer nombres de grupos o agregar valores a una lista llamada slurm_roles.

  • grupo slurmservers o slurm_roles: ['controller']
  • grupo slurmexechosts o slurm_roles: ['exec']
  • grupo slurmdbdservers o slurm_roles: ['dbd']

Las opciones de configuración generales para slurm.conf se colocan en slurm_config, un hash. Las claves son los nombres de las opciones de configuración de Slurm.

Las particiones y nodos se colocan en slurm_partitions y slurm_nodes, listas de hashes. La única clave requerida en el hash es name, que se convierte en PartitionName o NodeName para esa línea. Todas las demás claves/valores se colocan en la línea de esa partición o nodo.

Las opciones para los archivos de configuración adicionales acct_gather.conf, cgroup.conf y gres.conf se pueden especificar en slurm_acct_gather_config, slurm_cgroup_config (ambos hashes) y slurm_gres_config (lista de hashes), respectivamente.

Establece slurm_upgrade en true para actualizar los paquetes de Slurm instalados.

Puedes usar slurm_user (un hash) y slurm_create_user (un booleano) para crear previamente un usuario de Slurm para que los uids coincidan.

Ten en cuenta que este rol requiere acceso root, así que habilita become globalmente en tu playbook / en la línea de comandos o solo para el rol, como se muestra a continuación.

Dependencias

Ninguna.

Ejemplos de Playbooks

Configuración mínima, todos los servicios en un nodo:

- name: Slurm todo en uno
  hosts: all
  vars:
    slurm_roles: ['controller', 'exec', 'dbd']
  roles:
    - role: galaxyproject.slurm
      become: True

Ejemplo más extenso:

- name: Hosts de ejecución de 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: UNLIMITADO
        Nodes: "gpu[01-10]"
    slurm_roles: ['exec']
    slurm_user:
      comment: "Administrador de Carga de Trabajo de Slurm"
      gid: 888
      group: slurm
      home: "/var/lib/slurm"
      name: slurm
      shell: "/usr/sbin/nologin"
      uid: 888

Licencia

MIT

Información del Autor

Ver los contribuyentes en GitHub

Acerca del proyecto

Install and manage the Slurm Workload Manager

Instalar
ansible-galaxy install galaxyproject.slurm
Licencia
Unknown
Descargas
14.9k
Propietario
Galaxy is an open, web-based platform for data-intensive research.