리눅스/ubuntu
NFS(Network File System)
jingu
2023. 8. 4. 13:43
NFS
NFS(Network File System)는 네트워크를 통해 파일 시스템을 공유하고 원격 시스템에서 마치 로컬 파일 시스템처럼 사용할 수 있게 해주는 프로토콜이다.
주요 특징
- 공유 파일 시스템: NFS를 사용하면 원격 파일 시스템을 마치 로컬 파일 시스템처럼 접근할 수 있다. 클라이언트는 원격 파일 시스템에 마운트(mount)하여 원격 디렉토리를 로컬 시스템에 연결한다.
- 네트워크 투명성: NFS를 사용하면 클라이언트는 원격 파일 시스템을 로컬 파일 시스템으로 인식한다. 따라서 파일을 다루는 동작이 로컬 파일 시스템과 유사하게 동작한다.
- 클라이언트 캐싱: 클라이언트는 일부 데이터를 캐시하여 네트워크 트래픽을 줄이고 성능을 향상시킨다. 이러한 캐싱은 빈번한 파일 접근 시 유용하다.
- 안정성: NFS는 파일 잠금을 지원하여 여러 클라이언트가 동시에 파일을 수정하는 경우 데이터 불일치를 방지한다.
- 비동기 및 동기 접근: NFS는 비동기(Asynchronous) 및 동기(Synchronous) 접근 모드를 지원한다. 동기 접근 모드에서는 데이터가 실제로 디스크에 기록될 때까지 응답이 지연되지만, 비동기 접근 모드에서는 응답이 더 빠르다. 단, 기록은 나중에 한다.
실제로 사용해보자.
/etc/exports
설정 방법
<디렉토리> <클라이언트IP>([옵션],...,[옵션])
<디렉토리> : NFS로 공유할 디렉토리 경로를 지정
<클라이언트IP> : 해당 디렉토리에 접근할 수 있는 클라이언트의 IP 주소 또는 서브넷을 지정한다. 여러 개의 클라이언트를 지정하려면 쉼표(,)로 구분한다. 예를 들어, 192.168.1.100, 192.168.2.0/24와 같이 설정할 수 있다.
[옵션] : 디렉토리에 대한 설정 옵션을 지정한다. 일반적으로 ro(읽기 전용) 또는 rw(읽기 및 쓰기)와 같은 옵션을 사용한다.