[Rocky] 12. NFS 서버 구성

Date:     Updated:

카테고리:

태그:


🔔 NFS 서버 구성



■ NFS 관련 파일

파일명 설명
/etc/exports NFS 디렉터리 공유에 대한 리스트를 보관하는 파일 (관리자에 의해 관리)
/var/lib/nfs/etab 현재 NFS 서버 서비스에 의해 공유된 자원 리스트를 보관하는 파일 (시스템에 의해 관리)
/var/lib/nfs/rmtab 원격지 클라이언트에 의해 마운트 된 NFS 파일시스템 정보를 보관하는 파일 (시스템에 의해 관리)


■ /etc/exports 파일

# 공유디렉터리    클라이언트IP 또는 호스트이름(공유옵션)

# 192.168.219.21 IP를 가지는 시스템에 대해서만 공유를 허용
/data01    192.168.219.21(rw,sync,no_root_squash)  

# 192.168.219.22 ~ 192.168.219.24에 대해서만 공유를 허용
/data02    192.168.219.2[2-5](rw,sync)

# 192.168.219 대역을 사용하는 시스템에 대해 공유를 허용
/data03    192.168.219.0/24


공유 옵션 설명
rw 클라이언트에게 읽기/쓰기 권한을 부여하여 파일 시스템을 공유함.
ro 클라이언트에게 읽기 전용 권한을 부여하여 파일 시스템을 공유함.
nohide 상위 디렉토리에서 숨겨진 파일 시스템도 공유함.
hide 상위 디렉토리에서 숨겨진 파일 시스템을 공유하지 않음.
sync 변경 사항을 동기화하여 클라이언트에게 반영함.
async 변경 사항을 비동기적으로 클라이언트에게 반영함.
no_subtree_check 서브트리 확인을 비활성화하여 클라이언트에게 반영함.
subtree_check 서브트리 확인을 활성화하여 클라이언트에게 반영함.
insecure 비인증 클라이언트에게도 파일 시스템을 공유함.
secure 인증된 클라이언트에게만 파일 시스템을 공유함.
all_squash root를 포함하여 모든 사용자와 그룹의 권한을 nobody로 매핑하는 옵션, 익명 사용자에게만 파일 시스템을 공유하고 싶을 때 유용하게 사용
no_all_squash 사용자와 그룹의 권한을 squash하지 않는 옵션, 클라이언트의 사용자와 그룹의 권한을 그대로 유지
root_squash 클라이언트의 root 권한을 무시하고 nobody 권한을 부여하는 것으로 클라이언트의 root 사용자가 서버의 파일 시스템에 대한 액세스를 제한
no_root_squash 클라이언트의 root 권한을 인정하는 옵션으로 클라이언트의 root 사용자가 서버의 파일 시스템에 대한 액세스를 제한받지 않는다.
anonuid 익명 사용자의 UID를 지정함.
anongid 익명 사용자의 GID를 지정함.


■ exportfs 명령

디렉터리를 공유하기 위해 또는 공유된 디렉터리 정보를 확인하기 위해 사용되는 명령

$ exportfs [옵션] IP주소:공유_디렉터리_경로
옵션 설명
-o rw 읽기/쓰기 권한을 가진 클라이언트에게 파일 시스템을 공유함.
-o ro 읽기 전용으로 파일 시스템을 공유함.
-o sync 변경에 대해 안정적인 저장 후 요청에 대해 응답
-v 공유된 디렉터리 정보를 확인


■ NFS 서버 구성

$ dnf -y install nfs-utils

$ vi /etc/exports

# [/home/nfsshare]를 NFS 공유 디렉터리로 설정
/home/nfsshare 192.168.219.0/24(rw,sync,no_root_squash)

$ mkdir /home/nfsshare

$ systemctl enable --now rpcbind nfs-server

# 방화벽 설정
$ firewall-cmd --add-service=nfs

# NFSv3을 사용하는 경우
$ firewall-cmd --add-service={nfs3,mountd,rpc-bind}

$ firewall-cmd --runtime-to-permanent


■ NFS 클라리언트 구성

$ dnf -y install nfs-utils


$ mount -t nfs 192.168.219.101:/home/nfsshare /mnt


$ df -hT /mnt
Filesystem                     Type      Size  Used Avail Use% Mounted on
192.168.219.101:/home/nfsshare nfs4       17G  1.7G   16G  10% /mnt


# NFSv3으로 마운트하는 경우 [-o vers=3] 옵션 추가
$ mount -t nfs -o vers=3 192.168.219.101:/home/nfsshare /mnt


$ df -hT /mnt
Filesystem                     Type  Size  Used Avail Use% Mounted on
192.168.219.101:/home/nfsshare nfs    17G  1.7G   16G  10% /mnt


# 시스템이 시작될 때 자동으로 마운트하려면 [/etc/fstab]에서 설정을 구성
$ vi /etc/fstab

# 추가
192.168.219.101:/home/nfsshare /mnt               nfs     defaults        0 0


# 누구나 NFS 공유에 액세스할 때 동적으로 마운트하려면 AutoFS를 구성
# AutoFS는 파일 시스템을 필요에 따라 자동으로 마운트하고 일정 시간 동안 사용하지 않으면 자동으로 언마운트하는 리눅스 커널 모듈과 사용자 공간 프로그램
$ dnf -y install autofs


$  vi /etc/auto.master

# 끝에 추가
/-    /etc/auto.mount


$ vi /etc/auto.mount

# [mount point] [option] [location]
/mnt   -fstype=nfs,rw  192.168.219.101:/home/nfsshare


$ systemctl enable --now autofs


$ grep /mnt /proc/mounts
192.168.219.101:/home/nfsshare /mnt nfs rw,relatime,vers=3,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=192.168.219.101,mountvers=3,mountport=20048,mountproto=udp,local_lock=none,addr=192.168.219.101 0 0
/etc/auto.mount /mnt autofs rw,relatime,fd=17,pgrp=28460,timeout=300,minproto=5,maxproto=5,direct,pipe_ino=58970 0 0
192.168.219.101:/home/nfsshare /mnt nfs4 rw,relatime,vers=4.2,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=192.168.219.102,local_lock=none,addr=192.168.219.101 0 0

ROCKY 카테고리 내 다른 글 보러가기

댓글 남기기