1. 首页 > 技术教程 > 正文

Ollama 模型文件占满磁盘怎么办?清理、迁移和备份方法

Ollama 模型文件占满磁盘,是很多在 VPS 上跑 AI 工具的朋友遇到的头疼事。一个 7B 模型动辄 4-5GB,要是多拉几个模型,几十 GB 的磁盘转眼就没了。主机选技术博客今天直接给出一套可操作的清理、迁移和备份方案,无论你是跑 AI Agent 还是搭本地知识库,都能用上。

zhujixuan TASK 127

为什么 Ollama 模型文件会占满磁盘?

Ollama 默认把模型文件存放在 `~/.ollama/models` 目录下,每个模型对应一个或多个 blob 文件,外加一个 manifest 索引。随着你反复 `ollama pull` 不同版本(比如 llama3.2:1b、llama3.2:3b、llama3.2:latest),磁盘空间会被快速消耗。更隐蔽的是,`ollama run` 产生的临时缓存和下载中断遗留的碎片文件,也可能占用额外空间。

清理无用的模型文件

1. 查看当前已下载的模型清单

ollama list

通过 `ollama list` 确认哪些模型是你真正需要的。注意,`latest` 标签可能和某个版本重复,但实际文件是同一份,Ollama 会复用 blob。

2. 删除不需要的模型

ollama rm llama3.2:1b # 删除指定标签的模型
ollama rm deepseek-r1:7b # 同理

删除后,对应的 blob 文件会被移除,但 manifest 可能残留。如果磁盘空间没有立刻释放,可以检查 `~/.ollama/models/manifests` 目录,手动清理空文件夹或无效条目。

3. 清理下载缓存和临时文件

Ollama 在下载模型时会在 `/tmp` 或 `~/.ollama/tmp` 生成临时文件,如果下载中断,这些文件不会被自动清理。

rm -rf ~/.ollama/tmp/* 2>/dev/null
find /tmp -name "ollama*" -type f -delete 2>/dev/null

注意:执行前确保没有正在运行的模型下载任务,否则可能引发错误。

4. 使用脚本批量清理未使用的模型文件

如果你经常拉模型又删模型,可以用以下命令找出所有模型并交互式删除:

ollama list | awk 'NR>1 {print $1}' | while read model; do
read -p "删除 $model ? (y/N) " ans
if [ "$ans" = "y" ]; then
ollama rm "$model"
fi
done

迁移模型文件到其他磁盘

VPS 通常系统盘小,数据盘大。把 Ollama 模型存储路径迁移到数据盘,是根本解决办法。

方法一:软链接迁移(无需重启服务)

1. 停止 Ollama 服务:

sudo systemctl stop ollama # 如果使用 systemd

2. 移动现有模型目录到目标位置(如 `/data/ollama_models`):

mv ~/.ollama/models /data/ollama_models

3. 创建软链接:

ln -s /data/ollama_models ~/.ollama/models

4. 启动 Ollama 服务:

sudo systemctl start ollama

验证:运行 `ollama list`,模型列表应正常显示。

方法二:修改环境变量(适合 Docker 或自定义安装)

Ollama 通过环境变量 `OLLAMA_MODELS` 指定模型存储路径。修改 `~/.bashrc` 或系统服务配置:

export OLLAMA_MODELS=/data/ollama_models

如果是 systemd 服务,编辑 `/etc/systemd/system/ollama.service`,在 `[Service]` 下添加:

Environment="OLLAMA_MODELS=/data/ollama_models"

然后重载并重启:

sudo systemctl daemon-reload
sudo systemctl restart ollama

方法三:Docker 部署的迁移

Docker 版 Ollama 通过 volume 挂载模型目录。假设你原来的启动命令是:

docker run -d -v ollama_data:/root/.ollama -p 11434:11434 ollama/ollama

迁移到新路径(如 `/data/ollama_data`):

docker stop ollama && docker rm ollama
docker run –rm -v ollama_data:/from -v /data/ollama_data:/to alpine cp -a /from/. /to/
docker run -d -v /data/ollama_data:/root/.ollama -p 11434:11434 –name ollama ollama/ollama

注意:复制过程中确保目标目录权限正确(通常为 1000:1000 或当前用户 UID)。

备份模型文件

1. 使用 tar 打包备份到本地

cd ~/.ollama
tar -czf ollama_models_backup_$(date +%Y%m%d).tar.gz models/
scp ollama_models_backup_*.tar.gz user@backup-server:/backup/

2. 使用 rsync 增量备份到远程

rsync -avz –progress ~/.ollama/models/ user@backup-server:/backup/ollama_models/

第一次全量,后续只传差异,适合模型体积大的场景。

3. 备份同时保留模型清单

ollama list > ~/ollama_model_list_$(date +%Y%m%d).txt

方便以后恢复时知道哪些模型需要重新 `ollama pull`。

老鸟叮嘱

不要直接 rm -rf ~/.ollama:这会把所有模型和配置一起删掉,包括你辛辛苦苦拉的大模型。先 `ollama list` 确认再动手。

迁移后务必重启服务:软链接或环境变量改完后,不重启 Ollama 服务,新路径不会生效,模型会报“not found”。

注意磁盘 inode 耗尽:模型文件虽然大,但数量不多。如果 VPS 用了小文件很多的缓存,也要检查 `df -i`。清理临时文件时留意。

Docker 迁移后重新映射端口:如果改了 volume 路径,启动参数要同步更新,否则容器启动后端口映射错误。

备份前先停止 Ollama:避免文件正在写入导致备份损坏。可以用 `systemctl stop ollama` 或 `docker stop ollama` 暂停服务再备份。

FAQ

Q1:Ollama 模型文件默认存在哪里?
A:默认路径是 `~/.ollama/models`。可以通过 `ollama list` 查看模型列表,但具体文件位置只能通过 `find ~/.ollama -type f -size +1G` 来定位。

Q2:删除模型后磁盘空间没有释放怎么办?
A:检查 `~/.ollama/tmp` 和 `/tmp/ollama*` 临时文件。另外,如果模型有其他标签引用同一个 blob,删除一个标签不会释放空间。用 `ollama list` 确认所有标签都删除后,再手动清理 `~/.ollama/models/blobs/` 中无引用的文件(谨慎操作,建议先备份)。

Q3:迁移模型文件后,Ollama 提示“model not found”怎么办?
A:最常见原因是路径权限不对或软链接失效。检查软链接目标是否存在:`ls -la ~/.ollama/models`。如果使用环境变量,确认 `echo $OLLAMA_MODELS` 输出正确,并重启服务。

Q4:Docker 部署的 Ollama,如何迁移模型到新数据盘?
A:参考上面“方法三”。核心步骤:停止容器 → 复制 volume 数据到新目录 → 用新目录挂载启动。注意新目录的权限要与容器内 UID 一致(通常为 1000)。

Q5:能否只备份部分模型?
A:可以。在 `~/.ollama/models/blobs/` 中,每个模型对应一组 sha256 哈希文件。但手动筛选很麻烦。推荐用 `ollama list` 导出清单,然后只备份需要的模型文件,或者用 `ollama pull` 重新下载更省事。

Q6:Ollama 模型文件可以放在 NFS 或 CIFS 共享存储上吗?
A:可以,但性能会受网络延迟影响。建议使用本地 SSD 或高性能云盘。如果一定要用共享存储,确保网络延迟低于 1ms,且文件锁机制正常(NFS v4 以上支持)。

总结

Ollama 模型文件占满磁盘,先 `ollama list` 清理无用模型,再通过软链接或环境变量迁移到数据盘,最后用 rsync 定期备份。这套流程在 VPS 上实测有效,能避免磁盘爆满导致 AI 服务中断。遇到问题先看日志(`journalctl -u ollama`),别急着重装系统。

**相关阅读:**

– [VPS部署AI工具100讲:AI Agent、Codex、Claude Code、Hermes Agent、Ollama与自动化工作流实战教程](https://www.zhujixuan.com/jishujiaocheng/9606.html)
– [VPS 可以部署哪些 AI 工具?AI Agent、编程助手、知识库和自动化平台全景指南](https://www.zhujixuan.com/jishujiaocheng/9749.html)
– [FastGPT VPS 部署教程:私有化知识库问答系统搭建](https://www.zhujixuan.com/jishujiaocheng/9882.html)

转载请注明出处:https://www.zhujixuan.com/jishujiaocheng/9868.html 商家投稿邮箱:zhujixuanblog@qq.com