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 -aaymi 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 --sysinitnei suoi script di avvio. Il nuovo usa systemd e non vedo la vgchangechiamata 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 lvmetadchiama pvscanper 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 pvscane 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 pvscanuna volta, subito dopo l'avvio lvmetad. L'altra chiamata per il dispositivo specifico è ancora lì, e penso che in realtà udevlo 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).