Пошаговые руководства, шпаргалки, полезные ссылки...
БлогФорумАвторы
Полезные Online-сервисы
Перечень Бесплатного ПО
Подписка на RSS-канал
При перезагрузке файлового NFS-сервера на базе CentOS Linux 7.2 служба nfs-server не стартует, хотя настроена на автоматический запуск. Соответсвенно NFS-клиентам недоступны NFS-шары с этого файлового срвера. При этом ручной запуск службы nfs-server происходит успешно. После перезагрузки сервера, если заглянуть в текущий статус службы то увидим то, что она не запущена и ошибку типа «exportfs: Failed to resolve…»
# service nfs-server status Redirecting to /bin/systemctl status nfs-server.service ● nfs-server.service - NFS server and services Loaded: loaded (/usr/lib/systemd/system/nfs-server.service;enabled;vendor preset:disabled) Active: failed (Result: exit-code) since Fri 2016-09-09 10:03:12 MSK; 28min ago Process: 1955 ExecStartPre=/usr/sbin/exportfs -r (code=exited, status=1/FAILURE) Sep 09 10:02:35 systemd[1]: Starting NFS server and services... Sep 09 10:03:12 exportfs[1955]: exportfs: Failed to resolve OVIRT1.dom.com Sep 09 10:03:12 systemd[1]: nfs-server.service:control process exited, code=exited status=1 Sep 09 10:03:12 systemd[1]: Failed to start NFS server and services. Sep 09 10:03:12 systemd[1]: Unit nfs-server.service entered failed state. Sep 09 10:03:12 systemd[1]: nfs-server.service failed.
Проблема может быть связана с тем, что в процессе загрузки служба nfs-server.service пытается запуститься до того, как закончена полная инициализация сети, и соответственно из-за ошибки разрешения имени из файла /etc/exports служба не стартует.
Для решения этой проблемы можно использовать разные методы.
Метод №1
Включить службу NetworkManager-wait-online, в случае если в вашей системе используется NetworkManager :
# systemctl enable NetworkManager-wait-online.service
Метод №2
Отредактировать конфигурационный файл службы /usr/lib/systemd/system/nfs-server.service, добавив в секцию [Unit] строки:
[Unit] ... After=network-online.target Wants=network-online.target Requires=network-online.target ...
После этого выполняем команду:
# systemctl daemon-reload
Эти методы можно пробовать использовать как раздельно так и вместе. После применения методов несколько раз перезагружаем сервер и убеждаемся в том, что каждый раз служба nfs-server запускается автоматически при загрузке системы.
Если ничего не помогает, то можно попробовать поставить жёсткий «костыль», а именно добавить в конец файла /etc/rc.d/rc.local проверку наличия сети путём отсылки ping, и как только сеть появится - запускать службу. Этот фрагмент добавим в файл /etc/rc.d/rc.local (в переменную checkip вставьте IP другого сервера, например шлюза):
sleep 10 checkip="10.1.0.1" if [ -z "$(systemctl status nfs-server.service | grep 'Active: active')" ]; then while ! ping -c 1 -W 1 $checkip; do # Waiting for gateway ip - network interface might be down..." sleep 1 done sleep 10 systemctl start nfs-server.service fi
И не забудем сделать исполняемым файл
# chmod +x /etc/rc.d/rc.local
freedesktop.org wiki - Running Services After the Network is up
Автор первичной редакции: Алексей Максимов Время публикации: 09.09.2016 11:10