Freier Proxmox Backup Server

Begonnen von cetri, 16 Dezember 2024, 14:49:23

Vorheriges Thema - Nächstes Thema

RalfRog

Danke Otto
Die Notizen denken sich mit dem was ich herausgefunden habe. Auch "ethtool...wol g" hatte ich in die Interfaces-Konfiguration eingebunden - dann braucht man sich nicht mehr kümmern.
FHEM VM Debian13 (trixie) auf Proxmox VE9  (Futro S740) - nanoCUL, HM-MOD-RPI-PCB und MAX!Cube über LAN
HM- Fensterkontakte, UP-Schalter, Bewegungsmelder und ein Rauchmelder sowie Shelly 3EM, 1PM, PlugS und IT Schaltsteckdosen

Otto123

#31
Hallo Gisbert,

ich habe das auf einem Rechner im Einsatz, da ist das "aktuelle" BIOS von 2014 und es funktioniert.
RTC Wakeup muss sich im BIOS aktivieren lassen, ich meine: die Zeit dafür außerhalb vom BIOS zu setzen hat wahrscheinlich schon so lange funktioniert, wie es diese Funktion gibt.
APM gibt es ja mindestens "seit Windows 95" und ich denke RTC Wakeup hängt irgendwie an APM und/oder ACPI (das gibt es seit 1996)

Versuch macht kluch :)

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle

aktives Mitglied des FHEM e.V. (Technik)

RalfRog

#32
Zitat von: Gisbert am 14 April 2026, 09:07:36
Zitat von: RalfRog am 13 April 2026, 23:18:31BTW: Gisbert wie hast du das Fehlermeldeproblem des nicht verfügbaren PBS-Storage im PVE gelöst?
Hallo Ralf,
stimmt, da gibt es viele Meldungen im PVE Log. Bisher war es mir nicht bewusst. Ich hab deinen Beitrag oben dazu gelesen, aber nicht genau verstanden, wie du die Fehlermeldungen weg bekommst.
Kannst du es nochmals beschreiben, was du genau beim PBS und PVE gemacht hast?
Viele Grüße Gisbert

Hallo Gisbert, in Kurz:

Es spielt sich alles auf dem PVE ab, da dort im Rechenzentrum/Datacenter unter Storage der "Proxmox Backup Server mit seiner StorageID" konfiguriert ist.
In der Weboberfäche kann man (siehe Spalte Aktiviert) über "Bearbeiten" den Storage Aktiviveren/Deaktivieren. Wenn er Deaktiviert ist gibt es keine Fehlermeldungen mehr.
Dafür gibt es auch ein CommandLineTool: pvesm set <ID des Storage> --disable 0 bzw. 1
Also muss man nur dafür sorgen, dass der Storage per CmdLine vor dem Shutdown des PBS deaktiviert wird und nach dem Wiederanlaufen aktiviert wird.

Ausführlicher auf Basis obiger Info
Hab ich mir nicht alles selbst ausgedacht, sondern z.B. das hier als Quelle benutzt (das Wichtigste in #58 und #63/64 -- https://forum.proxmox.com/threads/shutdown-des-pbs-nachdem-alle-vms-gesichert-wurden.104263/post-556239)

An sich ist die beste Stelle den Storage zu aktivieren/daktivieren das BackupTool "vzdump", dass den BackupJob nach Zeitplan startet.
Es kennt im Prinzip den Parameter "--script <string> :Use specified hook script".
In der Weboberfläche kann man das Script nicht hinterlegen, daher muss man die Configdatei selber anpassen --> /etc/pve/jobs.cfg
vzdump: backup-e1643110-2d06      <== mein Wyse PBS Backup
        comment taegliches Backup auf PBS
        schedule 04:30
        enabled 1
        fleecing 0
        mode suspend
        node pve
        notes-template {{guestname}}:{{node}}-{{vmid}}:  Wyse Backup taeglich der Server
        notification-mode notification-system
        prune-backups keep-all=1
        script /usr/local/bin/vzdump-hook-script-wyse.pl  <== Pfad zum selbst erstellten HookScript (Rechte chmod 755)
        storage wyse-pbs          <== Storage ID
        vmid 101,102,103

vzdump: backup-ae36d6ca-ed42      <== mein Tuxis Backup
        comment Woechentliches Backup f%C3%BCr Server ohne Veraenderungen (Sonntag 1%3A00)
        schedule sun 04:00
        enabled 1
        fleecing 0
        mailnotification always
        mode suspend
        node pve
        notes-template {{guestname}}:{{node}}-{{vmid}}, woechentliches Backup
        notification-mode notification-system
        prune-backups keep-weekly=6
        repeat-missed 1
        storage tuxis-pbs         <== mein Tuxis Backup
        vmid 101,103,102

vzdump: backup-24376893-65ca
        comment Monatliches Backup lokal
        schedule sat *-1..7 04:00
        compress zstd
        enabled 1
        fleecing 0
        mailnotification failure
        mode suspend
        node pve
        notes-template {{guestname}}:{{node}}-{{vmid}}:  lokales Backup monatlich der Server
        notification-mode notification-system
        prune-backups keep-last=2
        storage local
        vmid 101,102,103


Das HookScript kann im Prinzip igendwo hinterlegt werden und gehört root.
"vzdump" verzweigt nun zu bestimmten Ausführungszuständen in dieses Script - im PVE selber ist ein Beispiel hinterlegt mit den Phasen auf die man triggern kann:
/usr/share/doc/pve-manager/examples/vzdump-hook-script.pl

Auszug der Trigger
   $phase eq 'job-init'
   $phase eq 'job-start'
   $phase eq 'job-end'
   $phase eq 'job-abort'
   $phase eq 'backup-start'
   $phase eq 'backup-end'
   $phase eq 'backup-abort'
   $phase eq 'log-end'
   $phase eq 'pre-stop'
   $phase eq 'pre-restart'
   $phase eq 'post-restart'


Mein HookScript in Anlehnung an den obigen Formumsbeitrag mit Starten des PBS und Aktivieren des Storage und zum Ende Deaktivieren des Storage (Shutdown offen, aktuell nach 2 Stunden per cron):
#!/bin/bash
# script um den Backupserver zu starten wenn ein Backup ansteht. Danach wieder Ausschalten
# dieses Hook-Skript (nano /usr/local/bin/vzdump-hook-script)  zum Backup-Auftrag hinzufügen: nano /etc/pve/jobs.cfg
# by AME 05/2023
#----------------------- Variablen --------------------------------------------------------------------------------#
PATH=/usr/sbin:${PATH}
# SET-X damit die Ausfuehrung protokolliert wird
#set -x
storeid=wyse-pbs                                                 # Variable - um welches Storage handelt es sich
mac="11:22:33:44:55:66"                                          # MAC Adresse des PBS-Servers
host="1.2.3.4"                                                   # Hostname oder IP des PBS-Servers
nic=eno1                                                         # Netzwerk-Karte über die WOL läuft
#---------------------- Funktionen --------------------------------------------------------------------------------#
# Raum für funktionen im Script
#----------------------- Programmablauf ---------------------------------------------------------------------------#
#

if [ "$1" == "job-init" ]; then                                  # wenn ein backup job rein kommt dann

    echo "HookLog: Wecke Backserver"                             # zusätzliche eigene Logeintraege per echo und Hinweis HookLog:
    wakeonlan $mac                                               # starte den Backup-Server wegen rtcwake eigentlich unnoetig
    sleep 60s                                                    # warte 60 Sekunden auf Abschluss des Starts

    echo "HookLog: Enable Storage wyse-pbs"
    pvesm set $storeid --disable 0                               # der Storage wird enabled

                                                                 # Teste per Storage Verfügbarkeit "pvesm status" ob -PBS erreichbar
    until [ "$act" == "true" ]; do                               # arbeite die Schleife ab bis die variable "ack" wahr ist

        com=$(pvesm status --storage $storeid | tail -1);       # Abfrage über den Status des Storage
        [[ $com =~ ($storeid+ +)(pbs+ +)(active|inactive) ]];   # Statusabfrage enthält "wyse-pbs   pbs   active"

        if [ ${BASH_REMATCH[3]} == active ]; then               # der server/storage ist erreichbar also aktiv?
            echo "HookLog: Backup-Server ist erreichbar"
            act=true                                            # variable "act" wird wahr um aus dem loop rauszukommen
            sleep 6s
            exit 0
        else
            ((c=c+1))                                           # counter
        fi

        if [ $c == 180 ]; then                                  # wenn der server nach 180 sec. nicht erreichbar ist exit 1, Wartezeit anpassen
            echo "HookLog: ERROR Backup-Server ist nicht erreichbar"
            sleep 2s
            echo "HookLog: Disable Storage wyse-pbs"
            pvesm set $storeid --disable 1                      # deaktiviere den Speicher wieder
            exit 1
        fi
        sleep 1s
    done                                                        # until ende
fi                                                              # job-init Ende


if [ "$1" == "job-end" ]; then                                  # Wenn der Backup Job erledigt ist dann
        echo "HookLog: Backup erledigt, warte 20 Sekunden dann wird der Backup-Server gestoppt"
        sleep 20s
        echo "HookLog: Disable Storage wyse-pbs"
        pvesm set $storeid --disable 1                          # der Storage wir disabled, sonst ist er nicht erreichbar und>
#       ssh root@$host -p 22 "poweroff < /dev/null &"           # der Backupserver wird heruntergefahren muss ich noch erarbeiten siehe Lösung Gisbert
# passendes Konzept welches Verify, Prune, GC und den SyncJob auf Tuxis beachtet nachdem der eigentliche BackupJob gelaufen ist
fi

exit 0

Hoffe das ist so ok.  Gruß Ralf
FHEM VM Debian13 (trixie) auf Proxmox VE9  (Futro S740) - nanoCUL, HM-MOD-RPI-PCB und MAX!Cube über LAN
HM- Fensterkontakte, UP-Schalter, Bewegungsmelder und ein Rauchmelder sowie Shelly 3EM, 1PM, PlugS und IT Schaltsteckdosen