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 |
댓글