Su quale disco fisico si trova davvero la vostra macchina virtuale?
La vista a elenco dice che una macchina usa local-lvm. Non dice che altre otto macchine poggiano sullo stesso disco fisico. È questa seconda frase a decidere quanto costa un solo guasto.
AtlasPVE ·
Questa voce risponde a
- proxmox su quale disco sta la mia vm
- proxmox posizione disco vm
- proxmox storage disco fisico corrispondenza
- proxmox vista topologia
- proxmox network topology visualizer
Chiedete dove si trova il disco di una macchina virtuale e l'interfaccia risponde subito: local-lvm. È una risposta corretta e non è la risposta che vi serviva. local-lvm è un nome, e un nome non dice quale pezzo di hardware smetterà di girare.
La domanda che conta sta dietro: se stanotte si guasta un disco fisico, quante macchine se ne vanno con lui?
La catena ha cinque anelli
Una macchina virtuale non poggia su un disco. Poggia in fondo a una catena, e ogni anello è un punto in cui la risposta può sorprendervi.
La macchina dichiara un disco virtuale nella propria configurazione. Una riga come scsi0: local-lvm:vm-100-disk-0,size=32G nomina lo storage, non l'hardware.
Il disco virtuale è un file oppure un dispositivo a blocchi. Quale dei due dipende dal tipo di storage, e questa differenza decide se uno snapshot è economico o impossibile.
Lo storage è una voce nella configurazione dell'host. È un'etichetta che punta a qualcos'altro. Due etichette possono puntare alla stessa cosa sottostante, ed è esattamente così che due macchine apparentemente separate finiscono per condividere un guasto.
Il pool o il gruppo di volumi è il punto in cui più dischi fisici vengono uniti. Oppure quello in cui uno solo finge di essere un pool.
Il disco fisico è l'unico anello che può davvero morire.
La vista a elenco vi mostra l'anello uno e l'anello tre. Il rischio abita negli anelli due, quattro e cinque.
Perché la risposta pesa più di quanto sembri
Immaginate una configurazione comune: otto macchine, tutte su local-lvm, su un host con quattro dischi. Si legge come se il carico fosse distribuito su quattro dischi. Che lo sia davvero dipende interamente da come è stato costruito il gruppo di volumi.
Se quei quattro dischi sono stati uniti a strisce senza ridondanza, il guasto di un disco porta via tutte e otto le macchine. Se sono stati messi in mirror a coppie, il guasto di un disco non porta via nulla e lo sostituite con calma. Le stesse otto macchine, lo stesso nome di storage, la stessa schermata. Conseguenze opposte.
Nell'elenco delle macchine non c'è nulla che distingua questi due casi. Bisogna percorrere la catena.
Dove la catena si nasconde
Il thin provisioning. Una macchina può mostrare 32 GB assegnati e occuparne 4. Sommate le dimensioni assegnate e potete superare la capacità fisica senza che compaia alcun avviso. Tutto funziona finché il pool non si riempie davvero, e a quel punto non si rompe per la macchina cresciuta ma per tutte insieme.
Gli snapshot sullo stesso pool. Uno snapshot vi protegge da un errore commesso dentro la macchina. Non vi protegge dal disco sottostante. Uno snapshot conservato sullo stesso pool della macchina muore con lei.
Due etichette, un solo dispositivo. Uno storage di tipo directory il cui percorso si trova sullo stesso gruppo di volumi di uno storage a blocchi. Due voci nell'interfaccia, un solo destino fisico.
Il disco di sistema. Su molti host il disco di sistema e il primo storage delle macchine sono lo stesso dispositivo. Funziona, è diffuso, e significa che un solo guasto porta via sia le macchine sia ciò che avrebbe dovuto gestirle.
La domanda a cui un backup non risponde
"I backup ci sono" è una buona risposta a un'altra domanda. Un backup risponde a quanto dura il ripristino, non a quante macchine vanno ripristinate.
Sono due numeri distinti e costano separatamente. Ripristinare una macchina è una serata. Ripristinarne otto è un fine settimana, e un fine settimana in cui non gira nulla.
Percorrere la catena vi dà il secondo numero. Vale la pena conoscerlo prima di averne bisogno, perché non potete più misurarlo quando il disco è già morto.
Leggere la catena a mano
Ogni anello si legge dall'host, e vale la pena farlo almeno una volta perché la forma diventi familiare.
La configurazione della macchina nomina il suo storage. La configurazione di storage dell'host dice di che tipo è e a cosa punta. Per un gruppo di volumi, l'elenco del gruppo mostra quali dispositivi fisici gli appartengono. Per un pool ZFS, lo stato del pool mostra i dispositivi e, cosa più importante, come sono disposti: se si fanno da mirror o se stanno soltanto affiancati.
Quest'ultimo dettaglio decide tutto, ed è anche quello più lontano dall'elenco delle macchine.
Cosa fa Atlas
Atlas disegna l'intera catena su una sola schermata, dalla macchina fino al disco fisico. Così la domanda si risponde seguendo una linea, invece di aprire cinque schermate e unirle a mente.
La mappa mostra la macchina, la sua quota di processore e memoria, i suoi dischi virtuali, lo storage su cui poggiano, il pool e in fondo l'hardware reale. Quando otto macchine scendono sullo stesso disco fisico, le otto linee convergono in modo visibile. Non serve sospettarlo per trovarlo.
Viene disegnata anche la disposizione, non solo l'appartenenza: una coppia in mirror e due dischi indipendenti hanno un aspetto diverso, perché la differenza tra loro è quella tra una sostituzione tranquilla e un fine settimana perso.
La catena viene letta dal vivo invece che disegnata una volta, quindi uno storage aggiunto il mese scorso è sulla mappa senza che nessuno debba ricordarsi di aggiornare uno schema.
Fonti
La documentazione ufficiale di Proxmox. In inglese, e su questo argomento l’ultima parola è la sua.