No se pueden iniciar servidores Linux cuando se realiza una conmutación por error
Symptoms
Se ejecutó el script "emcpbfs_linux config" para configurar PowerPath de modo que se iniciara desde el script R1 e intenté iniciar desde la nueva entrada grub que se creó, y el arranque se realizó correctamente según lo esperado. Sin embargo, cuando se realiza una conmutación por error, no funciona. PowerPath no detecta los dispositivos cuando se ejecuta en el sitio R2 y, por lo tanto, el filtro LVM en la imagen ramdisk que está configurada para aceptar solo dispositivos emcpower no encuentra ninguno de los PV, lo que hace que el servidor no pueda arrancar
Al ejecutar el script con una suspensión de 20 segundos, el servidor realmente arrancó sin problemas cuando se realizó una conmutación por error (y con los mismos nombres de pseudodispositivos)
La ejecución del script sin suspensión presentaba los mismos síntomas de bucle cuando se intentaba encontrar el grupo de volúmenes y el servidor no arrancaba.
Cause
Cuando el script se ejecutó sin suspensión: la primera vez, el enlace FC aún no está activo y los dispositivos SCSI nativos aún no están configurados en el host.
Pero hay un disco interno (/dev/sda) que ya está configurado en este momento. Por lo tanto, el script asume que los dispositivos de arranque nativos ya están configurados y continúa intentando crear el dispositivo emcpower. Pero como los dispositivos R2 aún no están activos, esto falla.
Básicamente, desde el script, la siguiente condición if tiene éxito porque sdfound está configurado en 1, aunque el dispositivo de arranque no esté presente.
if [ ${count1} -eq ${count2} ] && [ "${sdfound}" -eq 1 ]; entonces /etc/opt/emcpower/emcpmgr map -p
<recorte de registro sin suspensión>
COUNT: getsddevs devuelve 1
COUNT1: getsddevs devuelve 1
COUNT: getsddevs devuelve 1
COUNT2: getsddevs devuelve 1
/dev/sda
/dev/emcpower
<snip>
<Fragmento de registro con suspensión>
COUNT: getsddevs devuelve 25
COUNT1: getsddevs devuelve 25
COUNT: getsddevs devuelve 25
COUNT2: getsddevs devuelve 25
/dev/sda /dev/sdb /dev/sdc /dev/sdd /dev/sde /dev/sdf /dev/sdg /dev/sdh /dev/sdi /dev/sdj /dev/sdk /dev/sdl /dev/sdm /dev/sdn /dev/sdo /dev/sdp /dev/sdq /dev/sdr /dev/sds /dev/sdt /dev/sdu /dev/sdv /dev/sdw /dev/sdx /dev/sdy
sdc: Tabla
de particiones desconocidas SDE: Tabla
de particiones desconocidas SDF: Tabla
de particiones desconocidas SDG: Tabla
de particiones desconocidas SDO: Tabla
de particiones desconocidas SDQ: Tabla
de particiones desconocidas SDR: Tabla
de particiones desconocidas emcpowera:
emcpowera1 emcpowera2
/dev/emcpower
/dev/emcpowera
/dev/emcpowera1
/dev/emcpowera2<snip>
Resolution
Solución alternativa: deshabilite este disco interno desde el BIOS durante el arranque y, a continuación,
intente la conmutación por error (sin suspensión).
Con esto también, el arranque debería realizarse correctamente sin ningún problema, ya que el script tiene una comprobación para asegurarse de que el conteo sea mayor que 0 cuando intenta crear el dispositivo emcpower.
Solución permanente :
no hay una corrección permanente, ya que el arranque de R1/R2 con un disco interno no es una configuración recomendada. La complejidad se debe a que el script no podrá identificar si el disco de arranque ya está configurado o no. Y este script no es específico para escenarios de arranque de R1/R2. El mismo script también debe funcionar en configuraciones normales de arranque desde SAN. Agregar sueño cuando no es necesario no sería una muy buena idea.
El equipo de ingeniería documentará que esta configuración no es compatible con la guía de instalación y administración de PowerPath.