웹사이트 검색

RHEL 배포판에 NFS 서버 및 클라이언트를 설치하는 방법


Linux에는 네트워크를 통해 저장소와 파일을 공유하는 데 사용되는 몇 가지 파일 공유 프로토콜이 있습니다. 가장 널리 사용되는 것은 Samba와 NFS입니다.

Samba는 클라이언트-서버 아키텍처에서 작동하는 인기 있는 오픈 소스 애플리케이션 제품군입니다. Linux, Windows 및 macOS 운영 체제 전반에서 원활한 파일 공유를 가능하게 하는 크로스 플랫폼 호환성을 제공합니다. Linux 시스템에 호스팅된 파일 공유는 다양한 플랫폼에서 액세스할 수 있으므로 협업이 촉진됩니다.

널리 사용되는 또 다른 파일 공유 프로토콜은 Network File Share의 약어인 NFS입니다. Samba와 마찬가지로 클라이언트-서버 모델에서 작동하며 사용자가 네트워크를 통해 여러 원격 클라이언트 사용자와 디렉터리 및 파일을 공유할 수 있습니다.

이 가이드에서는 Fedora, CentOS Stream, Rocky Linux 및 AlmaLinux와 같은 RHEL 기반 배포판에 NFS 서버와 클라이언트를 설치하는 방법을 알아봅니다.

NFS 서비스

현재 NFS에는 3가지 버전이 있으며, 최신 버전은 인터넷 및 방화벽을 통해 작업할 수 있는 기능과 같은 기능을 포함하는 NFSv4입니다. 그 밖에도 가장 오래된 프로토콜인 NFSv3NFSv2가 있습니다.

NFS 서비스는 NFS 서버클라이언트로 구성됩니다. NFS 서버는 다음과 같은 주요 파일로 구성됩니다.

  • nfs-server – 이를 통해 클라이언트 시스템이 NFS 공유 파일에 액세스할 수 있습니다.
  • rpcbind – RPC 프로그램을 범용 주소로 변환합니다.
  • nfs-idmap – 사용자 및 그룹 ID를 이름으로, 사용자 및 그룹 이름을 ID로 변환합니다.
  • portmap – RPC 프로그램 번호를 IP 포트 번호로 변환하는 서버입니다.
  • nfslock – NFS 서버 충돌이 발생하는 경우 nfslock은 필요한 RPC 프로세스를 시작합니다.

NFS 구성 서비스

다음은 NFS의 주요 구성 파일 중 일부입니다.

  • /etc/exports – 원격 사용자가 내보내고 액세스할 파일 시스템이나 디렉터리를 규정하는 기본 구성 파일입니다.
  • /etc/fstab – 마운트된 파티션의 항목이 포함된 파일입니다. NFS에서 파일에는 영구적으로 마운트되어 재부팅을 지속할 수 있는 NFS 공유 디렉터리 또는 파일 시스템 항목이 포함되어 있습니다.
  • /etc/sysconfig/nfs – RPC 서비스 실행 중에 필요한 포트를 정의합니다.

NFS 서버 및 클라이언트 설정

NFS 공유를 설정하려면 Linux/Unix 시스템이 두 대 이상 필요합니다. 이 튜토리얼에서는 두 개의 서버를 사용하겠습니다.

  • NFS 서버 – IP가 10.128.15.213RHEL 9
  • NFS 클라이언트RHEL 9 IP 10.128.15.214

서버와 클라이언트에 NFS 설치

시작하려면 두 노드(NFS 서버 및 클라이언트)에 로그인하고 NFS 서비스를 설치해야 합니다. 먼저, 표시된 대로 패키지 정보를 업데이트합니다. 다음 dnf 명령은 모든 흥미로운 패키지를 최신 버전으로 업그레이드합니다.

sudo dnf update 

업데이트가 완료되면 필수 NFS 서비스를 진행하여 설치하세요.

sudo dnf install rpcbind nfs-utils -y

다음 단계는 표시된 대로 NFS 서비스를 활성화하는 것입니다.

sudo systemctl enable nfs-server
sudo systemctl enable rpcbind

NFS 서비스도 시작해야 합니다.

sudo systemctl enable nfs-server
sudo systemctl enable rpcbind

모든 NFS 서비스가 실행 중인지 확인하는 것이 중요합니다.

sudo systemctl status nfs-server
sudo systemctl status rpcbind

인바운드 NFS 서비스를 허용하려면 다음과 같이 방화벽을 구성해야 합니다.

sudo firewall-cmd --permanent --add-service={nfs,rpc-bind,mountd}
sudo firewall-cmd --reload

NFS 공유 디렉터리 생성

모든 NFS 서비스가 예상대로 설치 및 실행되었으므로 이제 네트워크에서 NFS 클라이언트가 액세스할 파일이 포함될 디렉터리인 NFS 공유 디렉터리를 생성할 차례입니다.

이 경우 홈 디렉토리에 my_nfsshare라는 NFS 공유 디렉토리를 생성합니다.

mkdir -p /home/tecmint/my_nfsshare

다음으로 디렉터리 권한을 할당합니다. 데모 목적으로 NFS 클라이언트에 읽기, 쓰기 및 실행 권한을 부여하는 전역 권한을 할당하겠습니다.

sudo chmod 777 -R /home/tecmint/my_nfsshare

NFS 공유 디렉터리 내보내기

다음 단계는 NFS 공유 디렉터리를 내보내는 것입니다. 이를 달성하려면 /etc/exports 파일에 항목을 만들어야 합니다. 따라서 원하는 텍스트 편집기를 사용하여 파일에 액세스하십시오. 이 경우에는 Vim 편집기를 사용하겠습니다.

sudo vim /etc/exports

다음 항목을 추가합니다. server-ip를 NFS 서버의 IP 주소로 바꾸십시오.

/home/tecmint/my_nfsshare server-ip/24(rw,no_root_squash)

마지막으로 NFS 공유 디렉터리 또는 파일 시스템을 내보냅니다.

sudo exportfs -rv

NFS 공유를 보려면 다음 명령을 실행하십시오.

showmount -e localhost

NFS 클라이언트 구성

이 연습의 나머지 단계는 공유 디렉터리에 액세스하기 위해 NFS 클라이언트를 구성하는 것입니다. 먼저 NFS 서버에서 내보내기 목록 또는 NFS 공유를 볼 수 있는지 확인합니다.

showmount -e 10.128.15.213

다음 단계는 서버에서 클라이언트로 NFS 공유를 마운트하는 것입니다. 이를 위해서는 먼저 마운트 디렉터리를 생성해야 합니다. 이 경우 nfs_backup이라는 디렉터리를 생성합니다.

mkdir nfs_backup

그런 다음 루트 홈 디렉터리에 방금 생성한 마운트 디렉터리에 NFS 공유를 마운트합니다.

mount -t nfs 10.128.15.213:/home/tecmint/my_nfsshare  ~/nfs_backup 

NFS 공유를 유지하려면 /etc/fstab 파일을 편집하세요.

vim /etc/fstab

그런 다음 다음 항목을 추가하십시오.

10.128.15.213:/home/tecmint/my_nfsshare    /root/nfs_backup  nfs     defaults 0 0

구성 파일을 저장하고 종료합니다.

NFS 설정 테스트

마지막 단계는 NFS 설정이 예상대로 작동하는지 확인하는 것입니다. 서버에 몇 개의 파일을 생성하고 NFS 클라이언트 측에서 해당 파일의 가용성을 확인하겠습니다.

서버 측에서는 NFS 공유 디렉터리에 파일을 생성합니다.

sudo touch my_nfsshare/file{1..4}.txt

파일이 생성되었는지 확인하기 위해 ls 명령을 실행합니다.

ls -l my_nfsshare/

클라이언트 측으로 돌아가서 다음 출력에 표시된 대로 서비스를 새로 고치거나 서비스를 다시 시작하지 않고도 탑재 디렉터리에서 파일을 사용할 수 있는지 확인합니다.

ls -l nfs_backup/

NFS 마운트 제거

시스템에 마운트된 디렉토리가 더 이상 필요하지 않은 경우 다음 umount 명령을 사용하여 클라이언트 측에서 디렉토리를 마운트 해제할 수 있습니다.

umount ~/nfs_backup

NFS 공유 명령

NFS에 대한 몇 가지 더 중요한 명령입니다.

  • showmount -e – 로컬 컴퓨터에서 사용 가능한 공유를 표시합니다.
  • showmount -e ip-address원격 서버에서 사용 가능한 공유를 나열합니다.
  • showmount -d – 모든 하위 디렉터리를 나열합니다.
  • exportfs -v – 서버의 공유 파일옵션 목록을 표시합니다.
  • exportfs -a/etc/exports에 나열된 모든 공유 또는 이름을 내보냅니다.
  • exportfs -u/etc/exports에 나열된 모든 공유 또는 이름 내보내기를 취소합니다.
  • exportfs -r/etc/exports 수정 후 서버 목록 새로 고침
결론

이것으로 RedHat 기반 배포판에 NFS 서버와 클라이언트를 설치하는 방법에 대한 가이드를 마무리합니다. 서버에 NFS 서비스를 설치하고 NFS 공유 디렉토리를 생성한 후 마지막으로 공유 디렉토리를 클라이언트에 마운트했습니다. 마지막으로 클라이언트 측에서 서버에 생성된 파일에 접근하여 NFS 설정을 확인했습니다.