Recommanded Free YOUTUBE Lecture: <% selectedImage[1] %>

NFS

Network File System은 네트워크 상에 파일 시스템을 구현하는 것으로 1984년 Sun Microsystems에서 개발한 프로토콜이다 그 뒤 유닉스리눅스에서 네트워크로 파일시스템을 확장하기 위한 용도로 널리 사용있다. NFS는 서버/클라이언트 모드로 작동합니다.

NFS 서버 설정

Ubuntu Linux 11.04를 기준으로 설명합니다. 예전에는 NFS 설정하는 것도 꽤 복잡했는데, 요즘엔 패키지 설치하고 설정파일만 바꿔주면 간단하게 서버 구축이 가능합니다.

설치
# sudo apt-get install nfs-kernel-server

공유 디렉토리 설정 /home/myStorage1 /home/myStorage2를 공유할 경우 다음과 같이 /etc/exports를 수정해 주면 됩니다.
# cat /etc/exports
/home/myStorage2 *(rw,sync,no_root_squash,no_subtree_check)

주요 옵션

  • ro : 읽기 전용으로 한다.
  • rw : 읽기/쓰기 모두 허용한다.
  • sync : 파일을 쓸때 서버와 클라이언트 싱크를 맞춘다. 서버는 데이터가 저장소에 안전히 쓰였음을 확인 한 후, 응답을 보낸다.
  • async : 서버는 데이터가 저장소에 안전히 저장됐는지를 확인하지 않는다. 클라이언트의 데이터 쓰기 요청이 들어오면 바로 응답을 보낸다. 데이터 curruption이 발생할 수 있지만 성능 향상을 기대할 수 있다.
  • root_squash : 이 옵션을 사용하면, 로컬 사용자와 원격 사용자를 모두 ID 0 즉 root로 취급한다. 따라서 원격 사용자는 파일과 디렉토리에 대한 모든 권한을 획득할 수 있다. 모든 유저를 믿을 수 있다면, 편리하게 사용할 수 있지만 보안에 취약할 수 있다.
  • no_root_squash : root_squash를 끈다.
  • all_squash : 모든 유저를 anonymouse user로 간주한다. 기본 설정은 no_all_squash 이다.

NFS Client 설정

Ubuntu 리눅스를 기준으로 한다.

먼저 NFS clinet를 설치하자.
# apt-get install nfs-common

다음과 같이 mount 하면 된다.
# mount -t nfs 192.168.56.1:/home/myStorage2 /mnt/storage

/etc/fstab 등록

fstab에는 시스템에서 사용할 파일 시스템 정보가 등록돼 있다. 운영체제가 올라오면 fstab에 등록된 파일시스템을 자동으로 마운팅한다.

설정 예
# cat /etc/fstab
......
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
......
192.168.57.32:/srv/nfs  /mnt/test               nfs     rw              0 0

history

  1. 작성일 : 2011년 8월 18일
  2. 수정
    • 2012년 7월 2일 : NFS server 설정 내용 보강
    • : /etc/fstab 설정 추가