(Linux)NFS 서버 구성, 마운트 실습
[카카오 클라우드 스쿨] NFS 서버의 원격 디렉터리를 마운트 해서 사용해 보자
- NFS: 공유 스토리지
- NFS는 운격의 디렉터리를 할당해 마운트해서 쓸 수 있다
- 마운트는 무엇인가?
NFS 서버 구성하기
1 . NFS 디렉터리 생성
mkdir /public
2 . 접근 권한 설정
- 소유주, 그룹, 그외 일반 사용자 모두 /public에 접근하여 파일 업로드,다운로드할 수 있도록 설정하자
접근 권한(permission)
- drw-rw-r–
- rw-: 소유주, 디렉터리를 읽고 새로운 파일을 업로드 하는 것을 허용한다
- rw-: 그룹, 디렉터리를 읽고 새로운 파일을 업로드 하는 것을 허용한다
- r: 그 외 사용자, 디렉터리의 목록을 보는 것만 가능하다
- rwx 숫자로 지정하기
- 4(r) 2(w) 1(x)
- 755: rwx r-x r-x
- 251: -w- r-x –x
- 644: rw- r– r–
- rwx 문자로 지정하기
- u+x: 소유주에 실행 권한 추가
- g-r: 그룹에 읽기 권한 제거
- o-w: others에 쓰기 권한 제거
[root@srv7 /]# chmod 777 /public
3 . 서버 설정
- 원격 사용자가 NFS 공유 디렉터리에서 파일을 만들었을 경우, 해당 파일을 누가 만든 것으로 볼 지 결정해야 함
- root_squash: nfsnobody 가 만든 것
- no_root_squash: root 가 만든 것
[root@srv7 /]# touch /public/test.txt
[root@srv7 /]# yum -y install nfs-utils
[root@srv7 /]# vi /etc/exports
---
/public 211.183.3.0/24(rw,sync,no_root_squash)
---
[root@srv7 /]# systemctl restart nfs-server 지금 당장 시작
[root@srv7 /]# systemctl enable nfs-server 재부팅 시 자동시작 등록
4 . 클라이언트 설정
- 특정 IP에서 현재 외부에 노출하고 있는 것을 확인한다
- 확인했으면 Mount한다
[root@srv8 ~]# showmount -e 211.183.3.201 showmount -e 192.168.1.105
Export list for 211.183.3.201:
/public 211.183.3.0/24
[root@srv8 ~]# mkdir /remote
[root@srv8 ~]# mount -t nfs 211.183.3.201:/public /remote 타입 nfs, 위치를 지정
[root@srv8 ~]# ls /remote
test.txt
5 . 접근해 보기
- 접근해서 파일 생성이 잘 되었다
[root@srv8 ~]# echo "hello" > /remote/test.txt
[root@srv7 public]# cat /public/test.txt
hello
(강의실에서만 가능한) 실습 문제
순서는 다음과 같다
- 전원을 종료한다
- NIC를 VMnet10에서 bridge(VMnet0)로 변경한다
- IP 주소는 192.168.1.1xx 로 변경하고, 기본 게이트웨이와 DNS 서버를 등록한다
- ping www.google.com 및 ping mainserver 요청 시, 192.168.1.199로부터 응답이 와야 함
- 192.168.1.199 에 nfs 서버가 등록되어 있고 /public에 들어가 보면 0720.pem 파일이 있다
- 0720.pem 파일을 이용하여 원격(ssh) 접속한다.
- 자신의 홈 디렉터리인
/home/ec2-user
로 접근 가능하다. 여기에 이름.txt 파일을 만들어 둔다
- 자신의 홈 디렉터리인
3 . mainserver 등록하기
[root@srv7 ~]# cat <<EOF >>/etc/hosts
> 192.168.1.199 mainserver
> EOF
4 . NFS 서버의 디렉터리 가져오기
[root@srv7 ~]# mkdir /remote
[root@srv7 ~]# mount -t nfs 192.168.1.199:/public /remote
[root@srv7 ~]# ls /remote
0720.pem
5 . 비밀키로 ssh 접속하기
[root@srv7 ~]# ssh -i /remote/0720.pem mainserver
[root@srv7 ~]# cp /public/0720.pem ~/
[root@srv7 ~]# ssh -i 0720.pem mainserver
- 접속이 안된다면 다음처럼 사용자를 지정해 줘야 함
[root@srv7 ~]# ssh -i ./0720.pem ec2-user@mainserver -p22
Last login: Wed Jul 20 16:59:36 2022 from 192.168.1.33
==========================
HELLO ALL
==========================
[ec2-user@mainserver ~]$ ls
gildong.txt
[ec2-user@mainserver ~]$ touch chulsu.txt