Назад | Перейти на главную страницу

Centos 7 autofs mount не работает сразу после перезагрузки

Я установил autofs на Centos 7. Однако, похоже, что после перезагрузки потребовалось некоторое время, чтобы смонтировать / home / каталог, даже когда я «cd» в него. Успешно только после 3 попыток:

[root@localhost ~] cd /home/<user>
-bash: cd: /home/<user>: No such file or directory

и autofs включен, поэтому я ожидаю, что он запустится после перезагрузки:

[root@localhost etc]# systemctl status autofs
autofs.service - Automounts filesystems on demand
   Loaded: loaded (/usr/lib/systemd/system/autofs.service; enabled)
   Active: active (running) since Tue 2015-07-21 10:34:38 HKT; 1h 13min ago
  Process: 1379 ExecStart=/usr/sbin/automount $OPTIONS --pid-file /run/autofs.pid (code=exited, status=0/SUCCESS)
 Main PID: 1385 (automount)
   CGroup: /system.slice/autofs.service
           └─1385 /usr/sbin/automount --pid-file /run/autofs.pid

Jul 21 10:34:38 localhost.localdomain systemd[1]: Starting Automounts filesystems on demand...
Jul 21 10:34:38 localhost.localdomain automount[1385]: setautomntent: lookup(sss): setautomntent: No such file or directory
Jul 21 10:34:38 localhost.localdomain systemd[1]: Started Automounts filesystems on demand.

Вот /etc/auto.master:

/misc /etc/auto.misc
/net  -hosts
+dir:/etc/auto.master.d
/home /etc/auto.home
/san /etc/auto.san
+auto.master

/etc/auto.master:

* -fstype=nfs,rw 192.254.100.4:/home_external/user_home_local/&

/etc/auto.san:

mysql_db 192.254.100.4:/san_external/mysqldb

Я подозреваю, что по аналогичным причинам, когда mysql запускается после перезагрузки, появляется ошибка, говорящая, что он не может выполнить cd в / san / mysql_db /. Но ручной перезапуск mysql после загрузки машины работает. Любые идеи? спасибо vm

Я испытал нечто подобное.

То есть логины пользователей с автоматически смонтированными домашними каталогами зависали сразу после перезагрузки до тех пор, пока я вручную не запустил rpcbind с помощью «systemctl start rpcbind». Это со всеми последними обновлениями Cent7 на сегодняшний день.

Я обнаружил, что изменение файла модуля autofs в зависимости от rpcbind и некоторых других служб решило мою проблему. См. Строку «Requires = network.target rpc-statd.service rpcbind.service» в блоке кода «После» ниже ...

Раньше: /usr/lib/systemd/system/autofs.service

[Unit]
Description=Automounts filesystems on demand
After=network.target ypbind.service sssd.service

[Service]
Type=forking
PIDFile=/run/autofs.pid
EnvironmentFile=-/etc/sysconfig/autofs
ExecStart=/usr/sbin/automount $OPTIONS --pid-file /run/autofs.pid
ExecReload=/usr/bin/kill -HUP $MAINPID
TimeoutSec=180

[Install]
WantedBy=multi-user.target

После: /usr/lib/systemd/system/autofs.service

[Unit]
Description=Automounts filesystems on demand
Requires=network.target rpc-statd.service rpcbind.service
After=network.target ypbind.service sssd.service

[Service]
Type=forking
PIDFile=/run/autofs.pid
EnvironmentFile=-/etc/sysconfig/autofs
ExecStart=/usr/sbin/automount $OPTIONS --pid-file /run/autofs.pid
ExecReload=/usr/bin/kill -HUP $MAINPID
TimeoutSec=180

[Install]
WantedBy=multi-user.target

Совет шляпы: https://www.centos.org/forums/viewtopic.php?f=47&t=51789

Это основная причина проблемы:

  • systemd сначала запускает sssd
  • sssd настроен как процесс разветвления в sssd. sssd не сигнализирует о полной загрузке systemd. После запуска systemd считает sssd загруженным и продолжает процесс запуска.
  • В некоторых случаях может пройти некоторое время, прежде чем sssd загрузится и начнет отвечать на запросы autofs / passwd / ... nss. Я видел системы, где это занимает до 5 секунд.
  • если autofs запускается до загрузки sssd, карта autofs недоступна.

Есть несколько способов исправить это:

  • чистым решением является то, что sssd реализует сигнализацию systemd, поэтому он может уведомить systemd, когда он полностью загружен
  • попробуйте ускорить загрузку sssd. Проверьте конфигурацию sssd, чтобы узнать, есть ли причина, по которой он загружается так медленно.
  • Хакерское решение - искусственно добавить достаточную задержку перед запуском autofs. (Так работает предыдущий ответ. Он просто добавляет еще одну службу перед autofs, чтобы sssd получил еще немного времени.) В некоторых случаях этого недостаточно. Другое решение предлагается в ошибке https://bugzilla.redhat.com/show_bug.cgi?id=1189767. Добавить

    ExecStartPre=/bin/sleep 10
    

    на ваш sssd.unit