본문 바로가기

Linux

NFS 설치 및 활용 --펌글--

1. NFS 서버 설치

필요패키지 : ufs, portmap

Rpm –qa | grep nfs 명령어로 패키지가 설치되었는지 확인하고 없으면 설치하기

[root@test /]# rpm -qa | grep nfs
nfs-utils-1.0.9-24.el5
nfs-utils-lib-1.0.8-7.2.z2
system-config-nfs-1.3.23-1.el5
[root@test /]# yum install nfs

 공유디렉토리를 생성하고 nfs 한경파일을 수정까지 한 후 설정이 제대로 적용됬는지 확인한다.

[root@test /]# mkdir /home/test/nfs_share

[root@test /]# vi /etc/exports

/home/test/nfs_share 192.168.0.2/255.255.255.0(rw,no_root_squash)

[root@test /]# exportfs
/home/test/nfs_share
                        192.168.0.2

nfs 서비스 시작

[root@test /]# service portmap restart
portmap 를 정지 중:                                        [  OK  ]
portmap (
)를 시작 중:                                    [  OK  ]

[root@test /]# service nfs restart
NFS mountd
를 종료 중:                                      [  OK  ]
NFS
데몬을 종료 중:                                        [  OK  ]
NFS quota
를 종료 중:                                       [  OK  ]
NFS
서비스를 종료 중:                                      [ OK ]
NFS
서비스를 시작 중:                                      [  OK  ]
NFS
쿼터를 시작 중:                                        [  OK  ]
NFS
데몬을 시작 중:                                        [  OK  ]
NFS mountd
를 시작 중:                                      [  OK  ]
 

 

2. 클라이언트 설정

서버 공유 디렉토리 확인

[root@test /]# showmount -e 192.168.0.1

공유할 디렉토리 설정

 [root@test /]# mkdir /home/test/nfs_share

mount로 디렉토리 공유

 [root@test/]# mount -t nfs 192.168.0.1:/home/test/nfs_share /home/test/nfs_share

클라이언트 작동시 portmap 데몬이 실행되어 있어야 한다.

 [root@test/]# service portmap start

3. 기타 확인사항

NFS 사용포트

데몬

포트

portmap

111 

rpc.statd

사용자설정(4001)

rpc.nfs

2049

rpc.lockd

 사용자설정(4002) 

rpc.mountd

사용자설정(4003)

rpc.rquotad

사용자설정(4004)

현재 포트 알아보기

[root@test /]# rpcinfo -p localhost
   프로그램 버전 원형   포트
    100000    2   tcp    111  portmapper
    100000    2   udp    111  portmapper
                                :

 화벽열기

[root@test /]# vi /etc/sysconfig/iptables
                                    :
 -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 4001:4004 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 4001:4004 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 111 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 111 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 2049 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 2049 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT
                                    :
[root@test /]# service iptables restart

별첨)
mount
옵션

옵션

기능

suid, nosuid

보안상 원격파일 시스템에서 suid모드보다는 nosuid 모두가 권장된다.

Bg

nfs 마운트가 처음에 실패할 경우 백그라운드 상태에서 계속 시도하게 되는 것으로
원격파일시스템이 허용되지 않을 경우 부트 시간을 단축시킨다.

Retry=n

정지할 때가지의 마운트 시도횟수를 정의. Default : 100000

timeo=n

타임아웃 시간을 설정.

retrans=n

n번 요청을 재전송하는 것. Default : 3

soft, hard

재시도 횟수가 끝이 났을때 연결을 계속할지 말지를 결정.
읽기전용으로 마운트될 경우엔 soft, 읽기/쓰기가 마운트될 경우엔 hard가 적합.
soft
로 마운트된 파일시스템은 프로세스가 멈추어지는 문제를 파악할 수 있음.

Intr

정지 프로세서를 죽이기 위한 인터럽트를 허용한다.
터미널에 대해 Ctrl+C를 누르고 백그라운드 프로세스인 경우 INT(2) 혹은 QUIT(3)신호를
보내면 다시 작동한다.

resize=n

nfs 서버에 있는 읽기 버퍼의 크기(byte 단위)

wsize=n

nfs 서버에 있는 쓰기 버퍼의 크기(byte 단위)