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

먼저 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

클라이언트 설정한 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

이전에는 마스터에서 /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



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
