NetworkFileSystem

IP의 한가지로, 네트워크상의 다른 컴퓨터내에 있는 호스트의 파일시스템을 자신의 디렉토리 처럼 사용할 수 있다.

설치

  • RedHatLinux의 경우 : # rpm –Uvh nfs-utils-version.i386.rpm

  • UbuntuLinux : # apt-get install nfs-kernel-server

서비스 데몬 프로세스들

  1. rpc.mountd :NFS 클라이언트가 마운트를 요청하면 이 데몬프로세스가 /etc/export 파일설정에 따라 마운트 요청을 처리한다.
  2. rpc.nfsd : rpc.mountd 에 의해 마운트된 디렉토리에 대해 읽고,쓰는 작업들을 처리해주는 데몬프로세스이다.
  3. rpc.rquotad : NFS 파일시스템을 마운트한 로컬 사용자에 대해 quota를 처리한다.
  4. rpc.lockd : 파일 잠금을 통해 여러 사용자가 한 파일을 수정하는것을 방지한다.
  5. rpc.statd : rpc.lockd와 함께 사용되며 파일 잠금의 해제와 복구를 담당한다.

서버설정

/etc/exports 파일 설정예제

  • share-directory client1(options,) client2(options,)

  • share-directory : 공유할 디렉토리명
  • client1 : 공유 디렉토리에 접근할수 있도록 허용된 호스트들
  • options : 접근 권한설정
    • ro : 클라이언트는 공유 디렉토리에 대해 읽기만 가능하다,
    • rw : 클라이언트는 공유 디렉토리에 대해 읽기/쓰기가 가능하다.
    • no_root_squash : 클라이언트의 root는 서버의 root와 같은 권한을 가진다.
    • No_subtree_check : 공유된 디렉토리내에 있는 서브 디렉토리들을 공유에서 제외 시키는 경우 설정

[root@apple /]# cat /etc/exports
/home/user01      *.gcc.go.kr(ro)    
/export/ftp/pub   192.168.1.1/255.255.255.0(ro)
/                 banana(rw),kiwi(rw,no_root_squash)

NFS 서버 데몬 구동

# /etc/init.d/portmap start
# /etc/init.d/nfs start
# exportfs -v  (현재 커널에서 알고 있는 익스포트 리스트를 출력한다)
# exportfs -ar (/etc/export 파일이 커널에 적용되도록 한다.)
# nfsstat (NFS 상태 정보를 출력한다.)

클라이언트 설정

NFS 클라이언트 데몬은 nfsd이다.)

# /etc/init.d/nfslock start

수동으로 서버의 파일시스템을 마운트 하는 명령

[root@apple /]# mount -t nfs NFS-서버:/export/ftp/pub /usr/local/pub

마운트 실행시 사용할수 있는 옵션들

  • -o timeo=10 : NFS 서버와 연결이 끊어진 경우 timeo에서 지정한시간(1/10초단위) 기다렸다가 경고 메시지를 발생
  • -o rsize=1024 wsize=1024 : 읽고/쓰기 버퍼의 크기를 설정한다.(1024KB=1M)
  • -o soft : remote mount를 실행할 때 성공하지 못하면 timeo 까지만 retry 후 에러 메시지를 발생하고 종료
  • -o hard : remote mount가 성공할 때 까지 무한시 재시도한다. (디폴트값이다)
  • -o bg : 첫번째 마운트 시도가 실패인경우 백그라운드로 계속 마운트를 재시도한다.

/etc/fstab 에 설정

somehost.co.kr:/home   /mnt/idisk             nfs     rw,rsize=1024,wsize=1024,timeo=7,hard,intr 0 0

연결시 Stale NFS file handle 메세지가 나오면 다시 마운트하면 된다.

[root@est /]# mount -t nfs webdisk:/home1 /mnt/idisk
mount.nfs: Stale NFS file handle
[root@est /]# umount -f /mnt/idisk
[root@est /]# mount /mnt/idisk
[root@est /]#


CategoryProgram

NFS (last edited 2013-02-18 09:12:32 by 61)

web biohackers.net