Contents
(Linux)NFS 서버 구성, 마운트 실습
   2022년07월20일     3분정도면 다 읽어요     - Comments

[카카오 클라우드 스쿨] NFS 서버의 원격 디렉터리를 마운트 해서 사용해 보자


  • NFS: 공유 스토리지
  • NFS는 운격의 디렉터리를 할당해 마운트해서 쓸 수 있다
    • img_29


  • 마운트는 무엇인가?
    • img_30



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



(강의실에서만 가능한) 실습 문제

순서는 다음과 같다

  1. 전원을 종료한다
  2. NIC를 VMnet10에서 bridge(VMnet0)로 변경한다
  3. IP 주소는 192.168.1.1xx 로 변경하고, 기본 게이트웨이와 DNS 서버를 등록한다
    • ping www.google.com 및 ping mainserver 요청 시, 192.168.1.199로부터 응답이 와야 함
  4. 192.168.1.199 에 nfs 서버가 등록되어 있고 /public에 들어가 보면 0720.pem 파일이 있다
  5. 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