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

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

나는 가지고있다자동 파일 시스템사용자의 /home 디렉토리에 있는 중앙 NFS 서버에 연결된 여러 Linux 서버에 설치됩니다. 로그인한 상태에서 디렉토리를 마운트할 때 잘 작동하지만 설치 시간이 초과되지 않는 것 같습니다. /etc/sysconfig/autofs를 확인했는데 기본값은 실제로 300으로 설정되어 있으므로 5분 후에 시간 초과되어야 합니다.

다시 시작하는 중자동 파일 시스템모든 디렉토리를 제거하여 그것이 가능하다는 것을 알았습니다.

나는 사용해 보았습니다.라소프디렉토리에 무작위로 나타나지만 언제든지 열려 있는 파일은 나타나지 않습니다.

또한 비활성 상태인 것으로 알고 있는 임의의 디렉토리를 마운트했지만 디렉토리가 스스로 마운트 해제되지는 않았습니다. 이 상자 중 일부에는 한 번에 10명 이상의 사용자가 로그인되어 있으며 마운트가 절대 떨어지지 않습니다.

나는 이유를 알아내는 더 나은 방법을 찾으려고 노력하고 있습니다. 어떤 로그에도 구체적인 내용이 표시되지 않습니다.

어떤 제안이라도 감사하겠습니다. 감사해요!

고쳐 쓰다

디버깅을 켰습니다자동 파일 시스템하지만 딱히 특이한 점은 드러나지 않은 것 같았습니다. 이 로그는 /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

답변1

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

답변2

오늘 디버깅 및 유사한 문제를 해결하기 위해 몇 시간을 보냈습니다. 제가 찾은 내용과 해결 방법은 다음과 같습니다. ]

설정: nfs 서버 "srv1:/srv/homes"의 사용자 홈 디렉토리가 포함된 디렉토리를 클라이언트의 /mnt/nfs/homes에 자동으로 마운트하려고 합니다. 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 파일에는 다음과 같이 나와 있습니다.

mount600초의 시간 초과를 보여줍니다 .

#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를 사용하여 자동 마운트 구성을 복사하기로 결정했습니다. 실제로 실행해 보니 이 시점에서는 모든 것이 잘 작동하고 있었습니다. 자동으로 설치되고 미리 정의된 유휴 시간이 지나면 자동으로 제거되었습니다. 바로. 하지만 systemd는... 약간 투박합니다. (나를 쏘지 마세요. 실제로는 마음에 듭니다). 그런 다음 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

이것은 마침내 문제를 해결했습니다. 자동 설치와 자동 제거 모두 잘 작동합니다. umount는 /etc/autofs.conf에 미리 정의된 유휴 시간 후에 성공적으로 실행됩니다.

NFS 서버에 대한 수정은 전혀 필요하지 않습니다.

답변3

비슷한 문제가 발생하는 경우 최신 데스크탑에는 지속적으로 드라이브를 검사하는 GUI 프로세스가 있습니다. 특히 Gnome의 Nautilus, KDE의 Dolphin 및 Baloo와 같은 파일 인덱싱 응용 프로그램이 있습니다. 이로 인해 증상이 나타날 수 있습니다.

나에게(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)도 통찰력을 제공하지 못했습니다.

결국 제거 과정을 통해 다음과 같은 2개의 앱이 있다는 것을 확인했습니다.

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

이 경우 문제가 있는 설치 디스크를 트리 보기에서 "숨김"하여 Dolphin 문제를 해결할 수 있습니다.

KSysGuard는 구성 가능한 것으로 보이지 않지만, 무언가를 디버깅하지 않는 한 장기간 실행하는 것은 이례적일 수 있습니다. 자동 마운트 마운트 지점의 검색을 방지하기 위해 제외를 허용하는 측면에서 다른 애플리케이션을 더 쉽게 구성할 수 있기를 바랍니다.

답변4

비슷한 문제가 있습니다. 저는 크리스마스 방학 동안 CentOS 6이 포함된 10년 된 RHEL 4.7 ProLiant 서버를 다시 설치했습니다. 최근(4월) CentOS 7을 설치할 수 있었던 최신 ProLiants가 2개 있습니다.

/etc/auto.master다음과 같이 한 줄을 사용하여 CentOS 7 서버의 CentOS 6 서버에서 홈 디렉터리의 자동 마운트를 구성했습니다 .

/home   /etc/auto.home

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

*      sam:/home/&

그러나 홈 디렉터리는 제거되지 않습니다. 또한 내 홈 디렉토리의 특정 파일 소유권이 때때로 거대한 UID 및 GID 번호와 함께 표시되는 것을 발견했습니다. 몇 분 안에 상황이 바뀔 것입니다.

로깅 수준을 '디버그'로 설정하고 /etc/autofs.conf시청을 시작했습니다 journalctl -fu autofs.service. 위의 그림과 거의 같은 메시지가 표시되는데 아무런 단서도 없는 것 같습니다.

아직 NFS 4를 이해하지 못하고 CentOS 6 서버가 기본적으로 공유를 NFS 4로 내보낸다는 것을 알고 있으므로 파일에 다음과 같은 내용을 nfsvers=3추가해 보았습니다./etc/auto.home

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

/home/lib또한 유사한 디렉토리를 마운트하려고 시도하여 각 홈 디렉토리를 별도의 줄에 추가하는 것에 대한 이상한 메시지를 보았습니다 . (이 시점에서 직접 마운트를 시도하거나 systemd를 사용하여 자동 마운트를 시도할 수 있습니다.)

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

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

관련 정보