対象リモート MacOpenClawモデルキャッシュを扱う開発者。キーワード:OpenClaw、リモート Mac、モデルキャッシュ、クリーンアップ、自動化。パス設計・symlink階層・クォータLaunchAgent 時間窗を再現手順で整理。併読:モデルプル自動化ゲートウェイ健康診断失敗回復ブログ一覧ヘルプ

前提条件と環境のパーティション

「どのボリュームに何を載せるか」を先に固定します。APFS でもシステム・ワークスペース・テラ級モデル実体を同一ディスクに詰めると I/O がぶつかりやすいです。

インストール前チェックリスト
  • diskutil list で内蔵/外付けを確認し、外付けは常時マウントか(ログイン前ジョブ用なら特に重要)
  • Node 固定(fnm 等)。ゲートウェイは別稿の plist と整合
  • launchd 実行ユーザがキャッシュに書けるか ls -le で確認

キャッシュパスと階層(ティアード)設計

速いボリュームにメタ、巨大 blob は広いボリュームへ。論理パスは据え置き、実体を symlink で差し替えます。

構成 長所 注意/向かない場合
単一ボリューム(~/ のみ) 設定が最も単純 容量逼迫時に OS と取得が同時に詰まる
内蔵 SSD + 大容量ボリューム + symlink IOPS と容量のバランスが良い 外付けのマウント順・スリープに弱い(下記 FAQ)
ネットワークマウントを実体に 複数 Mac で実体共有しやすい レイテンシで取得が不安定になりやすい

例:実体を外付けに置き、ワークスペース側から見える既定名へ接続します(パスは環境に合わせて置換)。

mkdir -p "/Volumes/BulkData/openclaw-models"
# 既定のキャッシュ位置に既存があれば退避してから
ln -s "/Volumes/BulkData/openclaw-models" "$HOME/ws/.openclaw/cache/models"
# 検証: ls -l と test -w

キャッシュ系 env(例 HF_HOME 等)は1 ファイルに集約し、手動と LaunchAgent の EnvironmentVariables を同一に。

定期クリーンアップとログローテーション

クリーンアップはスケジュールと削除順を固定し、実行中ジョブと競合させない。時間窗は低負荷帯(深夜〜早朝)に、CI ピークと重ねない。

スケジューラ 向くケース 設定の要点
LaunchAgentStartCalendarInterval GUI セッション/ユーザ権限で十分なとき StandardOutPathStandardErrorPath を絶対パスで。ログイン前実行が要るなら LaunchDaemon 検討
cron 既存サーバ運用と揃えたいとき Full Disk Access と PATH を明示したラッパシェル経由にする

クリーンアップシェルは flock で多重起動を防ぎ、まず DRY_RUN=1 で削除候補をログへ出すと安全です。

#!/bin/bash
set -euo pipefail
exec 200>"${LOCK_FILE:-/tmp/openclaw-cache-clean.lock}"
flock -n 200 || exit 0
# DRY_RUN=1 のときは find の結果を表示のみ
: "${CACHE_ROOT:?}"

ログローテーションnewsyslog または日付 mv+圧縮を同じ時間窗で。

クォータとディスク水位しきい値

使用率と空き GB の二段で見る(ビルドプール FAQ 参照)。85%/90%+最低空き GB が実用的です。

通知・行動マトリクス(例)
  • < 80%:通常。週次で傾き記録
  • 80〜85%:通知、LRU 候補をレビュー
  • 85% 超/空き < 30GB:大容量プル抑制、クリーンアップ前倒し
  • 〜90%:緊急削除、取得は手動承認
df -g / | awk 'NR==2 {u=$5+0; gsub(/%/,"",$5); print "use_pct", $5; print "free_gb", $4}'

プロバイダクォータdf と契約パネルを突合し週次記録。

失敗時のリトライとトラブルシュート

典型は未マウント権限ディスクフル切断失敗回復のバックオフと併用。

症状/ログ まず見る場所 対処の筋
No such file or directory readlinkmount マウント待ち or 実体を内蔵へ
Permission denied ユーザ・ACL・FDA 所有者揃え、手動と同じユーザで検証
途中停止/ゼロバイト df 水位を下げ、再開可能な取得に

PATH ドリフト:LaunchAgent は .zshrc を読まない。スクリプトは絶対パスかラッパ1本に集約。

本番投入前の受け入れチェックリスト

Go-Live 前に全部チェック
  • 手動/LaunchAgent 双方で取得成功・キャッシュヒット
  • DRY_RUN で削除候補が想定どおり
  • 時間窗と CI が競合しない(キュー or 窓調整)
  • 85%/90% で通知→Runbook 実行、ログローテーション確認

まとめ

まとめOpenClaw まわりのモデルキャッシュは、ボリュームのパーティションsymlinkで階層化し、クリーンアップLaunchAgent または cron の時間窗flock で守るのが再現性の核です。ディスク水位クォータは二段しきい値で監視し、失敗時はリンク・権限・空き容量から切り分けます。専用リモート Macの検討はホーム料金購入ヘルプ(ログイン不要)、ブログ一覧からどうぞ。

モデルキャッシュと CI を同じリモート Mac で安定運用

OpenClaw 向けリモート Mac を選ぶ

容量・帯域・常時稼働をまとめて確保し、取得失敗の再実行コストを下げます。料金・購入・ヘルプはログイン不要です。