NFS (Network File System)는 서버운영시 마스터 및 슬레이브 서버 구성을 하여 디렉토리를 공유하는 목적으로 사용하는데요,
기술지원을 하다보면 고객님 요청에 의해, 또는 권고 사항으로 웹서버 부하분산의 필요성을 갖게 됩니다.
홈페이지 소스 디렉토리 등 특정 디렉토리에 공유 설정을하여 슬레이브 서버에서 공유 디렉토리를 마운트하고 로컬의 디렉토리처럼
사용을 할 수 있습니다.
이로인해 두 서버에 데이타가 존재하는것으로 보입니다. (실제는 마스터 서버에서만 존재 함)
장점이자 단점은 슬레이브 서버 다운시 마스터 서버로 서비스를 지속할 수 있으나,
마스터 서버가 다운될경우 슬레이브 서버에서도 데이타를 찾지못해 서비스를 유지할 수 없게 됩니다.
때문에 슬레이브 서버에서 rsync 등으로 한차례 다른 디렉토리로 백업을 하는식으로 보완해야 합니다.
그럼 간단히 NFS 설정하는 방법을 알아보도록 하겠습니다.
1. 데이타가 존재하는 서버에서..
1) 아래 파일에서 공유할 디렉토리와 슬레이브IP를 등록합니다.
# vi /etc/exports
/nfsdata 192.168.0.100(rw,no_root_squash)
※ /nfsdata : 공유할 폴더
192.168.0.100 : 접근 허용할 IP
rw,no_root_squash : read, write 권환과 해당 디렉토리에 대한 root 권한 할당. (옵션을 안주어도 됌)
2) portmap 과 nfs 데몬이 실행중인지 확인 후, 실행이 되지 않았을 경우 가동시켜줍니다. (portmap 우선)
# service portmap start <- 반드시 nfs 시작 전에 구동해야합니다.
# service nfs start
# rpcinfo -p <- 열려있는 포트 확인 (열려있는 포트 모두 iptables에 등록 하고, 111, 2049는 udp 까지 등록 해줘야 합니다)
# vi /etc/sysconfig/nfs <- 포트를 고정할 경우 아래항목 주석 해제
RQUOTAD_PORT=875
LOCKD_TCPPORT=32803
LOCKD_UDPPORT=32769
MOUNTD_PORT=892
# rpcinfo -p <- 열려있는 포트 재확인
※ iptables 에서 관련포트를 모두 open 시켜 줍니다. (udp, tcp 모두 등록)
> 111, 875, 892, 2049, 32803, 32769
※ nfs 가 없을경우, rpm이나 yum 으로 설치를 해줍니다.
2. 슬레이브 서버에서..
# service portmap start
# mkdir /home/data_link (마운트하기전 디렉토리를 생성해줍니다.)
# mount -t nfs -o nolock 192.168.0.99:/nfsdata /home/data_link
부팅시에도 자동 마운트 되게 하고 싶을 경우, fstab 에 아래 항목을 등록해줍니다.
# vi /etc/fstab
ns:/nfsdata /data_link nfs rw 0 0
또는 /etc/rc.d/rc.local 에 mount 명령을 써넣어줘도 됩니다.
[참고]
/var/log/messages 에 아래와 같은 메세지가 반복 된다면..
Oct 27 21:38:50 localhost kernel: statd: server localhost not responding, timed out
Oct 27 21:38:50 localhost kernel: lockd: cannot monitor 192.168.0.100
Oct 27 21:38:50 localhost kernel: lockd: failed to monitor 192.168.0.100
mount 시 -o nolock옵션을 추가하여 실행하면 됩니다.
# mount -t nfs -o nolock 192.168.0.99:/nfsdata /home/data_link
[polldaddy rating=”7739789″]