He reinstalado un servidor Linux de CentOS 6 a 7. El servidor tiene 3 unidades: una unidad SSD del sistema (aloja todo excepto /home
) y dos unidades HDD de 4 TB que alojan /home
. Todo usa LVM. Las dos unidades de 4TB están duplicadas (usando la opción de incursión dentro de LVM), y están completamente llenas con la partición / home.
El problema es que, aunque los discos de 4 TB se reconocen bien y LVM ve el volumen sin problemas, no lo activa automáticamente. Todo lo demás se activa automáticamente. Puedo activarlo manualmente y funciona.
Tengo una imagen de la unidad del sistema anterior en / home. Eso también contiene volúmenes LVM. Si lo monte kpartx
, y LVM los recoge y los activa. Pero no veo diferencia entre esos volúmenes y los inactivos.
El sistema de archivos raíz también es LVM, y eso se activa muy bien.
Sin embargo, veo una cosa peculiar: la ejecución lvchange -aay
me dice que necesito especificar qué unidades quiero activar. Tampoco lo hace automáticamente. Si lo especifico lvchange -ay lv_home
, eso funciona.
No puedo encontrar nada que pueda ser responsable de este comportamiento.
Agregado: noté que el sistema anterior (que usaba init) tenía vgchange -aay --sysinit
en sus scripts de inicio. El nuevo usa systemd, y no veo la vgchange
llamada en sus scripts. Pero tampoco sé dónde ponerlo.
Agregado 2: Comenzando a descubrir systemd. Encontré dónde se encuentran los scripts y comencé a entender cómo se llaman. También descubrí que podía ver los scripts ejecutados con systemctl -al
. Esto me muestra que, después de comenzar lvmetad
, requiere pvscan
cada dispositivo de bloqueo udev conocido. Sin embargo, en ese momento solo hay un dispositivo de bloque udev registrado, y ese es uno de los volúmenes lvm reconocidos. Los discos duros también están allí, pero bajo diferentes caminos y nombres mucho más largos. El dispositivo de bloque reconocido es algo así 8:3
como lo son los discos duros /device/something/
. Ya no estoy en el servidor, así que no puedo escribirlo con precisión (lo arreglaré más adelante).
Creo que tiene algo que ver con udev y la detección / mapeo de dispositivos. Continuaré por la tarde y estudiaré udev entonces.
Si todo lo demás falla, encontré el script que llama pvscan
y verifiqué que puedo modificarlo para escanear todos los dispositivos todo el tiempo. Eso soluciona el problema, pero parece un truco bastante feo, así que intentaré descubrir la verdadera causa raíz.
Agregado 3 : OK, todavía no sé por qué sucede esto, pero al menos he hecho una solución bastante aceptable. Hice otro servicio systemd que llama pvscan
una vez, justo después de comenzar lvmetad
. La otra llamada para el dispositivo específico todavía está allí, y creo que en realidad lo udev
llama (ese es el único lugar donde encontré referencia). Por qué no lo llama para los otros discos duros, no tengo idea.
lvmetad
, no he notado ningún otro).