Я использую простую настройку с обработкой пульса для общей файловой системы, реализованной с помощью drbd и обслуживаемой через apache. Я использую /etc/ha.d/haresources для определения ресурса ha следующим образом:
server1 drbddisk::myfs \
Filesystem::/dev/drbd/by-res/myfs::/mnt/myfs::ext4::noatime \
IPaddr::10.0.0.254/24/eth0 apache2
Это отлично работает, если используется старый debian sysvinit, но есть проблема гонки с systemd, потому что остановка apache выполняется асинхронно, поэтому, когда выдает биение, scrypt "/etc/init.d/apache2 stop", хотя он возвращается очень быстро, apache2 все еще может быть активным, и, следовательно, размонтировать FS не удастся.
Я знаю много обходных путей для решения этой проблемы, но я хотел бы знать, есть ли «чистый» способ без необходимости возвращаться к sysvinit
Сам Systemd (в Debian 8) просто использует старые добрые сценарии инициализации.
user@server:~> systemctl status apache2
apache2.service - LSB: Apache2 web server
Loaded: loaded (/etc/init.d/apache2)
Active: active (running) since Mon 2015-02-12 13:24:34 CEST; 7 weeks 8 days ago
Process: 24775 ExecStop=/etc/init.d/apache2 stop (code=exited, status=0/SUCCESS)
Process: 9475 ExecReload=/etc/init.d/apache2 reload (code=exited, status=0/SUCCESS)
Process: 24799 ExecStart=/etc/init.d/apache2 start (code=exited, status=0/SUCCESS)
Это не системная проблема. Systemds 'systemctl' также по умолчанию не работает асинхронно. Вот что --no-block
вариант для. Вы также, вероятно, вообще не используете systemd-tools при выполнении подобных команд в такт.