본문 바로가기
Linux

NFS Storage (autofs)

by shinebee* 2020. 6. 2.

NFS(Network File System)

: Linux에서 제공하는 저장공간 공유 시스템

  - client는 server에서 제공하는 공유 directory에 접근

  - NAS도 약간 비슷한 방식      

 

NFSv4

-Server

  nfs-utils

  /etc/exports

    <절대 경로> <허용 IP/prefix> <mount 옵션>

 

-Client

  nfs-utils

  mount -t nfs <server 주소>:/directory <mounting> 

 

NFS Client 연결

* mount 방법

 - 수동 마운트

    - mount 명령어 사용

    - fstab에 추가한다. 

 - 자동 마운트

    - 맵 파일

       1. 마스터 맵 : mount-point, 맵 파일의 경로(직접 맵과 간접 맵의 경로)

       2. 직접 맵 : 마운트 되는 파일 시스템의 경로를 모두 입력

       3. 간접 맵 

 

* 수동 마운트 실습

-Server

yum install -y nfs-utils // 패키지 설치
mkdir /nfs  // 공유하기 위한 디렉터리
chmod 777 /nfs
vi /etc/exports 
	/nfs      192.168.122.0/24(rw, sync, sec=sys)
	// /nfs -> 공유 디렉터리의 경로
	   192.168.122.0/24 -> 공유 디렉터리에 접근할 수 있는 호스트
       	   or  DNS => *. testnfs.co.kr
		      www.testnfs.co.kr
		      client1.testnfs.co.kr
		      (rw, sync, sec=sys) -> NFS 서버의 공유 옵션   
				sync -> 이전 요청 사항이 스토리지에 저장되기 전에 다른 요청에 응답하지 않는다.                               
				sec -> 보안 방법을 지정. (none, sys, krb5, krb5i, krb5p)
				sys -> 사용자 인증에 따른 권한 
// NFS 서버의 파일 시스템을 공유하는 서비스.
firewall-cmd --permanent --add-service=nfs
firewall-cmd --permanent --add-service=mountd  // mountd : NFS 서버에서 export를 설정하기 위해 필요.
firewall-cmd --reload
systemctl start nfs-server
systemctl enable nfs-server  // NFS 서버의 파일 시스템을 공유하는 서비스.
systemctl start rpc-statd
systemctl status nfs

exportfs -v(r)  // export 테이블을 불러옴.

 

- Client

yum install -y nfs-utils 
showmount -e 192.168.122.200 
//수동 마운트. showmount -> NFS 서버의 상태 정보를 mountd에게 질의. -e 옵션으로 export 파일에 등록된 디렉터리를 확인할      수 있음.
mkdir /mnt/nfs
mount -o rw,sync,sec=sys 192.168.122.200:/nfs /mnt/nfs
//mount -o [option] server-add:path mount-point
mount | grep nfs
df -Th
touch /mnt/nfs/filetest192.168.122.100
더보기

-> 디렉터리 공유 확인

Server의 /nfs에서 filetest192.168.122.100 파일을 확인할 수 있다.

Client의 user에서 만들었기 때문에 소유자가 user이다.

 

Client에서 student 계정을 생성하고 Student계정으로 /mnt/nfs/filestudent 파일을 만들면

Server에서는 같은 UID를 가진 계정이 없으므로 소유자가 UID로 표시된다.

 

Server에서 user123 계정을 생성하고 /nfs 안의 파일 속성을 보면

user123이 Client의 student 계정과 UID가 같아 비록 파일은 Client의 student가 생성했지만

소유자가 user123으로 나온다.

 

* 자동 마운트 실습

 - Server

mkdir -p /shares/{docs,public,work}
ls -ald /shares/{docs,public,work}
chmod 777 /shares/{work,docs,public}
vi /etc/exports 
    /nfs    		192.168.122.0/24(rw,sync,sec=sys)
    /shares/docs    192.168.122.0/24(rw,sync,sec=sys)
    /shares/public  192.168.122.0/24(rw,sync,sec=sys)
    /shares/work    192.168.122.0/24(rw,sync,sec=sys)

systemctl restart rpcbind
systemctl restart nfs-server
systemctl restart nfs
systemctl status nfs

exportfs -r

cd /shares
ls

 

 - Client

yum install -y autofs  // 자동 마운트를 구성하기 위한 패키지 설치
mkdir /test
vi /etc/auto.master.d/shares.autofs  //. autofs를 반드시 지정해야 서비스가 인식할 수 있다.
	/test               /etc/auto.shares
       // mount-point      map-file-path(직접 또는 간접 맵) 

vi /etc/auto.shares 
	docs    -rw,sync,sec=sys        192.168.122.200:/shares/docs 
	public  -rw,sync,sec=sys        192.168.122.200:/shares/public
	work    -rw,sync,sec=sys        192.168.122.200:/shares/work     
     // path    mount-options           server-address:path     (간점 맵 파일)
           
	/mnt/nfs/directmap     -rw,sync,sec=sys        192.168.122.200:/nfs/public     
  	// /-      		mount-options          server-address:path     (직접 맵 파일)  

systemctl start autofs
systemctl enable autofs
systemctl status autofs

cd /test
df -Th  // mount 안되어있음.
ls -al   
cd public
cd ..
df -Th  // mount 됨.
ls -al  

'Linux' 카테고리의 다른 글

iSCSI 블록 스토리지  (0) 2020.06.03
SMB Storage  (0) 2020.06.03
DNS Server  (0) 2020.06.01
DHCP Server  (0) 2020.06.01
리눅스 보안-SELinux  (0) 2020.06.01

댓글