- NFS 서버 연결이 끊어졌습니다.
- NFS 클라이언트가 서버 연결이 끊어졌음을 감지합니다.
- 클라이언트가 다시 연결을 시도합니다.
- 서버가 다시 나타나고 성공적으로 다시 연결되었습니다.
TCP keepalive, 연결 시간 초과가 뭔가를 하고 있는 것 같지만 /proc/sys/net/ipv4/에서 찾은 기본 keepalive 시간은 7200입니다.
그래서 NFS가 tcp keepalive 시간을 덮어쓴 것 같습니다.
현재 문제는 NFS 클라이언트가 서버를 감지하고 아래 메시지를 표시하는 데 몇 분이 걸릴 때 이 시간을 단축하고 싶다는 것입니다(위의 3번).
"nfs: 서버가 응답하지 않지만 여전히 시도 중입니다."
폴링 시간을 측정해보았는데,
- 24초
- 72초(24초 + (24초 * 2 = 48초))
- 16초(72초 + (48초 * 2 = 96초))
- 360초(168초 + (96초 * 2 = 192초))
- 660초(+300초)
- 960초(+300초)
24 -> 48 -> 96 -> 192 -> 300 -> 300
이 "300"을 어디서 찾을 수 있는지 아는 사람 있나요? 아니면 TCP keepalive 시간 이외의 다른 문제로 인한 것입니까?
답변1
예, NFS 클라이언트는 keepalive 설정을 무시합니다. 이는 "timeo" 마운트 옵션에서 파생됩니다. 바라보다http://lxr.free-electrons.com/source/net/sunrpc/xprtsock.c낮은 수준의 세부정보입니다.