리눅스 특강 & 리눅스

리눅스 NFS 설정하기

gandus 2011. 6. 8. 11:46

------------각조장들------------

(nfs 서버 설치 확인)

  # rpm -qa | grep nfs      
nfs-utils-lib-1.0.8-3.1
nfs-utils-1.0.8.rc2-4.FC5.2
없으면 yum install portmap nfs-utils


  # rpm -qa | grep portmap
portmap-4.0-65.2.2.1
없으면 yum install portmap nfs-utils


(nfs/portmap 서버 데몬 실행)

  # /etc/rc.d/init.d/portmap start
  # /etc/rc.d/init.d/nfs start

(데몬 실행 확인)

  # rpcinfo -p


(공유 디렉토리 설정)

  # mkdir/home/자기계정/mnt/nfs

  폴더는 아무꺼나 지정 해도 되요

(공유 목록 관리)

  # vi /etc/exports 들어가서

    /home/자기계정/mnt/nfs 222.104.154.90(rc,sync)  -> 자기 조원 아이피 들 다 추가
    
    위의 설정은 222.104.154.90 호스트에게만 디렉토리를 읽고 쓸 수 있게 공유한다는 의미.

(서버 리스타트)

  # /etc/rc.d/init.d/portmap restart
  # /etc/rc.d/init.d/nfs restart



(exportfs 명령을 이용하여 /etc/exports 파일에 설정한 공유목록이 정상적으로 공유가 되는지 확인.)
  # exportfs -v
     
  /home/자기계정/mnt/nfs 222.104.154.90(rc,sync)
  /home/자기계정/mnt/nfs 222.104.154.91(rc,sync)
  /home/자기계정/mnt/nfs 222.104.154.92(rc,sync)
  /home/자기계정/mnt/nfs 222.104.154.113(rc,sync)


(디렉토리 권한주기)
 
 # chmod 777 nfs



(NFS를 재시작 할때마다 포트가 변경되므로 방화벽을 적용하기 쉽지 않다. 그래서 모든 포트를 고정해보자.)
# vi /etc/init.d/nfslock
 ( daemon rpc.statd 부분을 daemon rpc.statd -p 4000으로 수정
  && STATDARG-"$STATDARG -H .....
 daemon rpc.statd -p 4000
 
(vi /etc/sysconfig/nfs 파일을 생성하여 rpc.lockd과 rpc.mountd의 포트롤 각각 4001번과 4002 번으로 하자)
  #vi /etc/sysconfig/nfs
  LOCKD_TCPPORT=4001
  LOCKD_UDPPORT=4001
  MOUNTD_PORT=4002
  비어 있다면 그대로 타이핑

(vi /etc/service 파일을 열어 아래와 같이 기존에 설정되어 있는 4003 포트를 주석으로 설정하고 rquotad를 추가한다.)
  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-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -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 -m state --state NEW -m tcp -p tcp --dport 4000:4004 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 4000:4004 -j ACCEPT

111번, 2049, 4000~4003 번까지 tcp,udp 포트를 허용해준다. 그리고 iptables 를 다시 시작한다.
#/etc/init.d/iptables restart

이제 방화벽을 적용하여 nfs서버를 운영할수 있다.


(방화벽 사용 안할려면)
  #lokkit
    여기서 방화벽 비활성화 




---------------클라이언트-----------------------



(nfs 서버 설치 확인)

  # rpm -qa | grep nfs      
nfs-utils-lib-1.0.8-3.1
nfs-utils-1.0.8.rc2-4.FC5.2
없으면 yum install portmap nfs-utils


  # rpm -qa | grep portmap
portmap-4.0-65.2.2.1
없으면 yum install portmap nfs-utils


(nfs/portmap 서버 데몬 실행)

  # /etc/rc.d/init.d/portmap start
  # /etc/rc.d/init.d/nfs start

(데몬 실행 확인)

  # rpcinfo -p


(mount 명령어를 이용하여 NFS 서버의 공유디렉토리를 사용해보자)

  # mkdir /mnt/nfs
    // 조장폴더를 사용할 자기컴 폴더 만들기
  # mount -t nfs 222.104.154.77:/home/조장계정/mnt/nfs /mmt/nfs
    //mount -t nfs (조장IP주소):(조장디렉토리) /자기 폴더명


(만약 마운트가 되지 않는다면 nfs 서버의 방화벽 사용을 중지한다.
 # /etc/init.d/iptables stop

(마운트 된 자기 폴더에서 mkdir 또는 touch 파일 생성)

 # mkdir aaa
 # touch bbb.txt

 이렇게 하면 조장 디렉토리에도 파일 생성 되고 자기 디렉토리에도 파일 생성됩니다.

(만약 부팅시 자동으로 마운트해야한다면 /etc/fstab 에 추가한다.
 # vi /etc/fstab

  /dev/hdc       /media/cdrecorer ......
   222.104.154.77:/home/조장계정 /mnt/nfs nfs defaults 1 2
(재부팅후 정상적으로 마운트 되는지 확인해 본다.)


(설정된 마운트를 해제하려면)
  # umount/mnt/nfs


(정지)
  # /etc/rc.d/init.d/nfs stop
  # /etc/rc.d/init.d/portmap stop
  # service portmap restart
  # service nfs restart