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 로 오토마운트 확인
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 |