본문 바로가기

Linux

[CentOS 6.x]NFS 설정 및 관련 포트 고정 설정

NFS(네트워크 파일 시스템) 설정 (CentOs 6.x)기준

아래와 같이 122.120번 서버의 /backup,/files 의 디렉토리를 현재 서버 (xxx.xxx.111.111 라고 가정) 에 마운트를 하겠다


Master 122.120

client 111.111

[root@localhost /home/chat/www/files]# df -Th
Filesystem           Type   Size  Used Avail Use% Mounted on
/dev/sda2            ext4   116G   92G   19G  84% /
tmpfs                tmpfs  3.9G     0  3.9G   0% /dev/shm

xxx.xxx.122.120:/home/backup/
                     nfs    917G   44G  827G   6% /home/backup
xxx.xxx.122.120:/home/chat/www/files/
                     nfs    917G   44G  827G   6% /home/chat/www/files


Master 122.120



1. 아래의 파일이 있는지 확인 (없으면 yum 설치 진행)
[root@Master]# rpm -qa | grep nfs
nfs-utils-1.2.3-64.el6.x86_64
nfs4-acl-tools-0.3.3-6.el6.x86_64
nfs-utils-lib-1.1.5-11.el6.x86_64

#[root@Master] # yum install nfs


NFS 포트 고정


2. NFS 포트 고정

root@Master]# vi /etc/sysconfig/nfs // (iptables 를 사용할 경우 유동포트를 고정포트로 적용 해야 함)

LOCKD_TCPPORT=4001
LOCKD_UDPPORT=4001
MOUNTD_PORT=4002

#RQUOTAD_PORT=875
#STATD_PORT=662
#STATD_OUTGOING_PORT=2020




해당 파일에 들어가서 97번 줄 쯤에 있는
daemon rpc.lockd -p 4000 를 추가 해 준다.

root@localhost /]# vi /etc/init.d/nfslock

 90 stop() {
 91         # Only root can stop the service
 92         [ $uid -ne 0 ] && exit 4
 93
 94         # Stop daemons.
 95         if [ -n "`pidofproc lockd`" ]; then
 96                 echo -n $"Stopping NFS locking: "
 97                 daemon rpc.lockd -p 4000
 98                 killproc lockd -KILL
 99                 echo
100         fi


방화벽에 NFS 관련 포트 룰 추가 (아래의 룰을 추가 해주면 됨)

vi /etc /sysconfig/iptables

#nfs 설정 포트 시작
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 2049 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m state --state NEW -m udp --dport 2049 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 111 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m state --state NEW -m udp --dport 111 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 892 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m state --state NEW -m udp --dport 892 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 875 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m state --state NEW -m udp --dport 875 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 662 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m state --state NEW -m udp --dport 662 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 4000:4004 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m state --state NEW -m udp --dport 4000:4004 -j ACCEPT
#nfs 설정 포트 끝

※ 주의 그냥 복사 하지 말고 iptables 의 룰에 맞게 추가 해줘야 함.

ex)

:RH-Firewall-1-INPUT - [0:0]
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPU

방화벽 chain룰이 위 같을 경우

-A INPUT -m state --state NEW -m udp -p udp --dport 2049 -j ACCEPT 같은

다른 chain 으로 작성 할 시 적용 되지 않는다.


-A RH-Firewall-1-INPUT -p udp -m state --state NEW -m udp --dport 4000:4004 -j ACCE


7410 번 째 줄 쯤에 있는 pxc-splr 4003 포트 2개를 주석 처리 후

rquotad 4003 포트 2개를 추가 한다.


vi /etc/services

7409 #pxc-splr-ft     4003/tcp                # pxc-splr-ft
 7410 #pxc-splr-ft     4003/udp                # pxc-splr-ft
 7411 rquotad         4003/tcp                # rpc.rquotad tcp port
 7412 rquotad         4003/udp                # rpc.rquotad udp port

::set nu


3. 공유할 디렉토리 설정



공유할 디렉토리 설정

vi /etc/exports

/home/backup xxx.xxx.116.111(rw,sync)
/home/files xxx.xxx.116.111(rw,sync) 관련 옵션은 아래에 따로 정리 함.                                             

5. NFS 포트 확인

[root@localhost files]# rpcinfo -p localhost
   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  39993  status
    100024    1   tcp  39340  status
    100011    1   udp    875  rquotad
    100011    2   udp    875  rquotad
    100011    1   tcp    875  rquotad
    100011    2   tcp    875  rquotad
    100005    1   udp   4002  mountd
    100005    1   tcp   4002  mountd
    100005    2   udp   4002  mountd
    100005    2   tcp   4002  mountd
    100005    3   udp   4002  mountd
    100005    3   tcp   4002  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   4001  nlockmgr
    100021    3   udp   4001  nlockmgr
    100021    4   udp   4001  nlockmgr
    100021    1   tcp   4001  nlockmgr
    100021    3   tcp   4001  nlockmgr
    100021    4   tcp   4001  nlockmgr


5. NFS 서비스 시작 및 서비스 등록

# /etc/init.d/iptables restart
# service
rpcbind start // #/etc/init.d/rpcbind start
# service nfslock start //  #etc/init.d/rpcbind start
# service nfs start //         #etc/init.d/rpcbind start


#chkconfig --level 35 nfs on
#chkconfig --level 35 nfslock on
#chkconfig --level 35 rpcbind on


client 111.111

1. 아래의 파일이 있는지 확인 (없으면 yum 설치 진행)


[root@Master]# rpm -qa | grep nfs
nfs-utils-1.2.3-64.el6.x86_64
nfs4-acl-tools-0.3.3-6.el6.x86_64
nfs-utils-lib-1.1.5-11.el6.x86_64
#

[root@Master] # yum install nfs


2. NFS 서비스 시작 및 서비스 등록


# /etc/init.d/iptables restart

# service
rpcbind start // #/etc/init.d/rpcbind start
# service nfslock start //  #etc/init.d/rpcbind start
# service nfs start //         #etc/init.d/rpcbind start


#chkconfig --level 35 nfs on
#chkconfig --level 35 nfslock on
#chkconfig --level 35 rpcbind on


3. 정상 공유 확인 및 마운트

[root@Client]# showmount -e 1xx.xxx.122.120 (마스터서버가 공유를 잘 하고 있는지 확인)
Export list for xxx.xxx.122.120:
/home/files 1xx.xxx.116.111
/home/backup         1xx.xxx.116.111

위 명령어로 확인이 되면 마운트!

#mount -t nfs xxx.xxx.122.120:/home/backup/ /home/backup

#mount -t nfs xxx.xxx.122.120:/home/files/ /home/files/

마운트 -파일시스템 nfs 마스터ip:경로 클라이언트경로


4. 재부팅시 자동 마운트 등록

vi /etc/rc.local

mount -t nfs 1xx.xxx.122.120:/home/backup/ /home/backup

mount -t nfs 1xx.xx.122.120:/home/files/ /home/files/

위 명령어 2개를 그대로 복사해서 /etc/rc.local 에 붙여준다.

/rc.local 파일은 부팅이 완료 되고 난 직후 해당 파일에 입력된 명령어를 실행 시켜 준다.


NFS 관련 옵션

rw : 읽기, 쓰기 가능
ro : 읽기만 가능
secure : 클라이언트 마운트 요청시 포트를 1024 이하로 한다.
noaccess : 엑세스 거부
root_squach : 클라이언트의 root가 서버의 root 권한을 획득하는 것을 막는다.
no_root_squash : 클라이언트의 root와 root를 동일하게 한다.
sync : 파일 시스템이 변경되면 즉시 동기화 한다.
all_squach : root를 제외하고 서버와 클라이언트의 사용자를 동일한 권한으로 설정 한다.
no_all_squach : root를 제외하고 서버와 클라이언트의 사용자들을 하나의 권한을 가지도록 설정한다.