처음부터 차근차근

[Linux] NFS 본문

OS/Linux

[Linux] NFS

HangJu_95 2024. 8. 20. 21:39
728x90

NFS란?

Network File System의 약자로, 네트워크에 파일을 저장하는 메커니즘이다.

  • 이 시스템을 통해 사용자가 원격 컴퓨터에 있는 파일 및 디렉토리에 엑세스 할 수 있고 해당 파일 및 디렉토리가 로컬에 있는 것처럼 허용하는 분산 파일 시스템입니다.
  • 사용자는 운영 체제 명령을 사용하여 원격 파일 및 디렉토리에 대한 파일 속성을 작성, 제거, 읽기, 쓰기, 설정할 수 있습니다.

NFS를 왜 사용할까??

  • 여러 사용자 혹은 서버에서 파일을 공유하는데 유용하게 사용된다.
  • 또한 서버가 망가지더라도 데이터는 유지되기 때문에, 데이터를 보존하는데 굉장히 좋다.

그러나 단점도 존재한다.

  • 네트워크를 사용하여 파일을 접근하기 때문에 보안에 취약할 수 있다.

NFS 구축 방법

CentOS 7.9 버전 환경에서 구축하는 방법을 소개한다.
(왜냐면 회사에서 CentOS 7.9를 사용해서..)

NFS 서버 설정

1. 필요한 패키지 설치

sudo yum install -y nfs-utils

2. NFS와 관련된 서비스 시작 및 자동 시작 설정

sudo systemctl enable --now rpcbind
sudo systemctl enable --now nfs-server

sudo systemctl restart rpcbind
sudo systemctl restart nfs-server

3. 공유할 디렉토리 설정

sudo mkdir -p /your/path
sudo chmod -R 777 /your/path

혹시 모르니 권한까지 부여하자.

4. NFS 서버의 공유 설정

sudo vi /etc/exports
#{mount-path} {client-ip}({options})
/your/path XXX.XXX.0.XXX(rw,subtree_check,no_root_squash)

NFS에서 '/etc/exports' 파일에 설정되는 옵션들은 클라이언트에게 어떤 권한을 줄 것인지, 어떻게 파일 시스템을 공유할 것인지를 결정한다.
각각의 옵션에 대한 설명은 아래 확인

Option Description
rw 클라이언트에게 읽기/쓰기 권한을 제공합니다.
ro 클라이언트에게 읽기 전용 권한을 부여합니다.
no_root_squash 원격 클라이언트의 루트 사용자의 요청을 "nobody"와 같은 저 권한의 사용자로 처리하지 않습니다.
sync 데이터를 디스크에 동기화하도록 요청합니다.
async 서버가 데이터를 디스크에 쓰기 전에 응답을 보낼 수 있도록 허용합니다.
all_squash 모든 원격 사용자의 요청을 anonuid와 anongid에 지정된 사용자/그룹 ID로 변경합니다.
anonuid, anongid all_squash 옵션과 함께 사용되며, 원격 사용자의 요청을 이 ID로 매핑합니다.
secure 클라이언트의 포트 번호가 1024 이하인 포트에서만 요청을 허용합니다.
insecure 클라이언트의 포트 번호가 1024 이상인 포트에서도 요청을 허용합니다.
subtree_check 파일이나 디렉터리의 일부만 export할 때, 액세스하려는 파일/디렉터리가 실제로 export된 부분에 속하는지 확인합니다.
no_subtree_check subtree_check의 확인을 비활성화합니다.

5. NFS 설정 적용 및 확인

# 설정 적용
sudo exportfs -ra
# 설정 확인
sudo exportfs -v

NFS Client 설정

1. 필요한 패키지 설치

sudo yum install -y nfs-utils

2. RPC 서비스 시작 및 자동 시작 설정

sudo systemctl enable --now rpcbind
sudo systemctl restart rpcbind

3. NFS 서버의 공유 상태 확인

showmount -e Server_IP

이 단계에서 문제가 발생한다면, 서버 측의 네트워크 라우팅 및 방화벽 설정을 확인해야 한다.

4. 클라이언트에서 NFS 마운트

mount -t nfs server_IP:/path/to/share /path/to/local_mount_point

위 명령을 입력하면 df 명령을 통해 파티션 상태를 출력해보면 server_IP:/path/to/share, 용량, mount 포인트 순서로 출력된다.

그러나, 해당 명령어는 임시 적용 상태로, 영구적으로 적용하려면 /etc/fstab 파일에 아래와 같이 등록이 필요하다.

echo 'server_IP:/path/to/share /path/to/local_mount_point nfs defaults 0 0' >> /etc/fstab

참조

 

(Linux) NFS 구축방법(서버/클라이언트 가이드)

오늘의 주제 : 리눅스 NFS 구축 방법 - 서버와 클라이언트 설정 가이드리눅스 서버의 NFS는 네트워크로 연결된 여러 대의 시스템 간에 파일을 공유하는 데 사용되는 프로토콜입니다. CentOS/RHEL 7버

mcc96.tistory.com

 

 

NFS 란? Network File System. NFS 구축해보기

NFS Network File System. 네트워크 파일 시스템. - 네트워크 상에서 파일시스템을 공유하도록 설계된 파일 시스템. - 다른서버의 파티션을 마치 내 로컬영역인 것처럼 네트워크를 이용하여 사용할 수

cheershennah.tistory.com

 

 

NFS(Network File System)

NFS(Network File System)는 네트워크에 파일을 저장하는 메커니즘입니다. 이 시스템은 사용자가 원격 컴퓨터에 있는 파일 및 디렉토리에 액세스할 수 있고 해당 파일 및 디렉토리가 로컬에 있는 것처

www.ibm.com

 

 

NFS란? 정의/장단점

NFS Network File System. 네트워크 파일 시스템 NFS란 네트워크 상에서 다른 컴퓨터의 파일 시스템을 마운트해서 공유하는 것이다. 즉, 다른 컴퓨터의 파일 시스템을 마치 자기 것처럼 사용할 수 있는

kgw7401.tistory.com

 

'OS > Linux' 카테고리의 다른 글

[Linux] umask  (1) 2024.07.24
[Linux] Chown  (2) 2024.07.24
[Linux] Chomd 명령어  (1) 2024.07.24