Ошибка запуска quadstor.service в Debian Linux 9 "Stretch" - Connect to db failed error is FATAL: semctl(n, 3, SETVAL, 0) failed: Invalid argument

После установки актуальной версии программной дедупликации QUADStor Storage Virtualization 3.2.13 на только что развёрнутой системе Debian GNU/Linux 9 (Stretch) столкнулся с проблемой работы службы quadstor.service. Фактически служба запускалась, но работала некорректно, так как не давала возможности управлять никакими настройками дедупликации.

# systemctl status quadstor.service


* quadstor.service - QUADStor Storage Virtualization
   Loaded: loaded (/lib/systemd/system/quadstor.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2017-12-07 09:53:55 MSK; 1min 7s ago
  Process: 423 ExecStart=/quadstor/etc/quadstor.init start (code=exited, status=0/SUCCESS)
 Main PID: 3063 (ietd)
    Tasks: 1 (limit: 4915)
   CGroup: /system.slice/quadstor.service
           L-3063 /quadstor/sbin/ietd

09:53:25 BCP01 systemd[1]: Starting QUADStor Storage Virtualization...
09:53:37 BCP01 mdaemon[3066]: ERR: __pgsql_exec_query:50 Connect to db failed error is FATAL:  semctl(196614, 3, SETVAL, 0) failed: Invalid argument
09:53:37 BCP01 mdaemon[3066]: ERR: sys_rid_load:1034 Error occurred in executing sqlcmd SELECT SYS_RID FROM SYSINFO
09:53:37 BCP01 mdaemon[3066]: ERR: __tl_server_load:1088 Failed to load uuid information
09:53:47 BCP01 scctl[3101]: ERROR: do_connect:303 failed to connect errno 111 Connection refused
09:53:55 BCP01 vdconfig[3106]: ERROR: do_connect:303 failed to connect errno 111 Connection refused
09:53:55 BCP01 quadstor.init[423]: Starting quadstor: Getting VDisk list failed
09:53:55 BCP01 systemd[1]: Started QUADStor Storage Virtualization.

Эта же ошибка фигурировала в логе /quadstor/pgsql/pg.log.

После такого запуска службы quadstor.service в веб-консоли исчезала возможность выполнить какие-либо конфигурационные действия:

Как я понял, проблема связана с функционированием СУБД PostgreSQL, используемой в составе QUADStor, в операционной системе Debian 9 с современной версией systemd, которая в свою очередь в своей работе использует вызовы ipcrm. Описание похожей проблемы я нашёл в статье PostgreSQL 9.6 on RHEL 7.2 -FATAL: semctl(SETVAL) failed: Invalid argument

После переписки с тех.поддержкой QUADStor стало очевидно, что на данный момент обходное решение этой проблемы только одно. Решение заключается в правке конфигурационного файла /etc/systemd/logind.conf, в котором в секции [Login] нужно отключить параметр RemoveIPC:

[Login]
...
RemoveIPC=no
...

После этого перезапускаем сервер (для перезапуска systemd-logind и quadstor) и убеждаемся в том, что служба quadstor запустилась без ошибок:

# journalctl -u quadstor

-- Logs begin at Thu 2017-12-07 10:44:56 MSK, end at Thu 2017-12-07 11:45:01 MSK. --
10:45:01 BCP01 systemd[1]: Starting QUADStor Storage Virtualization...
10:45:24 BCP01 quadstor.init[439]: Starting quadstor:
10:45:24 BCP01 systemd[1]: Started QUADStor Storage Virtualization.

 

Дополнительные источники информации:

Добавить комментарий