리눅스/ubuntu

NFS(Network File System)

jingu 2023. 8. 4. 13:43
NFS

NFS(Network File System)는 네트워크를 통해 파일 시스템을 공유하고 원격 시스템에서 마치 로컬 파일 시스템처럼 사용할 수 있게 해주는 프로토콜이다.

 

 

주요 특징
  • 공유 파일 시스템: NFS를 사용하면 원격 파일 시스템을 마치 로컬 파일 시스템처럼 접근할 수 있다. 클라이언트는 원격 파일 시스템에 마운트(mount)하여 원격 디렉토리를 로컬 시스템에 연결한다.
  • 네트워크 투명성: NFS를 사용하면 클라이언트는 원격 파일 시스템을 로컬 파일 시스템으로 인식한다. 따라서 파일을 다루는 동작이 로컬 파일 시스템과 유사하게 동작한다.
  • 클라이언트 캐싱: 클라이언트는 일부 데이터를 캐시하여 네트워크 트래픽을 줄이고 성능을 향상시킨다. 이러한 캐싱은 빈번한 파일 접근 시 유용하다.
  • 안정성: NFS는 파일 잠금을 지원하여 여러 클라이언트가 동시에 파일을 수정하는 경우 데이터 불일치를 방지한다.
  • 비동기 및 동기 접근: NFS는 비동기(Asynchronous) 및 동기(Synchronous) 접근 모드를 지원한다. 동기 접근 모드에서는 데이터가 실제로 디스크에 기록될 때까지 응답이 지연되지만, 비동기 접근 모드에서는 응답이 더 빠르다. 단, 기록은 나중에 한다.

 

 

실제로 사용해보자.

패키지 설치

 

 

공유 디렉토리 생성하고, 클라이언트에서 접속할 수 있도록 허가권 변경

 

 

NFS의 설정파일 '/etc/exports'이다. 사용 예시도 나와 있다.

 

/etc/exports

설정 방법

<디렉토리>   <클라이언트IP>([옵션],...,[옵션])

<디렉토리> : NFS로 공유할 디렉토리 경로를 지정

<클라이언트IP> : 해당 디렉토리에 접근할 수 있는 클라이언트의 IP 주소 또는 서브넷을 지정한다. 여러 개의 클라이언트를 지정하려면 쉼표(,)로 구분한다. 예를 들어, 192.168.1.100, 192.168.2.0/24와 같이 설정할 수 있다.

[옵션] : 디렉토리에 대한 설정 옵션을 지정한다. 일반적으로 ro(읽기 전용) 또는 rw(읽기 및 쓰기)와 같은 옵션을 사용한다.

 

 

데몬 재실행 후 공유하는 디렉토리의 설정 확인

 

 

ububtu 22.04 CLI 버전에서 server의 NFS에 접속할 수 있도록 패키지 설치

 

 

설치한 패키지 확인

 

 

mount 되는지 확인

 

 

공유받을 디렉토리를 myshare로 생성하고 명령어 mount를 통해 NFS를 실행

 

 

공유받은 폴더에 파일 생성도 가능

 

 

windows에서도 NFS 사용할 수 있도록 설정

 

 

cmd 창에서 명령어 mount로 실행

 

 

네트워크 드라이브 연결을 통해 공유받은 디렉토리를 가시화

 

 

전에 만들어진 파일들을 확인 가능