반응형

목차

  1. NFS
  2. 주요 기능
  3. fstab 수정 요령
  4. NFS를 통한 설정

NFS

NFS(Netwrok File System)는 컴퓨터가 로컬 하드 드라이브에 있는 것처럼 네트워크를 통해 파일에 액세스하고 공유할 수 있도록 하는 분산 파일 시스템 프로토콜이다. NFS는 1980년대에 Sun Microsystems에서 개발했으며 현재 Unix 및 Linux 기반 시스템은 물론 macOS 및 Windows(추가 소프트웨어 포함)와 같은 다른 운영 체제에서도 널리 사용되고 있다.

NFS는 클라이언트-서버 모델에서 작동한다. 여기서 NFS 서버는 네트워크를 통해 이러한 공유 리소스를 마운트하고 액세스하는 클라이언트로 디렉토리와 파일을 내보낸다(공유). 이를 통해 여러 사용자와 시스템이 동시에 공유 파일에 대해 작업할 수 있으므로 협업이 향상되고 스토리지 관리가 중앙 집중화된다.

NFS는 클라이언트와 서버 간의 통신에 RPC(원격 프로시저 호출)를 사용한다. 다양한 버전을 지원하며 NFSv4는 가장 기능이 풍부한 최신 버전이다. 


주요 기능
  • 투명한 액세스
    NFS는 클라이언트가 마치 로컬에 저장된 것처럼 공유 파일에 액세스할 수 있도록 하여 원활한 경험을 제공한다.

  • 캐싱
    NFS 클라이언트는 파일 데이터를 캐싱하여 성능을 개선하고 네트워크 부하를 줄인다.

  • 상태 비저장(NFSv3 이하)
    NFS 서버는 연결 상태 정보를 유지하지 않으므로 장애 발생 시 신속하게 복구할 수 있다. NFSv4는 성능과 기능을 개선하기 위해 몇 가지 상태 저장 요소를 도입했다.

  • 액세스 제어 및 인증
    NFS는 파일 및 디렉터리 권한과 같은 공유 리소스에 대한 액세스를 제어하는 ​​다양한 메커니즘과 NFSv4의 Kerberos 인증과 같은 고급 보안 기능을 제공한다.

  • 잠금
    NFS는 데이터 일관성을 보장하고 여러 클라이언트가 동일한 파일에 액세스하고 수정할 때 충돌을 방지하기 위해 파일 잠금을 지원한다.


NFS 서버를 설정하려면 필요한 패키지를 설치하고 공유 디렉토리를 구성하고 적절한 권한을 설정해야 한다. 클라이언트는 NFS를 설치해야 한다.


사용 방법은 기존 마운트 방법과 크게 다르지 않다.

  1. mount 명령어로 직접 마운트
  2. 텍스트 편집기를 이용해 영구 마운트
  3. 자동 마운터 메소드를 사용해 온디멘드

이 중 1번은 이미 이전 포스팅에서 다룬적이 있으므로 2, 3번을 다루도록하겠다.

 

[Linux 명령어] 디스크와 디렉토리 연결하기 (mount) + mkfs

마운트는 리눅스에서 파일 시스템을 사용하기 위한 작업으로, 하드 디스크, USB 드라이브, CD-ROM 등의 장치를 시스템에 연결하여 사용할 수 있게 한다. 마운트는 장치와 파일 시스템 간의 링크를

easyitwanner.tistory.com


fstab 수정 요령

1. nano 또는 vi와 같은 텍스트 편집기로 /etc/fstab 파일을 연다. 관리 권한을 얻으려면 sudo를 사용하십시오.

sudo nano /etc/fstab


2. 마운트하려는 파일 시스템에 대한 적절한 구문을 사용하여 파일에 새 줄을 추가한다. /etc/fstab 항목의 일반적인 형식은 다음과 같다.

<device> <mount_point> <filesystem_type> <options> <dump> <pass>

<device>: UUID, 장치 경로 또는 레이블과 같은 장치 식별자다.
<mount_point>: 파일 시스템이 마운트될 디렉토리.
<filesystem_type>: 파일 시스템 유형, 예: ext4, xfs 또는 nfs.
<options>: defaults, rw, sync, auto 또는 noauto와 같은 마운트 옵션이다.
<dump>: dump 유틸리티가 파일 시스템을 백업해야 하는 빈도(일반적으로 0으로 설정됨).
<pass>: fsck 유틸리티가 부팅 시 파일 시스템을 검사하는 순서다(확인을 비활성화하려면 0, 루트 파일 시스템의 경우 1, 기타 파일 시스템의 경우 2 사용).


예)

UUID=<UUID> /mnt/data ext4 defaults 0 2

<UUID>를 blkid 명령을 사용하여 얻을 수 있는 /dev/sdb1 파티션의 실제 UUID로 바꾼다.

sudo blkid /dev/sdb1

변경 사항을 저장하고 종료한다.

NFS를 통한 설정

[1] NFS 서버 설정

1. NFS 서버 패키지를 설치한다(아직 설치하지 않은 경우).

Ubuntu 또는 Debian 기반
sudo apt-get update
sudo apt-get install nfs-kernel-server

CentOS, RHEL 또는 Fedora 기반
sudo yum install nfs-utils


2. 공유할 디렉터리를 만들고 적절한 권한을 설정한다.

1) 디렉토리 생성
sudo mkdir /path/to/shared/directory

2) 권한 설정
sudo chown nobody:nogroup /path/to/shared/directory
sudo chmod 755 /path/to/shared/directory


3. /etc/exports 파일을 편집하여 NFS 내보내기를 구성한다.

sudo nano(vi, vim...) /etc/exports

1) 다음 줄을 추가하여 클라이언트와 디렉터리를 공유한다.
/path/to/shared/directory client_ip(rw,sync,no_subtree_check)

2) client_ip를 NFS 클라이언트의 IP 주소로 바꾼다.



4. 공유 디렉터리를 내보내고 NFS 서버를 다시 시작한다.

1) 내보내기
sudo exportfs -a

2) NFS 서버 재시작
sudo systemctl restart nfs-kernel-server


5. 서버의 방화벽에서 필요한 포트가 열려 있는지 확인하십시오.


[2] NFS 클라이언트 설정


1. NFS 서버 패키지를 설치한다(아직 설치하지 않은 경우).

Ubuntu 또는 Debian 기반
sudo apt-get update
sudo apt-get install nfs-common

CentOS, RHEL 또는 Fedora 기반
sudo yum install nfs-utils

 

2. NFS 공유를 마운트하려는 클라이언트에서 디렉토리를 생성한다.

sudo mkdir /path/to/mount/point


3. 마운트 지점에 NFS 공유를 마운트한다.

sudo mount server_ip:/path/to/shared/directory /path/to/mount/point

'server_ip'를 NFS 서버의 IP 주소로 바꾼다.


4. NFS 공유가 성공적으로 마운트되었는지 확인한다.

df -h

출력되는 메시지에는 지정된 마운트 지점에 마운트된 NFS 공유가 표시되어야 한다.


5. 부팅 시 NFS 공유가 자동으로 마운트되도록 하려면 /etc/fstab 파일에 항목을 추가하자.

server_ip:/path/to/shared/directory /path/to/mount/point nfs rw,sync,hard,intr 0 0

'server_ip'를 NFS 서버의 IP 주소로 바꾼다.

이 단계를 통해 NFS 내보내기를 통해 디렉토리를 성공적으로 마운트되었을 것이다. 클라이언트는 이제 마치 로컬에 저장된 것처럼 공유 디렉토리의 파일 및 디렉토리에 액세스할 수 있다. 클라이언트가 공유 파일에 액세스하려면 NFS 서버가 실행 중이고 네트워크를 통해 액세스할 수 있어야 한다.


휴... 다음은 NFS를 통한 자동 마운트에 다루도록하겠다.

반응형