5.파일 서버 구축하기, NFS를 통한 리눅스 간 파일 공유

이 글에서는 Linux 시스템 간에 파일을 공유하기 위해 NFS(Network File System)를 사용하여 파일 서버를 구축하는 방법에 대해 자세히 설명하겠습니다. NFS는 여러 시스템에서 파일을 공유하고 액세스하는 효율적이고 편리한 방법을 제공합니다. 이 글에서는 NFS의 기초부터 설정, 구성 및 관리까지 단계별로 안내합니다.

NFS란 무엇인가?

NFS는 네트워크 파일 시스템의 약자로, 원거리 서버에서 파일을 마치 로컬 파일처럼 사용할 수 있게 해주는 프로토콜입니다. 이는 UNIX 및 UNIX-like 시스템에서 주로 사용되며, 다양한 운영체제에서도 지원됩니다.

NFS의 주요 기능

  • 파일 공유: 동일한 네트워크에 연결된 여러 시스템 간에 파일을 쉽게 공유할 수 있습니다.
  • 사용자 인증: NFS는 사용자 인증 및 파일 권한 관리를 통해 보안을 강화합니다.
  • 성능: NFS는 고속 데이터 전송을 지원하여 대용량 파일 전송 및 공유에 적합합니다.
  • 확장성: NFS는 넷워크 확장성에 뛰어나며, 여러 대의 서버 및 클라이언트를 쉽게 추가할 수 있습니다.

NFS 서버 구축하기

이 섹션에서는 NFS 서버를 설정하기 위한 단계별 프로세스를 안내합니다. 다음 단계를 통해 Ubuntu를 사용하는 NFS 서버를 구축할 수 있습니다.

1. NFS 패키지 설치하기

서버에 NFS 패키지를 설치하기 위해 먼저 패키지 목록을 업데이트하고, NFS 서버를 설치합니다. 다음 명령어를 터미널에 입력합니다:

sudo apt update
sudo apt install nfs-kernel-server

2. 공유할 디렉터리 만들기

NFS 서버에서 클라이언트와 공유할 디렉터리를 만듭니다. 예를 들어, /srv/nfs라는 디렉터리를 생성하겠습니다:

sudo mkdir -p /srv/nfs/share

3. 공유 디렉터리의 권한 설정

디렉터리에 대한 권한을 설정하여 NFS를 통해 접근할 수 있도록 합니다. 일반적으로 모든 사용자에게 읽기 및 쓰기 권한을 부여합니다:

sudo chown nobody:nogroup /srv/nfs/share
sudo chmod 777 /srv/nfs/share

4. /etc/exports 파일 수정하기

NFS 서버가 공유할 디렉터리를 정의하려면 /etc/exports 파일을 수정해야 합니다. 파일을 열고 아래와 같이 추가합니다:

sudo nano /etc/exports

파일에 다음 줄을 추가합니다:

/srv/nfs/share *(rw,sync,no_subtree_check)

여기서 *는 모든 클라이언트의 접근을 허용하는 것을 의미하고, rw는 읽기 및 쓰기 권한을, sync는 동기화 모드를 사용하겠다는 뜻이며, no_subtree_check는 하위 디렉터리에 대한 검사를 하지 않겠다는 의미입니다.

5. NFS 서버 시작하기

설정이 완료된 후 NFS 서비스를 시작하고 활성화합니다:

sudo systemctl restart nfs-kernel-server
sudo systemctl enable nfs-kernel-server

6. 방화벽 설정

NFS 서버가 포트 2049를 통해 통신할 수 있도록 방화벽을 설정합니다. UFW 방화벽을 사용하는 경우 다음 명령어를 입력합니다:

sudo ufw allow from any to any port nfs

NFS 클라이언트 설정하기

NFS 서버가 설정되면 클라이언트를 구성합니다. 다음 단계에서 Ubuntu 클라이언트를 설정하는 방법을 설명합니다.

1. NFS 클라이언트 설치하기

NFS 클라이언트 패키지를 설치합니다:

sudo apt update
sudo apt install nfs-common

2. NFS 공유 마운트하기

NFS 서버에서 공유한 디렉터리를 클라이언트에서 마운트합니다. 마운트할 디렉터리를 생성합니다:

sudo mkdir -p /mnt/nfs_share

이제 NFS 서버의 공유 디렉터리를 마운트합니다:

sudo mount -t nfs [서버_IP]:/srv/nfs/share /mnt/nfs_share

여기에서 [서버_IP]는 NFS 서버의 IP 주소를 입력합니다.

3. 마운트 확인하기

마운트가 성공적으로 이루어졌는지 확인하려면 다음 명령어를 사용합니다:

df -h

이 명령어는 현재 마운트된 파일 시스템에 대한 정보를 표시합니다.

4. 시스템 재부팅 후 자동 마운트 설정하기

클라이언트가 재부팅 후에도 자동으로 NFS 공유를 마운트하려면 /etc/fstab 파일에 다음 줄을 추가합니다:

[서버_IP]:/srv/nfs/share /mnt/nfs_share nfs defaults 0 0

NFS 관리 및 Troubleshooting

NFS를 설정한 후, 관리 및 문제 해결에 대한 몇 가지 팁을 제공합니다.

1. NFS 서비스 상태 확인

서버의 NFS 서비스 상태를 확인하기 위해 다음 명령어를 사용할 수 있습니다:

sudo systemctl status nfs-kernel-server

2. 로그 파일 확인

NFS 관련 로그는 일반적으로 /var/log/syslog 파일에 저장됩니다. 이 파일을 통해 문제를 진단할 수 있습니다:

cat /var/log/syslog | grep nfs

3. 권한 문제 해결

마운트된 NFS 디렉터리에 접근할 수 없는 경우, 권한과 방화벽 설정을 확인해야 합니다. 서버의 exports 파일에서 설정을 점검하고, 클라이언트에서 제대로 마운트되었는지 확인하시기 바랍니다.

결론

NFS를 통해 리눅스 간 파일 공유를 쉽게 설정할 수 있습니다. 이 시스템은 대규모 네트워크에서 효율적이고 안정적인 파일 공유를 제공하며, 여러 사용자가 동시에 파일을 액세스하고 수정하는 데 유용합니다.

앞서 설명한 단계를 통해 NFS 서버와 클라이언트를 설정하고 관리할 수 있을 것입니다. 이제 여러분의 시스템에서 효율적으로 파일을 공유하고 협업할 수 있는 기반이 마련되었습니다.