블로그 이미지
BJcomm
bjcomm

공지사항

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

글 보관함

calendar

1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
11-22 00:03

NFS 서버 구축

2014. 11. 25. 17:27 | Posted by bjcomm

1) NFS 서버

NFS는 Network File System의 약어로 썬마이크로 시스템즈에서 개발한 네트웍상에서 파일시스템을 공유하도록 설계된 파일시스템의 한종류이다. 다른 호스트에 있는 파일시스템의 일부를 자신의 디렉토리인것처럼 사용할수 있도록 해주는 것이 NFS(Network File System)이다. 즉 네트웍상에 디스크를 한서버에 집중관리하고 나머지 시스템들은 그것을 공유하여 사용할 수 있게 해주는 것이다. 하지만 보안상의 문제로 인해 NFS서버의 사용을 점점 제한해 가는 추세이다. NFS설정은 파일시스템을 share하는 서버의 설정과 서버의 파일시스템을 마운트해가는 클라이언트 설정으로 나누어 볼수 있다.

레드햇 기반의 리눅스 배포판을 사용하는 경우 NFS서버가 이미 설치되어 있다.

# rpm --qa | grep nfs

nfs-util-0.3.1-13hl

설치되어 있지 않은경우 http://ftp.kreonet.re.kr/pub/Linux/redhat/ 에서
nfs-utils-version.i386.rpm을 다운 받아서 설치한다.

# rpm –Uvh nfs-utils-version.i386.rpm

NFS 서비스 데몬 프로세스들

1. rpc.mountd :NFS 클라이언트가 마운트를 요청하면 이 데몬프로세스가 /etc/export 파일설정에 따라 마운트 요청을 처리한다.

2. rpc.nfsd : rpc.mountd 에 의해 마운트된 디렉토리에 대해 읽고,쓰는 작업들을 처리해주는 데몬프로세스이다.

3. rpc.rquotad : NFS 파일시스템을 마운트한 로컬 사용자에 대해 quota를 처리한다.

4. rpc.lockd : 파일 잠금을 통해 여러 사용자가 한 파일을 수정하는것을 방지한다.

5. rpc.statd : rpc.lockd와 함께 사용되며 파일 잠금의 해제와 복구를 담당한다.

/etc/exports 파일 설정예제

share-directory client1(options,,,) client2(options,,,)

share-directory : 공유할 디렉토리명

client1 : 공유 디렉토리에 접근할수 있도록 허용된 호스트들

options : 접근 권한설정

ro : 클라이언트는 공유 디렉토리에 대해 읽기만 가능하다,

rw : 클라이언트는 공유 디렉토리에 대해 읽기/쓰기가 가능하다.

no_root_squash : 클라이언트의 root는 서버의 root와 같은 권한을 가진다.

No_subtree_check : 공유된 디렉토리내에 있는 서브 디렉토리들을 공유에서 제외 시키는 경우 설정

[root@apple /]# cat /etc/exports

/home/user01 *.gcc.go.kr(ro)

/export/ftp/pub 192.168.1.1/255.255.255.0(ro)

/ banana(rw),kiwi(rw,no_root_squash)

NFS 서버 데몬 구동

# /etc/init.d/portmap start

# /etc/init.d/nfs start

# exportfs -v

현재 커널에서 알고 있는 익스포트 리스트를 출력한다

# exportfs -ar

/etc/export 파일이 커널에 적용되도록 한다.

# nfsstat

NFS 상태 정보를 출력한다.

2) NFS 클라이언트 설정

서버에서 공유하도록 설정되어 있는 디렉토리를 자신의 디렉토리에 마운트 한다. 마운트는 root가 직접 작업할 수도 있고 시스템 부팅시 자동으로 마운트 하도록 설정할 수도 있다.

NFS 클라이언트 데몬은 nfsd이다.

# /etc/init.d/nfslock start

수동으로 서버의 파일시스템을 마운트 하는 명령


[root@apple /]# mount -t nfs NFS-서버:/export/ftp/pub /usr/local/pub

마운트 실행시 사용할수 있는 옵션들

-o timeo=10 : NFS 서버와 연결이 끊어진 경우 timeo에서 지정한시간(1/10초단위) 기다렸다가 경고 메시지를 발생

-o rsize=1024 wsize=1024 : 읽고/쓰기 버퍼의 크기를 설정한다.(1024KB=1M)

-o soft : remote mount를 실행할 때 성공하지 못하면 timeo 까지만 retry 후 에러 메시지를 발생하고 종료

-o hard : remote mount가 성공할 때 까지 무한시 재시도한다. (디폴트값이다)

-o bg : 첫번째 마운트 시도가 실패인경우 백그라운드로 계속 마운트를 재시도한다.

시스템 부팅시 자동으로 서버의 파일시스템을 마운트하도록 설정한다.

[root@apple /]# cat /etc/fstab

NFS-서버:/export/ftp/pub /usr/local/pub nfs defaults