What is the problem you are having with rclone?
I used to have 2 dirs: Local (dir) and Remote (rclone B2 mount). They were merged with mergerfs in Merged dir. I would sometimes upload from Local to B2. This was the old @Animosity022's approach.
Yesterday I migrated to new @Animosity022's approach, without mergerfs, using VFS Cache.
I unmounted Remote and Merged. Removed the old systemd units for mounting them. Setup a new mount in Merged with full cache settings (based on @Animosity022 repo, with some small tweaks for B2 and bwlimits). The dir appeared correctly with my remote files.
Then I rsync
ed all my Local files (with -a --inplace
) to my Merged dir. The rclone log looked good: Rclone got the files and queued them for upload after the 24h wait time. The rclone cache dir has my entire content from Local (1.8TB). All good.
Note: I didn't touch the cache dir, just looked at it using ncdu
.
Then I had to unmount Merged dir (files from cache have not been uploaded yet). Then I mounted it back, and this is where the trouble began.
Trouble
It's taking hours to mount again. Systemd status is showing "activating (start)" and the log is showing hundreds of the following record pairs:
Dec 05 10:03:59 htpc rclone[20243]: INFO : Files/Name/pic1.jpg: vfs cache: queuing for upload in 24h0m0s
Dec 05 10:03:59 htpc rclone[20243]: ERROR : Files/Name/pic1.jpg: vfs cache: failed to reload item: reload: failed to add virtual dir entry: file does not exist
Hundreds. I think it's showing error for every single file. When I look in the cache dir, all these files are there.
Question: Why is it telling me that they are failing to reload? Is something going horribly wrong?
Run the command 'rclone version' and share the full output of the command.
> rclone version
rclone v1.60.1
- os/version: ubuntu 18.04 (64 bit)
- os/kernel: 5.4.0-135-generic (x86_64)
- os/type: linux
- os/arch: amd64
- go/version: go1.19.3
- go/linking: static
- go/tags: none
Which cloud storage system are you using? (eg Google Drive)
B2
The command you were trying to run (eg rclone copy /tmp remote:tmp
)
This service has everything. Rclone config only has creds.
[Unit]
Description=B2 Mount
AssertPathIsDirectory=/home/htpc/Merged
[Service]
Type=notify
ExecStart=/usr/bin/rclone mount B2:[Bucket]/HTPC /home/htpc/Merged \
--allow-other \
--b2-chunk-size 50M \
--b2-hard-delete \
--bwlimit "08:15,1M:off 23:59,off" \
--cache-dir=/home/htpc/RCloneCache \
--config /home/htpc/.config/rclone/rclone.conf \
--dir-cache-time 1h \
--disable-http2 \
--fast-list \
--log-level INFO \
--transfers 32 \
--poll-interval 0 \
--vfs-cache-max-age 8760h \
--vfs-cache-max-size 1400G \
--vfs-cache-mode full \
--vfs-write-back 24h \
--vfs-read-chunk-size-limit 500M \
--rc \
--rc-no-auth
ExecStop=/bin/fusermount -uz /home/htpc/Merged
ExecStartPost=/usr/bin/rclone rc vfs/refresh recursive=true --rc-addr 127.0.0.1:5572 _async=true
Restart=on-failure
RestartSec=10
User=htpc
Group=htpc
[Install]
WantedBy=multi-user.target
The rclone config contents with secrets removed.
[B2]
type = b2
account = [id]
key = [key]
endpoint =
A log from the command with the -vv
flag
The log messages above are running with INFO level. I'm afraid to stop rclone during this "activating" stage and restart it with DEBUG level. Should I stop it anyway?