올해 초에 Cloud의 저장소를 내부저장소로 사용하는 Rclone에 대해서 잠깐 소개해드린적이 있습니다.
간단하게 구글드라이브에있는 저장소를 서버나,PC에 연결해서 저장소로 사용하는거였습니다.Linux에서 외부 클라우드 스토리지 연결하기. – Rclone 안녕하세요. 달소입니다. 이번에는 Linux 환경에서 외부 클라우드 스토리지를 연결하는방법에 대한 포스팅입니다. 윈도우의 경우 유명한…달소 | 2021.01.26
앞서 다른분께서 rclone vfs 관련글을 올려주셔서 저도 궁금해서 더 찾아봤습니다 ㅎㅎ
rclone vfs는 rclone으로 마운트된 디스크를 virtual filesystem으로 인식되게끔 해주는겁니다.
기존 rclone에 비해 캐시사용이나 기타 옵션들 설정이 가능해서 훨씬 반응속도가 빠르다고하네요.
다만 1.53.1 버전부터 적용되는거라 사용하고 계신 패키지의 업데이트를 해주셔야하는데
기본 Ubuntu 의 안정버전이 1.50이라서 따로 레포지터리를 추가해서 진행하겠습니다.
Rclone 최신버전 설치하기
2021/11/10 최신버전 기준 1.57입니다.
리눅스시스템에서는 아래 커맨드를 통해 간단하게 최신버전 설치가 가능합니다.
curl https://rclone.org/install.sh | sudo bash
설치가 완료되면 버전은 rclone -version으로도 확인됩니다.
먼저 마운트할 드라이브와 캐시로 사용할 드라이브 폴더를 만들어주겠습니다.
mkdir -p /data/rclone/gdrive
mkdir -p /data/rclone/cache
이제 준비가 모두 끝났으니 구글드라이브 연동해보겠습니다.
구글드라이브에 vfs로 연동하기.
rclone config 명령어로 마운트를 시작합니다.
n 을눌러 새로운 원격지.
name은 원격지로 사용할이름(원하는대로 입력)
16번이 구글드라이브입니다.
Client id/secret은 공백으로 엔터만 쳐도됩니다.
아래 type의 경우 내용을 잘읽어보고 선택해주세요. 저는 Full access인 1번으로했습니다.
여기서가 중요한데 일반 로컬 유저시라면 auto config를 사용하셔도되지만
저처럼 원격지 리눅스 서버라면 아래 N을 선택해주셔야합니다.
웹사이트를 못켜는 remote or headless machine 기준입니다.
그리고 나오는 url로 접속해주세요.
url로 접근하면 아래처럼 계정을 선택하라고하는데 연동할 계정을 선택해주세요.
권한허용해주고
코드를 복사해주세요.
복사한 코드는 다시 터미널에가서 붙여넣기 해주면 완료입니다.
공유드라이브가 아니면 no 맞으면 yes입니다.
이제 아래 명령어를 통해 드라이브를 vfs로 마운트해주겠습니다.
아래 gdrive는 위에서 이름지정해준 구글 드라이브입니다 :뒤에는 마운트시킬 폴더입니다.
rclone mount gdrive:test /data/rclone/gdrive \
–allow-other \
–allow-non-empty \
–fast-list \
–drive-skip-gdocs \
–poll-interval=15s \
–vfs-cache-mode full \
–vfs-write-back 5s \
–bwlimit-file 16M \
–buffer-size=16M \
–vfs-read-chunk-size=32M \
–vfs-read-chunk-size-limit 2048M \
–vfs-cache-max-size 100G \
–vfs-cache-max-age 336h \
–vfs-read-ahead 32M \
–dir-cache-time=1000h \
–log-level INFO \
–log-file /data/rclone/rclone.log \
–cache-dir=/data/rclone/cache \
–timeout 1h \
–umask 000
잘되는걸 확인할 수 있습니다.
설정값에 대한 설명입니다.
–cache-dir=/mnt/gmedia/cache \
# 용량이 넉넉한 디스크로 폴더를 잡는다. 도커라면 볼륨 매핑을 해서 사용하는 것을 추천.
–dir-cache-time 1000h \
# dir-cache-time이 클수록 처음에 한번만 폴더구조를 캐싱하고 마는 plexdrive와 같아진다.
# 이걸 자주 하지 않아도 remote의 변화는 polling으로 감지 가능.
# 단, Windows에서는 polling에 문제가 있다는 보고가 있음.
–vfs-read-chunk-size=32M \
# 이 값으로 시작해서 2배씩 늘려가며 읽어온다. = chunked reading
# 하지만 vfs-cache-mode < full에서만 동작하고 full에서는 무의미하다. full로 쓸거면 제거해도 무방
–vfs-write-back 5s \
# (복사, 이동, 다운로드 등) 파일 쓰기가 완료된 후 위 시간 이내에 클라우드로 업로드 한다. 기본값 5s
# (비정상) 종료로 완료하지 못하면 다음 런타임에 다시 시도한다.
–vfs-cache-max-size 100G \
# 로컬 캐시 최대 용량을 자신의 디스크 남은 용량에 맞게 설정한다.
# 아래와 같은 이유로 실제 캐시 용량이 이 값을 초과할 수 있어서 약간의 마진을 둬야함.
# 1) vfs-cache-poll-interval 마다 체크하기 때문에
# 2) 열린 파일은 캐시에서 제거되지 않고 남아있기 때문에
–vfs-cache-max-age 336h \
# 캐시 보존 기간
# 기본값은 1h. 넉넉하게 15일로 설정
–bwlimit-file 16M \
# 파일 당 전송 대역폭 제한 설정
–buffer-size 16M \
# 기본값 16M
–vfs-read-ahead 32M \
# rclone이 파일을 읽을 때, buffer-size + vfs-read-ahead 만큼 읽음.
# buffer-size는 메모리 버퍼, vfs-read-ahead는 디스크 버퍼
# vfs-cache-mode=full일때는 어차피 디스크에 한번 저장한 것을 가져오므로
# 메모리버퍼는 낮추고 미리 읽어다 디스크에 저장하는 크기를 높이는 것을 추천한다.
# 버퍼링이 생기면 buffer-size 와 vfs-read-ahead 값을 잘 조절해본다. 2배씩 올리면서 조절.
설정값 및 기타 설정들의경우 클리앙 아이고성님 글을 참조했습니다.
https://www.clien.net/service/board/cm_nas/15415864
[Reference] : 달소, 「서버포럼 – Linux rclone vfs 마운트를 이용한 클라우드디스크 마운트 속도 향상 시키기.」 https://svrforum.com/?document_srl=97193&mid=svr&act=dispBoardContent.