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 |
댓글