----------------------------------------------------------------------
1. NFS서버의 설정 (데몬)
----------------------------------------------------------------------
(1) 설명:
NFS는 rpc.mountd와 rpc.nfsd 두 데몬을 가지고 있다.
참고로 /etc/rc.d/init.d/nfs 스트립트를 실행하면 이 두 데몬을 실행시킨다.
(2) 관련데몬: NFS를 사용하기 위해서는 다음과 같은 데몬을 실행시켜야 한다.
① netfs 서비스 실행
삼바, NFS, NCP등을 마운트하거나 언마운트해주는 데몬으로 NFS 서버데몬을 띄우기 전에 미리 실행시켜야 한다.
② nfs 서비스 실행
NFS서비스를 해주는 데몬이다.
참고로 이 데몬을 실행시키려면 먼저 /etc/exports 파일을 설정해야 한다.
③ portmap 서비스 실행
RPC(Remote Procedure Call)연결에 관여하는 데몬으로 NFS, NIS을 사용할 때 필요함으로 실행시켜야 한다.
④ nfslock 서비스 실행
파일잠금을 제공하는데 이것은 동시에 여러 사람들이 동일한 파일을 수정하는 것을 막는다.
⑤ rpc.mountd
외부의 요청에 반응하는 NFS 마운트 프로토콜이다.
클라이언트들이 서버를 이용할 수 있도록 디렉토리를 공유해주는 역할을 한다.
NFS는 접속해제 방식으로 웹서버처럼 접속요청이 있을 때만 연결이 이루어진다.
⑥ rpc.nfsd
서버측에서 rpc.mountd에 의해 마운트되면 클라이언트는 rpc.nfsd로 서버에 요구를 보내게 된다.
이 요구를 처리하는 주 데몬이다.
⑦ rpc.lockd
파일잠금을 제공하는데 이것은 동시에 여러 사람들이 동일한 파일을 수정 하는 것을 막는다.
⑨ rpc.statd
rpc.lockd와 함께 작동하면 NFS서버가 비정상적으로 종료되었거나 리부팅했을 경우 복구하는 역할을 한다.
⑩ rpc.rquotad
원격 쿼터 서버로서 NFS서버의 파일 시스템을 마운트한 로컬 유저의 쿼터에 넘겨준다.
----------------------------------------------------------------------
2. NFS서버의 exports 설정
----------------------------------------------------------------------
(1) 관련파일 : /etc/exports
① 개요: 파일에 마운트를 허가할 디렉토리와 마운트를 허가할 호스트 목록을 설정한다.
② /etc/exports에서 사용가능한 옵션들
가. root_squash : 클라이언트에서 루트를 서버상에 nobody사용자로 매핑
나. no_root_squash : 서버와 클라이언트 모두 같은 루트(root)를 사용한다.
다. ro : 파일 시스템을 읽기 전용(read only)로 마운트
라. rw : 파일 시스템을 읽고 쓸수 있도록 (read write) 마운트
마. insecure : 인증되지 않은 접근도 가능
바. link_relative : 심볼릭 링크를 상대 심볼릭 링크로 바꿀 때 사용
사. noaccess : 지정된 디렉토리에는 접근을 금지한다.
(2) /etc/exports파일의 예
① /home/ftp/pub *.sample.com(ro)
위 디렉토리를 sample.com도메인을 사용하는 모든 사용자가 읽는 것을 허용한다.
② / master(rw) trusty(rw,no_root_squash)
위 디렉토리를 master, trusty호스트가 읽기/쓰기를 허용한다.
③ /projects proj*.local.domain(rw)
도메인이름이 local.domain이고 호스트이름이 proj로 시작하는 호스트에 대해서
/projects라는 디렉토리로 읽기/쓰기를 허용
④ /data 192.168.0.0/255.255.255.0(ro)
네트워크주소가 192.168.0 대역에 속한 모든 호스트에 대해서 data디렉토리를 읽기만 허용
⑤ /work 192.168.0.2(rw)
위 디렉토리를 192.168.0.2 호스트만 read and write권한으로 설정
⑥ /pub *(ro, insecure, root_squash)
위 디렉토리에 읽기전용으로 마운트할 수 있고,
인증없이 마운트가 가능하며 마운트하는 모든 컴퓨터의 루트를 서버에서 nobody로 접근할 수 있게한다.
⑦ /pub/private *.social.com(noaccess)
위 디렉토리는 social.com에 해당하는 시스템은 접근할 수 없다.
(3) 오류 메시지 체크
[root@ns1 ~]$ exportfs -ra
----------------------------------------------------------------------
3. NFS 클라이언트에서 사용하기
----------------------------------------------------------------------
(1) 마운트형식
① 명령행에서 마운트하기
[root@ns1 ~]# mount -t nfs NFS서버:마운트디렉터리 마운트포인트
② /etc/fstab에 정의하여 부팅시마다 사용하기
NFS서버:/마운트디렉터리 마운트포인트 nfs options 0 0
(2) 사용예
① mount -t nfs nfs.linux.co.kr:/usr/local /usr/local
nfs.linux.co.kr의 /usr/local디렉토리를 자신의 /usr/local디렉토리에 nfs파일시스템 타입으로 마운트한다.
② mount -t nfs 203.247.xxx.100:/data /pds
=> 203.247.xxx.100의 /data라는 디렉토리를 현재 시스템의 /pds라는 디렉토리로 마운트한다.
③ /etc/fstab을 이용한 nfs마운트 설정예
nfs.linux.co.kr:/usr/local /usr/local nfs timeo=15,intr 0 0
=> nfs.linux.co.kr의 /usr/local디렉토리를 자신의 /usr/local디렉토리에 nfs파일시스템으로 마운트한다.
타임아웃시간을 1.5초로 하고, 파일시스템을 인터럽트할 수 있는 옵션을 설정하였다.
(참고) /etc/fstab에 사용되는 NFS마운트관련옵션
가. timeo=n
NFS 서버와 연결이 끊어진 경우 timeo에서 지정한 시간(1/10초 단위)
나. intr
주 타임아웃이 발생되었을 때 신호를 보내 NFS호출을 인터럽트한다.
다. rsize=n
읽고/쓰기 버퍼의 크기를 설정한다. 기본값은 1024바이트
라. wsize=n
NFS서버에 쓰기할 때 사용하는 바이트 수지정. 기본값은 1024바이트
마. retrans=n
주타임아웃을 발생시키는 부타임아웃을 재전송 회수 기본값은 3번의 타임아웃
바. port=n
NFS서버와 연결할 수 있는 포트번호 지정
사. fg
첫번째 NFS마운트 시도에서 타임아웃이 발생되면 즉시 중단함. 기본값
아. hard
remote mount 가 성공할 때 까지 재시도함 (default 값)
자. soft
remote mount를 실행할 때 성공하지 못하면 timeout 까지만 재시도후 에러 메세지 발생 종료
차. bg
첫번째 마운트 시도가 실패일 경우 백그라운드로 계속 마운트를 시도함
----------------------------------------------------------------------
4. 관련명령어
----------------------------------------------------------------------
(1) exportfs
① 설명: NFS에서 익스포트된 리스트를 보여준다.
② 사용법
exportfs [option]
③ 옵션
-v : 익스포트된 리스트를 자세히 보여준다.
-r : 익스포트된 내역을 다시 읽어들인다.
④ 사용예
가. [root@ns1 ]# exportfs /data 192.168.0.3/255.255.255.0
나. [root@ns1 ]# exportfs -v
/data 192.168.0.3/255.255.255.0(rw,async,wdelay,root_squash)
다. [root@ns1 ]# exportfs -ar
=> 현재 설정된 내역이나 변경된 내역을 다시 읽어들인다.
(2) showmount
① 설명: NFS서버의 마운트된 정보를 보여준다.
② 사용법
showmount [option]
③ option
-a : host:dir 형태로 출력한다.
-e : 익스포트리스트를 보여준다.
④ 사용예
a. [root@ns1 ]# showmount
Hosts on www:
192.168.0,3
b. [root@ns1 ]# showmount -a
All mount points on www:
192.168.0.3:/data
c. [root@ns1 ]# showmount -e
Export list for www:
/data 192.168.0.3/255.255.255.0
----------------------------------------------------------------------
5. 실행 포트 고정
----------------------------------------------------------------------
[root@ns1 ~]# cat /etc/sysconfig/nfs
RPCNFSDCOUNT=8
RPCRQUOTADOPTS="-p 32766"
RPCMOUNTDOPTS="-p 32767"
RPCSTATDOPTS="-p 32768 -o 32769"
[root@ns1 ~]# service nfs restart
[root@ns1 ~]# service nfslock restart
[root@www1 ~]# rpcinfo -p 확인
program vers proto port
100000 2 tcp 111 portmapper
100000 2 udp 111 portmapper
100024 1 udp 32806 status
100024 1 tcp 41807 status
100011 1 udp 4004 rquotad
100011 2 udp 4004 rquotad
100011 1 tcp 4004 rquotad
100011 2 tcp 4004 rquotad
100005 1 udp 32767 mountd
100005 1 tcp 32767 mountd
100005 2 udp 32767 mountd
100005 2 tcp 32767 mountd
100005 3 udp 32767 mountd
100005 3 tcp 32767 mountd
----------------------------------------------------------------------
6. iptables 사용 시 nfs 설정
----------------------------------------------------------------------
(1) nfs 구동 중인 곳에서의 iptables 설정
/sbin/iptables -A INPUT -p tcp --dport 111 -j ACCEPT
/sbin/iptables -A INPUT -p tcp --dport 2049 -j ACCEPT
/sbin/iptables -A INPUT -p tcp --dport 32766:32769 -j ACCEPT
/sbin/iptables -A INPUT -p udp --dport 111 -j ACCEPT
/sbin/iptables -A INPUT -p udp --dport 2049 -j ACCEPT
(2) nfs client 서버에서의 iptables 설정
/sbin/iptables -A INPUT -p tcp --sport 111 -j ACCEPT
/sbin/iptables -A INPUT -p tcp --sport 2049 -j ACCEPT
/sbin/iptables -A INPUT -p udp --sport 111 -j ACCEPT
/sbin/iptables -A INPUT -p udp --sport 2049 -j ACCEPT
----------------------------------------------------------------------
7. 서비스 구동 start/stop 순서 지정
----------------------------------------------------------------------
service netfs start
service portmap start
service nfslock start
service nfs start
service netfs stop
service portmap stop
service nfslock stop
service nfs stop
----------------------------------------------------------------------
8. 마운트 실 예
----------------------------------------------------------------------
(1) nfs 서비스 서버
[root@ns2 ~]# cat /etc/exports
/home/chanho/html 192.168.0.0/255.255.255.0(rw,no_root_squash)
/home/chanho/game *(rw,async,no_root_squash)
(2) client 서버
mount -t nfs 192.168.0.144:/home/chanho/html /home/chanho/html
출처: http://egloos.zum.com/sjunious/v/5420192
'IT > 소프트웨어 설치' 카테고리의 다른 글
JBoss 6.0 설치하기 - centos6.5 (0) | 2015.02.15 |
---|---|
nagios 모니터링 툴 (4) | 2015.02.09 |
apache mod_cband 설치 및 설정 (0) | 2015.02.09 |
mrtg 설치 및 모니터링 (0) | 2015.01.06 |
DRBD / HeartBeat / NFS (2) | 2014.12.29 |