안녕하세요 롯사입니다.
이번 시간엔 리눅스 nfs 마운트에 대해서 다루어 보겠습니다.
본론으로 들어가기 전에 먼저 nfs 가 무엇이지부터 알아봐야겠죠??
what is NFS??
Network File System의 약자로 쉽게 말해서 네트워크 공유기술의 프로토컬이라고 생각하면 됩니다.
네트워크로 연결된 다른 컴퓨터의 하드디스크를 내 하드디스크의 특정 마운트 포인트와 마운트 하여
마치 내 하드디스크를 사용하는 것처럼 논리적으로 구성할 수 있는 프로토컬을 말합니다.
자 이제 본론으로 들어가서 서버와 클라이언트의 디스크를 마운트 해보겠습니다.
1. NFS 서버 설정
* rpm -qa | grep nfs-utils ( 설치 package 확인 )
rpm install nfs-utils ( nfs-utils 설치 )
nfs 서버를 구성할 수 있는 package가 설치되어있는지 먼저 확인합니다.
전 이미 설치가 최신 버전으로 되어있네요.
* systemctl start nfs-server ( nfs 서비스 실행 )
systemctl enable nfs-server ( 재부팅 시 자동 활성화 )
systemctl start rpcbind ( CentOS 7에서는 NFSv4를 사용하므로 NFSv3을 사용하는
하위 버전인 경우는 같이 실행해줍니다.)
systemctl enable rpcbind ( 재부팅 시 자동 활성화 )
package 설치가 완료되었으면 서비스를 실행과 동시에 재부팅 시 자동으로 활성화될 수 있도록 설정해줍니다.
* /test mkdir test 1 test2 test 3 ( 마운트 할 임의의 디렉터리 생성 )
클라이언트 쪽에 공유할 디렉터리를 생성합니다. ( 기존에 디렉터리가 존재하면 필수 사항은 아닙니다.)
저는 임의로 test 1 , test2, test 3을 생성했습니다.
* vi /etc/export ( 공유할 디렉터리 정의 )
공유할 디렉터리와 기본적인 접근권한 설정을 정의해줍니다.
test 1, test2, test 3을 192.168.159.* 대역에서 접근할 수 있게 허용한 설정입니다.
여기서 권한 설정 옵션은 아래와 같습니다.
rw : 읽기, 쓰기 가능
ro : 읽기만 가능
secure : 클라이언트 마운트 요청 시 포트를 1024 이하로 설정
noaccess : 액세스 거부
root_squach : 클라이언트의 root가 서버의 root 권한을 획득하는 것을 차단합니다
no_root_squash : 클라이언트의 root와 root를 동일하게 한다.
sync : 파일 시스템이 변경되면 즉시 동기화합니다
all_squach : root를 제외하고 서버와 클라이언트의 사용자를 동일한 권한으로 설정합니다.
no_all_squach : root를 제외하고 서버와 클라이언트의 사용자들을 하나의 권한을 가지도록 설정합니다.
* exportfs -r ( 수정한 export 내용 적용 )
exportfs -v ( export에 설정한 공유 확인 )
showmount -e [nfs 서버 ip] (서버의 공유 가능한 디렉터리 정보 확인 )
설정한 내용과 공유 가능 디렉터리를 확인합니다.
* firewall-cmd --permanent --zone public --add-service mountd ( 방화벽 허용)
firewall-cmd --permanent --zone public --add-service rpc-bind (방화벽 허용 )
firewall-cmd --permanent --zone public --add-service nfs (방화벽 허용)
firewall-cmd --reload
centos7 이상부터는 iptables 위에 방화벽 (firewalld)가 존재하기 때문에 방화벽을 운영 중이시라면
필수적으로 서비스 허용을 설정해줍니다.
2. Client 서버 설정
* rpm -qa | grep nfs-utils ( 설치 package 확인 )
rpm install nfs-utils ( nfs-utils 설치 )
nfs 서버 설정과 마찬가지로 package 확인 후 설치해줍니다.
* systemctl enable rpcbind (centos 7 이하 버전에 적용합니다.)
systemctl start rpcbind (centos 7 이하 버전에 적용합니다.)
* /tmp mkdir testclient ( 마운트 할 디렉터리 생성 )
기존에 마운트할 디렉터리가 존재하면 필수 항목은 아닙니다.
저는 testclient라는 디렉터리를 생성했습니다.
* showmount -e [nfs 서버 ip] ( 공유 가능한 nfs 서버 디렉터리 확인 )
nfs 서버에서 공유 설정한 디렉터리가 잘 조회가 되었습니다.
* mount -t nfs 192.168.159.128:/test/test 3 /tmp/testclient (nfs 서버에 마운트)
[nfs서버 ip] [서버 디렉터리] [client 마운트 포인트]
df -h ( 파티션 정보로 마운트 확인 )
nfs 서버의 /test/test 3 디렉토리에 client 서버 /tmp/testclient 에 잘 마운트가 되었습니다.
해당 디렉토리에 접근해서 확인해 보시면 nfs 서버의 /test/test 3 경로의 파일들이 동일하게
client 서버 /tmp/testclient 에도 공유되는 것을 확인할 수 있습니다.
* /etc/fstab ( 부팅 시 자동으로 마운트 되게 설정 )
192.168.159.128:/test/test 3 /tmp/testclient nfs default 0 0
fstab 등록해줌으로써 재부팅 후에도 자동으로 마운트 하게 됩니다.
이상 리눅스 nfs 마운트 설정에 대한 포스팅을 마치겠습니다.
모두 열공하시길 바랍니다 ^^
'IT 학습 공간 ::)' 카테고리의 다른 글
리눅스 ssh 명령어 사용법 ( 원격 접속 프로토콜/centos7 ) (0) | 2019.05.12 |
---|---|
리눅스 scp 명령어 사용법 ( 파일 전송 프로토콜 / 파일 보내기 /파일 받기 ) (2) | 2019.05.11 |
리눅스 권한 관리 설정 (chmod, chown, chgrp ) (0) | 2019.05.10 |
리눅스 User Account Management ( useradd/usermod/userdel ) (0) | 2019.05.08 |
리눅스 vi 에디터 사용법 (0) | 2019.05.02 |