NFS 설정
NFS (Network File System) 는 다른 호스트의 파일시스템의 일부를 자신의 디렉토리처럼 사용할 수 있게하는 공유폴더 연결 같은 개념이다.
서버 2대로 구성을 한다면, 한 대 (master) 에서는 특정 디렉토리를 공유설정하고, 또 다른 한 대 (slave) 는 공유된 디렉토리를 마운트하여 사용이 가능하다
실제로 데이터가 있는 디렉토리는 마스터이고 슬레이브는 실제로는 데이터는 없으나 네트워크 마운트를 통해 자신의 서버에 데이터가 있는것 처럼 인식하게 된다.
하지만 아래와 같은 단점이 있을 수도 있겠다.
• 마스터 서버가 다운되거나 문제가 생기는 경우 슬레이브는 데이터를 찾지 못하므로 서비스 불능이 될 수 있는 문제점이 있다. (주기적인 백업을 해두도록 한다) • 마스터 서버에서는 로컬의 하드디스크를 READ 하지만 슬레이브에서는 Network 로 마스터 서버의 데이터를 READ 하므로 용량이 큰 파일에는 속도가 느리다. |
주로 간단한 웹서비스들의 자료 공유나 로드밸런서 서비스를 위한 동기화를 위해 사용된다.
여러 사용자가 각각 계정을 통하여 자료를 공유하기 위한 목적이라면 samba 가 자료 공유를 위한 목적에 더 부합한다고 볼 수 있다.
NFS 설치 및 설정
1. NFS 설치 (마스터 서버에 설치하며 슬레이브쪽에는 portmap 만 있으면 된다)
$ yum install portmap nfs-utils |
∗ 일부 리눅스 버젼에서는 portmap 은 rpc-bind 라는 이름으로 제공되기도 한다.
2. /etc/exports 파일을 열어서 아래와 같이 삽입해주면 된다. (마스터)
/home 192.168.0.1(rw,all_squash) 공유할 디렉토리 슬레이브서버아이피(권한) |
3. 공유디렉토리에 대한 옵션
rw : 읽기, 쓰기 가능 ro : 읽기만 secure : 클라이언트 마운트 요청시 포트를 1024 이하로 함 noaccess : 엑세스 거부 root_squach : 클라이언트의 root 가 서버의 root 권한을 획득하는것을 막음 no_root_squash : 클라이언트의 root 와 서버의 root 를 동일하게 함 sync : 파일시스템이 변경되면 즉시 동기화 한다 all_squach : root를 제외하고 서버와 클라이언트의 사용자를 동일한 권한으로 설정 no_all_squach : root를 제외하고 서버와 클라이언트 사용자들을 하나의 권한을 가지도록 설정 |
4. 서비스 데몬 시작 (마스터)
$ /etc/init.d/rpcbind start $ /etc/init.d/nfs start |
∗ 반드시 rpcbind 를 먼저 실행하고 나서 nfs 를 실행한다.
5. 마스터 서버에서 데몬을 실행했다면 공유가 되고 있는지는 아래 명령어로 확인한다.
$ exportfs -v /home 192.168.0.1(rw,wdelay,root_squash,all_squash,no_subtree_check,sec=sys,rw,root_squash,all_squash) |
6. 슬레이브 서버에서 마스터 서버의 공유 디렉토리를 마운트 해보자
$ mkdir /iwinvhowm $ mount -t nfs -o nolock 마스터서버아이피:/home /iwinvhome |
마스터서버의 공유디렉토리로 설정한 /home 디렉토리를 슬레이브 서버의 /iwinvhome 디렉토리로 마운트 하게된다.
이제 자신의 데이터 처럼 마스터서버의 데이터를 사용할 수 있으나 실제 데이터는 하나이기 때문에 데이터를 수정하게 되면 원본 데이터도 수정되므로 조심해야 한다.
NOTE
NFS 는 간단히 디렉토리를 공유할때 사용되며 실제로 네트워크 공유이므로 슬레이브에 데이터가 백업이라는 개념이 아니다. 혹시라도 NFS 로 서비스를 구동중이라면 반드시 주기적으로 마스터와 슬레이브에 주기적인 데이터 백업이 필요하다. |
관련링크
관련메뉴얼
- rsync 동기화 (http://help.iwinv.kr/manual/read.html?idx=93)
- samba (http://help.iwinv.kr/manual/read.html?idx=299)