Objectiu

Quan munto un node amb Proxmox VE, acostumo a repetir sempre el mateix patró:

  • instal·lació base neta
  • accés per SSH amb clau
  • repositoris correctes
  • certificat vàlid per HTTPS
  • una mica de disciplina amb ZFS i els backups

Aquest article és un recull d’aquestes tasques bàsiques, però sense dades personals ni valors lligats a un entorn concret.

Crear el disc d’arrencada de Proxmox VE

La primera part és la més simple: descarregar la ISO més recent des de la pàgina oficial i crear el USB d’arrencada.

Descàrregues de Proxmox VE

Amb dd a Linux o macOS:

sudo dd if=proxmox-ve_*.iso of=/dev/sdX bs=4M status=progress && sync

Cal substituir /dev/sdX pel dispositiu correcte. Val la pena comprovar-ho abans amb lsblk o l’eina equivalent, perquè aquí és fàcil equivocar-se.

Preparar l’accés per SSH

Un cop el node està instal·lat i accessible per xarxa, una de les primeres coses útils és copiar-hi la clau pública:

ssh-copy-id -i ~/.ssh/id_rsa.pub root@<IP_DEL_NODE>

Això no té cap misteri, però estalvia molt de temps a partir del segon accés.

Repositoris: Enterprise i No-Subscription

Si no tens subscripció, el més habitual és desactivar el repositori Enterprise i activar el de No-Subscription.

Edita:

nano /etc/apt/sources.list.d/pve-enterprise.list

I comenta la línia del repositori Enterprise:

# deb https://enterprise.proxmox.com/debian/pve trixie pve-enterprise

Després, afegeix el repositori No-Subscription a:

nano /etc/apt/sources.list
deb http://download.proxmox.com/debian/pve trixie pve-no-subscription

També convé assegurar els repositoris base de Debian:

deb http://deb.debian.org/debian trixie main contrib non-free-firmware
deb http://security.debian.org/debian-security trixie-security main contrib non-free-firmware

I finalment:

apt update
apt full-upgrade -y

Certificats HTTPS amb ACME

Si vols evitar el certificat autosignat, Proxmox ho posa bastant fàcil amb ACME.

En entorns amb validació DNS, una opció pràctica és preparar un plugin amb les credencials del proveïdor DNS en un fitxer de dades amb aquest format:

FREEDNS_User=<USUARI_DNS>
FREEDNS_Password=<CONTRASENYA_DNS>

Després, des de la interfície web:

  1. Ves a Datacenter -> ACME -> Challenge Plugins
  2. Crea o selecciona el plugin DNS
  3. Ves a Node -> System -> Certificates -> ACME
  4. Afegeix el domini i associa’l al plugin

La part bona és que, un cop configurat, la renovació queda automatitzada.

Quan ZFS entra en estat degradat

Una altra part que convé tenir assumida és què fer quan un pool ZFS comença a donar errors.

Per començar, diagnòstic:

zpool status -v <POOL_NAME>

Si ZFS et marca fitxers concrets com a corruptes, el primer pas és decidir si els pots restaurar o si els has d’eliminar.

Eliminar un fitxer corrupte:

rm /ruta/al/fitxer

Si no es deixa esborrar fàcilment:

unlink /ruta/al/fitxer

Si tens còpia de seguretat, el més net és restaurar-lo després manualment.

Tornar a revisar el pool

Després de netejar o restaurar el que toca:

zpool scrub <POOL_NAME>

I quan el scrub hagi acabat i no hi hagi nous errors:

zpool clear <POOL_NAME>

Aquesta seqüència és simple, però molt útil per deixar clar si el problema era un fitxer concret o un símptoma més greu del pool.

Muntar un disc extern o una partició de backups

Si tens un disc amb còpies de màquines virtuals i el vols muntar temporalment o deixar-lo visible dins Proxmox:

Primer, identifica el sistema de fitxers:

blkid /dev/sdX1

Crea el punt de muntatge:

mkdir -p /mnt/backup-vm

I munta’l:

mount /dev/sdX1 /mnt/backup-vm

Després pots comprovar que realment hi veus els backups:

ls /mnt/backup-vm

Afegir el disc com a storage a Proxmox

Si vols que Proxmox el tracti com a espai de còpies, pots afegir-lo a storage.cfg:

nano /etc/pve/storage.cfg

Exemple:

dir: backup-vm
    path /mnt/backup-vm
    content backup
    maxfiles 3
    prune-backups keep-last=3

Després ho hauries de veure a:

  • Datacenter -> Storage
  • Node -> Backups

Muntatge persistent amb UUID

Si aquest disc s’ha de muntar després de cada reinici, millor fer-ho amb UUID i no amb el nom del dispositiu.

Primer:

blkid /dev/sdX1

Després edita:

nano /etc/fstab

I afegeix una línia del tipus:

UUID=<UUID_DEL_DISC> /mnt/backup-vm ext4 defaults 0 2

Per provar-ho:

mount -a

Programar un scrub mensual de ZFS

Una de les mesures més útils, i més fàcils d’oblidar, és programar scrub periòdicament.

Edita el crontab de root:

crontab -e

Per exemple, per executar-lo el dia 1 de cada mes a les 03:00:

0 3 1 * * zpool scrub <POOL_NAME>

I per comprovar que hi és:

crontab -l

Enviar un informe per correu després del scrub

Si vols una mica més de control, pots fer un script que llanci el scrub, esperi una estona i enviï per correu l’estat del pool.

Per exemple:

nano /usr/local/sbin/zfs-scrub-mail.sh
#!/bin/bash

POOL="<POOL_NAME>"
MAILTO="<ADMIN_EMAIL>"
HOST=$(hostname)

zpool scrub "$POOL"
sleep 30m

REPORT=$(zpool status "$POOL")
echo "$REPORT" | mail -s "[$HOST] Resultat scrub mensual ZFS ($POOL)" "$MAILTO"

I el fas executable:

chmod +x /usr/local/sbin/zfs-scrub-mail.sh

Correu sortint amb msmtp

Per enviar aquests informes, una opció lleugera és msmtp:

apt install -y msmtp msmtp-mta mailutils

Configuració típica a /etc/msmtprc:

defaults
auth           on
tls            on
tls_trust_file /etc/ssl/certs/ca-certificates.crt
logfile        /var/log/msmtp.log

account        smtp
host           <SMTP_HOST>
port           <SMTP_PORT>
from           <ADMIN_EMAIL>
user           <SMTP_USER>
password       <SMTP_PASSWORD>

account default : smtp

I una prova simple:

echo "prova" | mail -s "test Proxmox" <ADMIN_EMAIL>

Després pots programar l’script al crontab:

0 3 1 * * /usr/local/sbin/zfs-scrub-mail.sh

Recomanacions finals

Si hagués de resumir aquest tipus de manteniment en quatre idees, serien aquestes:

  • deixa l’accés per SSH resolt des del principi
  • defineix bé repositoris i certificats abans de començar a carregar serveis
  • no confiïs massa en pools ZFS sense redundància
  • tracta els scrub, els backups i les comprovacions com a feina normal de sistema, no com a tasques “per més endavant”

Proxmox és molt còmode quan tot funciona. La diferència real acostuma a notar-se quan arriba el dia que alguna cosa falla i tens l’entorn prou ordenat per recuperar-te ràpid.