본문 바로가기

리눅스(Linux)/실습

[리눅스] NFS(network file system) : Main server와 Client server에서 특정 디렉토리 공유하기

반응형

 

# Main server에서 진행

1. nfs-utils 패키지 설치 여부 확인 및 설치

rpm -qa | grep nfs-utils   # nfs 설치 여부 확인
dnf -y install nfs-utils   # nfs 다운로드

 

 

2. 공유 담당 파일(/etc/exports) 설정 변경

vi /etc/exports   # 공유 담당 파일(exports)에 외부에 공유할 디렉토리(share) 추가
##############################
/share	192.168.111.*(rw,sync)      # /share 디렉토리를 192.168.111.로 시작하는 모든 IP 컴퓨터(ex.사내)에 공유
##############################      #rw:읽고쓰기/sync:싱크, 누가 사용중이면 다른사람이 동시 수정 못하게 막는것

#/share	192.168.111.128(ro)   : /share 디렉토리를 192.168.111.128 컴퓨터에 읽기 전용으로 공유
#/share	*.this.com(rw)   : /share 디렉토리를 this.com도메인 아래의 모든 호스트에서 읽기가 가능하도록 공유
#세부사항은 man exports 명령으로 확인

vi /etc/exports

 

3. 외부에 공유할 디렉토리(share) 생성 및 권한 변경

mkdir /share   #share 폴더 만들기
chmod 707 /share   #share 폴더 접근 권한 변경
cp /boot/vm* /share  #share 폴더에 아무 파일이나 복사
ls       # 잘 복사 되었는지 확인

share 폴더 생성 및 권한변경, 파일복사

 

4. nfs 서비스 가동 및 확인

systemctl restart nfs-server.service   # nfs 시작
systemctl enable nfs-server.service    # nfs 상시가동 
systemctl status nfs-server.service   # nfs 상태확인

#netstat -ntlp | grep nfs  
#네트워크 연결 상태, 라우팅 테이블, 인터페이스 상태 등을 보여주는 명령어

exportfs -v  # 서비스 가동 확인

nfs 서비스 가동 설정 확인
nfs 서비스 가동 확인

 

5-1. firewall 방화벽 끄기

# firewalld 방화벽 잠깐 끄기 
# nfs서버는 보안에 취약한 편, 일일이 보안 관련 설정 추천, 지금은 일단 끄기
systemctl stop firewalld    # 방화벽 끄기
systemctl status firewalld   # 확인

방화벽 off

5-2. firewall 방화벽 nfs 서비스 추가

# firewall nfs 서비스 추가
firewall-cmd --permanent --add-service=nfs
firewall-cmd --permanent --add-service=mountd
firewall-cmd --permanent --add-service=rpc-bind
firewall-cmd --reload
firewall-cmd --list-all


# portmap 다운로드
dnf install portmap   # 설치

exportfs -v  # export확인
exportfs -ra # 업데이트

 

 

# Client server에서 진행

더보기

# 만약 Main server 와 Client server가 (clone으로 만든 서버라서) IP주소가 같다면?

 

vi /etc/sysconfig/network-scripts/ifcfg-ens160   # IP주소 담당 파일 설정 변경
/ifcfg-ens160 파일 IP주소 부분 변경하기

 

ifdown ens160  # off
ifup ens160     # 다시 on
ifconfig    # IP주소 바뀐거 확인

 

1. client server에 nfs-utils 패키지 설치 및 가동

rpm -qa | grep nfs-utils  # nfs 관련 패키지 설치여부 확인
dnf -y install nfs-utils   # nfs 다운로드

systemctl restart nfs-utils   # nfs 시작 (클라이언트라서 nfs-server.service가 아니라 nfs-utils)
systemctl enable nfs-utils    # nfs 상시가동 
systemctl status nfs-utils   # nfs 상태확인

nfs-utils active 상태 확인

 

2. client IP 주소에서 마운트 가능한 폴더 확인

# 마운트 가능 폴더 확인
showmount -e 192.168.111.207   # showmount -e (nfs server IP주소)
# nfs server IP주소에서 클라이언트가 마운트할 수 있는 폴더가 무엇인지 확인

마운트 가능 폴더 확인

 

3. 마운트 진행

# 마운트
cd /home/centos    # centos 사용자의 홈 디렉토리로 이동(/home/centos)
mkdir client_share   # client_share 폴더 생성
 #nfs server의 /share 폴더에 마운트할 /home/centos/client_share 만들기
 
su -c 'mount -t nfs 192.168.111.207:/share client_share'   # 두 폴더 마운트
#umount /client_share  # 마운트 해제

df  # 마운트 상태 확인

 

 

4. 자동 마운트 설정(fstab) 및 재부팅

vi /etc/fstab  # fstab 수정

##############################################################################################
192.168.111.207:/share	/home/centos/client_share	nfs	defaults	0	0
##############################################################################################

reboot

 

 

5. nfs 서버, client 서버 연동(마운트) 확인

ls -l /home/centos/client_share   # 자동 마운트 된 것 확인
touch /home/centos/client_share/test_client.txt   # 테스트로 파일 하나 생성해서 두서버에 모두 뜨는지 확인

 

clinet_share 폴더(client 서버)
share 폴더(nfs 서버)

 

 

 

더보기

※ 알아두기 

fstab 설정 후에 Main server에 server.service 를 끄면 Client server에 공유가 안되고, 서비스를 켜면 다시 자동으로 연결됩니다. 그러나 Main server 자체를 power off하게 되면, Client server와의 연결 자체가 끊기기 때문에, 마운트 작업을 처음부터 다시 진행해줘야합니다.

 

 

# window Client와 연결


 

오늘은 Main server와 Client server에서 특정 디렉토리 공유하는 NFS에 대해 알아보았습니다. 각 서버마다 nfs-utils를 다운받고나서 서비스를 설정해주었습니다. 추후에는 사내 컴퓨터 외에 외부에서도 접속을 할 수 있는 방법에 대해 알아보겠습니다. 감사합니다.

 

 

반응형