Não é possível inicializar servidores Linux durante o failover
Symptoms
Executando o script "emcpbfs_linux config" para configurar o PowerPath para inicializar a partir do script R1, tentei inicializar a partir da nova entrada do grub que ele criou e inicializou bem como esperado. No entanto, ao fazer failover, ele não funciona. O Powerpath não detecta os dispositivos ao executar no local R2 e, portanto, o filtro LVM na imagem ramdisk, que está definido para aceitar apenas dispositivos emcpower, não encontra nenhum dos PVs, fazendo com que o servidor não consiga inicializar
Executando o script com uma suspensão de 20 segundos, o servidor inicializava sem problemas quando ele sofria failover (e com os mesmos nomes de pseudodispositivos)
A execução do script sem a suspensão exibia os mesmos sintomas de looping tentando encontrar o grupo de volumes, e o servidor não inicializava.
Cause
Quando o script foi executado sem suspensão: a primeira vez que o link FC ainda não está ativo e os dispositivos SCSI nativos ainda não estão configurados no host.
Mas há um disco interno (/dev/sda) que já está configurado neste momento. Portanto, o script assume que os dispositivos de inicialização nativos já estão configurados e continua tentando criar o dispositivo emcpower. Mas como os dispositivos R2 ainda não estão ativos, isso falha.
Basicamente a partir do script, a condição if abaixo é bem-sucedida porque sdfound está definido como 1, mesmo que o dispositivo de inicialização não esteja presente.
if [ ${count1} -eq ${count2} ] && [ "${sdfound}" -eq 1 ]; Então /etc/opt/emcpower/emcpmgr map -p
<Captura de log sem suspensão>
COUNT: getsddevs return 1
COUNT1: getsddevs return 1
COUNT: getsddevs return 1
COUNT2: getsddevs return 1
/dev/sda
/dev/emcpower
<snip>
<snip de log com suspensão>
COUNT: getsddevs return 25
COUNT1: getsddevs return 25
COUNT: getsddevs return 25
COUNT2: getsddevs return 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: Tabela
de partição desconhecida SDE: Tabela
de partição desconhecida SDF: Tabela
de partição desconhecida SDG: Tabela
de partição desconhecida SDO: Tabela
de partição desconhecida SDQ: Tabela
de partição desconhecida SDR: Tabela
de partição desconhecida EMCMpowera:
EMCPOWERA1 EMCMpowera2
/dev/emcpower
/dev/emcpowera
/dev/emcpowera1
/dev/emcpowera2
<snip>
Resolution
Solução temporária:
desative esse disco interno do BIOS durante a inicialização e tente o failover (sem suspensão).
Com isso, a inicialização deve ser bem-sucedida sem problemas, pois o script tem uma verificação para garantir que a contagem seja maior que 0 ao tentar criar o dispositivo emcpower.
Correção permanente:
não há correção permanente, pois a inicialização R1/R2 com um disco interno não é uma configuração recomendada. A complexidade ocorre porque o script não será capaz de identificar se o disco de inicialização já está configurado ou não. E esse script não é específico para cenários de inicialização R1/R2. O mesmo script também precisa funcionar nas configurações normais de inicialização por SAN. Adicionar sono quando não necessário não seria uma boa ideia.
A engenharia documentará que essa configuração não é compatível no guia de instalação e administração do PowerPath.