[CentOS] NFS 설치 및 설정 방법

리눅스 환경에서 NFS 설치 및 설정 방법에 대해 알아보겠습니다.

NFS 란

네트워크 파일 시스템(Network File System, NFS)은 1984년에 썬 마이크로시스템즈가 개발한 프로토콜이다. 클라이언트 컴퓨터의 사용자가 네트워크 상의 파일을 직접 연결된 스토리지에 접근하는 방식과 비슷한 방식으로 접근하도록 도와준다. 다른 수많은 프로토콜과 마찬가지로 ONC RPC 시스템을 기반으로 한다. 네트워크 파일 시스템은 RFC에 정의된 오픈 표준이므로 누구나 구현할 수 있다.
출처 : 위키백과

운영환경

  • CentOS 7.6

NFS 서버 설정

1. 설치

nfs-utils 패키지가 설치되어있는지 확인하고 없을 시 yum을 사용하여 설치합니다.

1
2
3
4
5
# 설치 패키지 확인
$ rpm -qa | grep nfs-utils

# nfs 설치
$ yum install nfs-utils

2. 서비스 시작

부팅 시 자동 시작되도록 서비스 등록을 하고 실행을 합니다.

1
2
$ systemctl enable nfs-server
$ systemctl start nfs-server

3. 마운트 할 디렉토리 생성

마운트 할 임의의 디렉토리 생성합니다.

1
2
$ mkdir /nfstest
$ chmod 700 /nfstest

4. 마운트

마운트 설정을 위해 /etc/export 파일을 수정합니다.

1
$ vi /etc/export

아래 내용을 추가합니다.

1
/nfstest 192.168.0.*(rw,sync)
  • /nfstest: 공유할 디렉토리
  • 192.168.0.*: 허가할 호스트 대역
  • rw : 읽기, 쓰기 가능
  • ro : 읽기만 가능
  • secure : 클라이언트 마운트 요청 시 포트를 1024 이하로 설정
  • noaccess : 액세스 거부
  • root_squach : 클라이언트의 root가 서버의 root 권한을 획득하는 것을 차단
  • no_root_squash : 클라이언트의 계정을 root로 매핑
  • sync : 파일 시스템이 변경되면 즉시 동기화
  • all_squach : root를 제외하고 서버와 클라이언트의 사용자를 동일한 권한으로 설정
  • no_all_squach : root를 제외하고 서버와 클라이언트의 사용자들을 하나의 권한을 가지도록 설정

참고로 /etc/exports 에서 IP 입력 후 띄어쓰기 없이 (rw) 설정을 해야하고, 만약 띄어쓰기를 사용하면 설정이 제대로 되지 않아 Read-only 설정으로 되어 에러가 발생할 수 있습니다.

5. 수정내용 적용

수정한 export 내용을 적용합니다.

1
$ exportfs -r

서비스를 재시작 합니다.

1
$ systemctl restart nfs-server

6. 수정내용 확인

NFS 설정이 정상적으로 되었는지 확인합니다.

1
2
$ showmount -e
$ exportfs -v

클라이언트 마운트 설정

1. 설치

nfs-utils 패키지가 설치되어 있는지 확인하고 없을 시 yum을 사용하여 설치합니다.

1
2
3
4
5
# 설치 패키지 확인
$ rpm -qa | grep nfs-utils

# nfs 설치
$ yum install nfs-utils

2. 서비스 시작

서비스 등록 및 시작 명령어입니다.

1
2
$ systemctl enable nfs-server
$ systemctl start nfs-server

3. 마운트할 디렉토리 생성

마운트 할 임의의 디렉토리를 생성합니다.

1
2
$ mkdir /nfstest
$ chmod 700 /nfstest

4. 마운트

생성된 디렉토리에 NFS 디렉토리를 마운트 합니다.

1
$ mount -t nfs 192.168.0.100:/nfstest /nfstest
  • 192.168.0.100: nfs 서버 주소

5. 마운트 영구 적용

마운트 영구 적용을 위해 /etc/fstab 파일을 수정합니다.

1
2
$ vi /etc/fstab
192.168.0.100:/nfstest /nfstest nfs defaults 0 0
  • 192.168.0.100: nfs 서버 주소

6. 마운트 확인

정상적으로 마운트 되었는지 확인을 합니다.

1
2
$ df -h | grep nfs
192.168.0.100:/nfstest 24G 6.4G 16G 30% /nfstest

7. 설정 확인

설정이 완료되었다면 /nfstest 경로에서 파일을 생성해 보고 클라이언트와 서버에 제대로 공유가 되는지 확인합니다.

1
2
[root@localhost ~]$ cd /nfstest
[root@localhost nfstest]$ touch test
Share