Ollama模型预下载脚本,批量部署多台推理服务器
在Ollama推理服务器批量部署时,最耗时的是每台机器单独执行 ollama pull。
正确思路是:先在源机器上预下载好模型,再用脚本导出并分发到其他服务器。
本文面向零基础用户,讲清准备条件、脚本写法、两种常用分发方式和验证方法,让你用最少的时间完成多台推理服务器的模型初始化。
预下载脚本适合什么场景
当你有2台以上推理服务器,且都运行同一个模型时,逐台拉取会浪费带宽和时间。
使用预下载脚本可以做到:
- 只下载一次模型文件,后续服务器通过内网复制或镜像复用。
- 统一模型版本,避免各机器模型不一致。
- 支持离线部署,适合内网隔离或没有公网访问权限的环境。
开始前确认服务器已安装相同版本的Ollama,可用 ollama --version 检查;
同时记录好模型名称和标签,例如 qwen2.5:7b。
编写模型预下载脚本
下面是一个简单的Linux脚本,预先从Ollama拉取指定模型,并导出为可迁移的模型文件:
#!/bin/bash
# 预下载并导出Ollama模型
MODEL_LIST="qwen2.5:7b llama3.2:3b"
for MODEL in $MODEL_LIST; do
echo "拉取模型:$MODEL"
ollama pull "$MODEL"
echo "导出模型镜像:$MODEL"
ollama save "$MODEL" -o "$(echo $MODEL | tr ':' '_').modelfile"
done
echo "所有模型预下载完成,输出文件位于当前目录"
运行前给脚本加执行权限:
chmod +x preload_ollama.sh
./preload_ollama.sh
执行完成后,当前目录会生成类似 qwen2.5_7b.modelfile 的文件,这就是要分发的模型包。
批量部署到多台推理服务器
拿到模型文件后,有两种常见的部署方式:
方式一:SSH 批量推送
使用 rsync 将模型文件送到目标服务器,再通过 SSH 远程导入。
示例命令:
rsync -av *.modelfile user@192.168.1.10:/opt/ollama_models/
ssh user@192.168.1.10 "cd /opt/ollama_models && for f in *.modelfile; do ollama load \"$f\"; done"
如果文件较大,建议加 --partial --progress 参数支持断点续传,并确认目标目录有足够磁盘空间。
方式二:共享目录挂载
所有服务器通过 NFS 或 CIFS 挂载同一个模型目录,然后在每台机器上直接执行 ollama load 加载。
这种方式省去逐台拷贝,特别适合后续需要滚动更新模型的场景。
避坑与验证
常见问题与注意事项:
ollama save之前必须先ollama pull,脚本中顺序不要颠倒,否则会报“模型不存在”。- 如果目标服务器没有联网,下载模型时还会尝试访问 registry,建议先导入模型再断网测试。
- 批量导入时,先用一台机器验证命令,确认成功后再循环执行,避免批量失败。
- 不同版本的 Ollama 对模型文件兼容性有差异,保持所有服务器 Ollama 版本一致最稳妥。
验证效果,在目标服务器运行:
ollama list
如果列表中出现与源机器相同的模型,说明批量部署成功。
再执行一句真实推理请求测试模型响应:
ollama run qwen2.5:7b "你好"
能正常返回内容,说明预下载、分发和加载链路都正常。
按这套流程操作,多台推理服务器的模型初始化时间可以大幅缩短,具体取决于内网速度和模型大小。
如果你在处理多台推理服务器部署时遇到问题,建议先从这份脚本和验证命令开始排查。