Dischi USB come nastri per Proxmox Backup Server (3/3): punta e clicca
La parte 2 ha costruito la configurazione dalla shell. Questa parte lo fa con il mouse: mhVTL Control per la libreria virtuale, e l’interfaccia web di PBS per il lato nastri. Se non hai letto la parte 1, lì si spiega perché vorresti dei job su nastro di PBS su dischi USB.
Non tutto ha ancora un pulsante: installare i pacchetti, abilitare le scritture della dashboard e associare il dock richiedono ancora poche righe di shell.
La configurazione è la stessa di prima: PBS 4.2 con un datastore chiamato store1, un dock USB e dischi da ruotare. L’ambiente di test era una VM Debian 13 appena installata con mhVTL 1.8.0+git20261101.7e3a101 e mhVTL Control 0.6.0, entrambi dal mio progetto su OBS.
La parte di shell
Aggiungi il repository, installa entrambi i pacchetti e tieni fuori il driver ch del kernel. Perde riferimenti ai drive ogni volta che compare un changer, e PBS non ne ha bisogno (la parte 2 ha i dettagli):
REPO=https://download.opensuse.org/repositories/home:/ciriarte:/mhvtl/Debian_13
install -d /etc/apt/keyrings
curl -fsSL -o /etc/apt/keyrings/mhvtl.asc $REPO/Release.key
echo "deb [signed-by=/etc/apt/keyrings/mhvtl.asc] $REPO/ /" \
> /etc/apt/sources.list.d/mhvtl.list
apt-get update
# on a Proxmox kernel, use proxmox-default-headers instead:
apt-get install linux-headers-amd64 mhvtl mhvtl-control
echo "blacklist ch" > /etc/modprobe.d/mhvtl-no-ch.conf
# if this fails, ch is in use: reboot before going on
modprobe -r chIl modulo del kernel viene compilato con DKMS per il kernel in esecuzione. Se hai appena aggiornato il kernel, riavvia prima.
La dashboard è di sola lettura di default. Per le modifiche servono un token API e un piccolo helper privilegiato che applica i cambiamenti:
TOKEN=$(openssl rand -hex 24); echo "$TOKEN"
echo "MHVTL_CONTROL_API_TOKEN=$TOKEN" >> /etc/mhvtl-control/mhvtl-control.env
chmod 600 /etc/mhvtl-control/mhvtl-control.env
systemctl enable --now mhvtl-control-apply.socket
systemctl enable mhvtl-control-apply-recover.service
systemctl enable --now mhvtl-control mhvtl.targetmhVTL Control è in ascolto su 127.0.0.1:8080, quindi raggiungilo con un tunnel SSH dalla tua workstation:
ssh -L 8080:127.0.0.1:8080 root@pbs.example.comApri http://localhost:8080, clicca su Target… e incolla il token.
Creare la libreria
Il pacchetto include due librerie STK di esempio. PBS non le vede: gli serve un changer che riporti la pagina VPD 0x83 di INQUIRY, e i modelli STK emulati da mhVTL non lo fanno. Quindi aggiungiamo una libreria con personalità IBM.
In Configuration, clicca su New library…:
- Model: IBM 03584. La procedura guidata nota che “reports VPD page 83h”, ed è proprio quello che ci serve.
- ID 20, serial
MHV0020, 4 slot di storage, 2 slot MAP (mail). - Un drive: IBM ULT3580-TD8, ID 21, serial
MHV002001. - For: Proxmox Backup Server. Attiva un controllo di ciò che serve a PBS.
Clicca su Stage library, poi su Check. Check è una prova a vuoto: valida la nuova configurazione ed elenca cosa verrebbe riavviato dall’apply. Qui sono solo i due nuovi daemon, e il controllo PBS passa:
Clicca su Apply. La libreria è attiva in pochi secondi.
La procedura guidata lascia la compressione del drive disattivata, il che va bene: i chunk di PBS sono già compressi. Le librerie di esempio restano dove sono (vedi Spigoli da limare), quindi i loro drive compariranno più avanti nell’elenco dei drive di PBS.
Associare il dock
Questo è ancora un passaggio da shell. Collega un disco al dock, trova il nome stabile della porta in /dev/disk/by-path (quello con usb-, non usbv3-) e associalo alla libreria 20. La seconda colonna è lo slot mail previsto; per ora la cartuccia finisce nel primo libero:
ls -l /dev/disk/by-path/ | grep -- -usb-
BAY=/dev/disk/by-path/pci-0000:00:01.0-usb-0:1:1.0-scsi-0:0:0:0
echo "20 1 $BAY" > /etc/mhvtl/mhvtl_raw_bays.conf
systemctl enable --now mhvtl-bay-monitorIl disco è vuoto, quindi il monitor registra “not placed” e aspetta.
Formattare il disco
In Raw Disk Dock, il disco appare come “NO MVTL (UNFORMATTED)”. Clicca su Format…, scrivi il nome del dispositivo per confermare (questo cancella il disco) e dagli un barcode. Il suffisso L8 lo rende un supporto LTO-8, coerente con il drive:
Il bay monitor rileva subito la nuova cartuccia, e il Library Rack la mostra in MAP 1. Il pannello del drive mostra anche encryption aes-gcm: quando PBS imposta una chiave, mhVTL cifra ogni blocco con AES-256-GCM.
Passa all’interfaccia web di PBS, su https://<pbs>:8007.
Aggiungere il changer e il drive
Tape Backup → Changers → Add. Il menu a tendina dei percorsi elenca solo il changer IBM (scsi-MHV0020). Gli esempi STK sono invisibili a PBS, come previsto. L’ho chiamato usblib e ho lasciato vuoto Import-Export Slots, dato che PBS li legge dal changer.
Drives → Add: nome usbdrive, changer usblib, numero di drive 0. L’elenco dei percorsi mostra tutti i drive mhVTL, compresi quelli di esempio, quindi scegli quello con serial 0MHV002001:
Chiave di cifratura e media pool
Encryption Keys → Add: un suggerimento e una password. PBS offre poi una chiave su carta. Stampala e tienila lontano da questo server: senza la chiave, i dischi sono solo rumore.
Media Pools → Add:
- Name: offsite
- Allocation: always. Ogni esecuzione inizia un nuovo media set. Finché un’esecuzione sta su un disco, ogni disco è una copia autonoma che può uscire dall’edificio.
- Retention: 20 giorni. Deve essere più breve del ciclo di rotazione: tre dischi ruotati settimanalmente tornano dopo 21 giorni.
- Encryption key: quella appena creata.
Etichettare il disco
Apri il changer (usblib nell’albero a sinistra). Il disco è nello slot I/E 5, “Not Labeled”. Gli slot mail sono numerati dopo i quattro slot di storage. PBS non etichetta i supporti in uno slot mail, quindi clicca su Import e spostalo nello slot 1, poi Barcode Label con il pool offsite.
Fare il backup
Content → New Backup: datastore store1, pool offsite, drive usbdrive, e spunta Export Media-Set. Questo riporta la cartuccia nello slot mail quando il job finisce, pronta da scollegare.
Per la routine settimanale, aggiungi un job in Backup Jobs → Add: stesso datastore, pool e drive, pianificazione sat 02:00, con Export Media-Set spuntato.
Togliere il disco
Quando il log del task dice che il supporto è stato esportato, scollega il disco. Il bay monitor toglie la cartuccia dalla libreria. PBS tiene in cache ciò che sa, quindi clicca su Reload in Inventory: il disco risulta offline, con il suo catalogo.
Anche la vista del changer continua a mostrare la cartuccia finché non clicchi su Reload lì.
La settimana prossima: collega il disco che tocca, fai Import in uno slot di storage e lascia girare il job. Un disco scaduto viene riutilizzato automaticamente. Formattare ed etichettare serve solo per i dischi nuovi.
Ripristino
Ricollega il disco. Quando è nello slot mail, fai Reload del changer e Import in uno slot. Poi in Content, clicca sull’icona di ripristino accanto al media set, scegli gli snapshot e seleziona un drive e un datastore di destinazione:
Il log mostra l’impronta della chiave con cui era cifrato il media set, e il ripristino ha riportato 2,148 GB nel datastore. Il file casuale da 2 GiB in quello snapshot è tornato con lo stesso SHA-256 dell’originale.
Il ripristino lascia il disco nel drive. Prima di scollegarlo, rimandalo nello slot mail dalla vista del changer. Clicca su Unload nelle azioni del drive, che rimette la cartuccia nello slot 1. Poi clicca su Transfer sullo slot 1 e scegli lo slot I/E 5. (L’icona accanto a Transfer è Format. Non confonderle.)
Ripristinare su un PBS ricostruito richiede qualche passaggio in più, a partire dal recupero della chiave dalla copia cartacea. La parte 2 ha i comandi, tutti eseguiti in un ambiente di test.
Spigoli da limare
mhVTL Control 0.6.0 è giovane, e questa prova ha fatto emergere alcune cose che sistemerò:
- Le librerie di esempio che contengono cartucce non si possono eliminare dalla dashboard: la cancellazione fallisce il proprio controllo. Non danno fastidio, a parte un elenco di drive più lungo in PBS.
- Il pannello dei media mostra un errore “Maximum call stack size exceeded”.
- Raw Disk Dock offre Format… per il lettore CD-ROM, e nomina i dischi per
sdXinvece che per bay.
Nessuna ha intralciato la procedura. Le avvertenze della parte 2 valgono anche qui: aspetta lo slot mail prima di togliere un disco, usa un dock che rispetti i flush della cache e prova un ripristino prima di farci affidamento.
Modifica questo articolo su GitHub · hai trovato un errore? Le pull request sono benvenute.