pasta montada cifs continua desconectando (servidor Ubuntu)

pasta montada cifs continua desconectando (servidor Ubuntu)

Eu tenho esta entrada fstab para permitir que um aplicativo Tomcat leia/grave em uma pasta compartilhada do Windows Samba:

//dc/docs    /media/docs      cifs       credentials=...,rw,nounix,iocharset=utf8,file_mode=0777,dir_mode=0777,sec=ntlm,uid=tomcat7,gid=tomcat7,dir_mode=0770,file_mode=0770 0 0

O problema é que ele continua desmontando depois de um certo período de tempo - não é uma falha do Windows, posso acessar o compartilhamento em outro lugar

$ sudo ls /media/docs
finance  postsale  repository

#after e.g. 10 minutes...
$ sudo ls /media/docs
[sudo] password for user:
ls: cannot access '/media/docs': Connection reset by peer

#this takes ages to complete
$ sudo umount /media/docs

#this fails immediately after, succedes after about 5/10 seconds
$ sudo mount /media/docs
mount error(112): Host is down
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)
$ sudo mount /media/docs
mount error(104): Connection reset by peer
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)
$ sudo mount /media/docs
$ sudo ls /media/docs
finance  postsale  repository

Como faço para depurar isso ou evitar que caia?

Os usuários do aplicativo Tomcat não têm direito de remontar, portanto, sempre que precisarem enviar um ticket para a TI.

Observe que esta montagem no mesmo compartilhamento não cai (a única diferença que vejo é userum sudoer, enquanto tomcat7o acima não é):

//dc/share       /media/share     cifs       credentials=....credentials,rw,nounix,iocharset=utf8,file_mode=0777,dir_mode=0777,sec=ntlm,uid=user,gid=user,dir_mode=0770,file_mode=0770 0 0

ATUALIZAR:

A pasta /var/log/sambaestá vazia – como configuro o log para o samba?

Se eu continuar listando a pasta ela não cai:

while true; do date; ls /media/docs; sleep 5; done

ATUALIZAÇÃO 2:

Aqui a mountsaída:

//fs-mxp/ZZZshare on /media/share type cifs (rw,relatime,vers=1.0,sec=ntlm,cache=strict,username=XXX,domain=YYY-it,uid=1000,forceuid,gid=1000,forcegid,addr=10.39.52.6,file_mode=0770,dir_mode=0770,nounix,serverino,mapposix,rsize=61440,wsize=65536,actimeo=1)
//fs-mxp/ftp on /media/ftp type cifs (rw,relatime,vers=1.0,sec=ntlm,cache=strict,username=XXX,domain=YYY-it,uid=1000,forceuid,gid=1000,forcegid,addr=10.39.52.6,file_mode=0770,dir_mode=0770,nounix,serverino,mapposix,rsize=61440,wsize=65536,actimeo=1)
//sql-mxp/C$ on /media/sql type cifs (rw,relatime,vers=1.0,sec=ntlm,cache=strict,username=administrator,domain=YYY-it,uid=1000,forceuid,gid=1000,forcegid,addr=10.39.52.11,file_mode=0770,dir_mode=0770,nounix,serverino,mapposix,rsize=61440,wsize=65536,actimeo=1)
//fs-mxp/ZZZdocs on /media/docs type cifs (rw,relatime,vers=1.0,sec=ntlm,cache=strict,username=YYYdoc,domain=YYY-it,uid=113,forceuid,gid=123,forcegid,addr=10.39.52.6,file_mode=0770,dir_mode=0770,nounix,serverino,mapposix,rsize=61440,wsize=65536,actimeo=1)
//fs-mxp/ZZZshare/ASTE on /home/esales/aste type cifs (rw,relatime,vers=1.0,sec=ntlm,cache=strict,username=XXX,domain=YYY-it,uid=1001,forceuid,gid=1002,forcegid,addr=10.39.52.6,file_mode=0770,dir_mode=0770,nounix,serverino,mapposix,rsize=61440,wsize=65536,actimeo=1)
//fs-mxp/ftp/YYYvendor on /home/esales/YYYvendor type cifs (rw,relatime,vers=1.0,sec=ntlm,cache=strict,username=XXX,domain=YYY-it,uid=1001,forceuid,gid=1002,forcegid,addr=10.39.52.6,file_mode=0770,dir_mode=0770,nounix,serverino,mapposix,rsize=61440,wsize=65536,actimeo=1)

Responder1

Acho que isso tem algo relacionado aos patches fornecidos pelas atualizações do Windows para evitar ataques de resgate. Parece que o servidor que contém a pasta compartilhada rejeita solicitações CIFS V1. Por padrão, a montagem usa CIFS V1. experimente adicionando vers=2.0ao final do seu comando de montagem. Eu tive o mesmo problema e desta forma consegui consertar. PS/FYI: meu comando é o seguinte

//192.168.1.10/public/mount /media/windowsshare cifs credentials=/home/MY_USERNAME/.smbcredentials,iocharset=utf8,sec=ntlm,vers=2.0 0 0

Responder2

Pela saída de montagem adicionada à sua pergunta, podemos ver que você ainda está usando o CIFS 1.0.

Aconselho montar a montagem como CIFS 2.1 se os servidores suportarem, já que a partir do CIFS v2.0 ou 2.1 o protocolo suporta uma melhor recuperação de suspensão/cortes de conexão. Para fazer isso a opção é vers=2.1.

Alças duráveis ​​(2.02, 2.1) – permitem que a conexão se reconecte de forma transparente ao servidor se houver uma desconexão temporária

Também aconselho adicionar a opção echo_interval=60em vez de adicionar um loop while, pois dessa forma o código do cliente SMB envia um beacon de manutenção de atividade a cada minuto para o servidor.

Cuidado, como avisei e corrigi na resposta do @Thillina, as opções estão todas no 3º campo separadas por vírgula.

Para mais detalhes, consulteCIFS perdendo aleatoriamente a conexão com o compartilhamento do Windows

Lendo os artigos que estou citando em minha postagem:

3.0 – O protocolo SMBv3.0 introduzido no Microsoft Windows 8 e no Windows Server 2012.

Então você tem o Windows server 2012 significa que pelo menos o lado do Windows suporta CIFSv3.0 e inferior.

Para verificar se foi renegociado e com qual versão, altere as opções do seu fstabarquivo e faça:

#mount -o remount /media/docs

e depois execute um mountcomando para verificar com qual versão a montagem foi feita/negociada.

Responder3

Acabei com um cron job que a cada 3 minutos toca um arquivo em cada cifscompartilhamento mountpara manter a conexão ativa.

Até agora as ações voltaram à disponibilidade normal:

cifs_keepalive:

#!/bin/bash

while read spot; do
   touch --no-create "${spot}/.cifs_keepalive"
done <<< "$(mount | awk '/cifs/{ print $3; }')"

/etc/cron.d/cifs_keepalive:

*/3 *   *   *   *   root    /home/bcait/bca_util/bin/cifs_keepalive >/dev/null 2>&1

Créditos: Tirei a ideia deesta postagem do blog.

Responder4

No meu caso, eu tinha outras interfaces de rede que estavam desconectadas. As expirações de concessão de DHCP nessas interfaces fizeram com que as montagens caíssem de acordo comhttp://ubuntuforums.org/showthread.php?t=1140094O Samba recarrega.

Para mim, desabilitei essas interfaces. Outra solução possível poderia ser autofs com tempo limite 0.

informação relacionada