상세 컨텐츠

본문 제목

linux nfs 사용하기

Devops 도전기/linux

by 끝까지해봐야지 2021. 11. 1. 16:09

본문

nfs 란 무엇인지 간단하게 설명후 진행을 해보도록 하겠습니다.

위 사진에서 볼 수 있듯이 

NFS는 네트워크 파일 시스템 (Network File System)의 약자 다른서버의 디렉토리를 자신의 컴퓨터에 있는것 처럼 사용하는 서비스라고 생각하면 됩니다.

 

 

 

NFS 서비스 사용을 위한 준비 작업
[root@VM01 ~]# rpm -qa |grep rpc 
rpcbind-0.2.0-49.el7.x86_64 설치 확인
[root@VM02 ~]# systemctl start rpcbind
[root@VM02 ~]# systemctl enable rpcbind
[root@VM02 ~]# firewall-cmd --permanent --add-service=rpc-bind
success
[root@VM02 ~]# firewall-cmd --reload
rpcinfo -p

서버에서 공유작업 = 마운트
fdisk /dev/sdb 에서 프라이머리 영역 3개 로지컬 영역 2개 200M씩 
[root@VM01 ~]# mkfs.xfs /dev/sdb1~6 까지 파일시스템 구성
[root@VM01 ~]# mkdir /nfs_server1 /nfs_server2 /nfs_server3 /nfs_server4 /nfs_server5

[root@VM01 ~]# mount /dev/sdb1 /nfs_server1
[root@VM01 ~]# mount /dev/sdb2 /nfs_server2
[root@VM01 ~]# mount /dev/sdb3 /nfs_server3
[root@VM01 ~]# mount /dev/sdb4 /nfs_server4
[root@VM01 ~]# mount /dev/sdb5 /nfs_server4
[root@VM01 ~]# mount /dev/sdb6 /nfs_server5

[root@VM01 ~]# vi /etc/fstab

/dev/sdb1 /nfs_server1 xfs defaults 0 0
/dev/sdb2 /nfs_server2 xfs defaults 0 0
/dev/sdb3 /nfs_server3 xfs defaults 0 0
/dev/sdb5 /nfs_server4 xfs defaults 0 0
/dev/sdb6 /nfs_server5 xfs defaults 0 0
:wq

init 6 / 0


df -h | sort



vi /etc/exports 설정파일을 만들어야한다
# [Share Dir]   [Allow Host/Network][Option]
/nfs_server1    192.168.1.129(rw,no_root_squash,sync) 특정 ip만 허용 / 공백 x
/nfs_server2    192.168.1.0/24(rw,root_squash,async,no_wdelay) 대역대 설정  
/nfs_server3    *(rw,all_squash,anonuid=1005,anongid=1005,sync) 보안상 *는 사용 x 
/nfs_server4    *(rw,all_squash,sync)
/nfs_server5    192.168.1.129(rw,no_root_squash,sync)

root_squash 
> Client root 계정 접근 시 UID / GID를 nfsnobody UID/GID로 mapping
no_root_squash = 쓰면 안되는 설정
> Client root 계정 접근 시 UID / GID를 Server의 root계정 UID/GID로 mappng
all_squash
> Client의 모든 계정 접근 시 UID / GID를 nfsnobody UID/GID로 mapping
no_all_squash = 기본값으로 자동포함
> Client의 모든 계정 접근 시 UID / GID를 server의 동일계정 UID / GID로 mapping 없을경우 nfsnobody
 
anonuid = UID > 지정된 UID를 anonymous nfsnobody UID에 mapping
anongid = GID > 지정된 GID를 anonymous nfsnobody GID에 mapping
sync = 동기식 / 여러명이서 서버에서 접근해 저장 x 
async = 비동기식 / 여러명이서 사용할때 권장

[root@VM01 ~]# yum -y install nfs*




[root@VM01 ~]# firewall-cmd --permanent --add-service=nfs
success
[root@VM01 ~]# firewall-cmd --permanent --add-port=2049/tcp
success
[root@VM01 ~]# firewall-cmd --reload
success
[root@VM01 ~]# systemctl start nfs
[root@VM01 ~]# systemctl enable nfs-server
[root@VM01 ~]# rpcinfo -p
[root@VM01 ~]# exportfs -v = 출력이 되야 정상적으로 nfs설정이 된거다 
[root@VM02 ~]# exportfs -ra = 중지없이 설정파일을 적용할때 systemctl 대신

[root@VM01 ~]# groupadd -g 1005 nfs_group GID 1005번 생성
[root@VM01 ~]# useradd -u 1005 -g nfs_group nfs_user UID 1005번 생성


======= 클라이언트에서 연결작업===========

mkdir /nfs_client1 /nfs_client2 /nfs_client3 /nfs_client4 /nfs_client5
[root@VM02 ~]# mount -t nfs 192.168.1.128:/nfs_server1 /nfs_client1 마운트타입 nfs로 정해준다
server 1~5까지 client 1~5까지 마운트작업

[root@VM02 ~]# touch /nfs_client1/A
[root@VM02 ~]# ls -l /nfs_client1
서버에서 /nfs_server1에 A가 저장된것 확인

[root@VM02 ~]# touch /nfs_client1/A 허가
[root@VM02 ~]# touch /nfs_client2/B 거부  
[root@VM02 ~]# touch /nfs_client3/C 거부   
[root@VM02 ~]# touch /nfs_client4/D 거부   
[root@VM02 ~]# touch /nfs_client5/E 허가  

autofs=오토마운트를 설정해야한다

[root@VM02 ~]# yum -y install autofs*
[root@VM02 ~]# vi /etc/autofs.conf  autofs 설정/운영 관련 파일 
 master_map_name = auto.master 주석 삭제
timeout = 30 30초간 반응없으면 연결해제
browse_mode = yes  = 탐색모드
:wq

vi /etc/auto.master 
7번째 줄 밑에 /autofs /etc/auto.custom 추가
:wq

vi /etc/auto.misc  = 마운트포인트의 이름 추가
nfs_c1          -rw,hard,intr           192.168.1.128:/nfs_server1
nfs_c2          -rw,hard,intr           192.168.1.128:/nfs_server2
nfs_c3          -rw,hard,intr           192.168.1.128:/nfs_server3
:wq

vi /etc/auto.custom = 없으니까 만든다
nfs_c5          -rw,hard,intr           192.168.1.128:/nfs_server5
nfs_c4          -rw,hard,intr           192.168.1.128:/nfs_server4
:wq

[root@VM02 ~]# systemctl start autofs
[root@VM02 ~]# systemctl enable autofs
[root@VM02 ~]# ls -l /misc /autofs 로 오토마운트 확인






'Devops 도전기 > linux' 카테고리의 다른 글

Linux 7 에 docker 설치방법  (0) 2024.05.17
linux Samba 사용법  (0) 2021.11.01
linux network  (0) 2021.11.01
shell script 실습 정리  (0) 2021.11.01
RAID 개념과 간단 실습  (0) 2021.11.01

관련글 더보기