5.9 KiB
5.9 KiB
| doc_type | audience | scope | status | version | hostname | ip_address | context | created_date | last_updated |
|---|---|---|---|---|---|---|---|---|---|
| operations_manual | system_admin, devops | server_lifecycle, disaster_recovery, maintenance, backup | active | 1.6 | llm-node | 192.168.2.144 | Zentrale Dokumentation für Host-Konfiguration, Mindnet-Applikation, Gitea und Backup-Strategie. | 2025-12-14 | 2025-12-14 |
Server Operations Manual: llm-node (192.168.2.144)
Dieses Dokument beschreibt den Betrieb, die Wartung und die Wiederherstellung (Disaster Recovery) des Servers "llm-node".
1. Systemübersicht & Netzwerk
1.1 Host Details
- Hostname:
llm-node - IP-Adresse:
192.168.2.144 - OS: Ubuntu Server
- Qdrant Host-Volume Pfad:
/home/llmadmin/docker/qdrant/qdrant_data(Bind-Mount)
1.2 Storage & NAS Mount
Das System sichert auf ein Synology NAS via NFSv3.
- Mount Point:
/mnt/nas_backup - Quelle:
192.168.2.63:/volume1/Backup_LLM - Fstab-Eintrag (Referenz für Restore):
192.168.2.63:/volume1/Backup_LLM /mnt/nas_backup nfs vers=3,_netdev,x-systemd.automount,nofail 0 0
2. Dienste & Port-Matrix
2.1 Native Dienste (Systemd)
| Service | Port | User | Beschreibung |
|---|---|---|---|
| SSH | 22 | root | Remote Zugriff |
| Gitea | 3000 | git |
Git Version Control (User: git) |
| Ollama | 11434 | ollama |
AI Model Server |
| Mindnet Prod API | 8001 | llmadmin |
Backend Applikation |
| Mindnet Dev API | 8002 | llmadmin |
Backend Applikation (Entwicklung) |
| Mindnet Prod UI | 8501 | llmadmin |
Frontend Applikation |
| Mindnet Dev UI | 8502 | llmadmin |
Frontend Applikation (Entwicklung) |
| Act Runner | 38703 | root |
Gitea CI/CD Runner |
2.2 Docker Container
Übersicht der Container (docker ps).
| Container Name | Port | Beschreibung | Backup Strategie |
|---|---|---|---|
| qdrant | 6333 | Vektor Datenbank (Container Name: qdrant) |
Stop -> Tar -> Start (Konsistenter Snapshot) |
| mindnet-embed | 8990 | Embeddings Service | Volume Backup |
| code-server | 8443 | VS Code (Web) | Volume Backup |
| silverbullet | 13000 | Knowledge Base | Volume Backup |
3. Applikations-Management
3.1 Gitea (Git Server)
- User:
git - Datenpfad:
/var/lib/gitea - Backup: Konsistenter Dump (
gitea-dump.zip) imbefore_backupHook integriert.
3.2 Ollama (AI Models)
- User:
ollama - Modell-Speicher:
/usr/share/ollama/.ollama/models - Backup: Nur Metadaten. Blobs werden exkludiert.
3.3 Mindnet (AI App)
- User:
llmadmin - Qdrant Storage:
/home/llmadmin/docker/qdrant/qdrant_data - Cronjob: Regelmäßiger Import (stündlich) unter User
llmadmin.
4. Backup Strategie (Borgmatic)
Status: Automatisiert via systemctl start borgmatic.timer.
Ziel: /mnt/nas_backup/borg_repo
4.1 Konsistenz-Strategie
Alle schreibenden Dienste werden durch Hooks für das Backup vorbereitet:
4.2 Konfiguration (/etc/borgmatic/config.yaml)
source_directories:
- /etc
- /home
- /var
- /opt
- /root
repositories:
- path: /mnt/nas_backup/borg_repo
label: nas
exclude_patterns:
- /mnt/*
- /var/lib/gitea/data/tmp/*
# Ollama Blobs (Speicher sparen)
- /usr/share/ollama/.ollama/models/blobs/*
- /home/*/.ollama/models/blobs/*
# Qdrant Live-Daten exkludieren
- /home/llmadmin/docker/qdrant/qdrant_data/*
keep_daily: 7
keep_weekly: 4
keep_monthly: 6
before_backup:
- echo "--- Start Pre-Backup Hooks ---"
# 1. Ollama Liste sichern
- ollama list > /root/ollama_models_backup.txt
# 2. Gitea Dump
- echo "Erstelle Gitea Dump..."
- rm -f /var/lib/gitea/gitea-dump.zip
- runuser -u git -- gitea dump -c /etc/gitea/app.ini -f /var/lib/gitea/gitea-dump.zip
# 3. Qdrant Snapshot
- echo "Erstelle Qdrant Snapshot..."
- docker stop qdrant
- rm -f /home/llmadmin/qdrant_backup_latest.tar.gz
# Tar Archiv im Home-Verzeichnis erstellen (wird von Borg gesichert)
- tar -czf /home/llmadmin/qdrant_backup_latest.tar.gz -C /home/llmadmin/docker/qdrant qdrant_data
- docker start qdrant
after_backup:
- echo "Backup erfolgreich beendet."
# Nach erfolgreichem Backup wird das temporäre Tar-Archiv gelöscht
- rm -f /home/llmadmin/qdrant_backup_latest.tar.gz
on_error:
- echo "FEHLER aufgetreten! Versuche Container zu retten..."
- docker start qdrant
5. Disaster Recovery (Wiederherstellung)
Schritt 1: Basissystem
- Ubuntu Server installieren (IP:
192.168.2.144). - NAS mounten:
mount -t nfs 192.168.2.63:/volume1/Backup_LLM /mnt/nas_backup - Tools installieren:
apt install borgmatic docker.io git nfs-common - User anlegen:
llmadmin,git,ollama.
Schritt 2: Daten Restore (Borg)
# Repo verbinden
# borgmatic init --encryption=none /mnt/nas_backup/borg_repo
# Alle Daten wiederherstellen
borgmatic extract --archive latest --path / --destination /
Schritt 3: Dienste wiederherstellen
A. Gitea (Aus Dump):
- Dump entpacken:
unzip /var/lib/gitea/gitea-dump.zip -d /tmp/gitea_restore - Service starten:
systemctl enable --now gitea
B. Qdrant (Aus Snapshot):
Das Tar-Archiv liegt im Home-Verzeichnis (/home/llmadmin/). Es muss in das Volume-Verzeichnis entpackt werden.
- Wechsle in das Host-Verzeichnis des Volumes:
cd /home/llmadmin/docker/qdrant - Entpacke das gesicherte Tar (stellt den Ordner
qdrant_datawieder her):tar -xzf /home/llmadmin/qdrant_backup_latest.tar.gz - Container starten (Volume-Mount ist korrekt):
docker start qdrant # Oder Container neu erstellen, falls nötig
C. Ollama (Smart Restore):
- Ollama installieren.
- Modelle mit dem Script aus
/root/ollama_models_backup.txtneu ziehen.
6. Log- und Fehleranalyse
- Backup-Logs:
journalctl -u borgmatic - Qdrant Container Logs:
docker logs qdrant