05 — OPÉRATION : piloter le cluster au quotidien

Où suis-je ? Le système est installé (04). Ici : les commandes du quotidien — contrôle des cartes, clés USB, déploiement de LLM, règles à respecter.


1. Contrôle des cartes mères — node-control.sh

Première fois : copier le registre, puis remplir chaque carte (voir nodes.conf.example).

cp scripts/nodes.conf.example scripts/nodes.conf
# → remplir : adb_serial / ssh / mac / pmm_gpio_pwr / pmm_gpio_rst

Commandes types :

bash scripts/node-control.sh status   phone-01         # état ADB + version
bash scripts/node-control.sh power-on pc-01            # PC : WoL puis PMM en secours
bash scripts/node-control.sh power-off pc-01           # PC : ssh shutdown, PMM en secours
bash scripts/node-control.sh reboot   phone-01         # adb reboot
bash scripts/node-control.sh format   phone-02         # fastboot format userdata (efface le PIN)
bash scripts/node-control.sh install  pc-02 /mnt/keys/1/soft.bin

Actions par type de carte

ActionAndroid (adb/fastboot)PC (ssh/WoL/PMM)
statusadb get-stateping + uptime
power-onréveil USB-C / fastboot rebootWoL → PMM PWR
power-offadb reboot -pshutdown -h now → PMM long
rebootadb rebootreboot → PMM RST
formatfastboot format userdataISO + preseed/kickstart
installadb install .apk / fastboot flashscp + script

Smartphone sans écran ou verrouillé PIN

CasSolution
Débogage USB déjà activéADB fonctionne sans écran, même avec PIN
Écran mort / jamais configuréBoutons physiques → fastbootformat userdata (efface le PIN) → flash
Bootloader verrouillé (OEM lock)❌ Impossible — seule vraie limite

Préparer chaque téléphone UNE FOIS (déblocage OEM + débogage USB) → pilotable à 100 % pour toujours.


2. Clés USB (logiciels + LLM)

Montées automatiquement sous /mnt/keys/<n> par hub-keys.sh.

CléContenuMontageUsage
LLM « llm-orchestrator » (autonome)L’app llm-orchestrator (gestion LLM : catalogue, fit, runtimes, déploiement, monitoring) + les poids des modèles (7B, 13B, 70B)lecture-écriture /mnt/keys/app/ + /mnt/keys/app/models/L’app démarre depuis cette clé ; gestion, déploiement, monitoring et modèles dans la même app, la même clé ; réglages/catalogue/journaux survivent aux redémarrages. L’Agent IA n’y est pas : c’est une extension de Winux
PLAYSTORELogithèque TUTORIAD : logiciels portables open sourcelecture /mnt/keys/playstore/Logiciels prêts à l’emploi, lancés depuis la clé sans installation
#1Système (scripts, helm, charts)lecture /mnt/keys/1/mnt/keys/1

⚠️ La clé LLM est l’exception à la règle « jamais exécutées » : elle est montée en lecture-écriture et c’est elle qui exécute la chaîne LLM (gestion + déploiement + monitoring) et qui fournit les poids des modèles à deploy-llm.sh. L’extension Agent IA, elle, vit dans l’implémentation Winux sur la carte maître. Toutes deux restent distinctes de la clé de boot (démarrage de Winux).


2bis. Réinstaller l’OS d’un esclave à distance (PXE)

Le maître peut réinstaller l’OS de n’importe quel esclave sans clé USB ni contact : Boot PXE (serveur de provisioning sur le maître — install : voir Installation).

Le scénario en 4 étapes

# 1. Préparation (sur le maître) : « au prochain boot, esclave n°2 → Debian au lieu d'Ubuntu »
#    → modifier la config PXE de l'esclave (FOG/Cobbler web, ou MAAS)

# 2. Reset de l'esclave (depuis le maître — bouton Reset à distance)
bash scripts/node-control.sh reboot pc-02      # ou power-off puis PMM long

# 3-4. Boot PXE + installation autonome : l'esclave redémarre, télécharge le
#      nouvel OS depuis le maître et s'installe 100 % automatiquement, puis reboote

En résumé (ce que le maître héberge)

ServiceRôle
DHCPDonne une IP à l’esclave au boot + « va chercher ton système chez le maître »
TFTP/HTTPHéberge les images d’OS (Ubuntu, Debian, Rocky…)
Config autoKickstart (RedHat/Rocky) ou Autoinstall/Cloud-Init (Ubuntu)

⚠️ Prérequis BIOS : Boot Réseau (PXE) en 1re priorité dans le BIOS de chaque esclave ; les esclaves doivent être sur le réseau Ethernet (switch), pas en USB4/USB seul. ⚠️ Sans PXE : on garde l’ancien chemin — clé USB + install de node-control.sh (ISO + preseed/kickstart).


3. Déployer un LLM sur la RAM des nœuds

Le concept

Clé USB (LLM .gguf) → hub-keys.sh → Bassin de RAM des nœuds
                        → deploy-llm.sh → Pod llama.cpp → modèle en RAM → API

RAM combinée (exemple)

NœudsRAMRésultat
10 smartphones × 8 Go80 Go7B/13B confortable
2 PCs × 32 Go64 Go70B shardé
Total144 Goplusieurs LLM simultanés

Petit/moyen modèle (7B–13B) — un pod par nœud

bash scripts/deploy-llm.sh /mnt/keys/2/llama-3-8b.Q4_K_M.gguf phone-01

Gros modèle (70B) — sharding multi-nœuds (--rpc)

Un pod vit sur UN nœud : la RAM ne se « fusionne » pas seule. Pour un modèle trop grand, le script découpe le modèle en couches réparties sur N nœuds, le nœud principal servant l’API :

bash scripts/deploy-llm-distributed.sh \
  /mnt/keys/4/llama-3-70b.Q4_K_M.gguf \
  pc-01 smartphone-01 smartphone-02 smartphone-03

⚠️ Goulot d’étranglement : à chaque token, les couches s’échangent par le réseau → préférer Ethernet Gigabit, pas WiFi. ⚠️ RAM agrégée ≠ RAM partagée : un pod utilise la RAM de SON nœud. Fusion de RAM magique (RDMA/CCIX) = impossible sur cartes standard.


4. État du cluster

bash scripts/status.sh                   # vision globale
kubectl get nodes -o wide                # nœuds + arch + état
kubectl get pods -A                      # workloads répartis
kubectl apply -f k8s/llm-serve.yaml      # service LLM utilisant la RAM
curl http://llm-api:8080/v1/chat/completions   # test LLM

5. Les règles d’or (à toujours respecter)

  1. Proxmox VE uniquement sur les nœuds PC (amd64-only), jamais sur le boîtier ARM.
  2. Le boîtier est control-plane uniquement (taint NoSchedule) : pas de workload.
  3. Ports serveurs = host-mode (le SoC n’a qu’un contrôleur OTG → pas de gadget USB multiple).
  4. Ports clés : montés/indexés, jamais exécutés sur le boîtier.
  5. WiFi/BT = optionnels (plugins). Control-plane exige Ethernet filaire.
  6. Multi-arch : pods séparés ARM64/amd64, images multi-arch.
  7. RAM agrégée ≠ RAM partagée : gros modèles = sharding --rpc.
  8. Le calcul se distribue par câble (USB4 ou Ethernet switch), jamais par WiFi (saturation immédiate). L’OS du maître ne « voit » pas la RAM/CPU des esclaves : on délègue du code (k3s/MPI/Spark), pas de fusion physique.
  9. Réinstallation d’OS : Boot PXE via le maître (switch Ethernet) si le BIOS le permet ; sinon clé USB + install.
  10. Variante « 2 clusters » : les smartphones en WiFi = nœuds SLM individuels (modèle local, trafic léger). Ils ne participent pas au sharding LLM (goulot réseau) — les gros modèles restent sur le cluster PC en Ethernet. Leur provisioning (fastboot/flash) ne passe que par USB. Voir Architecture.

6. Pour aller plus loin