본문 바로가기

푸로그래밍/Linux

NFS를 이용하여 NAS 마운트

반응형

서비스를 운영하다보면 서버를 이중화하기 마련이다.

단일서버라면 첨부파일을 해당서버에 바로 저장해도 되지만, 이중화되어 있다고 가정했을 때 1번서버를 통해서 파일이 업로드 되었는데, 파일 다운로드 요청이 2번서버로 가게 된다면, 2번 서버에서는 파일이 없다는 에러를 내보내게 될 것이다.

 

따라서 다중화시스템에서 첨부파일등을 저장할 때 동일한 저장소에 저장하는 것은 필수이다.

동일한 저장소에 저장할 수 있는 방법은 여러가지가 있으나,

 

이 글에서는 NAS를 WAS서버의 특정한 위치에 mount시키는 방법에 대해 설명한다.

 

1. NFS 서버 설정 (NAS 측에서 수행)

  1. NFS 패키지 설치
  2. 공유할 디렉토리 설정
  3. NFS 서비스 활성화 및 시작
  4. 방화벽 설정

1. NFS 패키지를 설치한다. Centos 기준으로 진행하였으며, "/home/enview/upload" 폴더를 공유 폴더로 사용하였다.

sudo yum install nfs-utils
sudo mkdir -p /home/enview/upload

2. 공유할 디렉토리 설정

sudo vi /etc/exports

vi 로 /etc/exports 파일을 연 후 아래의 내용을 추가한다.

/home/enview/upload 192.168.1.*(rw,sync,no_subtree_check)

192.168.1 번 대역에 있는 서버로하여금 rw,sync,no_subtree_check설정으로 /home/enview/upload를 공유할 수 있게 한다는 뜻이다.

이 부분은 각자의 환경에 맞게 설정하면 된다.

3. NFS 서비스 활성화 및 시작

sudo systemctl enable nfs-server
sudo systemctl start nfs-server

첫번째 줄은 nfs-server를 서버가 재기동 되어도 자동으로 시작하게 설정한다.

두번째 줄은 nfs-server를 지금 시작한다.

4. 방화벽 설정

centos를 사용하고 있다면 firewall-cmd를 사용하여 아래와 같이 방화벽을 해제할 수 있다.

sudo firewall-cmd --permanent --add-service=nfs
sudo firewall-cmd --permanent --add-service=mountd
sudo firewall-cmd --permanent --add-service=rpc-bind
sudo firewall-cmd --reload

그러나 클라우드 환경, 다른 특정한 방화벽 솔루션을 사용하는 환경에서는 해당 설정부분또한 같이 진행해야 접속하고자 하는 서버에서 정상적으로 연결할 수 있다.

5. 확인

sudo systemctl status nfs-server
netstat -ntlp

등으로 서비스가 잘 돌고 있는지 확인한다.

 

 

2. NFS 클라이언트 설정 (WAS 측에서 수행)

  1. NFS Util 패키지 설치
  2. NFS 서버의 공유 확인
  3. 마운트 할 디렉토리 생성
  4. NFS 마운트
  5. 자동 마운트 설정 (선택)

1. NFS Util 패키지 설치

sudo yum install nfs-utils

 

2. NFS 서버의 공유 확인

showmount -e 서버IP

NFS 서버의 IP나 HOST를 이용하여 해당 서버에서 제공하는, 현재 서버(클라이언트)에서 마운트할 수 있는 공유 목록을 확인한다.

여기서 오래걸리면 방화벽이 뚫려있지 않은것 일 가능성이 있으므로, telnet을 이용하여 확인한다.

3. 마운트 할 디렉토리 생성

필자는 /home/enview/webapps/enview3.2.5/upload 폴더에 mount를 할 예정이므로 아래와 같이 폴더를 만든다.

mkdir -p /home/enview/webapps/enview3.2.5/upload

4. NFS 마운트

sudo mount -t nfs NFS서버IP:/home/enview/upload /home/enview/webapps/enview3.2.5/upload

NFS서버의 /home/enview/upload 폴더를 현재 클라이언트 서버의 /home/enview/webapps/enview3.2.5/upload 폴더에 마운트 한다는 의미이다.

5. 자동 마운트 설정 (선택)

echo "NFS서버IP:/home/enview/upload /home/enview/webapps/enview3.2.5/upload nfs defaults 0 0" | sudo tee -a /etc/fstab

위의 명령어를 실행하여 마운트정보를 /etc/fstab 파일에 추가한다.

이 후에는 서버를 재기동하여도 자동으로 마운트 될 것이다.

반응형