Alcune conoscenze di base sul problema
Dopo un po 'di ricerche e tentativi, ho scoperto che zfs ha usato i punti di mount. Quindi la mia teoria aveva ragione: i punti di mount non sono statici come le lettere di unità in Windows. Invece, Linux li assegna nell'ordine di rilevamento durante l'avvio. L'aggiunta o la rimozione di dischi può mescolare i punti di montaggio.
Esempio semplice:
sda -> Drive #1
sdb -> Drive #2
sdc -> Drive #3
Ora aggiungiamo una nuova unità # 4. Potrebbe essere inserito in questo modo:
sda -> Drive #1
sdb -> Drive #4
sdc -> Drive #2
sde -> Drive #3
Se dipendiamo dal punto di montaggio, ora siamo nei guai: il nostro sistema prevede l'unità n. 2 sdb
, ma ne ha una completamente diversa (unità n. 4). Secondo l'arch wiki, questo può accadere anche durante un avvio regolare, senza alcuna modifica agli hdds.
Cosa possiamo fare?
Bene, usare quei punti di montaggio sembra una cattiva idea. Dovremmo usare invece la denominazione persistente del dispositivo a blocchi , che sono disponibili usando udev. Dovrebbe essere disponibile su qualsiasi distribuzione linux moderna. I nomi di blocco persistenti non usano nomi neutri come sda
o sdb
. Al contrario, crea alcuni tipi di nomi, che sono costantemente associati all'unità. Sono paragonabili alle lettere di unità in Windows (sì, tieni presente che le lettere di unità sono associate a partizioni, in cui i nomi dei blocchi identificano un'unità, ma entrambi sono persistenti!).
by-id
e by-uuid
sembra più rilevante per risolvere questo problema, ma ce ne sono anche altri. Puoi leggere una spiegazione più dettagliata nella pagina wiki collegata dall'Arch. È un articolo generale, che può applicarsi anche ad altre distribuzioni. Per questo problema è importante sapere che uuids
sono una specie di ID univoco generato. E possiamo usare ids
come alternativa leggibile meglio, perché usano informazioni specifiche su hdd come produttore, modello e numero di serie.
ZFS
Come descritto qui , era necessario esportare tutti i pool e quindi reimportarli, ma con lo -d
switch. Indica a zpool dove cercare i dispositivi:
zpool export <poolname>
zpool import -d /dev/disk/by-id <poolname>
L'utilizzo di zpool status
questo può essere verificato: prima dell'esportazione / importazione, dovresti vedere i punti di montaggio come /dev/sda
per i dispositivi. Questo dovrebbe cambiare agli ID disco dopo quella procedura.
Volumi regolari (facoltativo)
Per me questo non era abbastanza: ho anche un hdd chiamato buffer per cose come le immagini ISO. Nessun dato importante, solo per alleviare il mio SSD. Quindi questo era un classico volume ext3. Ciò scoraggia l'avvio del mio server, poiché qui si verifica esattamente lo stesso problema: il punto di montaggio ha cambiato la causa dei nuovi dischi, il che ha impedito il montaggio.
Ho risolto questo semplicemente rimuovendo questa unità. Comunque questa è stata la mia idea, dato che i nuovi hdd sono abbastanza grandi e ho potuto risparmiare un po 'di energia con meno dischi. Per fare ciò, dobbiamo rimuovere la memoria da proxmox usando il /etc/pve/storage.cfg
file. Nel mio caso, la parte pertinente si presenta così:
dir: buffer
path /buffer
content iso
Dopo averlo rimosso, dobbiamo dare un'occhiata /etc/fstab
. Questo file monta il nostro /buffer
volume, dove si verifica la causa principale:
/dev/sdf /buffer ext3 rw 0 0
Come puoi vedere, il punto di montaggio /dev/sdf
è presente qui. Se non vuoi rifiutare il disco come faccio io, usa semplicemente un punto di montaggio unico qui! Ad esempio / dev / disk / by-id . È un esempio di nomi di dispositivo a blocchi persistenti. Sono generati sulla base di dati dipendenti dal dispositivo. by-id
ad esempio utilizza il numero seriale dell'hardware. Quindi siamo persino in grado di connettere due dischi uguali. Maggiori informazioni nel primo paragrafo per informazioni di base.
Nel mio caso, semplicemente rimuovendo questa linea si impedisce a linux di montare il mio hdd. Se si dispone di più volumi, è necessario ripetere tali passaggi per ciascuno di essi, per essere sicuri di non incorrere in problemi dopo il riavvio.