본문 바로가기

SYSTEM/LINUX

NFS 서버 구축

: 하나의 서버에 디스크를 집중관리하고 그것을 공유하여 나머지 시스템들이 사용할 수 있게 해주는 것.

1. NFS 설치
패키지확인(보통 기본 설치되어 있다.)
# rpm -qa | grep portmap
# rpm -qa | grep nfs-utils

NFS서버의 기본 공유목록을 관리하는 파일
/etc/exports
[/etc/exports 설정법]
형식
공유디렉토리                              접근할 호스트(옵션)
예)
/share                                       192.168.10.100(rw,sync)
---> 192.168.10.100의 호스트만 접속을 허용한다.
/share                                       192.168.10.0/255.255.255.0(rw,sync)
---> 192.168.10.*의 호스트의 접속을 허용한다.
[설정옵션]
rw: 읽기, 쓰기가능
ro: 읽기만 가능
secure: 클라이언트 마운트 요청시 포트를 1024이하로 한다.
noaccess: 엑세스거부
root_squach: 클라이언트의 root가 서버의 root권한 획득을 막는다.
no_root_squash: 클라이언트의 root와 서버의 root를 동일하게 한다.
sync: 파일시스템이 변경되면 즉시 동기화한다.
all_squash: root를 제외하고 서버와 클라이언트의 사용자를 동일한 권한으로 설정한다.
no_all_squash: root를 제외하고 서버와 클라이언트의 사용자를 하나의 권한을 가지도록 설정한다.


portmap와 nfs실행
# /etc/init.d/portmap start
# /etc/init.d/nfs start

부팅시 자동실행
# chkconfig nfs on
# chkconfig --list | grep nfs

/etc/exports의 공유목록확인
# exportfs -v
---> 위 명령은 nfs서버를 다시 시작하지 않고 공유목록을 수정할 수 있다.
[옵션]
-a: /etc/exports파일을 읽어들인다.
-r: /etc/exports파일을 다시 읽어들인다.
-u IP:/디렉토리: 입력한 디렉토리를 공유목록에서 제외한다.
-v: 현재의 공유목록을 확인한다.

공유 디렉토리 마운트시키기
마운트할 디렉토리 만들기
# mkdir /mnt/nfs
마운트
# mount -t nfs 192.168.10.10(서버ip):/share /mnt/nfs
만약, 마운트가 안되면 방화벽을 해제
# /etc/init.d/iptables stop

부팅시 자동 마운트
# vi /etc/fstab
192.168.10.10:/share         /mnt/nfs                      nfs                defaults               1 2

# unmount /mnt/nfs
언마운트하고 정상적으로 마운트되는지 확인.

[방화벽설정]
NFS실행시 필요한 데몬 : portmap, rpc.statd, rpc.nfs, rpc.lockd, rpc.mountd, rpc.rquotad
이중 portmap : 111, rpc.nfs : 2049를 제외한 나머지는 랜덤이다. 이를 고정해주자.

rpcinfo -p로 현재 포트를 확인

/etc/init.d/nfslock파일 내에 daemon rpc.statd의 포트를 4000번으로 수정
# vi /etc/init.d/nfslock
daemon rpc.statd --------> daemon rpc.statd -p 4000

/etc/sysconfig/nfs파일 내에 rpc.mountd의 포트를 4001번 4002번으로 수정
# vi /etc/sysconfig/nfs
LOCKD_TCPPORT=4001
LOCKD_UDPPORT=4001
MOUNTD_PORT=4002

/etc/services파일 내에 기존 설정되어 있는 4003포트를 주석으로 설정하고 rquotad를 추가
# pxc-splr-ft       4003/tcp                                  # pxc-splr-ft
# pxc-splr-ft       4003/udp                                 # pxc-splr-ft
rquotad              4003/tcp                                  # rpc.rquotad tcp port
rquotad              4003/udp                                 # rpc.rquotad udp port

NFS재실행
# /etc/init.d/nfslock restart
# /etc/init.d/nfs restart

포트가 적용되었는지 확인
# rpcinfo -p

마지막으로 iptables에서 포트수정
# /etc/sysconfig/iptables
-A RH-Firewal -1 -INPUT -m state --state NEW -m tcp -p tcp --dport 111 -j ACCEPT
-A RH-Firewal -1 -INPUT -m state --state NEW -m udp -p udp --dport 111 -j ACCEPT
-A RH-Firewal -1 -INPUT -m state --state NEW -m tcp -p tcp --dport 2049 -j ACCEPT
-A RH-Firewal -1 -INPUT -m state --state NEW -m udp -p udp --dport 2049 -j ACCEPT
-A RH-Firewal -1 -INPUT -m state --state NEW -m tcp -p tcp --dport 4000:4004 -j ACCEPT
-A RH-Firewal -1 -INPUT -m state --state NEW -m udp -p udp --dport 4000:4004 -j ACCEPT

# /etc/init.d/iptables restart

'SYSTEM > LINUX' 카테고리의 다른 글

프린터 서버 구축  (0) 2010.01.28
SAMBA 서버  (0) 2010.01.28
APM(apache, php, mysql)설치  (0) 2010.01.09
포트 넘버 & 서비스 (port number & service)  (0) 2009.12.31
/proc 구조  (0) 2009.12.31