slurmdbd não pode se conectar ao MySQL na inicialização, mas é bem-sucedido manualmente

0

Instalei slurm-llnl e slurm-llnl-slurmdbd em uma estação de trabalho Ubuntu 14.04. Eu configurei com êxito o SLURM, mas estou tendo problemas com o serviço slurmdbd e o banco de dados mySQL

Após a inicialização do sistema, service --status-all mostra

 [ + ] slurm-llnl
 [ - ] slurm-llnl-slurmdbd

e /var/log/slurm-llnl/slurmdbd.log

[2015-11-03T14:52:30.179] debug3: Trying to load plugin /usr/lib/slurm/auth_munge.so
[2015-11-03T14:52:30.222] auth plugin for Munge (http://code.google.com/p/munge/) loaded
[2015-11-03T14:52:30.223] debug3: Success.
[2015-11-03T14:52:30.223] debug3: Trying to load plugin /usr/lib/slurm/accounting_storage_mysql.so
[2015-11-03T14:52:30.581] debug2: mysql_connect() called for db slurm_acct_db
[2015-11-03T14:52:30.643] error: mysql_real_connect failed: 2002 Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
[2015-11-03T14:52:30.643] fatal: The database must be up when starting the MYSQL plugin.

Se eu agora iniciar o serviço manualmente com

$ sudo service slurm-llnl-slurmdbd start

tudo parece funcionar bem:

[2015-11-03T14:54:08.324] debug3: Trying to load plugin /usr/lib/slurm/auth_munge.so
[2015-11-03T14:54:08.324] auth plugin for Munge (http://code.google.com/p/munge/) loaded
[2015-11-03T14:54:08.324] debug3: Success.
[2015-11-03T14:54:08.324] debug3: Trying to load plugin /usr/lib/slurm/accounting_storage_mysql.so
[2015-11-03T14:54:08.326] debug2: mysql_connect() called for db slurm_acct_db
[2015-11-03T14:54:08.367] debug4: (accounting_storage_mysql.c:1069) query
show tables like 'user_table';
[2015-11-03T14:54:08.367] debug4: (accounting_storage_mysql.c:1089) query
show tables like 'localhost_assoc_table';
[2015-11-03T14:54:08.367] debug4: (accounting_storage_mysql.c:1106) query
show columns from "localhost_assoc_table" where Field='is_def';
[2015-11-03T14:54:08.392] debug4: (accounting_storage_mysql.c:1069) query
show tables like 'user_table';
[2015-11-03T14:54:08.392] debug4: (accounting_storage_mysql.c:1089) query
show tables like 'qtech_assoc_table';
[2015-11-03T14:54:08.392] debug4: (accounting_storage_mysql.c:1106) query
show columns from "qtech_assoc_table" where Field='is_def';
[2015-11-03T14:54:08.412] debug4: (as_mysql_convert.c:788) query
show tables like 'assoc_table';
[2015-11-03T14:54:08.412] debug4: (as_mysql_convert.c:829) query
show tables like 'cluster_event_table';
[2015-11-03T14:54:08.412] debug4: (as_mysql_convert.c:852) query
show tables like 'job_table';
[2015-11-03T14:54:08.412] debug4: (as_mysql_convert.c:876) query
show tables like 'last_ran_table';
[2015-11-03T14:54:08.412] debug4: (as_mysql_convert.c:897) query
show tables like 'resv_table';
[2015-11-03T14:54:08.413] debug4: (as_mysql_convert.c:920) query
show tables like 'step_table';
[2015-11-03T14:54:08.413] debug4: (as_mysql_convert.c:942) query
show tables like 'suspend_table';
[2015-11-03T14:54:08.413] debug4: (as_mysql_convert.c:964) query
show tables like 'cluster_hour_usage_table';
[2015-11-03T14:54:08.413] debug4: (as_mysql_convert.c:1004) query
show tables like 'wckey_table';
[2015-11-03T14:54:08.449] Accounting storage MYSQL plugin loaded
[2015-11-03T14:54:08.449] debug3: Success.
...

Eu não sou um usuário especialista em Ubuntu, mas parece-me que o serviço mySQL não está pronto quando o slurm-llnl-slurmdbd é iniciado. No entanto, está listado corretamente nas dependências. Aqui está o começo de /etc/init.d/slurm-llnl-slurmdbd :

#!/bin/sh
#
# chkconfig: 345 90 10
# description: SLURMDBD is a database server interface for \
#              SLURM (Simple Linux Utility for Resource Management).
#
# processname: /usr/sbin/slurmdbd
# pidfile: /var/run/slurm-llnl/slurmdbd.pid
#
# config: /etc/sysconfig/slurm
#
### BEGIN INIT INFO
# Provides:          slurm-llnl-slurmdbd
# Required-Start:    $remote_fs $syslog $network munge
# Required-Stop:     $remote_fs $syslog $network munge
# Should-Start:      $named mysql
# Should-Stop:       $named mysql
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: SLURM database daemon
# Description:       Start slurm to provide database server for SLURM
### END INIT INFO

SBINDIR=/usr/sbin
LIBDIR=/usr/lib
CONFFILE="/etc/slurm-llnl/slurmdbd.conf"
DESCRIPTION="slurm-llnl database server interface"
NAME="slurmdbd"
    
por Pincopallino 03.11.2015 / 15:11

2 respostas

0

Teve problemas semelhantes e descobriu que o mysql é controlado pelo initctl e não pelo antigo sistema V init.

Tem certeza de que o mysqld está rodando? Verifique com "initctl status mysql".

    
por Andreas Löbel 06.03.2016 / 14:12
0

No Ubuntu 14.04 Trusty, o MySQL é iniciado com uma unidade Upstart, mas o SLURM ainda é iniciado por um script SysV-init, todos iniciados pela unidade "rc" Upstart. Inicialmente, não há dependências entre esses dois, então eles podem ser iniciados em paralelo.

Parece funcionar de forma confiável na minha configuração depois de modificar a unidade do MySQL para iniciar antes da unidade rc, e não apenas em nível de execução, ou seja, substituir a linha "start on runlevel [2345]" em / etc / init /mysql.conf com "start on starting rc RUNLEVEL = [2345]".

Use essas duas linhas se quiser automatizar, por exemplo, em um script de pré-configuração:

sudo dpkg-divert --local -add /etc/init/mysql.conf
sudo sed -i "s/^\(start on\) runlevel \[2345\]/ starting rc RUNLEVEL=[2345]/" /etc/init/mysql.conf
    
por RolKau 15.03.2017 / 22:33