(수정 내용) vfs-cache-mode full에서도 --vfs-read-chunk-size옵션과 --vfs-read-chunk-size-limit옵션이 유의미하다고 합니다
공식문서를 읽어보실 분들은 여기로.
https://rclone.org/commands/rclone_mount/#vfs-virtual-file-system
rclone 버전 1.53.0 이상에서 vfs cache 부분에 개선이 이뤄졌고, 실제 성능도 더 좋아졌다고 하네요.
저는 마운트 옵션을 바꾼 뒤, 이전보다 영상파일 로딩시간이 많이 줄어들었습니다.
아래는 해당 옵션 적용방법입니다.
먼저 rclone 버전을 1.53.0 이상으로 업데이트 해주시고, (현재 최신 버전은 1.53.1)
캐시 폴더로 사용할 공간을 20~30기가 이상 확보해주세요.
우선 제가 이전에 rclone vfs 마운트로 사용한 옵션은 다음과 같습니다.
rclone mount gdrive: /volume1/gdrive \
--allow-other \
--allow-non-empty \
--fast-list \
--drive-skip-gdocs \
--poll-interval=1m \
--buffer-size=32M \
--vfs-read-chunk-size=32M \
--vfs-read-chunk-size-limit 2048M \
--vfs-cache-mode writes \
--dir-cache-time=96h \
--log-level INFO \
--log-file /volume1/log/rclone.log \
--cache-dir=/volume1/cache \
--timeout 1h \
--umask 000
다른 옵션들은 개인마다 차이가 있으니 각자 하시던 대로 설정해주시면 되는데,
중요한건 파란색으로 되어있는 --vfs-cache-mode writes 옵션입니다.
이 부분에서 writes를 full로 변경해주면 됩니다. 그리고 몇가지 옵션을 추가하여 다음과 같이 사용중입니다.
(추가 및 변경된 부분 빨간색 처리)
rclone mount gdrive: /volume1/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 /volume1/log/rclone.log \
--cache-dir=/volume1/cache \
--timeout 1h \
--umask 000
구글드라이브를 rclone으로 마운트시켜 plex 라이브러리로 이용하고 있는데
영상 플레이 중 구간 건너뛰기를 할 경우 2~3초밖에 안걸리네요.
아래는 각 옵션에 대한 설명인데, 제가 잘 모르는 부분이라 원 출처의 것을 거의 그대로 가져왔습니다.
--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배씩 올리면서 조절.
rclone vfs로 구글드라이브 마운트해서 plex 이용하는데 이 팁 적용하고나니 건너뛰기가 거의 로컬 영상 수준으로 빨라지네요 ㅋㅋㅋ
팁 감사합니다 ㅎㅎ
이런; 그대로 갇다쓰면 안되나보군요. 동작을 안하네요 ㅎㅎ 옵션좀 확인해보고 적용해야 겠습니다.
해당 옵션들이 뭔지 정확히 몰라서, 옵션 몃개 좀 지우고 적용해서 되나보고 이리저리 바꾸니 이제는 됩니다;;
이자리를 빌어 다시한번 감사드립니다.
안녕..그동안 고마웠어..잘가..plexdrive...
그리구 파일스테이션에서 쓰기는 안되겠죠..?
오오옹!
혹시 파일 추가도되나요? 쓰기같은거요!
혹시 --umask 000 는 무슨 기능인지 알 수 있을까요?
저는 다른 시놀로지의 webdav를 rclone 으로 비디오 스테이션용 동영상들 rclone mount로 사용하고 있어서
--umask 000 옵션도 넣어야 하는지 용도가 궁금합니다.
root권한으로 하면 저 경로고
관리자 권한으로 하면 --config 관리자계정 홈폴더 경로/.config/rclone/rclone.conf 입니당
혹시 찾으시는 분 계실까봐 달아놔용
--allow-other \
--allow-non-empty \
--fast-list \
--drive-skip-gdocs \
--poll-interval=1m \
--buffer-size=32M \
--vfs-read-chunk-size=32M \
--vfs-read-chunk-size-limit 2048M \
--vfs-cache-mode writes \
--dir-cache-time=96h \
--log-level INFO \
--log-file /volume1/log/rclone.log \
--cache-dir=/volume1/cache \
--timeout 1h \
--umask 000
이런건 어디에서 어떻게 설정하나요? ㅠㅠ 너무 초보라서...
오래전 글이기도 하고해서 추가 궁금점은 새로 질문글 작성해주시는게 좋을 것 같습니다 @하이딕트님