Network NAS 마운트

실무에서 개발을 하다보면 파일 시스템(File System) NAS와 마운트하여 WAS와 NAS간 네트워크 공유를 설정하여 데이터에 접근을 하게됩니다.

파일 시스템에 접근하는 방식은 크게 네가지로 들 수 있습니다.

  1. NAS 마운트:
    NAS 서버의 파일 시스템을 WAS 서버에 마운트하여 로컬 파일 시스템처럼 사용하는 것입니다. 이를 위해 NFS(Network File System) 또는 SMB(Server Message Block)와 같은 프로토콜을 사용하여 NAS 공유를 WAS 서버에 마운트합니다.
  2. 네트워크 공유:
    NAS서버에서 파일 공유하고 WAS 서버에서 해당 자원에 접근하게 됩니다. 이를 위해 WAS 서버에서 NAS 공유에 대한 네트워크 경로 및 인증정보를 통해서 접근합니다.
  3. FTP 또는 SCP 등의 프로토콜 사용:
    NAS 서버에서 FTP(File Transfer Protocol) 또는 SCP(Secure Copy Protocol)와 같은 프로토콜을 사용하여 파일을 WAS 서버로 전송할 수 있습니다. 고전적인 배포방식에서 jar, war 파일을 직접 scp로 접근하여 처리하게 하는 시스템도 다수 있습니다.
  4. 웹 서비스를 통한 접근:
    NAS 서버에서 웹 서비스를 실행하여 WAS 서버에서 HTTP 또는 HTTPS를 통해 리소스에 접근하게 됩니다.

1. NFS를 통한 NAS 마운트

1
2
3
4
5
6
7
8
sudo apt-get update
sudo apt-get install nfs-common
sudo mount -t nfs [NAS_IP]:[공유_디렉토리_경로] [로컬_마운트_폴더]

ex) sudo mount -t nfs 192.168.1.100:/sharedFileDirectory /mnt/nas

/sharedFileDirectory 공유 디렉터리에서 /mnt/nas 로컬 경로에 마운트

2. SMB를 통한 NAS 마운트

1
2
3
4
5
6
sudo apt-get update
sudo apt-get install cifs-utils

sudo mount -t cifs //192.168.1.100/shared /mnt/cifs -o username=gwanhyeon,password=1234,uid=1000,gid=1000

NAS IP 주소가 192.168.1.100이고, 공유 이름이 shared이며, 로컬 시스템에서는 /mnt/cifs 폴더에 마운트하고 싶다고 가정합시다. 사용자 이름은 gwanhyeon이고 비밀번호는 1234이며, 로컬 사용자 ID와 그룹 ID는 각각 1000 이라는 의미를 갖습니다.

3. 만약 여러개의 나스 경로가 존재할 경우는 어떻게 할까?

glusterfs를 설치하여 해당되는 나스 경로를 볼륨 클러스터를 생성해줍니다.

1
2
3
4
5
6
7
8
sudo apt update
sudo apt install glusterfs-server -y
sudo gluster peer probe nas2
sudo gluster peer probe nas3
sudo gluster volume create gv0 replica 3 nas1:/data nas2:/data nas3:/data force
sudo gluster volume start gv0

gv0의 볼륨을 생성한 후 /data 각 서버의 디렉터리이며 모든 파일이 3개의 서버에 복제시킨다는 의미입니다.

클라이언트에서 sudo mount -t glusterfs nas1:/gv0 /mnt/glusterfs 의 명령어로 볼륨을 마운트 할 수 있습니다.

참고

윈도우에서는 기본적으로 NFS를 지원하지 않기 때문에 클라이언트 소프트웨어를 직접 설치하여 사용해야합니다.