用 rclone 把云服务器数据定时备份到 OBS:省流量、省请求的配置思路
【摘要】 本文介绍如何用开源工具 rclone,把 Linux 云服务器上的目录定时同步到华为云对象存储 OBS,并从网络路径、请求次数、存储类别三个角度,降低备份成本。
一、为什么用 rclone
备份到对象存储,常见的做法有 obsutil、自己写的 SDK 脚本,还有 rclone。rclone 的好处是:
- 支持增量同步,只传有变化的文件
- 一条命令就能完成同步、校验和限速
- 配置一次以后,换到别的存储也能复用
二、配置 OBS 远端
- 在控制台创建一个专门用于备份的子用户,只授予目标桶的读写权限,然后生成 AK/SK。不要使用主账号的密钥。
- 执行
rclone config,新建 remote,类型选s3,provider 选HuaweiOBS,填入 AK/SK 和桶所在区域的 endpoint,比如obs.cn-north-4.myhuaweicloud.com。 - 用
rclone lsd obs:验证能否列出桶。
三、省流量:让数据走内网
ECS 和 OBS 桶在同一区域时,通过区域 endpoint 访问 OBS 一般会走华为云内网,不产生公网流出流量。所以:
- 建桶时选择和 ECS 相同的区域
- 不要从外地服务器跨区域推数据
(具体计费以 OBS 官方价格页面为准。)
四、省请求:减少 LIST 和 HEAD
OBS 按请求次数计费,小文件多的目录,每次比对都会产生大量请求。可以这样优化:
- 加上
--fast-list,用更少的 LIST 请求拿到目录结构 - 用
--size-only或--checksum,避免为了比对修改时间,对每个文件发起额外的请求 - 碎文件很多的目录(比如日志),先
tar打包再上传,一次 PUT 代替成千上万次
五、定时执行
示例命令:
rclone sync /data obs:my-backup/data \
--fast-list --size-only --transfers 4 \
--bwlimit 20M --log-file /var/log/rclone-backup.log
然后用 crontab -e 加一行:
0 3 * * * /usr/bin/rclone sync /data obs:my-backup/data --fast-list --size-only --log-file /var/log/rclone-backup.log
注意:sync 会删除目标端多出来的文件。如果想保留历史版本,可以开启桶的多版本控制,或者改用 rclone copy。
六、降低存储成本
- 用生命周期规则,把 30 天前的备份转成低频访问存储,90 天前的转成归档存储
- 开了多版本的话,记得给历史版本也设置过期时间,不然旧版本会一直占空间
七、小结
同区域内网传输、减少请求次数、加上生命周期分层,是把备份成本压下来的三个关键。配置一次就能长期稳定运行,建议每个月抽查一次恢复,确认备份真的能用。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)