2026 OpenClaw MeshMac 실전: 다중 노드 skills 콜드스타트 예열·통합 버전 락·병합 헬스 프로브
MeshMac 다중 노드에서 OpenClaw skills 버전을 맞추고 콜드스타트를 예열해야 로드밸런서가 “느린 한 대”에 사용자를 보내지 않습니다. openclaw gateway status → 템플릿 동기화 → 예열 → 병합 헬스 → 지터 재시도 순으로 최소 재현합니다. 스킬 버전 락·환경 템플릿·배포·태스크 큐 동기화와 함께 쓰세요.
다중 노드에 단일 skills 표면이 필요한 이유
콜드 경로가 노드마다 다르면 LB가 지연으로 트래픽을 몰아줍니다. 고정 매니페스트·예열·병합 헬스로 드리프트·롤아웃·드레인을 한 번에 다룹니다.
1단계 — openclaw gateway status 기준선
템플릿 롤아웃 전, 소켓에 바인딩된 제어 평면이 맞는지 확인합니다. LaunchDaemon과 동일한 서비스 사용자로 실행하세요.
sudo -u openclaw openclaw gateway status --json > /var/lib/openclaw/last-gateway-status.json
mesh_node_id·리스너·빌드 ID를 보관하고, status 실패 시 중단합니다.
합격: JSON에 state: ready 등. 불합격: CLI와 LB 헬스 불일치 시 DNS·바인드 먼저 정렬.
2단계 — 설정 템플릿 동기화·통합 버전 락
스킬은 Git SHA·해시로 고정한 불변 아티팩트로, 모든 실행 주체에 동일 트리를 OPENCLAW_SKILLS_ROOT에 둡니다(디렉터리 0750, 시크릿 0440).
export SKILLS_SHA=$(git rev-parse HEAD:skills)
rsync -a --delete ./skills/ "worker-{{ inventory }}:/etc/openclaw/skills/${SKILLS_SHA}/"
ssh worker-{{ inventory }} "ln -sfn /etc/openclaw/skills/${SKILLS_SHA} /etc/openclaw/skills/current"
로그에 SKILLS_MANIFEST_SHA256를 남기고, 락 레이아웃은 스킬 버전 락·환경 템플릿을 따릅니다. 캐너리에서 openclaw doctor --scope skills 후 확대합니다.
3단계 — 콜드스타트 예열
예열은 의존성·캐시·첫 TLS 등 콜드 경로만 닿는 상한 잡입니다. 공유 호스트에서는 CPU·메모리 캡을 두세요.
sudo -u openclaw openclaw skills prewarm \
--manifest /etc/openclaw/skills/current/skills.lock.json \
--concurrency 2 \
--timeout 15m
동기화 직후·가중치 복구 전에 예열합니다. prewarm이 없으면 프로덕과 동일 엔트리에 합성 픽스처로 대체합니다.
4단계 — 병합 헬스 프로브
로드밸런서는 정상/드레인/비정상 한 가지면 충분합니다. 게이트웨이 준비·워커 생존·스킬 캐시 신선도를 합칩니다.
#!/usr/bin/env bash
set -euo pipefail
openclaw gateway status --quiet
find /var/lib/openclaw -maxdepth 1 -name skill-cache-ready -mmin -120 | grep -q .
curl -fsS http://127.0.0.1:8080/healthz >/dev/null
echo OK
예열 성공 시에만 skill-cache-ready를 갱신하고, 스크립트가 0일 때까지 드레인합니다.
5단계 — 지터를 둔 실패 재시도
일시 오류만 지터 백오프로 재시도하고, 체크섬·매니페스트 불일치 시에는 재시도하지 않습니다.
attempt=1
until rsync -a --checksum ./skills/ "host:/etc/openclaw/skills/${SKILLS_SHA}/"; do
[[ $attempt -ge 5 ]] && exit 1
sleep $((2 ** attempt + RANDOM % 5))
attempt=$((attempt + 1))
done
큐 재시도·멱등은 태스크 큐·재시도와 맞춰 증폭을 피하세요.
FAQ — openclaw doctor 흔한 항목
「CONFIG_ROOT 없음」또는 skills 경로 누락
데몬 사용자가 OPENCLAW_CONFIG_ROOT/OPENCLAW_SKILLS_ROOT를 못 봅니다. LaunchDaemon env·NFS·TCC를 점검하세요.
바이너리·스킬 번들 버전 어긋남
CLI·데몬 빌드 또는 매니페스트와 current 불일치 — 동일 ref로 전 노드 재동기화, 단일 파일 수동 복사 금지.
캐시 볼륨 디스크 압박
캐시 볼륨 inode·용량 부족 시 예열 중단. 볼륨 확장·전용 APFS·드레인.