본문으로 바로가기

NFS를 이용해보자~

category IT/리눅스(linux) 2015. 2. 26. 18:06
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

1. NFS?

위키에서는 다음과 같이 정의하고 있습니다.

NFS는 Network File System의 약자로서 1984년에 썬 마이크로시스템즈가 개발한 프로토콜이다. 클라이언트 컴퓨터의 사용자가 네트워크상의 파일을 직접 연결된 스토리지에 접근하는 방식과 비슷한 방식으로 접근하도록 도와준다.

 

2. NFS 이용하기

1) 모든 작업은 CentOS 6.6을 기준으로 합니다. 우선 아래의 명령어를 이용해서 서버에 NFS가 설치되어 있는지 확인합니다.

rpm -qa | grep nfs-utils

만약 설치가 안됐다면 yum을 이용해서 설치합니다. 

yum install nfs-utils 

이미지처럼 인스톨 할건지 묻는 화면이 나오면 y를 눌러주시면 됩니다.

 

2) 설치가 끝났으면 NFS로 이용할 폴더를 지정합니다. 여기서는 share 폴더를 사용해보겠습니다. 다음 명령어로 /etc/exports 파일을 엽니다.

vi /etc/exports

파일을 열었으면 다음 내용을 추가해줍니다.

/share 192.168.0.100(rw, sync)

여기서 /shareNFS에서 이용할 폴더의 경로며 192.168.0.100은 허용 ip입니다. rw, sync 읽기 쓰기가 가능하며 동기화한다는 옵션입니다. 이밖에도 많은 옵션이 있으니 한번 찾아보세요.

 

3) 설정이 끝났으면 NFS를 실행합니다. 그리고 서버를 재부팅 할 때 자동으로 실행이 되도록 서비스등록을 합니다.

/etc/init.d/rpcbind start

/etc/init.d/nfs start

chkconfig nfs on

chkconfig rpcbind on

 rpcbindNFS가 RPC(Remote Procedure Call) 통신으로 이루어지는데 이를 관리하는 서비스입니다.

 

4) 그리고 정상적으로 공유가 됐는지 아래 명령어를 입력해서 확인해봅니다.

exportfs -v


5) 마지막으로 방화벽에 NFS에서 사용할 포트를 추가해줍니다. 기본적으로 사용하는 포트는 1112049인데 아래 명령어로 확인한 후 방화벽에 추가한 후 재시작합니다. 하단 이미지의 붉은색 상자로 표시된 부분인 추가해야하는 포트입니다.

rpcinfo -p



 포트를 확인했으면 /etc/sysconfig/iptables 파일을 열어 아래 내용을 추가합니다.

vi /etc/sysconfig/iptables

-A INPUT -m state --state NEW -m tcp -p tcp --dport 111 -j ACCEPT

-A INPUT -m state --state NEW -m udp -p udp --dport 111 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 2049 -j ACCEPT

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

그리고 방화벽 서비스를 재시작합니다. 

/etc/init.d/iptables restart 

 

6) 서버 쪽 작업은 끝났습니다. 이제는 클라이언트에서 동일하게 NFS가 설치되어 있는지 확인합니다. 설치가 되어있지 않다면 서버 측에서 수행한 작업을 동일하게 수행해줍니다.

rpm -qa | grep nfs-utils

yum install nfs-utils

 

7) NFS가 설치됐으면 실행 후 서비스로 등록해줍니다.

/etc/init.d/nfs start

chkconfig nfs on

 

8) 서버 쪽에서 공유한 폴더를 사용하기 위해 마운트합니다.

mount -t nfs 192.168.x.x:/share /share

에러없이 정상적으로 공유가 됐다면 재부팅 시에도 이용할 수 있도록 /etc/fstab 파일을 열어서 다음 내용을 추가해줍니다.

vi /etc/fstab

192.168.x.x:/share /share nfs defaults 1 2

입력한 6개의 필드중 번째 필드의 192.168.x.x:/share는 파일시스템장치로 여기서는 서버 아이피와 경로를 입력했습니다.

두 번째 필드는 마운트 포인트로 여기서는 클라이언트 경로 /share를 입력했습니다.

세 번째는 파일시스템을 입력하는 필드로 여기서 nfs를 입력했습니다.

네 번째는 마운트 옵션으로 defaultsrw, nouser, auto, exec, suid를 모두 뜻하는 옵션입니다.

다섯 번째는 덤프 옵션으로 덤프가 가능하도록 1을 입력했습니다.

마지막 필드는 File Sequence Check 옵션으로 fsck에 의한 무결성 검사 우선순위를 정하는 옵션입니다. 2는 우선순위를 두 번째로 정하는 것입니다. 보통 루트가 1순위이기 때문에 2를 기본으로 사용합니다.

설정은 이제 다 끝났습니다. 클라이언트의 share폴더에서 파일을 생성하시면  서버측 share폴더에서도 똑같이 파일이 있는것을 확인하실 수 있을겁니다.