FUSE는 userspace filesystem framework로, 일반 사용자 레벨에서 특별한 권한 없이 안전한 파일시스템 마운트를 구성할 수 있게끔 해주는 도구입니다.
본 글에서 다루고 있는 gcsfuse는 Google Cloud의 대표적인 파일시스템인 Google Cloud Storage를 Compute Engine에서 마운트 할 수 있도록 제공하는 오픈소스(Apache License 2.0)입니다.
즉, gcsfuse를 이용하여, Cloud Storage를 NAS로 연결하여 사용할 수 있습니다.
gcsfuse는 아래의 github 주소에서 확인하실 수 있습니다.
본 글에서는 Linux CentOS and RedHat 계열 기준으로 안내드리겠습니다.
위 github에서 Installing.md에 보면, Linux 별 설치방법이 나와있습니다.
1. 먼저, yum을 통한 설치를 위해, gcefuse repository를 설정합니다.
2. gcsfuse를 설치합니다.
3. 마운트 할 Cloud Storage 버킷을 확인합니다.
정상적으로 Cloud Storage가 마운트 되었습니다. 용량이 자그마치 1 페타바이트입니다.
이와 같은 방식으로, gcsfuse를 통해 Cloud Storage를 NAS로 사용할 수 있습니다.
5. 언마운트는 아래와 같이 실행합니다. (로컬 디렉터리 경로 지정)
6. 실행 모드 마운트
마운트 디렉터리를 단순히 파일 저장 용도로 사용하려면, 위와 같이 마운트 하여도 상관없지만, 일반 디렉터리처럼, 실행파일들도 위치시키고 사용하기 위해서는, 마운트 시 파일 모드를 별도로 주어야 합니다. (–file-mode)
–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로 활용하실 원하시는 경우, 기술 문의를 주시면 만족하실 수 있는 서비스를 제공 드리기 위해 최선을 다하겠습니다.