나는 최근에 우리 연구 그룹을 위한 새로운 파일 서버를 설정했습니다. 이전 버전에서는 SuSE Linux를 실행하고 있었는데, 이는 더 작은 하드 드라이브와 느린 시스템에도 불구하고 잘 작동했습니다. 클라이언트는 대부분 NFS 공유를 마운트하는 젠투 시스템입니다 autofs
. 컴퓨터의 홈 디렉터리는 파일 서버에 있습니다.
새로운 파일 서버는 특정 부서 컴퓨터에서 실행되는 가상 머신입니다 Debian squeeze
. 설정한 후(여러 번) 심각한 문제가 발생하거나 rpc.statd
둘 rpc.lockd
이상의 시스템에 홈 디렉토리가 마운트되면 응답이 없습니다. 문제를 해결하는 2.6.32
것으로 보이는 커널을 업데이트했습니다 . 3.2
하지만,아직 잠금 파일이 생성되지 않은 것 같습니다..
예를 들어 클라이언트의 xdm 데스크탑 관리자는 NFS 공유의 홈 디렉터리에 파일을 생성하는 대신 .Xauthority
로컬 위치 로 대체됩니다. /tmp
또한 잠긴 파일 등을 사용하는 무거운 프로그램은 Firefox, Thunderbird, Libreoffice
xdm 로그인처럼 약간 느릴 수 있습니다.
우리는 (적어도 내 생각에는 그렇게 생각한다) NFS4를 사용하는데, 내가 아는 한 더 이상 필요하지 않다 rpc.lockd
. 커널 업데이트 이후 이와 관련하여 찾을 수 있는 유일한 오류 메시지는 다음과 같습니다.
sm-notify[540]: nsm_parse_reply: [0x515dce2e] RPC status 1
인터넷에서 이것이 무엇을 의미하는지 찾을 수 없습니다. 서버는 (현재) 전혀 보호되지 않으며 /etc/default/nfs-kernel-server
다음과 같습니다.
RPCNFSDCOUNT=32
RPCNFSDPRIORITY=0
RPCMOUNTDOPTS="--manage-gids -p 32767"
NEED_SVCGSSD=
RPCSVCGSSDOPTS=
클라이언트에는 hosts.allow
서버에 대한 항목이 포함되어 있습니다.rpcbind
이와 관련된 몇 가지 질문이 있습니다.
- 작은 Python 또는 bash 스크립트를 사용하여 NFS 공유에서 잠금 파일 생성이 제대로 작동하는지 어떻게 확인할 수 있습니까?
- 내 클라이언트가 어떤 NFS 버전을 사용하고 있는지 어떻게 알 수 있나요?
- 로그 파일에 아무 것도 표시되지 않는 경우 NFS 오류를 어떻게 추적할 수 있습니까?
Xauthority
위 응용 프로그램에 문제가 있는 이유는 무엇입니까?
답변1
나는 그것을 해결했다고 생각합니다. xdm은 이를 루트로 생성하므로 .Xauthority
NFS 내보내기의 옵션으로 인해 이를 방지할 수 있습니다. 이 옵션을 제거하면 고객이 딱 맞는 효과를 no_root_squash
만들 수 있습니다 ..Xauthority
답변2
나는 여기에서 당신의 친구라고 tcpdump(8)
생각 합니다.strace(1)
tcpdump
할 수 있는:
- NFS 프로토콜 버전 표시
- 누가 누구와 대화하고 있는지 알려줍니다(문제 해결을 위해).
- 또한 때때로 애플리케이션 로그 메시지가 부족한 경우 무엇이 잘못되었는지 알려줍니다.
strace
올바른 프로세스(예: 쉘 또는 )에 연결된 경우 시스템 호출 및 신호를 추적하면 어떤 호출이 시도되었는지 sshd
확인할 수 있으며 이는 .Xauthority 문제에 대한 힌트를 줄 수 있습니다.fopen()
tcpdump -A
응용 프로그램이 작동하지 않고(NFS에서는 작동하지 않고 클라이언트/서버 문제 해결에서는 작동하지 않는 경우) 이유를 설명하지 않거나 로그 파일에 "예기치 않은 오류"와 같은 영리한 내용 이 표시되는 경우를 여러 번 경험했습니다. 서버의 오류 메시지(클라이언트에서는 단순히 무시됨)이므로 이러한 메시지는 직접 빌드하지 않은 애플리케이션 관련 문제를 처리할 tcpdump
때 매우 중요합니다.strace