리눅스 NFS 서버 설정과 자동 마운트 설정방법

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이 자신의 운영체제에 설치되어 있는지 확인해 봐야된다.

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다