★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

+ Recent posts