记录踩坑经历。
在群晖中运行飞牛虚拟机,从而利用飞牛中各个国内网盘的官方挂载。
运用群晖的HyperBackup和CloudSync工具,将群晖内数据加密备份到各个国内网盘。
群晖中的数据-->HyperBackup-->飞牛-->国内网盘
下文的所有尝试均集中在飞牛上。
飞牛自带的webdav
存在问题: Hyperbackup任务根本无法运行,或者极其不稳定易中断。
飞牛中自行安装rclone,运行rclone serve webdav
存在问题:
极其不稳定易中断。
观察日志发现,备份时,数据高速写入rclone缓存,撑爆飞牛硬盘,导致备份中断。
增加缓存大小设置没有用,因为rclone缓存中,待上传的数据不会被清除,它们会一直被保存直到被成功上传(无视缓存大小设置)。
上传到网盘的速度远远小于Hyperbackup存到缓存的速度。
我需要备份的数据有2TB,我本地自然没有额外2TB的空间做缓存。
飞牛中自行安装rclone,运行rclone serve webdav --bwlimt 0.5M ,进行限速
存在问题:
不知道啥问题,限速失败。。。
飞牛中自行安装docker版本rclone,运行rclone serve webdav,对docker容器进行限速
暂时成功,虽然慢,但是稳定运行两天,希望能撑住。
docker compose 如下,供参考:
version: '3.8'
services:
rclone-serve:
image: alpine:latest
container_name: rclone-serve
restart: unless-stopped
volumes:
- /repo:/repo
- /cache:/cache
ports:
- "58395:58395"
# 添加网络管理权限,允许容器内配置流量控制
cap_add:
- NET_ADMIN
# 启动时先通过tc限制带宽,再启动rclone服务
command: >
sh -c "
# 1. 安装 tc 工具(iproute2 包含 tc)和 grep(用于过滤接口)
sed -i 's#https\?://dl-cdn.alpinelinux.org/alpine#https://mirrors.tuna.tsinghua.edu.cn/alpine#g' /etc/apk/repositories
apk update
apk add --no-cache iproute2 rclone;
# 重置TC配置 - 清除所有现有规则
echo '重置TC配置...'
tc qdisc del dev eth0 root 2>/dev/null || true
tc qdisc del dev eth0 ingress 2>/dev/null || true
# 配置带宽限制(使用动态获取的接口),并检查执行结果
if tc qdisc add dev eth0 root tbf rate 24000kbit latency 50ms burst 50k; then
echo '带宽上行限制配置成功(24000kbit/s)';
else
echo 'ERROR: 带宽限制配置失败,容器退出!';
exit 1; # 配置失败则终止容器,避免未限流服务启动
fi;
# 配置接收方向(下行)带宽限制
# 创建 ingress qdisc
if tc qdisc add dev eth0 handle ffff: ingress; then
echo 'ingress qdisc创建成功';
else
echo 'ERROR: ingress qdisc创建失败,容器退出!';
exit 1;
fi;
# 添加下行带宽限制规则
if tc filter add dev eth0 parent ffff: protocol ip prio 50 u32 match ip src 0.0.0.0/0 police rate 12000kbit burst 50k drop flowid :1; then
echo '下行带宽限制配置成功(12000kbit/s)';
else
echo 'ERROR: 下行带宽限制配置失败,容器退出!';
exit 1;
fi;
# 启动rclone服务
rclone -v --bwlimit off:0.5M --low-level-retries 100 --retries 10 --buffer-size 256M --transfers 2 serve webdav /repo --addr :58395 --user usr --pass password --cache-dir /cache --vfs-cache-mode writes --no-gzip-encoding --vfs-cache-max-size 10G
"