★NFS (Network File system)
-RPC를 이용하여 리모트 호스트 사용자가 원격지 컴퓨터에 있는 파일을 마치 로컬 파일에 엑세스 하듯이
사용 할 수있도록 하는 클라이언트/서버형 파일시스템 공유 프로토콜
★RPC(Remote Procedure Call) procedure-절차
-원격 프로시저 절차 호출 네트워크 상의 다른 컴퓨터에 위치하고 있는 프로그램에 서비스를 요청하는데
사용되는 프로토콜
★NFS서버 설정에서 사용되는 파일
/etc/export
-NFS 서버 설정 파일이며,NFS 서버에서 파일 공유를 위해 사용되는 모든 파일과 디렉토리를 정의
하기 위해 사용
/etc/fstab
-NFS 서버에서 설정한 공유 디렉토리를 NFS 클라이언트에서 사용하기 위해 사용되는 파일.설정 후 자동 마운트
/etc/sysconfig/nfs
-NFS 서버에서 제공하는 NFS 서비스를 위해 사용되는 모든 포트에 대한 정보를 설정하는 파일
★NFS패키지 설치와 공유 디렉토리 지정
yum install nfs-utils
rpm -qa | grep nfs
mkdir /var/server_share //클라이언트에게 공유를 허용할 디렉토리 생성
chmod -R 777 /var/server_share //클라이언트가 이 디렉토리에 접속해서 파일을 읽기 및 쓰기권한을 사용설정
vi /etc/exports //공유 디렉토리 및 옵션을 정의해 설정
/var/server_share - 클라이언트에게 공유를 허용할 디렉토리 이름
100.100.100.0/24 - 공유된 디렉토리에 접근 가능한 클라이언트 IP범위
rw - 공유 디렉토리에 대한 읽기 및 쓰기 권한을 허용
sync - 파일 시스템 변경시 즉시 이 변경 사항을 동기화 하라는 의미
no_root_squash - root로 공유 디렉토리에 접근 시 NFS서버 시스템에서도 사용자 root로 인식하고
권한을 부여함을 의미
no_all_squash - 각 사용자의 권한을 공유 디렉토리에서도 허용함을 의미
exportfs -r // /etc/exports 파일에 설정한 공유 디렉토리 목록을 리플래쉬 하라는 명령어
exportfs명령어는 nfs서버를 다시 시작하지 않고도 공유 목록을 수정할수 있다.
-a : /etc/exports파일을 읽어들인다
-r : /etc/exports파일을 다시 읽어들인다.
-u [ip]:/[디렉토리] - 입력한 디렉토리를 공유목록에서 제외한다.
-v : 현재의 공유목록을 확인한다
service rpcbind start
service nfs start
- 동적으로 서비스와 포트를 연결할때 RPC서비스를 관리하기 위한 rpcbind 서비스와 nfs-server 서비스를 활성화
lsof -i tcp:111
- rpcbind 서비스가 사용하고 있는 포트111번이 열려 있는지 확인
ps -ef | grep rpc
- nfsd 데몬과 함께 id와 이름을 매칭시켜주는 rpc.idmapd 데몬과 NFS클라이언트의 접근을 허용하는
rpc.moutd데몬도 같이 시작됐음을 알 수 있다.
★NFS 서버 시작
rpcinfo -p
-rpc프로토콜을 사용하는 서비스를 출력
-RPC는 일부 서비스의 포트를 동적(유동)으로 사용하여 NFS서비스 사용 시 포트를 확인 할 필요가 있다.
rpc.portmapper (111)
-rpc를 사용하는 프로그램을 지정된 포트에 맵핑시킨다.
rpc.mountd(유동)
-NFS 클라이언트가 마운트를 요청하면 /etc/exports 파일에서 설정된 내용에 따라 마운트 요청을 처리
rpc.rquotad(유동)
-NFS 파일 시스템을 마운트한 로컬 사용자에 대해 quota를 처리한다.
rpc.nfsd(2049)
-rpc.mountd 데몬에 의해 마운트가 이루어지면 마운트된 공유 디렉토리에 읽고 쓰는 등의 작업을 수행하게 해준다.
rpc.locked(유동)
-파일 잠금을 통해 여러 사용자가 동시에 한 파일을 수정하는 것을 방지한다.
rpc.statd(유동)
-rpc.locked와 함께 작동하면서 NFS서버가 비정상적으로 종료되었거나 리부팅 했을 경우 복구역할
vi /etc/sysconfig/nfs
-유동적인 포트번호는 방화벽에 의해 접근이 차단된다. 따라서 이경우 접속 포트를 유동에서 고정으로 변경해야 함.
STATD_PORT=4000
LOCKD_TCPPORT=4001
LOCKD_UDPPORT=4001
MOUNTD_PORT=4002
RQUOTAD_PORT=4003
★Client-Linux
yum -y install nfs-utils
service rpcbind start
service nfs start
mkdir /mnt/client_share //NFS서버에서 제공하고 있는 공유 디렉토리를 클라이언트에서 마운트하기위해
한개 디렉토리 생성
showmoubt -e 100.100.100.110 //NFS서버가 어떤 공유 디렉토리를 제공하고 있는지 알기 위해 명령어
showmount와 옵션 e(export)를 사용하면 현재 /var/server_share 디렉토리가 제공되고 있음을 확인
mount -t nfs 100.100.100.110:/var/server_share/ /mnt/client_share
-mount에 파일 시스템 타입을 지정하고 서버의 ip주소와 디렉토리 이름을 지정한 후 이 디렉토리를
클라이언트의 /mnt/client_share에 마운트한다고 지정
mount | grep server
Server-A에서 /var/server_share에서 파일생성후
ll /mnt/client_share //test 파일생성 확인
★Server-A
netstat -a | grep nfs
-NFS 서버인 Server-A에서 명령어 netstat 를 통해 연결을 확인해보면 서버인 master의 nfs와 클라이언트
node1의 임의의 포트가 연결되어 있음을 확인 할수 있다.
★자동 마운트
Client-Linux
vi /etc/fstab //NFS서버의 ip주소 공유 디렉토리이름과 로컬의 디렉토리 이름 파일 시스템 타입(nfs)과
기본 옵션을 지정
reboot
mount
'Server > Linux' 카테고리의 다른 글
xshell/ WEB,APM,XE (0) | 2017.05.21 |
---|---|
xshell/ PXE & KICKSTART (0) | 2017.05.15 |
xshell/ SAMBA (0) | 2017.05.14 |
xshell/ NTP (0) | 2017.05.11 |
xshell/ FTP, VSFTP (0) | 2017.05.11 |