一、部署前准备(IDC 环境专属)
1.1 服务器要求(已适配 IDC 内网场景)
| 配置项 | 最低规格 | 推荐规格(100TB + 数据) | 说明 |
|---|---|---|---|
| CPU | 4 核 8 线程 | 8 核 16 线程(Intel Xeon/AMD EPYC) | 支撑高并发传输与校验,超线程优先开启 |
| 内存 | 8GB DDR4 | 16GB+ DDR4(2933MHz+) | --fast-list模式需占用较多内存,小文件迁移建议 32GB |
| 存储 | 200GB SSD | 500GB+ NVMe SSD | 存放 rclone 缓存、日志文件,避免机械硬盘 I/O 瓶颈 |
| 网络 | 千兆网卡 | 万兆双网卡(SFP+) | 绑定 LACP 链路聚合,提升带宽与冗余 |
| 系统 | CentOS 7/Ubuntu 18.04 | CentOS 8/Ubuntu 20.04 LTS | 长期支持版,兼容性更优,避免频繁升级 |
1.2 依赖环境安装
IDC 服务器通常为纯净系统,需先安装基础依赖:
bash
运行
# CentOS/RHEL系统
sudo yum install -y curl unzip wget sysstat net-tools tmux
# Ubuntu/Debian系统
sudo apt update && sudo apt install -y curl unzip wget sysstat net-tools tmux
1.3 网络预配置(IDC 核心优化)
- 测试源 / 目标存储连通性(确保内网可达):
bash运行
# 测试深信服S3 endpoint(示例端口8080) telnet [深信服S3 IP] 8080 # 测试华为S3 endpoint(示例端口443) curl -I [华为S3 endpoint] - 防火墙放行规则(IDC 内网可适当放宽,聚焦安全可控):
bash运行
# CentOS防火墙放行S3相关端口(80/443/自定义端口) sudo firewall-cmd --permanent --add-port=80/tcp --add-port=443/tcp --add-port=8080/tcp sudo firewall-cmd --reload # Ubuntu防火墙放行 sudo ufw allow 80/tcp && sudo ufw allow 443/tcp && sudo ufw allow 8080/tcp - 启用 TCP BBR 拥塞控制(IDC 高带宽环境必开):
bash运行
echo "net.core.default_qdisc=fq" | sudo tee -a /etc/sysctl.conf echo "net.ipv4.tcp_congestion_control=bbr" | sudo tee -a /etc/sysctl.conf sudo sysctl -p # 验证BBR启用成功 sysctl net.ipv4.tcp_congestion_control | grep bbr
二、rclone 部署(两种方式,适配 IDC 网络限制)
2.1 在线安装(IDC 服务器可连公网)
最便捷的官方安装方式,自动适配系统架构:
bash
运行
# 下载并执行官方安装脚本
curl https://rclone.org/install.sh | sudo bash
# 验证安装成功(显示版本号即正常)
rclone version
2.2 离线安装(IDC 服务器无公网权限)
- 本地电脑下载对应架构的 rclone 安装包:
官网地址:https://rclone.org/downloads/(选择
linux-amd64.zip或linux-arm64.zip) - 通过 U 盘 / 内网传输工具(如 FileZilla、scp)上传至 IDC 服务器
/tmp目录 - 解压并部署:
bash运行
# 解压安装包 unzip /tmp/rclone-v1.65.2-linux-amd64.zip -d /tmp # 移动二进制文件到系统PATH sudo mv /tmp/rclone-v1.65.2-linux-amd64/rclone /usr/bin/ # 赋予执行权限 sudo chmod +x /usr/bin/rclone # 验证安装 rclone version
2.3 系统参数优化(IDC 高并发必备)
修改系统内核参数,提升 rclone 传输性能:
bash
运行
# 编辑sysctl配置文件
sudo vi /etc/sysctl.conf
# 添加以下内容(适配10Gbps内网)
fs.file-max = 1048576 # 最大文件描述符,支持高并发
net.ipv4.tcp_rmem = 4096 87380 16777216 # TCP接收缓冲区
net.ipv4.tcp_wmem = 4096 65536 16777216 # TCP发送缓冲区
net.ipv4.tcp_max_syn_backlog = 16384 # 最大SYN等待队列
net.core.somaxconn = 32768 # 最大监听队列
net.core.netdev_max_backlog = 32768 # 网卡接收队列最大值
# 生效配置
sudo sysctl -p
# 临时调整文件描述符限制(永久生效需修改/etc/security/limits.conf)
ulimit -n 65536
三、rclone 核心配置(深信服 S3→华为 S3)
rclone 通过
rclone config命令配置 “远程存储”(源端 / 目标端),配置文件默认路径:~/.config/rclone/rclone.conf(可手动编辑)。3.1 配置源端:深信服 S3(IDC 内网场景)
bash
运行
# 启动配置向导
rclone config
# 步骤1:创建新远程(输入n)
e/n/d/r/c/q> n
# 步骤2:命名远程(自定义,如sangfor-s3)
name> sangfor-s3
# 步骤3:选择存储类型(S3兼容存储,输入3)
Storage> 3
# (后续会显示S3兼容存储选项,直接回车默认即可)
Option Storage.
Type of storage to configure.
Choose a number from below, or type in your own value.
1 / Amazon S3
\ (s3)
2 / Ceph Object Storage
\ (ceph)
3 / DigitalOcean Spaces
\ (digitalocean)
4 / Dreamhost DreamObjects
\ (dreamobjects)
5 / IBM COS S3
\ (ibmcos)
6 / MinIO Object Storage
\ (minio)
7 / Netease Object Storage (NOS)
\ (nos)
8 / Scaleway Object Storage
\ (scaleway)
9 / SeaweedFS Object Storage
\ (seaweedfs)
10 / StackPath Object Storage
\ (stackpath)
11 / Other S3 Compatible Storage
\ (s3)
Storage> 11 # 选择"其他S3兼容存储"
# 步骤4:输入深信服S3 endpoint(IDC内网IP+端口,如http://192.168.1.100:8080)
Option endpoint.
S3 endpoint URL.
Enter a value.
endpoint> http://192.168.1.100:8080 # 替换为实际深信服S3内网endpoint
# 步骤5:配置区域(深信服S3通常无需区域,直接回车默认)
Option region.
Region to connect to.
Leave blank if you are using an S3 clone and not sure.
Enter a value. Press Enter to leave empty.
region>
# 步骤6:配置访问密钥(AK/SK)
Option access_key_id.
AWS Access Key ID.
Leave blank for anonymous access or runtime credentials.
Enter a value. Press Enter to leave empty.
access_key_id> [深信服S3迁移用户AK] # 替换为实际AK
Option secret_access_key.
AWS Secret Access Key (password).
Leave blank for anonymous access or runtime credentials.
Enter a value. Press Enter to leave empty.
secret_access_key> [深信服S3迁移用户SK] # 替换为实际SK
# 步骤7:其他选项(默认回车即可)
Option session_token.
AWS Session Token.
Leave blank for no session token.
Enter a value. Press Enter to leave empty.
session_token>
# 步骤8:是否启用路径样式访问(深信服S3默认支持,输入true)
Option force_path_style.
Force path style access (true/false).
Enter a boolean value (true or false). Press Enter for the default (false).
force_path_style> true
# 步骤9:是否编辑高级选项(无需,输入n)
Edit advanced config?
y/n> n
# 步骤10:确认配置正确(输入y)
Configuration complete.
Options:
- type: s3
- endpoint: http://192.168.1.100:8080
- access_key_id: [你的AK]
- secret_access_key: [你的SK]
- force_path_style: true
Keep this "sangfor-s3" remote?
y/n> y
# 步骤11:返回主菜单(后续配置目标端)
e/n/d/r/c/q>
3.2 配置目标端:华为 S3(IDC 内网 / 华为云 OBS 内网 endpoint)
重复
rclone config流程,创建名为huawei-s3的远程,核心差异如下:bash
运行
# 命名远程
name> huawei-s3
# 存储类型选择"其他S3兼容存储"(输入11)
Storage> 11
# 输入华为S3内网endpoint(如http://192.168.1.200:443 或 华为云OBS内网endpoint)
endpoint> http://192.168.1.200:443 # 替换为实际华为S3内网endpoint
# 输入华为S3迁移用户的AK/SK
access_key_id> [华为S3 AK]
secret_access_key> [华为S3 SK]
# 路径样式访问(华为S3默认支持,输入true)
force_path_style> true
# 其他选项默认回车,最终确认配置(y)
3.3 配置验证(关键步骤,避免后续迁移失败)
bash
运行
# 1. 列出深信服S3的所有桶(验证源端连接)
rclone lsd sangfor-s3:
# 成功输出示例:
# -1 2025-10-01 10:00:00 -1 test-bucket-1
# -1 2025-10-02 14:30:00 -1 prod-bucket-2
# 2. 列出华为S3的所有桶(验证目标端连接)
rclone lsd huawei-s3:
# 成功输出示例(目标端需提前创建对应桶,或迁移时自动创建):
# -1 2025-10-03 09:15:00 -1 test-bucket-1
# -1 2025-10-03 09:16:00 -1 prod-bucket-2
# 3. 抽查单个桶的文件(验证权限)
rclone ls sangfor-s3:test-bucket-1 | head -5
# 成功输出示例(显示文件列表):
# 10485760 data/file1.bin
# 20971520 data/file2.log
四、IDC 环境专属配置优化(提升迁移性能)
4.1 全局参数优化(修改 rclone 配置文件)
直接编辑
~/.config/rclone/rclone.conf,在[sangfor-s3]和[huawei-s3]段添加以下参数,避免每次命令行重复输入:bash
运行
vi ~/.config/rclone/rclone.conf
# 在两个远程配置中添加:
[sangfor-s3]
type = s3
endpoint = http://192.168.1.100:8080
access_key_id = [你的AK]
secret_access_key = [你的SK]
force_path_style = true
transfers = 32 # 并发传输数(IDC 10Gbps推荐32-64)
checkers = 64 # 校验并发数(建议为transfers的2倍)
s3-chunk-size = 256M # 大文件分块(提升大文件传输效率)
buffer-size = 128M # 传输缓存(利用服务器内存加速)
[huawei-s3]
type = s3
endpoint = http://192.168.1.200:443
access_key_id = [你的AK]
secret_access_key = [你的SK]
force_path_style = true
transfers = 32
checkers = 64
s3-chunk-size = 256M
buffer-size = 128M
4.2 会话保持配置(IDC 服务器远程操作防断开)
使用
tmux创建持久化会话,避免 SSH 断开导致迁移任务中断:bash
运行
# 1. 创建新tmux会话(命名为rclone-migration)
tmux new -s rclone-migration
# 2. 在会话中执行迁移命令(后续步骤)
# (若断开SSH,重新连接后执行以下命令恢复会话)
tmux attach -t rclone-migration
# 3. 查看所有tmux会话
tmux ls
五、常见问题排查(IDC 环境高频场景)
5.1 连接失败(rclone lsd无响应)
- 检查 endpoint 是否为内网 IP(IDC 环境避免使用公网地址)
- 确认防火墙规则已放行源 / 目标端口(如 8080、443)
- 验证 AK/SK 正确性(深信服 / 华为 S3 的 IAM 用户权限是否包含
ListBucket)
5.2 传输速度慢(未达 IDC 带宽预期)
- 检查服务器网卡是否工作在万兆模式(
ethtool eth0查看速率) - 调整
transfers和checkers参数(10Gbps 环境可增至 64/128) - 关闭不必要的后台进程(
htop查看 CPU / 内存占用)
5.3 小文件迁移效率低
- 启用
--fast-list参数(内存充足时,减少元数据请求次数) - 降低
transfers至 16-32(避免小文件并发 overhead 过大) - 调整
s3-chunk-size至 64M(小文件无需大分块)
六、配置备份与迁移
6.1 备份 rclone 配置文件
bash
运行
# 备份配置文件到本地/其他服务器
cp ~/.config/rclone/rclone.conf ~/rclone.conf.backup
scp ~/rclone.conf.backup user@other-server:/backup/
6.2 批量部署(多台迁移服务器场景)
将备份的
rclone.conf复制到其他服务器的~/.config/rclone/目录,即可快速复用配置,无需重复执行rclone config。总结
IDC 环境下 rclone 的部署核心是适配高速内网和高并发传输,配置重点关注:
- 内网 endpoint、路径样式访问(
force_path_style = true) - 系统参数优化(文件描述符、TCP 缓冲区、BBR)
- 高并发参数(
transfers、checkers、s3-chunk-size) - 会话保持(tmux)与配置备份
配置完成后,即可执行全量迁移 / 增量同步命令(参考前文迁移方案),充分利用 IDC 内网带宽优势,实现高效数据迁移。
原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/tech/aiops/318387.html