네트워크 파일 시스템(NFS) 파일 및 폴더 공유를 위한 분산 파일 시스템 프로토콜입니다. NFS는 ONC RPC(원격 프로시저 프로토콜)를 기반으로 합니다. NFS를 사용하면 네트워크를 통해 원격 파일 시스템을 마운트할 수 있습니다. NFS를 사용할 때 기본적으로 데이터는 암호화되지 않으며 클라이언트는 인증되지 않습니다(IP로 액세스가 제한될 수 있음).
NFS는 서버 측과 클라이언트 측 모두에서 쉽게 구성할 수 있습니다. 이 기사에서는 NFS 서버를 설치 및 구성하는 방법을 보여주고 클라이언트에서 NFS 공유를 연결합니다. 이 기사는 RPM 기반 Linux 배포판(CentOS, RHEL, Fedora 등)을 기반으로 합니다.
Linux CentOS에서 NFS 서버를 설치 및 구성하는 방법
기본적으로 nfs는 이미 표준 패키지와 함께 CentOS에 설치되어 있습니다. NFS 구성 요소를 제거했거나 서버에 최소 설치 모드를 사용한 경우 yum(또는 dnf) 패키지 관리자를 사용하여 NFS 패키지를 설치할 수 있습니다.
CentOS 8:
# dnf install nfs-utils -y
패키지를 설치했습니다:
현재 NFS 서버 버전은 NFSv3 및 NFSv4 프로토콜 버전을 지원합니다. NFSv2는 기본적으로 비활성화되어 있습니다. 다음 명령을 사용하여 지원되는 NFS 버전 목록을 얻을 수 있습니다.
cat /proc/fs/nfsd/versions
필요한 모든 패키지를 설치한 후 nfs-server 및 rpcbind 서비스를 시작하고 시작 프로그램에 추가합니다.
# systemctl enable rpcbind
# systemctl enable nfs-server
# systemctl start rpcbind
# systemctl start nfs-server
Linux 호스트에서 firewalld를 사용하는 경우 다음 포트를 여십시오.
# firewall-cmd --permanent --add-port=111/tcp
# firewall-cmd --permanent --add-port=20048/tcp
# firewall-cmd --permanent --add-service=nfs
# firewall-cmd --permanent --zone=public --add-service=nfs
# firewall-cmd --permanent --zone=public --add-service=mountd
# firewall-cmd --permanent --zone=public --add-service=rpc-bind
# firewall-cmd --reload
iptables를 사용하는 사람들을 위해:
# iptables -t filter -A INPUT -p tcp --dport 111 -j ACCEPT
# iptables -t filter -A INPUT -p tcp --dport 2049 -j ACCEPT
# iptables -t filter -A INPUT -p tcp --dport 20048 -j ACCEPT
# service iptables save
# service iptables restart
그런 다음 NFS 서버가 공유할 디렉터리를 만듭니다.
# mkdir -p /backup/nfs
# chmod -R 777 /backup/nfs
NFS 공유를 게시하고 NFS 서버 설정(/etc/exports)이 포함된 구성 파일에서 액세스 권한을 할당합니다.
# nano /etc/exports
지정된 IP 서브넷의 모든 호스트에 NFS 액세스 권한을 부여하려면 구성에 다음 줄을 추가합니다.
/backup/nfs 192.168.1.0/24(rw,sync,no_root_squash,no_all_squash)
또는 단일 IP 주소로만 액세스를 제한할 수 있습니다.
/backup/nfs 192.168.2.24(rw,sync,no_root_squash,no_all_squash, anonuid=1000,anongid=1000) 192.168.3.100 (ro,async,no_subtree_check)
NFS 디렉토리에 대한 권한을 부여하는 데 사용되는 매개변수를 살펴보겠습니다.
- rw – 쓰기 권한 부여, ro – 읽기 전용 액세스 제공
- 동기화 – 동기 액세스 모드, 비동기 디스크 쓰기 확인을 기다릴 필요가 없음을 의미합니다(NFS 성능은 향상되지만 안정성은 떨어짐)
- no_root_squash – 루트 사용자가 클라이언트에서 NFS 디렉토리에 액세스할 수 있도록 허용(일반적으로 권장하지 않음)
- no_all_squash – 사용자 인증, all_squash 활성화 – 익명의 사용자로 NFS 공유 액세스 허용
- no_subtree_check – 사용자가 디렉토리의 파일에 액세스했는지 확인을 비활성화합니다(subtree_check가 기본적으로 사용됨)
- 아노누이드, angid – NFS 사용자/그룹을 지정된 로컬 사용자/그룹(UID)에 매핑 또는 GID )
새 NFS 공유 설정을 적용하려면 다음 명령을 실행하십시오.
# exportfs -a
그리고 NFS 서버를 다시 시작하십시오.
# systemctl restart nfs-server
따라서 NFS 서버 구성을 완료하고 클라이언트 구성을 진행할 수 있습니다.
CentOS에서 NFS 클라이언트 구성
NFS 클라이언트를 구성하려면 nfs-utils 패키지도 설치해야 합니다.
# yum install nfs-utils -y
시작에 서비스를 추가하고 시작하십시오:
# systemctl enable rpcbind
# systemctl enable nfs-server
# systemctl start rpcbind
# systemctl start nfs-server
그런 다음 NFS 디렉토리가 마운트될 클라이언트에 디렉토리를 생성합니다.
# mkdir /backup
그런 다음 다음 명령을 사용하여 원격 NFS 공유를 마운트할 수 있습니다.
# mount -t nfs 192.168.0.100:/backup/nfs/ /backup
NFS 프로토콜 버전을 강제로 사용할 수 있습니다.
# mount -t nfs -o vers=4 192.168.0.100:/backup/nfs/ /backup
여기서 IP는 이전에 구성한 NFS 서버의 주소입니다.
그러면 연결된 NFS 공유가 탑재된 드라이브 목록에 표시됩니다. 디렉토리의 데이터를 읽거나 쓸 수 있습니다(NFS 서버의 IP 주소에 할당된 권한에 따라 다름). 재부팅 시 NFS 디렉토리를 자동으로 마운트하려면 fstab을 열어야 합니다. 파일:
# nano /etc/fstab
그리고 다음 줄을 추가합니다.
192.168.0.100:/backup/nfs/ /backup/ nfs rw,sync,hard,intr 0 0
fstab을 저장한 후 다음 명령으로 적용할 수 있습니다.
# mount -a
그래서 우리는 다른 호스트의 공유 리소스에 대한 투명한 네트워크 액세스에 사용할 수 있는 원격 NFS 스토리지를 구성하고 연결했습니다. NFS 디렉토리에 백업, ISO 이미지 파일 등을 저장할 수 있습니다.