1. NFS 란 무엇인가?
Network File System의 약어로 다른 호스트에 있는 파일 시스템의 일부를 자신의 디렉토리처럼 사용할 수 있도록 해주는 것이다. 한마디로 말해, 하나의 서버에 디스크를 집중 관리하고 그것을 공유하여 나머지 시스템들이 사용할 수 있게 해주는 것이라고 말한다.
2. 서버(server)
NFS 설치
아래의 명령을 실행하여 nfs 관련 의존 패키지를 설치를 시작한다.
yum -y install nfs-utils nfs-utils-lib
NFS 설정
[Port]
NFS 설정 파일을 편집하도록 한다. 원격에서 접속할 경우 방화벽 정책에 의하여 해당 연결이 되지 않을 경우가 있어, 해당 포트를 고정해야 된다.
vi /etc/sysconfig/nfs
아래의 항목을 검색하여 주석을 해제한다.
LOCKD_TCPPORT=32803
LOCKD_UDPPORT=32769
MOUNTD_PORT=892
RQUOTAD_PORT=875
STATD_PORT=662
STATD_OUTGOING_PORT=2020
공유디렉토리 설정
아래의 명령을 실행하여 nfs 디렉토리 정보파일을 편집한다.
vi /etc/exports
아래와 같이 해당 디렉토리 정보를 입력한다.
/storage 192.168.122.0/24(rw,sync,no_root_squash)
설정옵션
rw : 읽기, 쓰기 가능
ro : 읽기만 가능
secure : 클라이언트 마운트 요청시 포트를 1024 이하로 한다.
noaccess : 엑세스 거부
root_squach : 클라이언트의 root가 서버의 root 권한을 획득하는 것을 막는다.
no_root_squash : 클라이언트의 root와 root를 동일하게 한다.
sync : 파일 시스템이 변경되면 즉시 동기화 한다.
all_squach : root를 제외하고 서버와 클라이언트의 사용자를 동일한 권한으로 설정 한다.
no_all_squach : root를 제외하고 서버와 클라이언트의 사용자들을 하나의 권한을 가지도록 설정한다.
service iptables restart
서비스 시작
NFS 관련 서비스를 시작한다.
service rpcbind start
service nfslock start
service nfs start
rpcinfo -p localhost
nfs 서비스가 정상적으로 기동시에는 아래와 같은 메시지가 보일 것이다.
program vers proto port service
100000 4 tcp 111 portmapper
100000 3 tcp 111 portmapper
100000 2 tcp 111 portmapper
100000 4 udp 111 portmapper
100000 3 udp 111 portmapper
100000 2 udp 111 portmapper
100024 1 udp 662 status
100024 1 tcp 662 status
100005 1 udp 892 mountd
100005 1 tcp 892 mountd
100005 2 udp 892 mountd
100005 2 tcp 892 mountd
100005 3 udp 892 mountd
100005 3 tcp 892 mountd
100003 2 tcp 2049 nfs
100003 3 tcp 2049 nfs
100003 4 tcp 2049 nfs
100227 2 tcp 2049 nfs_acl
100227 3 tcp 2049 nfs_acl
100003 2 udp 2049 nfs
100003 3 udp 2049 nfs
100003 4 udp 2049 nfs
100227 2 udp 2049 nfs_acl
100227 3 udp 2049 nfs_acl
100021 1 udp 32769 nlockmgr
100021 3 udp 32769 nlockmgr
100021 4 udp 32769 nlockmgr
100021 1 tcp 32803 nlockmgr
100021 3 tcp 32803 nlockmgr
100021 4 tcp 32803 nlockmgr
서비스 등록
서버기동시 nfs 가 자동적으로 실행되도록 해당 서비스를 등록 해야된다.
chkconfig –level 35 nfs on
chkconfig –level 35 nfslock on
chkconfig –level 35 rpcbind on
3. 클라이언트(Client)
NFS 설치
yum install nfs-utils nfs-utils-lib
공유디렉토리 연결하기
공유디렉토리를 연결할 mount point 디렉토리를 생성한다.
mkdir /storage
아래의 명령을 입력하여 공유디렉토리를 mount 한다.
mount 192.168.0.99:/storage /storage
공유디렉토리 해제하기
아래의 명령을 입력하면 mount point 가 해제된다.
umount /storage
공유디렉토리 영구 설정
서버 리부팅시에 자동으로 연결을 하기 위하여 아래의 파일을 편집한다.
vi /etc/fstab
해당 파일의 하단에 아래와 같이 nfs 로 연결할 정보를 입력한 후 저장한다.
192.168.0.99:/storage /storage nfs hard 0 0
nfs 주요 데몬
rpc.mountd
* NFS 마운트 데몬이다
* /etc/exports 설정에 따라 클라이언트의 마운트 요청을 처리한다.
rpc.nfsd
* 클라이언트가 rpc.mountd에 접속이 유지되면, rpc.nfsd를 사용하여 클라이언트의 요구에 따라 처리한다.
* /etc/exports 설정에 따라 클라이언트는 다양한 작업을 할 수 있다.
rpc.lockd
* 파일 잠금과 관련된 데몬으로 현재 사용 중인 파일을 다른 사람이 사용할 수 없게 잠그는 역할을 한다.
rpc.startd
* 파일 잠금과 해제의 역할을 한다.
Portmap
– RPC(Remote Procedure Call) 프로그램을 port(tcp/udp)에 매핑시켜주는 데몬이다.
– NFS를 사용하려면 꼭 필요한 데몬이다.
– RPC를 사용하는 프로그램(NFS)이 시작되면 portmap은 서비스를 제공할 port를 portmap에 등록시킨다.
– portmap은 Time Service를 필요하다.
(Time Service는 xinetd 데몬에 포함된 것이다)
– portmap이 자신의 운영체제에 설치되어 있는지 확인해 봐야된다.