Centos 7 montagem autofs não funciona logo após a reinicialização

5

Eu configurei o autofs no Centos 7. No entanto, parece que após a reinicialização, demorou algum tempo para montar o diretório / home /, mesmo quando eu 'cd' nele. Só tem sucesso após 3 tentativas:

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

e o autofs está ativado, então espero que ele seja iniciado após a reinicialização:

[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.

Aqui está o /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

Eu suspeito por razões similares, quando o mysql inicia após a reinicialização, ele tem um erro dizendo que ele não pode 'cd' em / san / mysql_db /. Mas uma reinicialização manual no mysql depois que a máquina é inicializada funciona. Alguma ideia? obrigado vm

    
por surfcode 21.07.2015 / 06:05

2 respostas

7

Eu experimentei algo semelhante.

Ou seja, os logins de usuários com diretórios pessoais automontados ficaram pendurados logo após a reinicialização, até o momento em que iniciei manualmente o rpcbind com "systemctl start rpcbind". Isto é com todas as atualizações mais recentes do Cent7 a partir de hoje.

Descobri que modificar o arquivo de unidade autofs para depender do rpcbind e de alguns outros serviços resolveu meu problema. Veja a linha "Requer = network.target rpc-statd.service rpcbind.service" no bloco de código "Depois" abaixo ...

Antes: /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

Depois: /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

Dica do chapéu: link

    
por 14.09.2015 / 17:21
2

Esta é a causa raiz do problema:

  • o systemd inicia o sssd primeiro
  • sssd é configurado como um processo de bifurcação no sssd. O sssd não sinaliza o systemd quando está totalmente carregado. Após a inicialização, o systemd considera o sssd como carregado e continua o processo de inicialização.
  • Em alguns casos, pode demorar um pouco até que o sssd seja carregado e comece a responder às consultas do autofs / passwd / ... nss. Eu vi sistemas onde demora até 5 segundos.
  • se o autofs iniciar antes de o sssd ser carregado, o mapa do autofs não estará disponível.

Existem várias maneiras de corrigir isso:

  • a solução limpa é que o sssd implementa a sinalização systemd para que possa notificar o systemd quando estiver totalmente carregado
  • tente acelerar o carregamento do sssd. Verifique sua configuração do sssd para verificar se existe uma razão pela qual ele é carregado tão lento.
  • a solução hacky é adicionar um atraso suficiente antes que o autofs seja iniciado. (É assim que a resposta anterior funciona. Ela apenas adiciona outro serviço antes do autofs, então o sssd recebe mais algum tempo.) Isso não é suficiente em alguns casos. Outra solução é sugerida no bug link . Adicionar

    ExecStartPre=/bin/sleep 10
    

    para o seu sssd.unit

por 05.08.2016 / 12:48