비활성 후 autofs 마운트가 연결 해제되지 않음


10

나는이 autofs를 사용자 / 홈 디렉토리에 대한 중앙 NFS 서버에 연결하는 여러 리눅스 서버에 설치합니다. 로그인시 디렉토리를 마운트 할 때 훌륭하게 작동하지만 마운트 시간이 초과되지 않는 것 같습니다. / etc / sysconfig / autofs를 확인했으며 기본값은 실제로 300으로 설정되어 있으므로 5 분 후에 시간이 초과됩니다.

autofs를 다시 시작 하면 모든 디렉토리가 마운트 해제되므로 가능하다는 것을 알고 있습니다.

디렉토리에서 lsof를 무작위로 사용하려고 시도했지만 언제든지 파일이 열려 있지 않습니다.

또한 활성화되지 않은 임의의 디렉토리를 마운트했지만이 디렉토리는 자체 마운트 해제되지 않습니다. 이 상자 중 일부에는 한 번 로그인 한 10 명 이상의 사용자가 있으며 마운트는 절대 삭제되지 않습니다.

이유를 찾는 더 좋은 방법이 있다는 것을 알기 위해 노력하고 있습니다. 로그에 특정한 내용이 없습니다.

모든 제안을 부탁드립니다. 감사!

최신 정보

나는 autofs 에 대한 디버깅을 켰지 만 평범한 것을 드러내지 않는 것 같습니다. 이 로그는 / home / user1이 처음 마운트 된 후 7 분이 지나고 6 분 동안 활동이 없으면 생성되었습니다. 5 분 기본 설정에 따라이 마운트가 해제되어 있어야합니다. 나는 시도조차하지 않았다는 로그를 보지 못했습니다.

Jan 11 12:52:00 linux automount[26505]: st_expire: state 1 path /home
Jan 11 12:52:00 linux automount[26505]: expire_proc: exp_proc = 3055176592 path /home
Jan 11 12:52:00 linux automount[26505]: expire_proc_indirect: expire /home/user1
Jan 11 12:52:00 linux automount[26505]: expire_proc_indirect: expire /home/user2
Jan 11 12:52:00 linux automount[26505]: expire_proc_indirect: expire /home/user3
Jan 11 12:52:00 linux automount[26505]: 3 remaining in /home
Jan 11 12:52:00 linux automount[26505]: expire_cleanup: got thid 3055176592 path /home stat 7
Jan 11 12:52:00 linux automount[26505]: expire_cleanup: sigchld: exp 3055176592 finished, switching from 2 to 1
Jan 11 12:52:00 linux automount[26505]: st_ready: st_ready(): state = 2 path /home

업데이트 2 이 문제에 대해 Red Hat 지원에 문의 한 후 솔루션은 홈 디렉토리의 시간 초과 값을 단축시키는 결과를 가져 왔습니다. 나는 그것을하고 잘 보인다. 무언가가 2 1/2-3 분마다 마운트 지점을 통과하여이 상태를 유지합니다.

해결책은 해당 매핑의 시간 초과 값을 /etc/auto.master 파일에 추가하는 것입니다.

 /home     /etc/auto_home --timeout=120

이 마운트가 있는지 확인하기 위해 어떤 명령을 사용하고 있습니까? 나는 가정 df하지만 명확하게하고 싶습니다.
Banjer

예, df를 사용하여 마운트 된 공간을 확인하고 있습니다. 루트로 디렉토리에 CD를 마운트하여 마운트합니다.
SteveHNH

답변:


4

TIMEOUT 변수 autofs 외에도 검사 간격이 있습니다.

# cat /var/log/messages
Jan 11 21:45:35 client automount[24804]: mounted offset on /net/server/share with timeout 300, freq 75 seconds

TIMEOUT / 4와 같습니다. TIMEOUT / 4 초마다 autofs는 디렉토리에 마지막으로 액세스 한 시간을 커널에 묻습니다. 따라서 환경에서 375 초 동안 활동이 없으면 디렉토리가 제거됩니다.

당신은 추가해야 더 자세한 로그를 얻으려면 LOGGING="debug"로를/etc/sysconfig/autofs


내가 참조. 설명 주셔서 감사합니다. 위의 로그는 6 분 동안 활동이 없으면 계속 진행되었으며 375 초를 초과했습니다. 나는 무언가가이 디렉토리들에 접근하고 있거나 umount가 시도 될 것이라고 생각하고있다. 내 진짜 목표는 무엇이든이 디렉토리에 액세스하는 것을 찾는 것입니다. 그것이 내가 생각할 수없는 유일한 이유 일 수 있습니다.
SteveHNH

1

나는 비슷한 문제가 있었다. 크리스마스 기간 동안 CentOS 6이 포함 된 10 년 된 RHEL 4.7 ProLiant 서버를 다시 설치했습니다. 최근에 (4 월) CentOS 7을 설치할 수있는 2 개의 새로운 ProLiants가있었습니다.

/etc/auto.masterCentOS 7 서버 의 라인 인을 사용하여 CentOS 6 서버에서 홈 디렉토리를 자동 마운트하도록 구성했습니다 .

/home   /etc/auto.home

그런 다음 /etc/auto.homeCentOS 7 서버에서 처음에 한 줄로 새 파일을 만들었습니다 .

*      sam:/home/&

그러나 홈 디렉토리는 마운트 해제되지 않습니다. 또한 홈 디렉토리의 파일 소유권 중 일부는 때때로 거대한 UID 및 GID 번호로 끝나는 것을 발견했습니다. 몇 분 후에 변경 될 것입니다.

로깅 수준을 'debug'로 설정 /etc/autofs.conf하고로 시청을 시작했습니다 journalctl -fu autofs.service. 위와 같이 거의 동일한 메시지를 보았는데 단서가없는 것 같습니다.

나는 아직 NFS 4, 이해할 수 없었던 나는 6 서버가 기본적으로 NFS 4로 지분을 수출 한 우리에 CentOS를 알고, 나는 추가하는 시도 nfsvers=3받는 사람 /etc/auto.home과 같이 파일 :

training      -nfsvers=3,noac,soft,intr  sam:/home/training

또한와 같은 디렉토리를 마운트하려고하는 이상한 메시지가 나타 났으 /home/lib므로 개별 홈 디렉토리를 별도의 줄에 추가했습니다. (이 시점에서 직접 마운트를 시도했거나 시스템화 된 자동 마운트를 시도했을 것입니다.)

이제 다음과 같은 메시지가 표시되기 시작했습니다.

Apr 27 09:32:28 betty automount[13501]: expire_proc_indirect: expire /home/fred
Apr 27 09:32:28 betty automount[13501]: handle_packet: type = 4
Apr 27 09:32:28 betty automount[13501]: handle_packet_expire_indirect: token 21, name fred
Apr 27 09:32:28 betty automount[13501]: expiring path /home/fred
Apr 27 09:32:28 betty automount[13501]: umount_multi: path /home/fred incl 1
Apr 27 09:32:28 betty automount[13501]: umount_subtree_mounts: unmounting dir = /home/fred
Apr 27 09:32:28 betty automount[13501]: spawn_umount: mtab link detected, passing -n to mount
Apr 27 09:32:29 betty automount[13501]: rm_unwanted_fn: removing directory /home/fred
Apr 27 09:32:29 betty automount[13501]: expired /home/fred
Apr 27 09:32:29 betty automount[13501]: dev_ioctl_send_ready: token = 21
Apr 27 09:32:29 betty automount[13501]: handle_packet: type = 4
Apr 27 09:32:29 betty automount[13501]: handle_packet_expire_indirect: token 22, name barney
Apr 27 09:32:29 betty automount[13501]: expiring path /home/barney
Apr 27 09:32:29 betty automount[13501]: umount_multi: path /home/barney incl 1
Apr 27 09:32:29 betty automount[13501]: umount_subtree_mounts: unmounting dir = /home/barney
Apr 27 09:32:29 betty automount[13501]: spawn_umount: mtab link detected, passing -n to mount
Apr 27 09:32:29 betty automount[13501]: rm_unwanted_fn: removing directory /home/barney
Apr 27 09:32:29 betty automount[13501]: expired /home/barney
Apr 27 09:32:29 betty automount[13501]: dev_ioctl_send_ready: token = 22
Apr 27 09:32:29 betty automount[13501]: expire_proc_indirect: expire /home/barney
Apr 27 09:32:29 betty automount[13501]: expire_proc_indirect: expire /home/wilma
Apr 27 09:32:29 betty automount[13501]: 1 remaining in /home

홈 디렉토리는 이제 10 분 후에 마운트 해제를 시작했습니다. 따라서 필자의 경우 NFS 4가 잘못 구성되어 문제가있었습니다.

중요 : 맵을 재구성 한 후에는 단순히 수행 systemctl daemon-reload하거나 systemctl reload autofs아무런 영향을 미치지 않습니다. 해야 했어요systemctl restart autofs


1

비슷한 문제가 발생하는 다른 사람을 위해 최신 데스크탑에는 드라이브를 지속적으로 스캔하는 GUI 프로세스가 있습니다. 특히 Baloo와 같은 파일 인덱싱 응용 프로그램과 함께 Gnome의 Nautilus 및 KDE의 Dolphin입니다. 이것들은 모두 증상을 일으킬 수 있습니다.

나를 위해 (KDE를 실행) 자동 마운트 디버그 로깅의 유일한 단서는 "1 남아"입니다.

    Feb 13 00:00:44 fig automount[19026]: expire_proc: exp_proc = 139620739028736 path /mnt/vchanger
    Feb 13 00:00:44 fig automount[19026]: expire_proc_indirect: expire /mnt/vchanger/fb207cd6-6931-4af4-8293-c82ee0d2394c
    Feb 13 00:00:44 fig automount[19026]: 1 remaining in /mnt/vchanger

이것은 실제로 소스를 식별하지 못했습니다. 또한 lsof, fuser 및 auditctl (auditd) 중 어느 것도 통찰력을주지 못했습니다.

결국 제거 과정에 따라 두 가지 응용 프로그램이 있다고 판단했습니다.

  • KSysGuard (KDE 시스템 모니터)
  • 돌고래 (파일 관리자)

이 경우 Dolphin의 문제는 문제가있는 탑재 된 디스크를 트리 뷰에 "숨겨서"해결할 수 있습니다.

KSysGuard는 구성 가능한 것으로 보이지 않지만 무언가를 디버깅하지 않는 한 장기적으로 실행되는 경우는 드 unusual니다. 자동 마운트 마운트 포인트가 스캔되지 않도록 제외를 허용하여 다른 응용 프로그램을 더 구성 할 수 있기를 바랍니다.


참고로 게시물을 수정하기 전에 로그인하면 나중에 승인 할 필요가 없습니다 (또는 다른 사람이 승인 할 때까지 기다릴 필요가 없습니다).
G-Man,

0

나는 오늘 디버깅과 비슷한 문제를 시도하는 데 몇 시간을 보냈습니다. 다음은 내가 찾은 것과 어떻게 해결했는지입니다.]

설치 : 클라이언트의 / mnt / nfs / homes에있는 nfs 서버 "srv1 : / srv / homes"의 사용자 홈 디렉토리를 포함하는 dir을 자동 마운트하려고했습니다. NFS 서버는 NFS4를 내 보냅니다. autofs 버전 5.1.3

나는 모든 클라이언트를 다음과 같이 구성했습니다.

/etc/auto.mount : 다음을 포함하는 파일 :

... 
/mnt/nfs /etc/auto.home
...

/etc/auto.home :

homes  -rw,soft,intr,rsize=8192,wsize=8192 srv1:/srv/homes

결국 이것은 간접지도를 나타냅니다. 자동 마운트는 매력처럼 작동합니다. NFS 볼륨이 올바르게 마운트되어 작동합니다. 그러나 ... 자동 마운트 해제되지 않습니다. autofs.conf 파일이 다음과 같이 말하더라도 :

mount방송 6백초는 초과 :

#1# /etc/auto.home on /mnt/nfs type autofs (rw,relatime,fd=18,pgrp=5054,timeout=300,minproto=5,maxproto=5,indirect) 
srv1:/srv/homes on /mnt/nfs/homes type nfs4 (rw,relatime,vers=4.2,rsize=8192,wsize=8192,namlen=255,soft,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=x.x.x.x,local_lock=none,addr=y.y.y.y)

Journalctl의 (디버그 로그 수준 활성화) autofs 로그에서 wanpelaman과 정확히 동일한 것을 보았습니다.

automount[53593]: st_expire: state 1 path /mnt/nfs
automount[53593]: expire_proc: exp_proc = 139645987374848 path /mnt/nfs
automount[53593]: expire_proc_indirect: expire /mnt/nfs/homes
automount[53593]: 1 remaining in /mnt/nfs
automount[53593]: expire_cleanup: got thid 139645987374848 path /mnt/nfs stat 3
automount[53593]: expire_cleanup: sigchld: exp 139645987374848 finished, switching from 2 to 1
automount[53593]: st_ready: st_ready(): state = 2 path /mnt/nfs

그때 나는 autofs를 포기하고 systemd로 automount 설정을 복제하기로 결정했습니다. 실제로 나는 그것을 실행했고 현재 모든 것이 훌륭하게 작동했습니다. 자동 마운트, 미리 정의 된 유휴 기간 후에 자동 마운트 해제. 완벽 해. 그러나 체계적으로 ... 조금 어색합니다 (나를 쏘지 마라, 나는 실제로 그것을 좋아한다). 그런 다음 systemd가 자동 마운팅을 처리하는 방법을 살펴 보았습니다.

#2# systemd-1 on /mnt/nfs/homes type autofs (rw,relatime,fd=35,pgrp=1,timeout=20,minproto=5,maxproto=5,direct)
srv1:/srv/homes on /mnt/nfs/homes type nfs4 (rw,relatime,vers=4.2,rsize=524288,wsize=524288,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=x.x.x.x,local_lock=none,addr=y.y.y.y)

# 1 #과 # 2 #의 차이점은 후자가 직접 맵이고 # 1 #은 간접적이라는 것입니다. 따라서 즉시 다른 클라이언트에서 autofs를 재구성하고 다음과 같은 직접 맵을 작성하기로 결정했습니다.

/etc/auto.master

/-   /etc/auto.home

/etc/auto.home

/mnt/nfs/homes  -rw,soft,intr,rsize=8192,wsize=8192 srv1:/srv/homes

그리고 이것은 결국 문제를 해결했습니다. 자동 마운트와 자동 마운트 해제 모두 제대로 작동했습니다. /etc/autofs.conf에서 사전 정의 된 유휴 시간 후에 umount가 성공적으로 실행되었습니다.

NFS 서버를 수정하지 않아도됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.