Funk-lab/admin/nfs.md
alkatrazz dca71144d6 docs(admin): add ops documentation and fix hermes dashboard service
- Remove admin/ from .gitignore (repo is now private)
- Add --tui flag to hermes-dashboard.service template
- Document hermes-tui wrapper, dashboard access, TUI usage

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-12 18:50:43 +02:00

3 KiB
Raw Blame History

NFS — Commandes d'administration

Le RAID5 md127 (4×1 TB = 2.7 TB utiles) est monté sur storage-01 à /srv/data et exporté en NFS vers le LAN cluster (192.168.10.0/24).


Côté serveur (storage-01)

# État du RAID
sudo mdadm --detail /dev/md127
cat /proc/mdstat

# Exports actifs
sudo exportfs -v

# Recharger les exports après modification de /etc/exports
sudo exportfs -ra

# Statut NFS
sudo systemctl status nfs-server

Arborescence du RAID

/srv/data/
├── nfs/
│   └── k8s/          → export pour le NFS provisioner Kubernetes
├── models/           → modèles LM Studio partagés (gpu-01 monte ce répertoire)
├── hermes/           → données persistantes Hermes Agent (à venir)
├── postgres/         → données PostgreSQL (à venir)
├── qdrant/           → données Qdrant (à venir)
└── minio/            → données MinIO (à venir)

Exports (/etc/exports)

/srv/data/nfs/k8s   192.168.10.0/24(rw,sync,no_subtree_check,no_root_squash)
/srv/data/models    192.168.10.0/24(rw,sync,no_subtree_check,no_root_squash)

Côté client (gpu-01)

# État des automounts
sudo systemctl status mnt-nfs.automount
sudo systemctl status mnt-models.automount

# Monter manuellement (debug)
sudo mount -t nfs -o nfsvers=4 192.168.10.1:/srv/data/nfs/k8s /mnt/nfs

# Vérifier les montages actifs
mount | grep nfs
df -h /mnt/nfs /mnt/models

Comportement automount (extinctions fréquentes)

Les montages NFS sur gpu-01 utilisent x-systemd.automount :

  • Pas montés au boot — montés uniquement au premier accès
  • Si storage-01 est éteint au moment du boot → gpu-01 démarre normalement
  • Au premier accès → montage déclenché (timeout 30 s)
  • soft + timeo=30 + retrans=3 → jamais bloquant si le serveur est injoignable

Modèles LM Studio sur NFS

# Sur gpu-01 — symlink transparent pour LM Studio
ls -la /opt/lmstudio/.lmstudio/models
# → lrwxrwxrwx ... models -> /mnt/models

# Le contenu réel est sur storage-01
ls /mnt/models/
# → lmstudio-community/gemma-4-E2B-it-GGUF/
# → lmstudio-community/gemma-4-E4B-it-GGUF/

# Ajouter un modèle (depuis gpu-01 — sera stocké directement sur NFS)
lms get <modele>

Ajouter un nouveau répertoire partagé

  1. Créer le répertoire sur storage-01 :

    sudo mkdir -p /srv/data/<nom>
    sudo chown <uid>:<gid> /srv/data/<nom>
    
  2. Ajouter dans host_vars/storage-01/vars.yml :

    nfs_exports:
      - path: /srv/data/<nom>
        network: "{{ cluster_network }}"
        options: "rw,sync,no_subtree_check,no_root_squash"
    
  3. Ajouter le montage client dans host_vars/<host>/vars.yml :

    nfs_client_mounts:
      - local_path: /mnt/<nom>
        remote_export: /srv/data/<nom>
    
  4. Appliquer :

    ansible-playbook -i inventory.yml playbooks/storage-01.yml
    ansible-playbook -i inventory.yml playbooks/<host>.yml