AWS에서 NFS 서버 세팅

munilive
Written by munilive on (Updated: )
  1. 서버로 사용할 인스턴스 생성
    • Security Group 설정에서 Type을 All traiffic 선택 Source를 172.31.0.0/16 입력
    • 172.31.0.0/16 은 서버를 위치할 VPC 의 아이피 대역을 의미
      • 개별로 포트 설정을 하고 싶으면 아래 포트를 TCP/UDP 모두 열어줌
        2049, 111, 32769, 32803, 892, 875, 662
  2. 서버로 사용할 인스턴스에 NFS 설치
    yum install nfs-utils nfs-utils-lib
    
  3. /etc/sysconfig/nfs 파이을 열어 아래 항목의 주석을 풀어줌
    vi /etc/sysconfig/nfs
    
    LOCKD_TCPPORT=32803
    LOCKD_UDPPORT=32769
    MOUNTD_PORT=892
    RQUOTAD_PORT=875
    STATD_PORT=662
    STATD_OUTGOING_PORT=2020
    
    • 주석을 푸는 항목들은 NFS 사용시 이용되는 포트들을 고정시키기 위한 작업임.
    • Security Group 설정에서 위에 설정한 포트와 2049, 111 만 열어도 문제 없음
  4. /home/nfs 폴더 생성(공유할 폴더)
    mkdir /home/nfs
    
  5. /etc/exports 에 공유폴더 설정
    vi /etc/exports
    
    • 입력 내용
      /home/nfs 172.31.0.0/16(rw,sync,insecure,all_squash)
      
    • 옵션 설명
      • ro : 읽기 전용으로 공유한다. (기본)
      • rw : 읽기/쓰기 모드로 공유한다.
      • root_squash : 클라이언트의 root 를 익명 사용자(nobody)로 매핑한다. (기본)
      • no_root_squash : 클라이언트의 root 를 서버의 root 로 매핑한다.
      • all_squash : 모든 사용자를 익명 사용자(nobody)로 매핑한다.
      • sync : 클라이언트와 서버간 동기적 통신을 한다. (기본, 안전성 향상)
      • async : 클라이언트와 서버간 비동기 통신을 한다. (속도 향상)
      • secure : 마운트 요청 시 포트를 1024 이하로 한다. (1024 이하 포트는 root 만 설정 가능, 기본)
      • insecure : 마운트 요청 시 1024 포트 이상도 허용한다.
      • noaccess : 엑세스 거부
      • no_all_squach : root를 제외하고 서버와 클라이언트의 사용자들을 하나의 권한을 가지도록 설정한다.

        설정관련 참고: http://linux.die.net/man/5/exports

  6. 서비스 시작 및 동작 확인
    service rpcbind start
    service nfslock start
    service nfs start
    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 662 status
    100024 1 tcp 662 status
    100005 1 udp 892 mountd
    100005 1 tcp 892 mountd
    100005 2 udp 892 mountd
    100005 2 tcp 892 mountd
    100005 3 udp 892 mountd
    100005 3 tcp 892 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 32769 nlockmgr
    100021 3 udp 32769 nlockmgr
    100021 4 udp 32769 nlockmgr
    100021 1 tcp 32803 nlockmgr
    100021 3 tcp 32803 nlockmgr
    100021 4 tcp 32803 nlockmgr
    
  7. 서비스 등록하기 (리부팅시에도 자동실행)
    • chkconfig 를 통하여 아래 3가지 서비스의 2,3,4,5 에 on 되어 있는지 확인 없으면 아래 명령을 통하여 서비스를 하나씩 on 처리함
     chkconfig nfs on
     chkconfig nfslock on
     chkconfig rpcbind on
    
  8. 클라이언트에 nfs 설치
    yum install nfs-utils nfs-utils-lib
    
  9. 공유디렉토리 연결(매번 연결 설정 해줘야함)
    mount 172.31.3.63:/home/nfs_temp /home/munilive/public_html/data/temp
    
  10. 공유디렉토리 영구 설정
    • 서버리부팅해도 자동으로 연결함.
      vi /etc/fstab
      
      172.31.3.63:/home/nfs_temp /home/munilive/public_html/data/temp nfs hard 0 0
      
    • 추가. NFS 서버 Public Domain을 CNAME 으로 연결해 놓으면 아이피가 아닌 도메인으로도 설정가능
      nfs.munilive.com:/home/nfs_temp /home/munilive/public_html/data/temp nfs hard 0 0
      

Comments

comments powered by Disqus