윈도우용 NFS 서버에 접속시 커널 OOPS 발생 현상
안녕하세요,
현재 제가 맡고 있는 업무 중에 윈도우용 NFS 서버를 사용하여 리눅스 클라이언트 환경을 구성하고 있는데, 서버에 접속하고 파일을 읽으면 클라이언트에서 커널 OOPS 가 발생합니다.
테스트해보고 있는 윈도우용 NFS 서버는 www.sf.net에 올라와 있는 WinNFSd 를 사용하고 있습니다.
리눅스 클라이언트는 mips 플랫폼입니다.
문제가 발생하는 상황은 다음과 같습니다.
* mips 클라이언트 타겟 -> 윈도우 서버 :
- busybox 마운트로는 마운트가 되지 않아 util-linux-2.12r에 들어 있는 mount를 빌드해서 사용
- mount -t nfs -o nolock,soft SERVER-IP:/folder /mnt
--> 이렇게 하면 마운트가 정상동작하지만, NFSv2로 마운트됨
따라서 라지 파일 엑세스가 안됨
- mount -t nfs -o nolock,soft,vers=3 SERVER-IP:/folder /mnt
--> 이 경우 강제로 NFSv3로 접속하도록 했을 때 마운트 됨.
그러나 서버에 있는 파일을 읽을 경우 클라이언트에서 커널 OOPS가 발생.
- 상용 윈도우 NFS 서버(ex. ProNFS)와는 잘 동작함
- 커널 OOPS를 보면 fs/nfs3/nfs3xdr.c에 있는 nfs3_xdr_readres() 를 실행하다가 에러 발생
--> 실제로 printk를 찍어보면 여기서 xdr_shift_buf() 함수를 호출하다가 OOPS 발생
* PC 리눅스 클라이언트 -> 윈도우 서버 :
- 디폴트로 NFSv3로 접속되며, 잘 동작함
위 상황을 보면 WinNFSd의 문제인것으로도 보이지만, PC 리눅스에서는 또 정상동작한다는 점에서는 제가 빌드한 mount 프로그램이나 타겟 커널에 어떤 원인이 있는 것 같기도 하고...
혹시 짚히는 데가 있으신지요? ^^;
댓글 달기