0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ollama install 備忘録

Posted at

概要

ollamaでpullしたモデルはデフォルトでルートパーティション内の /usr/share/ollama/.ollama/modelsに入ってしまう。LLMのサイズは、一般に小さな容量のルートパーティションではとてもまかないきれない。そこで容量の大きなパーティションへ保存するようにシンボリックリンクを設定することがこの備忘録の趣旨である。
このとき注意しなければならないのは、ollamaはインストールと同時に追加されるユーザollamaで制御される点である。つまりその転送先パーティションはユーザollamaがアクセスすることになるため、OSにログインしているユーザihmonだけがアクセスできる$HOME下にリンクを張ると失敗する。たとえ正しくユーザollamaにアクセス権を与えたとしても、OS再起動後にはユーザollamaのアクセス権限が消えるためollama.serviceはstatus=1/FAILUREとなる。

  • 実施期間: 2025年5月
  • 環境:Ubuntu22.04LTS
  • ollama: version0.9.0

Ollama モデル保存先を別パーティションへ移動するためのセットアップ手順

前提

  • Ubuntu 環境
  • モデル保存先のパーティション: /media/ihmon/data_disk/models/ollama-models
  • ollama サービスは systemd 管理

目的

  • モデル保存先をルートパーティションから別パーティションの /media/ihmon/data_disk/models/ollama-models に設定するものとする
  • シンボリックリンクを使用して /usr/share/ollama/.ollama/models から転送する
  • 再起動後も安定して動作させる

1. Ollama のインストール

オフィシャルサイトを参照すること。

curl -fsSL https://ollama.com/install.sh | sh

確認:

which ollama
# => /usr/local/bin/ollama

2. モデル保存先ディレクトリの準備

シンボリックリンク先を準備する。ここでは別パーティション内のollama-modelsへ移すようにしている。ユーザollamaの権限付与が重要で、特にこの例ではollama-modelsへ至るまでの全パスで与える必要あり(かなりハマった)。

sudo mkdir -p /media/ihmon/data_disk/models/ollama-models
sudo chown -R ollama:ollama /media/ihmon/data_disk/models/ollama-models

🔸親ディレクトリの実行権限付与(重要)

sudo chmod +x /media
sudo chmod +x /media/ihmon
sudo chmod +x /media/ihmon/data_disk

確認:

ls -ld /media/ihmon/data_disk/models/ollama-models
# => drwxrwxr-x ... ollama ollama ... /media/ihmon/data_disk/models/ollama-models

3. シンボリックリンクの設定

sudo rm -rf /usr/share/ollama/.ollama/models
sudo ln -s /media/ihmon/data_disk/models/ollama-models /usr/share/ollama/.ollama/models

確認:

ls -l /usr/share/ollama/.ollama
# => models -> /media/ihmon/data_disk/models/ollama-models

4. systemd の override.conf で環境変数を指定

下記オフィシャルサイトにのとおり、OLLAMA_MODELSを設定する。
How do I set them to a different location?
また、このPCをLLM serverとして他のPCからもollamaへアクセスできるようにOLLAMA_HOSTも変更する。
ollama.serviceのデフォルト設定に追加するのでoverride.confに追記する。

sudo mkdir -p /etc/systemd/system/ollama.service.d
sudo vim /etc/systemd/system/ollama.service.d/override.conf

内容:

[Service]
Environment="OLLAMA_MODELS=/media/ihmon/data_disk/models/ollama-models"
Environment="OLLAMA_HOST=0.0.0.0:11434"

反映:

sudo systemctl daemon-reload
sudo systemctl restart ollama

確認:

sudo systemctl status ollama
# => Active: active (running)

5. 自動マウントの設定(fstab で永続化)

PC再起動時、転送先パーティションを自動マウントするように設定する。

sudo blkid  # UUID xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxを確認
sudo vim /etc/fstab

追記例:

UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /media/ihmon/data_disk ext4 defaults 0 2

追記例(通常の読み書き用途に適した安全なマウント構成):

  • ドライブが外れていたり不調でも、OSが起動時にフリーズしない
  • 起動時にsystemdが長時間待機しない(10秒でスキップ)
UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /media/ihmon/data_disk ext4 defaults,nofail,x-systemd.device-timeout=10 0 2

確認:

sudo mount -a
ls /media/ihmon/data_disk

6. 動作確認

モデルのダウンロード

ollama pull llama3

モデルファイルの保存先確認

ls /media/ihmon/data_disk/models/ollama-models
# => モデルファイルが保存されていること

🔍 忘れてはならないポイント

  • /media/ihmon/data_disk/models/ollama-models に加え、親ディレクトリにも "x" 権限を付けること(chmod +x
  • override.confOLLAMA_MODELS を必ず明示的に設定
  • systemd でサービスを再起動した後は statusjournalctl -u ollama.service で状態確認

以上

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?