본문 바로가기
IT 실무/서버 관리

NFS(Network File System)으로 폴더 공유하기

by 지식id 2018. 3. 3.
반응형

NFS를 이용하면 외부 호스트의 특정 디렉토리를 마치 로컬 디렉토리인 것처럼 마운트하여 사용할 수 있다. 쉽게 설명하면 내 컴퓨터에 폴더 하나가 있어서 마음대로 접근하고 파일을 옮길수 있는데 그 폴더는 서버-클라이언트 시스템을 이용해서 연결된 다른 컴퓨터의 폴더인 것이다. 윈도우 공유폴더와 아주 흡사하다.



NFS서버 설정


/etc/exports 설정을 통해 공유할 폴더를 설정할 수 있다. 단순히 폴더를 나열하면 된다. 허가할 호스트 등 추가 옵션을 선택할 수 있다.


/pubData    192.168.1.2


/pubData를 공유 대상으로 설정한다. 옵션에 호스트를 적으면 해당 호스트에만 공유를 허가한다는 것이다.


/someFiles    192.168.3.0/255.255.255.0(rw,root_squash)


/someFiles를 공유 대상으로 설정한다. 192.168.3으로 시작하고 255.255.255.0의 넷마스크를 가진 모든 호스트에게 공유를 허가한다. rw옵션을 통해 읽기 쓰기를 허용한다. root_squash옵션을 통해 클라이언트의 root 권한을 무시하고 nobody권한을 부여한다. 

이렇게 호스트 지정 외에도 다양한 옵션들이 있다. 


주요 옵션

 ro 

 읽기 전용으로 공유한다.

 rw

 읽기 쓰기를 허용한다.

 root_squash

 클라이언트의 root권한을 무시한다.

 no_root_squash

 클라이언트의 root권한을 인정한다.

 all_squash

 모든 권한을 무시하고 nobody권한을 부여한다.

 no_subtree_check

 하위 디렉터리를 검사하지 못하도록 한다.

 secure

 포트 번호 1024 이하의 요청에만 허가한다.

 async

 데이터 변경에 대비해 비동기처리되도록 한다.

 anonuid

 접근하는 사용자 권한을 특정 uid로 매핑시킨다.

 anongid

 접근하는 그룹 권한을 특정 gid로 매핑시킨다.



# exportfs 


익스포트 목록을 관리할 수 있다. 단순히 export라고 하면 export된 목록을 조회한다.




NFS 클라이언트 설정


1. mount 명령어를 이용할 수도 있고 mount.nfs 명령어를 이용할 수도 있다.


# mount -t nfs 192.168.1.2:/pubData /mnt/data

# mount.nfs 192.168.1.2:/pubData /mnt/data


위 두 명령어 모두 192.168.1.2 호스트에 있는 /pubData 디렉토리를 로컬 디렉토리인 /mnt/data 폴더로 마운트 시키는 기능을 한다.


2. /etc/fstab 파일에 등록하는 방법도 있다.


192.168.1.2:/pubData    /mnt/data    nfs    soft    0    0


디바이스명    마운트포인트    파일시스템 종류    옵션*    덤프여부    fsck체크여부



tab단위로 구분되며, mount명령어와 흡사하게 리모트 대상폴더, 마운트 폴더를 적어준다. 그리고 각종 옵션을 명시할 수 있다.



*주요 옵션

timeo : 타임아웃 발생 시 재전송 요구를 보내는 시간으로 1/10초 단위

retrans : 타임아웃 발생 시 재전송 요구 횟수

soft : 위 retrans 설정 횟수만큼 재요청을 시도한다.

hard : retrans와 무관하게 무한정 재시도 한다. 즉 retrans는 soft옵션일때만 사용되는 옵션이다. retrans와 soft를 명시하지 않으면 기본적으로 hard옵션이다.

resize : 한번에 읽어들이는 버퍼 바이트값

wsize : 한번에 쓰는 버퍼 바이트값

fg : Foreground 형태로 마운트를 실행하고, 실패하면 중단한다.

bg : 마운트에 실패하면 Background로 마운트를 다시 시도한다.



# showmount


마운트된 목록을 조회한다.


# showmount -e : 서버에서 익스포트된 목록을 조회한다.

# showmount -a : 모든 원격 마운트 정보를 보여준다.


반응형

댓글