PowerFlex 3.X: Adicionar comando SDC que causa pane e failover do MDM
Summary:
Depois de executar o comando add SDC (scli --add_sdc /), ocorre failover do MDM
Symptoms
1. O MDM está em execução no "modo restrito"
2. O usuário tenta adicionar um SDC com IPs que não existem nos IPs aprovados do SDC, o que força o MDM a criar um novo objeto
SDC 3. O nome do SDC usado é o nome do SDC que já existia antes
do 4.A pane do MDM ocorre no MDM principal e a aquisição
do MDM secundário 1. O usuário executa o comando add SDC usando IPs e não GUID, e recebe erro de comunicação como stdout por exemplo:
# scli --add_sdc --sdc_ip 123.234.234.201 --sdc_name SDC40
Error: MDM failed command. Status: Communication error
2. Verificando o arquivo MDM exp.0, a pane abaixo pôde ser observada
21/12 02:43:26.897784 Panic in file /data/builds/workspace/ScaleIO-Common-Job@2/src/mdm/control/obj_container.c, line 2291, function objContainer_GetObjId, PID 30902.Panic Expression (((void *)0) != (pObjHeader)) && ((pObjHeader)->magic == 0x68cab8db) .
/opt/emc/scaleio/mdm/bin/mdm-3.5.1000.175(mosDbg_PanicPrepare+0x13a) [0x9a51ca]
/opt/emc/scaleio/mdm/bin/mdm-3.5.1000.175(objContainer_GetObjId+0xe8) [0x981768]
/opt/emc/scaleio/mdm/bin/mdm-3.5.1000.175(iniMgr_ApproveInitiator+0x359) [0x8c7fe9]
/opt/emc/scaleio/mdm/bin/mdm-3.5.1000.175() [0x562a08]
/opt/emc/scaleio/mdm/bin/mdm-3.5.1000.175(netRecvGroup_WaitForWork+0x3dc) [0x7b2cfc]
/opt/emc/scaleio/mdm/bin/mdm-3.5.1000.175(netRecvGroup_WaitForWorkLoop+0x18) [0x7b3008]
/opt/emc/scaleio/mdm/bin/mdm-3.5.1000.175(mosUmt_StartFunc+0x7a) [0x7fb5da]
/lib64/libc.so.6(+0x48140) [0x7ff1b5a8d140]
[(nil)]
Impacto:
1. O comando Add SDC falhará — o SDC não será adicionado ao sistema
2.Failover do MDM
Cause
Antes do PowerFlex v3.0, o componente MDM armazenava todos os IPs de SDCs, mesmo para SDCs desconectados. A partir da versão 3.0, o componente MDM rastreia apenas IPs SDC conectados ou aprovados.
Como parte do comando "add SDC", o usuário precisa usar parâmetros adicionais, como: "SDC IPs" ou "SDC GUID" com um parâmetro opcional "SDC name".
Depois que o comando "add SDC" for emitido, o MDM tentará pesquisar um SDC existente com esses parâmetros. Em nosso cenário, o usuário forneceu um "SDC IPs" desconhecido e, consequentemente, o MDM não está familiarizado com os "SDC IPs" recém-fornecidos devido à alteração introduzida na versão 3.0, portanto,
o MDM criou um novo objeto SDC.
Além disso, o parâmetro "SDC name" que foi usado durante a execução do comando era um nome de SDC existente, portanto, ele excluiu imediatamente o objeto do SDC que acabou de ser criado, pois o MDM detectou que esse nome já está em uso.
Depois que o MDM tentou acessar o objeto SDC excluído, ele confirmou e ocorreu um failover.
Resolution
Para superar esse cenário e adicionar com sucesso os SDCs que foram conectados anteriormente, use o parâmetro "SDC GUID" em vez de "SDC IP".
Por exemplo:
scli --add_sdc --sdc_guid FA4BFBF6-546A-11E8-B40D-0050568D283E
Versões afetadas
Todas as versões superiores à 3.0