T-NFS 서버 만들고, 연결하기

개요

NFS 서버를 만들고, 클라이언트로 이걸 연결해보는 작업을 해보자.
내 로컬 클러스터를 위한 nfs 서버이기 때문에 내 로컬에 서버를 설치하고, ec2에서 연결해볼 것이다.
또한 로컬 클러스터를 활용할 거니까 vm으로도 연결해볼 것이다.

서버 초기 설정

apt install nfs-utils rpcbind

사실 이것만으로 충분했는지는 잘 기억이 나지 않으나, 다른 사람들의 글을 보고 참고했다.
일단 util을 설치하면 되긴하나, NFS#원리에서 말했듯이 rpc 연결을 위한 데몬이 필요하다.

systemctl start rpcbind
systemctl start nfs-server
systemctl enable rpcbind
systemctl enable nfs-server

Pasted image 20241016204811.png
서버도 열어두고, rpc 매핑도 가능하게 해뒀다.
Pasted image 20241016205107.png
/etc/exports에 열어둘 파일시스템을 설정해둘 수가 있다.
이름은 내가 맘대로 지정했다.
여기에서 ip 주소를 *로 해버리면 어디에서든 접근이 가능해질 것이다.
Pasted image 20241016205943.png
각종 설정을 이렇게 넣어줄 수 있는데 참고하자.
저번에 해봤을 때는 insecure 옵션을 안 넣으면 안 되더라.
Pasted image 20241016205434.png
exportfs를 통해 상황을 확인할 수 있다.
Pasted image 20241016205549.png
상세 설명은 man을 써보자.

aws의 클라이언트 연결

Pasted image 20241016212346.png
대충 하나 만들었다.
Pasted image 20241016212508.png
amazon linux에는 이미 필요한 게 다 설치돼있다!
Pasted image 20241016212622.png
접근이 가능하게 설정을 해준다.
dns로 접근 가능한지 실험 중

중지

누나가 집 공유기 비번을 바꿔놓아서 포트포워딩을 맘대로 할 수 없게 됐다..
그냥 vm에서만 하는 걸로 당장은 만족하자.

VM의 클라이언트 연결

Pasted image 20241016214804.png
VagrantVirtualBox를 활용했다.

apt update -y && apt install -y net-tools rpcbind nfs-common

Pasted image 20241016215100.png
똑같이 두 가지를 설치해준다.

VM에서 호스트 IP 알아내기

Pasted image 20241016231528.png
통상적으로는 게스트 os에서 호스트 os의 정보를 알아낼 수 없다고 알려져 있으나, 사실 통신하기 위한 ip 정도는 알 수 있다.
같은 네트워크 내에서 캐싱된 정보를 통해 알아낼 수 있다.
확실하게 아는 것은 아니지만 호스트 전용 네트워크가 설정되어 있을 때 활성화된다는 듯.
게이트웨이는 말 그대로 게이트웨이고, ?가 호스트 os와 통신할 수 있는 ip가 된다.
Pasted image 20241016232502.png
참고로 그렇게 들어올 때 호스트 os에서는 로컬호스트로 온 것으로 뜬다.
nat가 이렇게 설정을 해준다는 건데, 어떻게 이걸 자세하게 확인할 수 있는지는 잘 모르겠다.

호스트 서버에 연결

Pasted image 20241016234244.png
ip를 알아냈으니 노출하고 있는 마운팅포인트도 이제 알 수 있다.
남은 일은 마운팅을 진행하는 것이다.
Pasted image 20241016234345.png
마운트 명령어를 통해 마운팅이 가능하다.
Pasted image 20241016234452.png
내가 이전에 만들어둔 임의의 파일들이 들어있는 것이 확인된다.

Vagrant에 서버 코드 남기기

Pasted image 20241017004348.png
여태 한 사항들을 정리해두면 나중에 편하게 nfs 서버를 구축할 수 있을 것이다.

참고