GCSFUSE를 이용한 Cloud Storage NAS 구성

FUSE는 userspace filesystem framework로, 일반 사용자 레벨에서 특별한 권한 없이 안전한 파일시스템 마운트를 구성할 수 있게끔 해주는 도구입니다.

본 글에서 다루고 있는 gcsfuse는 Google Cloud의 대표적인 파일시스템인 Google Cloud Storage를 Compute Engine에서 마운트 할 수 있도록 제공하는 오픈소스(Apache License 2.0)입니다.

즉, gcsfuse를 이용하여, Cloud Storage를 NAS로 연결하여 사용할 수 있습니다.

gcsfuse는 아래의 github 주소에서 확인하실 수 있습니다.

https://github.com/GoogleCloudPlatform/gcsfuse

 

본 글에서는 Linux CentOS and RedHat 계열 기준으로 안내드리겠습니다.

위 github에서 Installing.md에 보면, Linux 별 설치방법이 나와있습니다.

1. 먼저, yum을 통한 설치를 위해, gcefuse repository를 설정합니다.

 

sudo yum install fuse
sudo tee /etc/yum.repos.d/gcsfuse.repo > /dev/null <<EOF
[gcsfuse] name=gcsfuse (packages.cloud.google.com)
baseurl=https://packages.cloud.google.com/yum/repos/gcsfuse-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=0
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg
https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
EOF

 

2. gcsfuse를 설치합니다.

 

sudo yum install gcsfuse

 

3. 마운트 할 Cloud Storage 버킷을 확인합니다.

 

 

4. Compute Engine에서 마운트를 수행합니다.

마운트는 사용자 계정에서도 정상 동작합니다.

gcsfuse {Cloud Storage 버킷명} {마운트 할 로컬 디렉터리 경로}

mkdir gcswebserver gcsfuse gcswebserver /home/jhlee/gcswebserver

정상적으로 Cloud Storage가 마운트 되었습니다. 용량이 자그마치 1 페타바이트입니다.

이와 같은 방식으로, gcsfuse를 통해 Cloud Storage를 NAS로 사용할 수 있습니다.

5. 언마운트는 아래와 같이 실행합니다. (로컬 디렉터리 경로 지정)

fusermount u gcs 서버

 

6. 실행 모드 마운트

마운트 디렉터리를 단순히 파일 저장 용도로 사용하려면, 위와 같이 마운트 하여도 상관없지만, 일반 디렉터리처럼, 실행파일들도 위치시키고 사용하기 위해서는, 마운트 시 파일 모드를 별도로 주어야 합니다. (–file-mode)

gcsfuse filemode=755 gcswebserver /home/jhlee/gcswebserver

 

–file-mode 옵션을 사용하여 파일에 실행 권한을 주게 되면, 실행파일들을 실행할 수 있습니다.

7. 부팅 시 자동 마운트

OS 부팅 시, 자동으로 마운트 되도록 하기 위해서는 2가지 방법이 있습니다.

  • /etc/fstab 파일에 작성

  • rc.local 파일에 작성

일반적인 파일 시스템 마운트 시에는 /etc/fstab 파일을 활용하지만, gcsfuse를 사용할 경우에는 fstab 파일 방법에 오류가 다소 발생합니다.

따라서, rc.local 파일을 활용하는 것을 권장합니다.

운영환경에서는 root 유저를 사용하여 Cloud Storage를 마운트 하겠습니다만, 본 글에서는 사용자 계정으로 마운트 하는 방법을 작성하였습니다.

물론 root 유저에서도 동일합니다.

 

온 프레미스 환경의 Active/Standby, Active/Active 구성을 클라우드 환경으로 마이그레이션하거나 클라우드 환경에서 신규 구성하기 위해서는, 공유 파일시스템 마운트에 대한 설계가 명확해야 합니다.

구글 클라우드에서는 공유 파일 시스템으로 NAS를 권장하며, NAS 방식으로 활용할 수 있는 방안은 대표적으로 아래와 같습니다.

  • Google Cloud Filestore (Google Cloud 공식 제공 NAS 서비스)

  • Marketplace Third Party 제품 (예, Cloud volumns)

  • 구글 클라우드 저장소

이 중에서, 위 2개의 제품/서비스는 최소 월 사용 용량이 1TB 이상이기 때문에, 엔터프라이즈 급에서의 사용을 권장합니다.

반면에 Google Cloud Storage는 매월 사용한 용량만큼의 비용이 발생합니다. 단, 읽기/쓰기 성능이 낮기 때문에, 성능을 요구하는 파일 시스템으로는 사용하기 어렵습니다.

저희 모코코(mococo, inc)에서는 다년간의 경험과 기술을 통해, 고객의 요구사항에 맞는 최적의 아키텍처 설계 및 구축 서비스를 제공합니다.

파일시스템 구축 요구사항이 있으신 경우, Cloud Storage를 NAS로 활용하실 원하시는 경우, 기술 문의를 주시면 만족하실 수 있는 서비스를 제공 드리기 위해 최선을 다하겠습니다.

비슷한 글 더보기