Linux下Ollama模型存储路径自定义指南:从安装到迁移(含deepseek部署)

Linux下Ollama模型存储路径自定义指南:从安装到迁移(含deepseek部署)

当本地磁盘空间告急或需要将AI模型集中存储时,Linux用户常面临如何安全迁移Ollama模型数据的挑战。本文将手把手带你完成从自定义安装路径到模型迁移的全流程,特别针对deepseek等大型语言模型的部署场景。

1. 准备工作与环境配置

在开始前,请确保已准备好目标存储设备(如外接硬盘或NAS),并通过lsblk命令确认挂载点。假设我们计划将模型存储在/mnt/nas/ollama_models目录,该路径对应一块4TB的机械硬盘。

首先创建基础目录结构:

sudo mkdir -p /mnt/nas/ollama_models/{bin,data}

关键目录说明:

  • bin:存放可执行文件
  • data:存储模型文件

设置正确的权限至关重要,推荐使用以下组合:

sudo chown -R $USER:$USER /mnt/nas/ollama_models sudo chmod -R 755 /mnt/nas/ollama_models

注意:避免直接使用777权限,应先通过groups命令确认用户所属组

2. 自定义安装Ollama

从GitHub下载最新版Ollama时,建议使用wget直接保存到目标位置:

wget https://github.com/ollama/ollama/releases/download/v0.1.0/ollama-linux-amd64 \ -O /mnt/nas/ollama_models/bin/ollama

赋予可执行权限并验证版本:

chmod +x /mnt/nas/ollama_models/bin/ollama /mnt/nas/ollama_models/bin/ollama --version

为方便使用,创建符号链接到系统路径:

sudo ln -s /mnt/nas/ollama_models/bin/ollama /usr/local/bin/ollama

3. 系统服务配置技巧

创建systemd服务文件时,需要特别注意环境变量传递。以下是经过优化的服务配置:

[Unit] Description=Ollama Service After=network-online.target RequiresMountsFor=/mnt/nas [Service] ExecStart=/usr/local/bin/ollama serve Environment="OLLAMA_MODELS=/mnt/nas/ollama_models/data" Environment="HOME=/mnt/nas/ollama_models" User=%i Group=%i Restart=on-failure RestartSec=5s [Install] WantedBy=multi-user.target

关键改进点:

  • 添加RequiresMountsFor确保存储设备就绪
  • 使用%i通配符实现用户隔离
  • 显式设置HOME环境变量

启用服务的完整流程:

sudo systemctl daemon-reload sudo systemctl enable --now ollama@$(whoami)

4. 模型迁移与验证

查找现有模型位置时,推荐结合du命令按大小排序:

find ~/.ollama -type f -exec du -h {} + | sort -rh | head -10

迁移操作建议分三步进行:

  1. 停止服务

    systemctl --user stop ollama
  2. 使用rsync安全复制

    rsync -avzP ~/.ollama/models/ /mnt/nas/ollama_models/data/
  3. 创建符号链接

    mv ~/.ollama/models ~/.ollama/models.bak ln -s /mnt/nas/ollama_models/data ~/.ollama/models

验证deepseek模型是否可用:

ollama run deepseek-r1:7b "请用Markdown格式输出快速排序的Python实现"

5. 高级存储方案

对于企业级部署,可以考虑以下优化方案:

方案类型实现方式适用场景
LVM扩展pvcreate+vgextend动态扩容存储池
NFS共享/etc/exports配置多节点共享模型
符号链接ln -s分层存储SSD+HDD混合架构

针对NAS存储的特别优化:

# 增加文件系统缓存 sudo mount -o remount,size=4G /mnt/nas # 优化rsync传输 alias ollama-sync='rsync -avzP --bwlimit=50m --progress'

遇到权限问题时,可检查audit日志:

sudo ausearch -m avc -ts recent | grep ollama

6. 日常维护与监控

建议创建定期维护脚本/usr/local/bin/ollama-maintenance

#!/bin/bash # 检查存储空间 df -h /mnt/nas # 验证模型完整性 find /mnt/nas/ollama_models/data -name "*.bin" -type f \ -exec shasum {} + > /tmp/ollama_checksums.txt # 清理临时文件 find /mnt/nas/ollama_models/data -name "*.tmp" -mtime +7 -delete

添加cron任务每周自动运行:

(crontab -l 2>/dev/null; \ echo "0 3 * * 1 /usr/local/bin/ollama-maintenance") | crontab -

对于deepseek等大模型,可以设置下载限速防止带宽占满:

ollama pull --limit-rate 10M deepseek-r1:70b