서비스를 운영하다보면 서버를 이중화하기 마련이다.
단일서버라면 첨부파일을 해당서버에 바로 저장해도 되지만, 이중화되어 있다고 가정했을 때 1번서버를 통해서 파일이 업로드 되었는데, 파일 다운로드 요청이 2번서버로 가게 된다면, 2번 서버에서는 파일이 없다는 에러를 내보내게 될 것이다.
따라서 다중화시스템에서 첨부파일등을 저장할 때 동일한 저장소에 저장하는 것은 필수이다.
동일한 저장소에 저장할 수 있는 방법은 여러가지가 있으나,
이 글에서는 NAS를 WAS서버의 특정한 위치에 mount시키는 방법에 대해 설명한다.
1. NFS 서버 설정 (NAS 측에서 수행)
- NFS 패키지 설치
- 공유할 디렉토리 설정
- NFS 서비스 활성화 및 시작
- 방화벽 설정
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 측에서 수행)
- NFS Util 패키지 설치
- NFS 서버의 공유 확인
- 마운트 할 디렉토리 생성
- NFS 마운트
- 자동 마운트 설정 (선택)
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 파일에 추가한다.
이 후에는 서버를 재기동하여도 자동으로 마운트 될 것이다.
'푸로그래밍 > Linux' 카테고리의 다른 글
[CentOS] CentOS에서 Nginx 설치 (0) | 2022.09.05 |
---|---|
[Ubuntu] Ubuntu 20.04, 패키지 리포지토리 주소를 Kakao로 변경 (0) | 2021.09.11 |