[OS] NFS

hugingstar·2025년 12월 27일

Operating system

목록 보기
26/34
post-thumbnail

이번 글에서는 NFS(Network file system)에 대해서 설명한다.

NFS는 server-client 구조를 가지고 있고, server에 있는 directory를 client가 가져와서 마운팅하는 방식이다. 간단한 구조도를 보면 금방 이해할 수 있다. (외부에 있는 디렉토리를 접속할 수 있는 것이다.)

1. Master 설정

먼저 nfs-utils를 설치한다.

dnf install -y nfs-utils

공유할 디렉토리를 만들어줘야 한다. 그리고 나서는 아래 내용을 작성한다.

mkdir /shared

echo로 내용을 작성하면서 파일을 생성한다.

echo Hello > /shared/1.txt
cat /shared/1.txt

exports 파일을 수정해서 /shared 디렉토리에 읽기/쓰기 권한을 준다. 모든 IP에서 접속할 수 있다.

vi /etc/exports
/shared *(rw)

nfs 서버를 사용한다.(설정한 IP 10.17.0.53)

systemctl start nfs-server

2. Client 설정

클라이언트 설정한 IP는 10.17.1.53이다.

dnf install nfs-utils -y

NFS쪽으로 ping 테스트를 한다. (nmtui DNS 설정할 때 10.17.0.53 으로 설정해야한다.)

ping 10.17.0.53

마운트 할 수 있는 파일시스템을 확인해야한다.

showmount -e 10.17.0.53

cShared를 폴더를 추가한다. 마운트 포인트를 설정하는 것이다.
클라이언트이기 때문에 c를 앞에 붙였다.

mkdir cShared

nfs 서버 10.17.0.53의 /shared를 클라이언트 pc 인 /root/cShared에 지정한다.

mount -t nfs 10.17.0.53:/shared /root/cShared
df -h

공유받은 파일이 있는지 /cShared로 들어가서 확인한다.

cd cShared

3.특정 IP로 제한을 걸기

이전에는 마스터에서 /exports 모든 IP로 설정했었다. 근데 제한된 IP만 들어올 수 있게 할 수 있다.

마스터 PC에서 특정 주소로 했을 때는 접속이 안되는 게 보인다. 아래 처럼 *이 아닌 IP를 설정하면 찾는다.

/shared 10.17.2.53(rw)

마스터 PC에서 재시작

systemctl restart nfs-server

클라이언트 PC에서 다시 마운팅한다. 아래쪽에 보면 10.17.2.53만 가능하다고 나온다.

showmount -e 10.17.0.53

Access denied 메시지가 나온다.

vi /etc/exports
systemctl restart nfs-server
mount -t nfs 10.17.0.53:/shared /root/cShared/
cat /root/cShared/1.txt

다시 마스터 PC로 가서 다시 *(rw)로 변경해준다. 그리고 다시 마운트를 해주면 접속이 된다.

공유할 내용하나 만든다.

echo Hello2 > /shared/2.txt

4. NFS로 여러 요청에 동일한 결과 내보내주기

NFS를 사용할 때 장점으로는 서버 자체는 여러개로 동작하지만, 모든 서버가 다 동일한 내용을 보여줘야한다. 그런 경우에 웹서버가 NFS에 접속하기 때문에 아무리 많은 요청이 있어도 마운팅만 해서 가져오면 된다. 바로바로 확인이 되다보니까 좋다.

기존에 연결되어 있던 클라이언트 마운팅을 모두 풀어준다.

umount /root/cShared

webShare 폴더를 만들었다. 그리고 html 파일을 하나 만든다. echo로 내용을 작성하면서 index.html 파일을 만들었다.

mkdir /webShare
echo Test > /webShare/index.html
cat /webShare/index.html

/exports 에 들어가서 새롭세 추가할 /webShare 내용을 추가한다.

vi /etc/exports

/webShare *(rw)

systemctl restart nfs-server

클라이언트 PC에서 웹서버를 설치한다.

dnf install httpd -y

클라이언트 PC에서 httpd 다운로드 및 configure file 제거한다.
124번줄 확인, 마운트 확인

vi /etc/httpd/conf/httpd.conf

웹서버 읽을 때 이 경로를 읽는다.

124: DocumentRoot "/var/www/html"

showmount 하면 공유해줄 수 있는 곳을 모두 보여준다.

showmount -e 10.17.0.53

webShare를 어디에 마운트 할려는지 보면,

mount -t nfs 10.17.0.53:/webShare /var/www/html

system start httpd
system status httpd

이제 이 클라이언트 웹서버로 접속을 다른 곳에서 접속해보면 테스트 할 수 있다.
호스트 PC에서 접속해본다.

10.17.1.53

웹서버를 하나 더 추가한다. 동일한 내용이 조회되는 것을 볼 수 있다.
DNS 서버 설정할 때 ping 10.17.0.53(마스터 PC)로 갈 수 있도록 해야한다. 그리고 showmount부터 시작해서 모든 공유 과정을 수행한다.

  • 마스터 부분

    vi /etc/exports/
    추가할 내용(or 수정)
    /shared *(rw)
    systemctl restart nfs-server

  • 클라이언트 부분

    showmount -e 10.17.0.53
    mkdir cShared
    mount -t nfs 10.17.0.53:/shared /root/cShared
    df -h
    cd cShared
    접속 IP : 10.17.0.82

0개의 댓글