Rclon 구글 드라이브 마운트 문의
내부 파일서버 데이터를 시놀로지로 업로드 하고, 시놀로지에서 구글 드라이브로 업로드 한 다음음 해시 (md5) 비교 후 문제가 없다면 시놀로지 데이터를 삭제하는 자동화를 구축 하고 있습니다.
파일 비교 기능을 테스트하기 위해 Rclon으로 구글 드라이브 마운트를 시도 하고 있지만 오류 로구만 찍히고 있습니다.
HW정보 : DS716+
DSM 버전 : 7.1.1
Rclone 버전 : 1.59.2 linux amd64
실행 SH
#!/bin/bash
sleep 30
sudo mount --make-shared /volume1
#mount GD
sudo rclone mount Test /volume1/mount/Test --config /root/.config/rclone/rclone.conf --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/RcloneGoogle/Cache/rclone.log --cache-dir=/volume1/RcloneGoogle/Cache --timeout 1h --umask 000
오류 메시지
2023/04/29 01:12:25 INFO : Local file system at /volume1/RcloneGoogle/Test: poll-interval is not supported by this remote
2023/04/29 01:12:25 INFO : vfs cache: cleaned: objects 0 (was 0) in use 0, to upload 0, uploading 0, total size 0 (was 0)
2023/04/29 01:12:25 mount helper error: fusermount: bad mount point /volume1/mount/Test: No such file or directory
2023/04/29 01:12:25 Fatal error: failed to mount FUSE fs: fusermount: exit status 1
파일스트림 구조
/volume1/RcloneGoogle
/volume1/RcloneGoogle/Cache
/volume1/RcloneGoogle/GD
진행 상황
똥쓰똥쓰님의 "초보자를 위한 rclone 설치 및 마운트 정복" 을 진행 하였으며
FUSE의 문제인가 의심되어 해당 패키지가 포함되어 있다는 "SynoCli Network Tools" 설치 진행 및 재부팅
결과...
구글 드라이브가 마운트 되지 않으며, 위 4줄의 오류메시지가 반복적으로 나오고 있는 상황
최신버전 부터 가이드 작성 버전 까지 설치 해 보아도 어떤것이 잘못 된것인지 알 수 없어 질문글을 남겨 봅니다.
대충 보면 --poll-interval=15s 옵션이 구글 드라이브에서는 지원하지 않는다는 것 같습니다.
INFO : vfs cache: cleaned: objects 0 (was 0) in use 0, to upload 0, uploading 0, total size 0 (was 0)
캐시 상황 설명
mount helper error: fusermount: bad mount point /volume1/mount/Test: No such file or directory
/volume1/mount/Test 디렉터리가 존재하지 않는 것 같습니다. 디렉터리 생성되어있는지 확인하세요. mkdir로 만드시거나 웹으로 생성하시면 됩니다. 혹은 원하시는 디렉터리 경로를 사용하시면 됩니다.
Fatal error: failed to mount FUSE fs: fusermount: exit status 1
위의 디렉터리가 존재하지 않기에 마운트가 정상적으로 이뤄지지 않아 다음 작업을 할 것도 없이 마운트 작업이 종료되었습니다.
개인적인 사족 몇 가지 적습니다. Cache 폴더에 로그 파일을 넣는 이유가 궁금합니다. 따로 Logs 디렉터리 생성해서 거기에 생성하는게 관리적인 측면에서 낫지 않을까 생각합니다.
또한 데이터를 시놀로지에 업로드하고 시놀로지에서 Rclone으로 구글 드라이브로 업로드 후 시놀로지에서 삭제한다는 생각을 가지신 것 같은데 왜 그런 생각을 하셨는지 궁금합니다. 애초에 Rclone으로 마운트된 디렉터리에 파일을 넣게 되면 WebDAV 처럼 바로 서버에 파일이 올라가는 방식이 아닙니다. 먼저 사용자의 디스크 경로에 실질적으로 파일이 있으면서 천천히 Rclone을 통해서 구글 드라이브로 전송되는 방식이죠. 나중되면(회원님의 경우 --dir-cache-time=1000h 로 지정하셨으니 1000시간 이후) 알아서 볼륨에서 삭제되어 용량을 확보할겁니다. 굳이 말씀하신대로 안하셔도 알아서 잘 용량관리를 해줄겁니다.
아니면 자동화는 어떻게 해야할지는 생각해봐야겠으나 Cloud Sync로 동기화방향을 로컬 변경 사항만 업로드로 잡아놓고 고급 일관성 확인 활성화 체크 후 싱크시키고 파일 업로드하고 Cloud Sync로 동기화가 완료되면 파일을 삭제하면 됩니다. 간단하게도 되는 일인것 같은데 너무 어렵게 생각하시는 것 같아서 짧은 지식이지만 사족 몇가지 적어봤습니다. 불편하다면 죄송합니다.
답글 주셔서 감사합니다.
위에 남겨주신 글을 보고서
"--poll-interval=15s" 삭제 및 존재하지 않는 디렉터리를 변경 처리 하였습니다.
변경이후에는 다음과 같은 오류가 나오고 있습니다
2023/04/29 10:51:41 INFO : Local file system at /volume1/RcloneGoogle/Test: poll-interval is not supported by this remote
2023/04/29 10:51:41 INFO : vfs cache: cleaned: objects 0 (was 0) in use 0, to upload 0, uploading 0, total size 0 (was 0)
2023/04/29 10:52:41 INFO : vfs cache: cleaned: objects 0 (was 0) in use 0, to upload 0, uploading 0, total size 0 (was 0)
....
"poll-interval" 명령이 삭제 되지 않은건가 해서 다시 보아도 확인 되지 않습니다.
수정된 사용 sh 정보
#!/bin/bash
sudo mount --make-shared /volume1
sudo rclone mount Test /volume1/RcloneGoogle/GD --config /root/.config/rclone/rclone.conf --allow-other --allow-non-empty --drive-skip-gdocs --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/RcloneGoogle/Log/rclone.log --cache-dir=/volume1/RcloneGoogle/Cache --timeout 1h --umask 000
디렉토리 구조
RcloneGoogle
ㄴ> Cache
ㄴ> GD
ㄴ> Log
ㄴ> Test
입니다.
의견주신 내용에 대한 답글 입니다.
- Cache 폴더에 Log 파일을 넣은 이유는 Log 파일은 1개만 생성되는것으로 생각하고 다른 폴더까지 구분할 이유를 찾지 못하여 Cache폴더에 Log파일을 생성 하였습니다.
- 최종 목표는 각 사용자가 시놀로지로 전송한 데이터를 구글 드라이브에 손상 없이 잘 업로드 하는 구조를 제작하는것이 목표 입니다.
각 사용자에게 구글 드라이브 권한을 부여하는것은 사정이 있어 불가능 하고 데이터를 시놀로지로 일괄 전송을 받는 구조 입니다.
클라우드 싱크로 단방향 동기화를 실행 하게 될 경우 일단위로 접근하여 삭제 처리하는것이 어려울 수 있다고 생각 됩니다.
[일 100GB의 데이터 업로드 예상]
그리하여 클라우드 싱크의 시놀로지 로컬 경로에 있는 데이터와, 마운트된 구글 드라이브 경로의 데이터가 일치로 떨어질경우 시놀로지 로컬 경로의 데이터를 삭제 할 수 있도록 Rclone 명령어를 별도 제작 하려고 하였습니다.
하지만 Rclone으로 구글 드라이브 마운트가 잘 된다고 하면 클라우드 싱크 동기화는 불필요 할 수 있을것 같습니다.
Cache 폴더에 어떤 정보들이 들어갈지 모르기에 분리하는게 맞다고 저는 생각합니다. 따라서 Log 디렉터리를 추가로 만드시는 것도 좋고 단일 파일인 것이 신경쓰이신다면 /volume1/RcloneGoogle/rclone.log 로 루트 디렉터리에 그냥 생성해도 좋을 것 같습니다.
[최종 목표는 각 사용자가 시놀로지로 전송한 데이터를 구글 드라이브에 손상 없이 잘 업로드 하는 구조를 제작하는것이 목표 입니다.] 라고 하셨는데 손상이 있지 않도록 Rclone에서 알아서 잘 하지 않을까 싶은게 제 생각입니다. 물론 항상 오작동할 여지를 남겨둬야하는 것도 있습니다만.. 캐시 타임도 1000시간인데.. GCP로 거기서 해쉬값 찾고 비교 후 삭제하시는 방법을 사용하시는지도 모르겠습니다. 일단 중요한 파일이신 것 같으니 이 사족은 여기까지만 하겠습니다.
FUSE Error는 시놀에서 FUSE3를 지원하지 않아서 그런겁니다... (rclone 1.62.x 부터 안됩니다...)
시노툴 설치해도 안됩니다...
편법으로 symlink로 FUSE3를 우회하는 방법이 있습니다.
[아래 명령을 ssh로 한번 실행해 주세요. 한번만 해주시면 됩니다....]
ln -s /bin/fusermount /bin/fusermount3
그리고 log파일은 별도 생성하는게 아니고 자동으로 생깁니다.
log중 info로 써 있는것은 에러가 아니고 그냥 기록용 정보 입니다. warning이나 error로 표기된 것이 문제 입니다.
ps... "- 최종 목표는 각 사용자가 시놀로지로 전송한 데이터를 구글 드라이브에 손상 없이 잘 업로드 하는 구조를 제작하는것이 목표 입니다."
관련해서 위 구드 마운트는 구드를 시놀에 마운트하는 것이고 시놀에서 구드로 파일을 올릴순 없습니다.
제 경우 시놀의 cloud sync로 시놀과 구드를 동기화해서 구드로 올리고, 구드 자료는 rclone으로 마운트해서 쓰고 있습니다. 속도도 cloud sync가 가장 빠르게 올라갑니다.
혹시 몰라 우선 "ln -s /bin/fusermount /bin/fusermount3" 명령어를 실행하니
ln: failed to create symbolic link '/bin/fusermount3': File exists
메시지가 나오고 있는대.
정상적으로 수행 된걸까요?
/bin/fusermount
/bin/fusermount3
경로에는 아무 파일도 검색되지 않습니다.
똥쓰똥스님과 같은 구성으로 만든다음... 특정 기간마다 파일 비교 및 삭제 해주는 sh을 만들면 원하는 목적을 이룰 수 있지 않을까 생각 해 봅니다.
rclone lsd Test 을 입력 하면 구글 드라이브 내 파일 이 정상적으로 보여집니다.
하지만 파일스테이션 내에 있는 폴더로 마운트 하게 될 경우 보여지지 않고 있습니다.
해당 부분을 해결하기 위해 여러 삽질을 진행중 입니다.
위 본문에 있는 "Fatal error: failed to mount FUSE fs: fusermount: exit status 1" 로그도 그렇고 symlink 에러 "ln: failed to create symbolic link '/bin/fusermount3': File exists"도 그렇고 뭔가 fuse에 문제가 있으신듯 합니다.
fusermount3가 이미 존재한다는 에러가 있는데 fuse를 별도로 설치하셨나요?
bin 밑에 fusermount3는 없어야 정상이고 ln -s로 단지 fusermount에 대한 fusermount3로 바로가기 생성입니다.
fusermount3로 파일이 있다는게 이상하네요.....(참고로 시놀에는 fusermount3 설치가 불가 합니다...)
rclone은 fuse를 이용해 마운트를 하고 fuse는 rclone에 포함되어 있지 않습니다.
cmt alert