카테고리 없음
[NFS] Virtual Box CentOS 운영체제에서 Network File System NFS 설정하는 방법
엔지니어 은성
2021. 9. 10. 16:15
1. NFS의 개념
network file system은 리눅스, 유닉스 시스템 사이에서 파일과 폴더를 공유하기 위해 사용하는 분산된 파일 시스템 프로토콜입니다.
2. NFS를 왜 사용할까요?
파일을 공유하기 위해서 파일 시스템에 마운팅 하는 것이 가능해지면 NFS-Client는 NFS-Server의 파일에 로컬 파일인 것처럼 접근할 수 있습니다.
3. NFS 설정하는 방법
client - server 모델처럼 server client 각각 설정해야 합니다.
virtual Box에서 실행하기 위해서 client와 server를 각각 만들어줍니다.
4. NFS-server 설정
//nfs-utils 설치
# sudo su -
# yum install nfs-utils
//공유할 디렉토리 선택, 없다면 생성
# mkdir /var/nfs_share_dir
//공유되는 디렉토리에 대한 권한과 소유권 ADD
# chmod -R 755 /var/nfs_share_dir
# chown nfsnobody:nfsnobody /var/nfs_share_dir
#nfs 서비스 시작
# systemctl enable rpcbind
# systemctl enable nfs-server
# systemctl enable nfs-lock
# systemctl enable nfs-idmap
# systemctl start rpcbind
# systemctl start nfs-server
# systemctl start nfs-lock
# systemctl start nfs-idmap
// 파일공유를 위해 export file 설정
# vi /etc/exports
//파일 공유 경로와 client 정보를 /etc/exports에 채워줍니다.
// client IP 172.30.1.15
//vi 파일 수정 내용
/var/nfs_share_dir 172.30.1.15(rw,sync,no_root_squash)
// nfs-server 재시작
# systemctl restart nfs-server
// CentOS7에서는 NFS 서비스 재정의
# firewall-cmd --permanent --zone=public --add-service=nfs
# firewall-cmd --permanent --zone=public --add-service=mountd
# firewall-cmd --permanent --zone=public --add-service=rpc-bind
# firewall-cmd --reload
5. NFS-Client 설정
// nfs-utils 설치
# sudo su -
# yum install nfs-utils
// 마운트 포인트 생성
# mkdir -p /mnt/nfs/var/nfs_share_dir
// 파일시스템에 마운팅
# mount -t nfs 172.30.1.13:/var/nfs_share_dir /mnt/nfs/var/nfs_share_dir
-t type of filesystem
172.30.1.13 server's IP
//마운트 되었는지 확인
# df -kh
//영구적인 마운팅을 하려면 /etc/fstab 파일을 수정
//vi /etc/fstab
//172.30.1.13:/var/nfs_share_dir /mnt/nfs/var/nfs_share_dir nfs defaults 0 0
//Client - Side에서 echo
# echo "Client Hello" >> /mnt/nfs/var/nfs_share_dir/testing.txt
nfs /etc/exports의 옵션 정리
ro,rw | 읽기 전용,읽고쓰기 |
root_squash | 클라이언트의 관리자가 서버쪽으로 요청시 익명계정으로 매핑 * 클라리언트가 root권한 획득을 막는다. uid/gid가 0의 요청을 익명의 uid/gid(nobody)로 매핑한다. 그외 uid/gid(일반 계정)에 대해서는 해당되지않는다. 디폴트 값이다. |
all_squash | 클라이언트의 관리자를 포함하여 모든 사용자가 서버쪽으로 여청시 익명 계정으로 매핑 모든 uid,gid를 익명사용자에게 매핑합니다. 디폴트 값입니다. |
sync | 쓰기 실행후 디스크 동기화 시행 |
no_root_squash | 클라이언트의 관리자가 서버쪽으로 요청시 서버 쪽 관리자 계정으로 매핑 클라이언트가 root 권한 획득가능, 파일 생성시 클라이언트 권한으로 생성된다. |
no_all_squash | root를 제외한 일반 사용자 계정에 대해 모든사용자로 서버쪽으로 요청시 동일한 사용자 계정으로 매핑 |