-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Description
- Have a home network with a Router. Router is connected to cabled WAN at 1Gbps speed.
1.a) Have two macbooks both running Macos Sonoma 14.6.1 - On Macbook1: Run "brew install docker docker-desktop", and host Redis there (last version of official docker image, 8.2.2-alpine3.22)
2.a) On both macbooks: run "brew install juicefs" and have "juicefs stable 1.3.0 version" - On both macbooks: install macfuse (last version, 5.0.7).
- Be in Europe. Have a Bucket on IdriveE2 in Singapore, at about 10000km distance from you.
This is the ping from the bucket endpoint:
user@macbook folder % ping b9t8.sg02.idrivee2-91.com
PING sg2.idrivee2.com (198.73.183.3): 56 data bytes
64 bytes from 198.73.183.3: icmp_seq=0 ttl=51 time=176.665 ms
64 bytes from 198.73.183.3: icmp_seq=1 ttl=51 time=166.448 ms
64 bytes from 198.73.183.3: icmp_seq=2 ttl=51 time=165.235 ms
64 bytes from 198.73.183.3: icmp_seq=3 ttl=51 time=169.028 ms
64 bytes from 198.73.183.3: icmp_seq=4 ttl=51 time=165.423 ms
64 bytes from 198.73.183.3: icmp_seq=5 ttl=51 time=168.781 ms
64 bytes from 198.73.183.3: icmp_seq=6 ttl=51 time=166.328 ms
- On macbook1 (the one who also hosts Redis on docker): run juicefs mount in a folder in $HOME. Point it to a bucket X using metadata from Macbook1 Redis. This is the script I use:
user@macbook folder % cat idriveMount.sh
#!/bin/bash
set -euo pipefail
BUCKET_URL="https://justanidrivebucket.b9t8.sg02.idrivee2-91.com"
VOLUME_NAME="localEncryptedIdrive"
MOUNTDIR="$HOME/localEncryptedIdriveJuiceFS"
read -r -s -p "AWS ACCESS KEY ID: " AWS_ACCESS_KEY_ID && echo
read -r -s -p "AWS SECRET ACCESS KEY: " AWS_SECRET_ACCESS_KEY && echo
read -r -s -p "Redis password: " REDIS_PASS && echo
read -r -s -p "Pass-phrase RSA: " JFS_RSA_PASSPHRASE && echo
export AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY REDIS_PASS JFS_RSA_PASSPHRASE
KEYFILE="$HOME/jfs.key"
[[ -f "$KEYFILE" ]] || openssl genrsa -aes256 -out "$KEYFILE" 2048
# Use DB 4 for the volume "localEncryptedIdrive"
REDIS_URL="redis://:${REDIS_PASS}@127.0.0.1:6379/4"
juicefs format \
--storage s3 \
--bucket "$BUCKET_URL" \
--access-key "$AWS_ACCESS_KEY_ID" \
--secret-key "$AWS_SECRET_ACCESS_KEY" \
--encrypt-rsa-key "$KEYFILE" \
"$REDIS_URL" "$VOLUME_NAME" || true
mkdir -p "$MOUNTDIR"
juicefs mount \
--storage s3 \
--cache-size 1024 \
--buffer-size 1024 \
--max-uploads 30 \
--prefetch 2 \
"$REDIS_URL" "$MOUNTDIR"
echo "✓ Volume mounted at $MOUNTDIR"
-
On macbook2: Mount juicefs in a folder in $HOME. Point it to a bucket X using metadata from Macbook1 Redis. I just use the same script of point 3 but I change redis address from 127.0.0.1 to 192.168.1.8 (macbook1 address).
-
now open Finder on both macbooks and go into the mounted drive
-
create few folders: folder1, folder2, folder3
-
now open the mounted drive again on both macbooks, put them one near the other
-
on macbook1: edit folder1 name to folder1abc
-
on macbook2: cry as the rename operation never shows up. folder1 stays folder1 forever.
I was having this issue months and months ago and this made me leave JuiceFS and discard it as an option.
Does this have a solution? And is juicefs usable in this way?
I basically want to use the cache mechanism to make a far cloud storage be usable. I thought: juicefs should fix the latency issue, so bandwidth and filesize would be the only issue. But I remember having speed issues months ago, and also having these kind of sync issues that basically mean: no sync.
Please investigate this and/or fix this and/or provide a solution. Thanks.