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
ansible-galaxy install galaxyproject.slurm