千兆内网高速同步大模型至多住宅主机
千兆内网高速同步大模型到多台住宅主机实操指南
想在家里的多台主机之间快速同步大模型文件(比如几十GB的预训练权重),千兆内网是最经济的选择。
本文从零开始,讲清工具选择、操作步骤、避坑点和验证方法,保证你能直接落地。
同步大模型前,先确认这些环境条件
- 网络拓扑:所有住宅主机通过千兆交换机连接,确保网线至少为Cat5e或Cat6,路由或交换机端口指示灯亮在千兆状态(通常是绿色或带“G”标识)。
- 操作系统:本文以 Ubuntu 22.04 / Debian 12 为例,其他 Linux 发行版命令类似;Windows 主机可考虑安装 WSL2 或使用 PowerShell 下的
robocopy。 - 大模型文件位置:假设源主机在
/data/models/llama2-70b目录下,目标主机需要同步到同一个路径。 - SSH 连通性:确保源主机能通过 SSH 免密登录到所有目标主机(推荐使用密钥对)。
用 Rsync 搭配系统服务实现自动同步
核心工具 rsync 支持差分传输、断点续传,非常适合大文件。
下面是完整操作步骤:
- 安装 rsync(所有主机都要装)
sudo apt update && sudo apt install rsync -y
- 生成 SSH 密钥并分发(在源主机上执行)
ssh-keygen -t ed25519 -N "" -f ~/.ssh/id_ed25519
ssh-copy-id user@target1-ip
ssh-copy-id user@target2-ip
# 重复操作每台目标主机
- 执行第一次全量同步
rsync -av --progress --partial /data/models/llama2-70b user@target1-ip:/data/models/
-a:归档模式,保留权限和时间戳-v:显示细节--progress:显示进度--partial:断点续传(重要)
- 创建定时任务实现增量同步
在源主机上编辑 crontab:
crontab -e
添加一行(每 10 分钟同步一次):
*/10 * * * * rsync -av --delete --partial /data/models/llama2-70b user@target1-ip:/data/models/ && rsync -av --delete --partial /data/models/llama2-70b user@target2-ip:/data/models/
--delete 保持目标目录与源完全一致(删除源没有的文件)。
常见踩坑点:权限、防火墙、大文件中断
- 权限不一致:如果目标主机没有
user用户对/data/models/写权限,会在末尾报permission denied。解决:事先用sudo chown -R user:user /data/models/修改所有者。 - 防火墙阻止 SSH:检查
ufw status,确保 22 端口开放。如果 SSH 端口改了,要相应调整。 - 大文件同步中断:文件太大(超过 50GB)时,可用
--checksum校验数据一致性,但会慢很多。实际推荐先用--partial续传,如果经常断,考虑改用grsync图形界面或anacron轮询。 - 硬盘空间不足:同步前在目标主机用
df -h确认剩余空间至少比模型大小多 10%(用于临时文件)。
验证同步结果并解决目录不一致
- 校验文件完整性
在目标主机上运行:
sha256sum /data/models/llama2-70b/config.json
对比源主机的输出,一致则说明该文件正确。
也可以编写脚本批量比对。
- 检查文件总数
find /data/models/llama2-70b -type f | wc -l
源和目标数值应相同。
- 查看 rsync 日志
把 --log-file=/var/log/rsync.log 加到命令中,方便排查。
高频问题与优化建议
Q:为什么千兆内网速度只有 20-30 MB/s?
A:先确认网卡和交换机是否工作在千兆模式(使用 ethtool eth0 | grep Speed)。如果线缆质量或距离有问题,会降速到百兆。另外,硬盘读写速度也可能是瓶颈(机械盘持续写入≈80-150MB/s,SSD 通常更高)。
Q:能否同时向多台主机并行推送?
A:可以用 parallel 工具或写一个 shell 循环后台运行,但会大量消耗源主机的 I/O。推荐逐台同步,或者先同步一台,再在目标主机上通过 ssh 内部复制到其他机器。
Q:模型文件里有海量小文件(比如 tfrecord 碎片)怎么办?
A:小文件影响 rsync 性能,可先将文件夹打包成 tar 再传输:tar -cf - /data/models/llama2-70b | ssh user@target "tar -xf - -C /"。注意路径对应。
如果你正在处理千兆内网高速同步大模型至多住宅主机,建议先按本文步骤完整执行,再根据自己的环境做微调;
遇到异常时优先回看避坑和高频问题部分。