한 호스트에서는 NFS 마운트의 공유 라이브러리를 찾을 수 없지만 다른 호스트에서는 제대로 작동합니다.

한 호스트에서는 NFS 마운트의 공유 라이브러리를 찾을 수 없지만 다른 호스트에서는 제대로 작동합니다.

NFS4 마운트에서 공유 라이브러리를 로드하는 것과 관련하여 매우 이상한 동작이 발생하는데 누군가가 이에 대해 밝혀줄 수 있기를 바랍니다.

다음을 고려하세요:

$ ucto
ucto: error while loading shared libraries: libfolia.so.3: cannot open shared object file: No such file or directory

조사한 결과 이 ​​오류가 발생할 이유가 없다고 생각합니다.

$ which ucto
 /vol/customopt/lamachine/bin/ucto

$ echo $LD_LIBRARY_PATH
 /vol/customopt/lamachine/lib:/vol/customopt/machine-translation/lib:/vol/customopt/nlptools/lib/:

$ ls -lh /vol/customopt/lamachine/lib/libfolia.so.3*
 lrwxrwxrwx 1 proycon customopt 17 Sep 18 16:42 /vol/customopt/lamachine/lib/libfolia.so.3 -> libfolia.so.3.0.1
 -rwxr-xr-x 1 proycon customopt 9.5M Sep 18 16:42 /vol/customopt/lamachine/lib/libfolia.so.3.0.1

문제없이 라이브러리 파일을 열 수 있음을 확인했습니다.

이제 전환하면다른 호스트저것정확히 동일한 NFS 마운트를 사용하십시오., 아무런 문제가 없으며 라이브러리를 문제 없이 찾아서 로드할 수 있습니다.

장착 베이스는 다음과 같이 설치됩니다.

 customopt-srv.mydomain.com:/export/customopt on /vol/customopt type nfs (rw,nosuid,tcp,hard,intr,sloppy,vers=4)

여기서 무슨 일이 일어나고 있는 걸까요? 내가 모르는 캐시가 있나요? 비슷한 문제가 발생한 사람이 있습니까? 클라이언트 측을 봐야 할까요, 아니면 서버 측을 봐야 할까요?

클라이언트와 서버 모두 Ubuntu 14.04 LTS를 실행하고 있습니다.

답변1

도서관 캐시처럼 들리네요(/etc/ld.so.cache) 클라이언트에서 업데이트되지 않았습니다. ldconfig -p다음에 문제가 발생할 때 출력을 확인하여 확인하십시오 .

답변2

NFS4는 캐싱을 사용합니다. 서버의 파일을 추가/수정/삭제하면 클라이언트의 NFS4 캐시는 이를 인식하지 못하고 이전 파일을 계속 사용하게 됩니다.

잠시 후 캐시된 파일이 너무 오래되어 무효화되고 새로운 조회가 발생합니다. 그 때 그것이 "갑자기" 효과가 있었습니다.

관련 정보