NFS
* NFS ( Network File System )
- 네트워크를 통해 공유된 원격지 호스트에 자원( 파일 시스템 )을
로컬 호스트에 마운트하여 파일을 공유하는데 사용되는 프로그램
! nfs 서버 구축
#setenforce 0
#service iptables stop
#mkdir /var/server_share // 서버에서 공유할
디렉터리 생성
#chmod 777 /var/server_share // 모든권한을 추가하여
접근이 가능하도록 설정
#touch /var/server_share/file{1..10} // 테스트용 파일 생성
#yum install -y nfs-utils // nfs 패키지 설치
#vi /etc/exports
- nfs 설정 파일이며 , nfs 서버에서 공유하는
디렉터리 정보와 옵션을 정의하기 위해 사용된다.
[공유디렉터리 경로] [접근을 허용할 IP/Network주소(옵션1,옵션2,옵션n...)]
-----------------------------------------
/var/server_share 100.100.100.0/24(rw,sync,no_root_squash)
:wq!
-----------------------------------------
rw : 읽기 , 쓰기를 허용
ro : 읽기 전용
sync : 변경이 있을 때, 변경사항을 즉시 동기화
async : 변경이 있을 때, 후에 동기화 진행
root_squash : 클라이언트에서 root계정으로 접근할 때
서버는 해당 root계정을 nfsnobody계정으로 인식
no_root_squash : 클라이언트에서 root계정으로 접근할 때
서버 root계정과 동일하게 인식
#vi /etc/sysconfig/nfs
- nfs 서버에서 사용하는 프로그램들의 포트 정보가
저장되어 있는 파일
---------------------------
~제일하단에 아래 내용을 추가~
MOUNTD_PORT=4000 // 마운트 포트
LOCKD_TCPPORT=4001 // 동시 트랜잭션 발생시
다른 클라이언트를 잠금
LOCKD_UDPPORT=4001 // 동시 트랜잭션 발생시
다른 클라이언트를 잠금
:wq
----------------------------
#service rpcbind start // 네트워크로 연결되어있는
다른 컴퓨터의 프로그램에
서비스를 요청
#service nfs start // 데몬의 동작 순서가 중요
NFS서비스는 RPC기반으로 동작하기 때문에,
RPC데몬이 먼저 동작하고 있어야
NFS서비스를 정상적으로 실행할 수 있다.
#chkconfig rpcbind on
#chkconfig nfs on
! 서비스 이용
@Client_Linux
#yum install -y nfs-utils //showmount명령어를
사용할 목적으로 설치
#showmount -e 100.100.100.100 //100.100.100.100 IP에서
공유하고 있는 디렉터리 정보를 확인
Export list for 100.100.100.100:
/var/server_share 100.100.100.0/24
#mkdir /mnt/client_share
#mount -t nfs 100.100.100.100:/var/server_share /mnt/client_share
//Server-A(100.100.100.100)이 제공한 /var/server_share 디렉터리를
현재 클라이언트의 /mnt/client_share디렉터리에 연결시킨다.
Server-A Client_Linux
/var/server_share /mnt/client_share
A파일 <-- 동기화 --> A파일
B디렉터리 B디렉터리
#df -h // 마운트 확인
#cd /mnt/client_share
#ll // 공유파일 확인
#touch Client_file{1..10} // Server-A에서 확인
#ll // 소유권, 그룹 root
! 옵션 변경
@Server-A
#vi /etc/exports
---------------------------------------------
/var/server_share 100.100.100.0/24(ro,sync,root_squash)
:wq!
----------------------------------------------
#exportfs -vr // nfs서버 데몬을 다시 시작하지 않고
공유 목록(/etc/exports)의 변경사항을
적용시킬 수 있는 명령어
-r : /etc/exports파일 적용
-v : 현재 공유하고 있는 디렉터리 정보 출력
@Client_Linux
#cd /mnt/client_share
#touch Client_file{11..20} // 쓰기 x
@Server-A
#vi /etc/exports
---------------------------------------------
/var/server_share 100.100.100.0/24(rw,sync,root_squash)
:wq!
----------------------------------------------
#exportfs -vr
@Client_Linux
#cd /mnt/client_share
#touch Client_file{11..20}
#ll // 소유권, 그룹 nfsnobody
! 확인 사항
@Client_Linux
#reboot
#df -h // 마운트 해제
#vi /etc/fstab
----------------------------------
~~ 제일 하단에 추가 ~~
100.100.100.100:/var/server_share /mnt/client_share nfs defaults 0 0
:wq!
-----------------------------------
#reboot
#df -h // 재부팅 후에도 마운트 적용
@Server-A
#service nfs stop // Server-A의 서비스에
#service rpcbind stop 문제가 발생했다는 "가정"
@Client_Linux
#reboot
//NFS서버가 동작하지 않을 때 Client가 부팅시에
NFS연결을 요청하면 장시간동안 부팅이 되지 않는 문제가 있다.
( 장시간 기다린 후에 로그인 )
#df -h // 마운트 x
#vi /etc/fstab
----------------------------------
~~ 제일 하단에 추가 ~~
100.100.100.100:/var/server_share /mnt/client_share nfs defaults,bg 0 0
// 옵션에 bg 추가
:wq!
-----------------------------------
#reboot // 정상적으로 로그인
#df -h // 마운트 x
#ps -ef | grep mount // 프로세스 동작중
@Server-A ( 서버에 문제가 해결되었다고 가정 )
#service rpcbind start
#service nfs start
@Client_Linux
#df -h // 마운트 o
#ps -ef | grep mount // 프로세스는 성공적 종료
'LINUX(Server)' 카테고리의 다른 글
| PXE , Kick start (0) | 2024.04.29 |
|---|---|
| DNS (0) | 2024.04.28 |
| FTP (2) | 2024.04.26 |
| DHCP (0) | 2024.04.25 |
| Samba (0) | 2024.04.24 |