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 -aayme 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 --sysiniten sus scripts de inicio. El nuevo usa systemd, y no veo la vgchangellamada 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 pvscancada 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:3como 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 pvscany 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 pvscanuna 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 udevllama (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).Respuestas:
¡Lo hice! ¡Lo hice! Lo arreglé correctamente (creo).
Aquí está la historia:
Después de un tiempo, el servidor resultó ser defectuoso y tuvo que ser desechado. Mantuve discos y obtuve todo lo nuevo. Luego reinstalé CentOS nuevamente en el SSD y luego conecté los HDD. LVM funcionó bien, se reconocieron los discos, se mantuvo la configuración. Pero el mismo problema surgió nuevamente: después de reiniciar, el volumen estaba inactivo.
Sin embargo, esta vez tuve la oportunidad de notar algo más: el gestor de arranque pasa los siguientes parámetros al núcleo:
Hmm, espera un minuto, ¡esos se ven FAMILIARES !
Consulta rápida de google, y ahí estamos :
Bien ahora. ¡Eso lo explica!
Entonces, la resolución fue (recopilada de varias consultas de Google más):
/etc/defaults/grubpara incluir el volumen adicional en los parámetros:crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swaprd.lvm.lv=vg_home/lv_homerhgb quietgrub2-mkconfig -o /boot/grub2/grub.cfgmkinitrd -f -v /boot/initramfs-3.10.0-327.18.2.el7.x86_64.img 3.10.0-327.18.2.el7.x86_64. Nota: sus valores pueden variar. Useuname -rpara obtener esa versión del kernel. O simplemente sigue leyendomkinitrd. (Francamente, no sé por qué es necesario este paso, pero aparentemente lo es, lo intenté sin él y no funcionó)grub2-install /dev/sdaTA-DA! El volumen está activo al reiniciar. ¡Agrégalo
fstaby disfruta! :)fuente
Actualización menor (para RHEL 7 en máquina EFI (sin BIOS) ):
Llegué al éxito con estos pasos:
/etc/defaults/grubpara incluir el volumen adicional en los parámetros:rd.lvm.lv=rhel/home(además derhel/rootyrhel/swap)Reconfigurar grub con
( nota: ¡ otro camino!)
Reconfigurar initramfs con
grub2-install /dev/sda(porque tengo un directorio vacío/usr/lib/grub/)fuente
_netdevbandera parafstab, permitirchkconfig netfs one incluso apagaruse_lvmetad = 0ellvmetaden/etc/lvm/lvm.confsolo en la esperanza de los dispositivos se re-sondeado y se recoge ...Yo tuve este problema también. En mi caso, fue una combinación de iscsi, multipath y lvm y el orden de creación de la sesión, etc. Resolví el problema agregando una llamada
/sbin/vgchange -a ya/etc/rc.local.fuente
Así que probé la configuración de rd.lvm.lv = en / etc / default / grub y eso no funcionó
Necesitaba ambos volúmenes lógicos en el grupo de volúmenes ssd_vg para estar activo en el arranque. Así como el volumen lógico home_lv en kubuntu-vg para estar activo
Lo que funcionó fue editar /etc/lvm/lvm.conf. En la sección de la lista de volúmenes, coloque esto en volume_list = ["ssd_vg", "kubuntu-vg / home_lv"]
resultado después de reiniciar
$ sudo lvscan inactivo Original '/ dev / kubuntu-vg / root' [50.00 GiB] heredar
fuente
Por mi parte, he comentado esta línea en /etc/lvm/lvm.conf
Porque si está activo, solo el volumen vg00 y vg01 están activos en el arranque.
La documentación de lvm.conf:
fuente