본문 바로가기
OS/Cent OS

NFS

by 티옌.liy 2017. 3. 5.

NFS ( Network File System )

 

NFS는 RPC를 이용한 Server/Client 파일시스템 공유 프토토콜이다.

RPC는 원격 프로시저 절차 호출로, 네트워크 상에서 다른 컴퓨터에 있는 프로그램에게

서비스를 요청할때 사용하는 프로토콜이다. 요약하면, 네트워크에서 자료를 공유하는 것이다.

 

 

[ NFS 서버 설정에서 사용하는 파일 ]

▶ /etc/export

NFS 서버 설정 파일이다. 모든 파일과 디렉토리를 정의할 때 사용한다.

 

▶ /etc/fstab

NFS에서 설정한 공유 디렉토리를 클라이언트가 사용하는 파일. 부팅시 자동으로 마운트된다.

 

▶ /etc/sysconfig/nfs

NFS서버에서 제공하는 서비스를 위해 사용하는 모든 포트에 대한 정보를 설정하는 파일이다.

 

 

****[ Server 에서 ]****

 

[ NFS 패키지 설치와 공유 디렉토리 지정 ]

 

# yum -y install nfs-utils 명령어로 NFS를 설치후

# rpm -qa | grep nfs 로 잘 설치됬는지 확인한다.

 

이제, 클라이언트에게 공유를 허용할 디렉토리를 생성한다

# mkdir /var/server_share

 

클라이언트가 디렉토리에 접속해 파일을 읽고.쓰고,접근할 권한을 부여해준다.

# chmod -R 777 /var/server_share

 

NFS 설정을 한다.

# vim /etc/exports

 

( vim /etc/exports 의 내용 )

 

rw : 공유 디렉토리에 대한 읽기, 쓰기 권한 허용

sync : 파일 시스템 변경 시 즉시 이 변경사항을 동기화

no_root_squash : 클라이언트에서 사용자 루트로 공유 디렉토리에 접근시 NFS서버 시스템에서도 사용자 root로 인식하고 권한을 부여한다.

보안을 고려한다면 root_squash를 권장한다. 이 경우 클라이언트 사용자 root 서버에서 nfsnobody로 매핑되서 인식된다.

no_all_squash : 각 사용자아ㅢ 권한을 굥우 디렉토리에서도  허용

 

/etc/exports 파일에 설정한것을 리플래쉬 하자.

# exportfs -r

-> -a : /etc/exports 파일 읽기

    -r : /etc/exports 파일 다시 읽기

    -u [IP]:/[디렉토리]  :  입력한 디렉토리를 목록에서 제외.

    -v : 현재 공유목록을 확인

 

 

동적으로 서비스와 포트를 연결할대 사용하는 RPC 서비스를 관리하기 위한 rpcbind 서비스와 nfs-server 서비스를 활성화

# service rpcbind start

# service nfs start

 

rpcbind 서비스가 사용하는 111번포트가 열려있는지 확인

# lsof -i tcp:111

 

 

# ps -ef | grep rpc

 

 

현재 공유하는 목록을 확인한다.

# exportfs -v

 

 

 

 

 

[ 서버 시작 ]

rpcinfo 명령어는 rpc 프로토콜을 사용하는 서비스를 출력한다.

# rpcinfo -p

 

rpc.portmapper (111)

rpc를 사용하는 프로그램을 지정된 포트에 맵핑. 클라이언트에 서버의 서비스 포트 번호를 전달하여 통신

 

rpc.mountd ( 유동 )

NFS client가 마운트 요청시 /etc/exports 파일에 설정된 내용대로 요청을 처리

 

rpc.rquotad ( 유동 )

NFS에 마운트한 로컬 사용자를 quota를 처리한다.

 

rpc.nfsd ( 2049 )

rpc.mountd 데몬에 의해 마운트 된 공유 디렉토리에 읽기,쓰기 작업을 수행한다.

 

rpc.lockd ( 유동 )

파일잠금으로 여러 사용자가 동시에 파일을 수정하는것을 방지

 

rpc.statd ( 유동 )

rpc.lockd와 함께 작동한다. NFS 서버가 비정상적으로 종료되거나 리부팅 할때 복구하는 역할이다.

 

유동적인 포트번호는 방화벽에 의해 접근이 차단되므로, 접속 포트를 유동에서 고정으로 변경해줘야한다.

# vim /etc/sysconfig/nfs

( 위 문구를 /etc/sysconfig/nfs에 추가 )

 

 

 

 

[ Client 에서 설정 ]

 

NFS 설치  # yum -y install nfs-utils

 

서비스를 재시작하여 설정들을 적용한다.

# service rpcbind start

# service nfs start

 

NFS서버가 제공하는 디렉토리를 마운트 하기 위해 디렉토리 생성

# mkdir /mnt/client_share

 

NFS서버가 어떤 디렉토리를 제공하는지 알기 위해서

# showmount -e 100.100.100.110

 

mount 명령어로 파일 시스템의 타입을 NFS로 지정하고 서버의 IP 주소와 디렉토리 이름을 지정후에 마운트 지정한다.

# mount -t nfs 100.100.100.110:/var/server_share/ /mnt/client_share/

 

마운트가 잘 되었는지 확인

# mount | grep server

 

테스트를 위해 마운트된 디렉토리에 test용 디렉토리를 추가해보았다.

 

잘 추가됬다. 이로써 연결됬음이 증명됬다.

 

 

 

이제 마운트를 영구 설정해주기 위해서 아래 문구를 추가.

# vim /etc/fstab

 

 

 

재부팅 이후에도 잘 마운트 되어있는지 확인

 

[완료]

 

 

'OS > Cent OS' 카테고리의 다른 글

IPTABLES  (0) 2017.03.12
아파치(Apach) 인증 종류와 방법  (0) 2017.03.12
아파치 서버 서비스 시작과 PHP 사용  (0) 2017.03.12
NTP - 시간 동기화 프로토콜  (0) 2017.03.04
FTP 보안설정2 ( Passive Mode )  (0) 2017.03.04
FTP 보안 설정1 ( ftpusers, Pam, Chroot )  (0) 2017.03.04

댓글