Вики IT-KB

Пошаговые руководства, шпаргалки, полезные ссылки...

Инструменты пользователя

Инструменты сайта


unix-linux:centos:nfs-server-service-failed-to-start-on-boot-in-centos-7-2-exportfs-failed-to-resolve

Ошибка автозапуска службы nfs-server.service - exportfs: Failed to resolve в CentOS Linux 7.2

При перезагрузке файлового 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

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

Обсуждение

Ваш комментарий:
 

unix-linux/centos/nfs-server-service-failed-to-start-on-boot-in-centos-7-2-exportfs-failed-to-resolve.txt · Последние изменения: 09.09.2016 20:24 — Алексей Максимов