NFS 클라이언트에서 디렉터리를 삭제할 수 없습니다.

NFS 클라이언트에서 디렉터리를 삭제할 수 없습니다.

내 데스크탑의 autofs NFS 마운트 홈 디렉토리에서 다음을 실행하려고 합니다.

sw@client:~$ rm -fr ~/libraries/receiver/
rm: cannot remove '/home/sw/libraries/receiver/src/arduino/i2c-module/channels': Directory not empty
sw@client:~$ ls -al /home/sw/libraries/receiver/src/arduino/i2c-module/channels
total 8
drwxr-xr-x 2 sw users 4096 Nov  3 13:06 .
drwxr-xr-x 4 sw users 4096 Nov  3 13:06 ..
sw@client:~$ 

따라서 rm -rf내 디렉토리는 삭제되지 않습니다. 서버를 보면 문제가 있음을 알 수 있습니다.

sw@server:~$ ls -la ~/libraries/receiver/src/arduino/i2c-module/channels/
total 16
drwxr-xr-x 2 sw users 4096 Nov  3 13:06 .
drwxr-xr-x 4 sw users 4096 Nov  3 13:06 ..
-rw-r--r-- 1 sw users 7608 Nov  3 13:06 I2cChannel.hpp
sw@server:~$ 

그래서 클라이언트에서는 삭제된 것으로 생각하는 파일이 있는데 서버에서는 이를 따르지 않는 경우가 있습니다. 10분을 기다려도 아무 변화가 없습니다. 즉, 누락된 것이 없다면 캐시 문제가 아니라는 뜻입니다.

vi문제의 디렉토리를 클라이언트에서 사용 하면 다음 번 에 정상적으로 작동합니다 vi ~/libraries/receiver/src/arduino/i2c-module/channels. 문제는 내가 를 수행할 때와 같이 많은(전부는 아니지만) 디렉토리에서 발생하므로 상황이 엉망이 된다는 것입니다.I2cChannel.hpprmmake clean

또는 touch디렉터리를 사용할 수 있습니다. 이것도 해결되었습니다.

분명히 클라이언트와 서버 사이에 동기화가 이루어지지 않은 것 같습니다. 근데 뭐?

어떤 아이디어가 있나요?

추가 참고 사항:

sw@client:~$ mount | grep home
auto.home on /home type autofs (rw,relatime,fd=11,pgrp=1283,timeout=300,minproto=5,maxproto=5,indirect,pipe_ino=21134)
server:/export/home/sw on /home/sw type nfs4 (rw,relatime,vers=4.2,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=192.168.26.2,local_lock=none,addr=192.168.26.254)

sw@client:~$ uname -a
Linux client 5.15.0-84-generic #93-Ubuntu SMP Tue Sep 5 17:16:10 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux

서버에서:

sw@server:~$ uname -a
Linux server 5.10.0-23-686-pae #1 SMP Debian 5.10.179-1 (2023-05-12) i686 GNU/Linux

이런 일이 몇 달 동안 계속되었지만 고치려고 노력했는데 오늘은 지쳤습니다! 이전에는 이런 일이 발생하지 않았습니다. 저는 한동안 이 구성을 사용해 왔습니다. 몇 달 전에 나는 이 클라이언트의 HD를 SSD로 업그레이드하고 루트 파일 시스템을 복제했습니다. 어쩌면 내가 엉망이었을까? 하지만 그 밖의 모든 것은 괜찮습니다. 다른 데스크톱 중 하나에서 이런 일이 다른 곳에서 발생하는지 확인하는 중이므로 자주 발생하지만 간헐적으로 발생하는 현상을 보고하므로 신뢰할 수 있는 증거가 아닐 수 있습니다.

관련 정보