Proxmox koppelen aan de ups van een Synology-NAS met NUT
De NUT-server van DSM gebruiken om virtuele machines en de Proxmox-host netjes af te sluiten na een stroomonderbreking.
Mijn ups is via USB verbonden met de Synology-NAS. Dezelfde kabel kan niet worden gedeeld met de Proxmox-host op een Aoostar WTR PRO, en dus doet DSM dienst als doorgeefluik: het leest de toestand van de ups en publiceert die met NUT op het netwerk. Zo kan Proxmox een stroomonderbreking opmerken en zijn virtuele machines, zijn containers en ten slotte de host netjes afsluiten.
Voor u begint
- Geef de NAS en Proxmox vaste IP-adressen of DHCP-reserveringen.
- Sluit de NAS, de Proxmox-host en de switch die ze verbindt aan op de beveiligde stopcontacten van de ups. Zonder netwerk tijdens de stroomonderbreking bereikt de NUT-melding Proxmox nooit.
- Controleer of DSM de ups herkent en of die genoeg autonomie biedt om het afsluiten te voltooien.
- Stel in Proxmox de volgorde en de wachttijden voor het afsluiten van de gasten in. Installeer en activeer voor virtuele machines de QEMU Guest Agent wanneer het gastsysteem dat toelaat.
- Voer de onderstaande opdrachten uit vanuit een
root-shell op de Proxmox-host.
1. De upsserver activeren in DSM
Open Configuratiescherm → Hardware en energie → UPS. Schakel de ondersteuning voor de ups in en daarna Netwerk-upsserver inschakelen. Voeg bij Toegestane Synology NAS-apparaten het IP-adres van Proxmox toe — in dit voorbeeld 192.168.68.24 — en pas de wijzigingen toe.
De NUT-server van DSM mag alleen bereikbaar zijn vanuit het vertrouwde lokale netwerk. Staat er een firewall tussen de NAS en Proxmox, laat dan alleen TCP-poort 3493 vanaf het adres van de Proxmox-host toe. Stel die poort nooit open op het internet.
2. NUT installeren op Proxmox
Installeer de NUT-client uit de Debian-pakketbronnen die Proxmox gebruikt:
apt update && apt install nut -y
Geef in /etc/nut/nut.conf aan dat deze machine uitsluitend client is van een externe NUT-server:
MODE=netclient
3. De externe ups aangeven
Open /etc/nut/upsmon.conf en voeg de volgende regels toe of pas ze aan:
MONITOR ups@192.168.68.10 1 monuser secret secondary
MINSUPPLIES 1
SHUTDOWNCMD "/sbin/shutdown -h now"
POLLFREQ 5
POLLFREQALERT 5
HOSTSYNC 15
DEADTIME 15
NOTIFYCMD /usr/sbin/upssched
NOTIFYFLAG ONBATT SYSLOG+WALL+EXEC
NOTIFYFLAG ONLINE SYSLOG+EXEC
ups, monuser en secret komen overeen met de waarden die de NUT-server van DSM gewoonlijk aanbiedt. Ze vervangen de beperking op IP-adres niet. Moderne NUT-versies gebruiken de rol secondary; weigert een ouder pakket dat woord, gebruik dan de oude alias slave.
4. Het afsluiten starten na 60 seconden
Maak /etc/nut/upssched.conf aan:
CMDSCRIPT /etc/nut/upssched-cmd
PIPEFN /run/nut/upssched.pipe
LOCKFN /run/nut/upssched.lock
AT ONBATT * START-TIMER shutdown-now 60
AT ONLINE * CANCEL-TIMER shutdown-now online
De map /run/nut wordt normaal door het pakket aangemaakt. Bestaat ze niet, maak ze dan aan met beperkte rechten:
install -d -o nut -g nut -m 0750 /run/nut
Maak vervolgens het script /etc/nut/upssched-cmd aan:
#!/bin/sh
case "$1" in
shutdown-now)
logger -t upssched-cmd "UPS on battery for 60 seconds - initiating shutdown"
/usr/sbin/upsmon -c fsd
;;
online)
logger -t upssched-cmd "UPS back online - canceling shutdown"
;;
*)
logger -t upssched-cmd "Unknown command: $1"
;;
esac
Maak het script uitvoerbaar. De configuratiebestanden mogen alleen door de beheerder te wijzigen zijn:
chown root:nut /etc/nut/upsmon.conf /etc/nut/upssched.conf /etc/nut/upssched-cmd
chmod 750 /etc/nut/upssched-cmd
chmod 640 /etc/nut/upsmon.conf /etc/nut/upssched.conf
De waarde 60 volgt de configuratie die in het oorspronkelijke artikel is getest. Verhoog ze als uw gasten meer tijd nodig hebben, maar houd voldoende marge voor de batterij leeg is.
5. De monitor starten en de verbinding controleren
systemctl enable nut-monitor
systemctl restart nut-monitor
systemctl status nut-monitor
Bevraag daarna rechtstreeks de ups die DSM aanbiedt:
upsc ups@192.168.68.10
Om alleen de toestand en de geschatte autonomie te tonen:
upsc ups@192.168.68.10 2>&1 | grep -E '^(ups.status|battery.runtime)'
OLbetekent On Line: er is netstroom.OBbetekent On Battery: de ups werkt op batterij.LBbetekent Low Battery: de batterij is bijna leeg.
Wat er gebeurt bij een stroomonderbreking
- DSM merkt het wegvallen van de netstroom op en publiceert de toestand
OB. upsmonontvangt de gebeurtenisONBATTen vraagtupsschedeen timer van 60 seconden te starten.- Komt de netstroom terug voor die tijd om is, dan annuleert de gebeurtenis
ONLINEde timer. - Duurt de onderbreking voort, dan roept het script
upsmon -c fsdaan. Proxmox sluit dan de gasten af en daarna de host, volgens de ingestelde wachttijden.
Testen zonder onaangename verrassingen
Volg eerst het logboek in een tweede terminal:
journalctl -u nut-monitor -f
Trek daarna de netvoeding van de ups uit, nooit de apparaten op de beveiligde stopcontacten. Controleer of de toestand naar OB gaat. Recente NUT-versies laten ook toe de wachtende timer op te vragen:
/usr/sbin/upssched -l
Steek voor een eerste test de stekker terug binnen de 60 seconden en bevestig de annulering in het logboek. Plan daarna een echte simulatie tijdens een onderhoudsvenster, om het volledige afsluiten van de virtuele machines, de containers en de host te controleren. De opdracht upsmon -c fsd start de afsluitreeks echt: voer ze niet uit op een productieserver buiten een gepland venster.
Snelle probleemoplossing
- Connection refused of time-out: controleer het adres van de NAS, de netwerk-upsserver van DSM, TCP-poort 3493 en de firewall.
- Access denied: controleer of het adres van Proxmox wel degelijk bij de toegestane apparaten staat en of de regel
MONITORde waarden gebruikt die DSM verwacht. - De timer start niet: controleer de twee regels
NOTIFYFLAGmetEXEC, de paden vanPIPEFN/LOCKFNen de rechten op/run/nut. - De host sluit af maar de virtuele machines niet: herbekijk de afsluitvolgorde, de wachttijden in Proxmox en de QEMU Guest Agent in elke betrokken gast.
Besluit
Deze opstelling bespaart u een tweede ups of het fysiek delen van de USB-kabel. De NAS blijft de NUT-server, Proxmox wordt een netwerkclient, en een korte onderbreking verstoort niets dankzij de wachttijd van 60 seconden. Het belangrijkste blijft de echte test: het netwerk moet gevoed blijven en alle gasten moeten afsluiten voor de batterij leeg is.
Discussie
Reacties
Nog geen reacties. U kunt de discussie openen met een vraag of uw eigen ervaring.
Aanmelden houdt de gesprekken vrij van spam en voorkomt dat uw e-mailadres wordt gepubliceerd.
Aanmelden om te reageren →