Ho reinstallato un server Linux da CentOS 6 a 7. Il server ha 3 unità: un'unità SSD di sistema (ospita tutto tranne /home
) e due unità HDD da 4 TB che ospitano /home
. Tutto usa LVM. Le due unità da 4 TB sono speculari (usando l'opzione raid all'interno di LVM stesso) e sono completamente riempite con la partizione / home.
Il problema è che sebbene i dischi da 4 TB vengano riconosciuti correttamente e LVM rilevi il volume senza problemi, non lo attiva automaticamente. Tutto il resto viene attivato automaticamente. Posso attivarlo manualmente e funziona.
Ho un'immagine della vecchia unità di sistema in / home. Ciò contiene anche volumi LVM. Se lo monto con kpartx
, e LVM li raccoglie e li attiva. Ma non vedo alcuna differenza tra quei volumi e quelli inattivi.
Anche il filesystem di root è LVM, e questo si attiva bene.
Vedo una cosa singolare però: l'esecuzione lvchange -aay
mi dice che devo specificare quali unità voglio attivare. Non lo fa neanche automaticamente. Se lo specifico lvchange -ay lv_home
, funziona.
Non riesco a trovare nulla che possa essere responsabile di questo comportamento.
Aggiunto: ho notato che il vecchio sistema (che utilizzava init) aveva vgchange -aay --sysinit
nei suoi script di avvio. Il nuovo usa systemd e non vedo la vgchange
chiamata nei suoi script. Ma non so nemmeno dove metterlo.
Aggiunto 2: iniziare a capire systemd. Ho scoperto dove si trovano gli script e ho iniziato a capire come vengono chiamati. Ho anche scoperto che potevo vedere gli script eseguiti con systemctl -al
. Questo mi mostra che dopo l'avvio lvmetad
chiama pvscan
per ogni dispositivo di blocco udev noto. Tuttavia a quel punto c'è solo un dispositivo a blocchi udev registrato, e questo è uno dei volumi lvm riconosciuti. Ci sono anche i dischi rigidi, ma con percorsi diversi e nomi molto più lunghi. Il dispositivo a blocchi riconosciuto è qualcosa di simile 8:3
, mentre i dischi rigidi sono simili /device/something/
. Non sono più sul server, quindi non posso scriverlo con precisione (risolverò più tardi).
Penso che abbia qualcosa a che fare con udev e rilevamento / mappatura dei dispositivi. Continuerò la sera e studierò udev allora.
Se tutto il resto fallisce, ho trovato lo script che chiama pvscan
e ho verificato che posso modificarlo per scansionare tutti i dispositivi in ogni momento. Ciò risolve il problema, ma sembra un trucco piuttosto brutto, quindi proverò a capire la vera causa principale.
Aggiunto 3 : OK, non so ancora perché questo accada, ma almeno ho fatto una soluzione abbastanza accettabile. Ho creato un altro servizio systemd che chiama pvscan
una volta, subito dopo l'avvio lvmetad
. L'altra chiamata per il dispositivo specifico è ancora lì, e penso che in realtà udev
lo chiami (è l'unico posto in cui ho trovato riferimento ad esso). Perché non lo chiama per gli altri dischi rigidi - non ne ho idea.
lvmetad
è - non ne ho notato altri).