nfs 를 이용한 파일공유
DESCRIPTION
NFS 를 이용한 파일공유. SPARCS 12 naldo. NFS. Network File System 의 약자 다른 서버에서 공유한 디렉토리를 마운트하여 자신의 디렉토리처럼 사용하는 것 RPC(Remote Procedure Call) 기반 시스템 한 프로그램이 네트워크 상의 다른 컴퓨터에 위치하고 있는 프로그램에 서비스를 요청하는데 사용되는 프로토콜. NFS. 1980년대 Sun Microsystems에서 처음으로 개발됨 유닉스에서 파일을 공유하기 위해 만들어짐 - PowerPoint PPT PresentationTRANSCRIPT
NFS 를 이용한 파일공유
SPARCS 12
naldo
NFS
Network File System 의 약자
다른 서버에서 공유한 디렉토리를 마운트하여 자신의 디렉토리처럼 사용하는 것
RPC(Remote Procedure Call) 기반 시스템 한 프로그램이 네트워크 상의 다른 컴퓨터에 위치하고 있는
프로그램에 서비스를 요청하는데 사용되는 프로토콜
NFS
1980 년대 Sun Microsystems 에서 처음으로 개발됨
유닉스에서 파일을 공유하기 위해 만들어짐
Windows Services for UNIX – Windows 용
PORTMAPPER
RPC(Remote Procedure Call) 사용시 포트가 동적으로 할당됨
Portmapper 를 이용하여 할당된 포트를 클라이언트에게 알림
데몬 상태로 대기 하다가 요청 시 Bind 역할을 함
NFS 서버
NFS 서버 구축
NFS 서버와 Client 서버 양 쪽 다 설정이 필요함
NFS 서버에서는 공유할 디렉토리와 그 디렉토리를 마운트 가능한 서버를 지정
Clinet 서버는 사용할 폴더를 마운트 하는 작업이 필요함
NFS 설치 (Packages)
# apt-get install nfs-common nfs-kernel-server portmap
nfs-common pakcage nfs-kernel-server package portmap package
NFS 서버 디렉토리 설정
디렉토리 설정 $ chmod –R 777 [directory name]
환경 설정 파일 수정 # vim /etc/exports
NFS 서버 /etc/exports 설정
/etc/exports : 줄 단위로 설정 및 처리
[share-directory] [client](options)
[share-directory] : 공유할 디렉토리의 절대경로 [client] : 공유를 허락할 호스트 목록
(Host name, Domain name, IP Address) (option) : 공유할 때의 속성들
NFS 서버 /etc/exports 설정
(option) ro – 읽기 (default) rw – 읽기 및 쓰기 no_root_squash – client 의 root 사용자가 NFS
Server 접근 시 root 권한 root_squash – client root 접근시 nfsnobody 권한
(default) ercure – client 요청시 지정 포트만 사용 (default) insecure – client 요청시 모든 포트를 통해 서비스 요청
허가 sync – client 가 파일 시스템을 변경하면 즉시 동기화
NFS 서버 재시작
# /etc/init.d/nfs-kernel-server restart
# /etc/init.d/portmap restart
NFS 서버 RPC 확인
$ rpcinfo –p
NFS 동작 시 RPC 정보를 보여줌
NFS 서비스에 필요한 데몬 동작 여부 확인 nfs : NFS 서비스 데몬 portmap : RPC 연결에 관한 데몬 nlockmgr : 파일 잠금 제공 및 파일 동시 수정 방지
NFS 서버 테스트
NFS 서버 자기 자신으로의 마운트를 통한 테스트
# mount -t nfs hostname(or IP):[share directory] [mount
directory]
경고 발생 하지 않을 시 성공
Client 서버
Client 서버 테스트
Client 서버에서도 테스트를 함
# mount -t nfshostname(or IP):[share directory] [mount
directory]
143.248.234.111
Client 서버 마운트 설정
/etc/fstab 파일 수정
Hostname(or IP):[share directory] [mount direc-tory] nfs [option] [dump] [system_checking]
# mount -a
Ex) 192.168.0.2:/data /nfs nfs bg,soft,rw 0 0위의 내용은 192.168.0.2 의 data 디렉토리를 /nfs 디렉토리로 마운트
하되 파일시스템은 nfs 이며 백그라운드로 , 소프트타입으로 , 읽기쓰기가 가능 하도록 하며 부팅 시 파일 시스템 점검은 하지 않도록 설정한 것이다 .
Client 서버 마운트 설정옵 션 기 능
suid, nosuid 보안상 원격파일 시스템에서 nosuid 모드 권장
bgnfs 마운트가 처음에 실패할 경우 백그라운드 상태에서 계속 시도하게 되는 것으로 원격파일시스템이 허용되지 않을 경우 부트 시간을 단축시킨다 .
retry=n 포기할 때가지의 마운트 시도횟수로 기본은 100000 이다 .
timeo=n 타임아웃 시간을 설정한다 .
retrans=n n 번 요구를 재전송하는 것으로 기본은 3 번이다 .
soft,hard
재시도 횟수가 끝이 났을 때 연결을 계속할지 말지를 결정한다 . 읽기전용으로 마운트될 경우엔 soft 가 , 읽기 / 쓰기가 가능하도록 마운트될 경우엔 hard 가 적합하다 . soft 로 마운트된 파일시스템은 프로세스가 멈추어지는 문제를 피할 수도 있다 .
intr정지 프로세서를 죽이기 위한 인터럽트를 허용한다 . 터미널에 대해 CTRL-C 를 누르고 백그라운드 프로세스인 경우 INT(2) 혹은 QUIT(3) 신호를 보내면 다시 동작된다 .
resize=n nfs 서버에 있는 읽기 버퍼의 크기 ( 바이트단위 )
wsize=n nfs 서버에 있는 쓰기 버퍼의 크기 ( 바이트단위 )
Client 서버에서 NFS 찾기
NFS 서버의 실행여부와 디렉토리 명을 알 필요 있다 .
# showmount [server] : NFS 로 접속해 있는 서버들을 알 수 있다 .
# showmount –e [server] : NFS 로 공유할 수 있는 디렉토리 목록을 보여준다 .
서버가 죽어 있으면 RPC 가 동작하지 않아서 에러발생
Client 서버에서 언마운트하기
# umount [ 디렉토리 ]
단순히 이 명령어로 NFS 서버의 share directory 를 언마운트 가능
실습하기
주어진 NFS 공유 디렉토리를 마운트 해보세요 .
showmount 명령어를 사용하여 NFS 가 제대로 연결 되었나 확인해 보세요 .
언마운트를 통해 NFS 연결을 끊어보세요
감사합니다 !!