O VMware Cloud Director mantém a replicação síncrona de streaming entre os nós. Se um nó em espera ficar inacessível, você deverá determinar a causa e resolver o problema.

Problema

A UI de gerenciamento de dispositivo do VMware Cloud Director mostra a integridade do cluster como DEGRADED, e o status de um dos nós em espera é inacessível.

A API /nodes retorna informações de que localClusterHealth está DEGRADED, o status do nó é ? inacessível e nodeHealth é UNHEALTHY.

Por exemplo, a API /nodes pode retornar as seguintes informações para o nó.
{
    "localClusterFailover": "MANUAL",
    "localClusterHealth": "DEGRADED",
    "localClusterState": [
        {
            "connectionString": "host=primary_host_IP user=repmgr dbname=repmgr connect_timeout=2",
            "failover": {
                "details": "failover = manual",
                "mode": "MANUAL",
                "repmgrd": {
                    "details": "On node primary_node_ID (primary_host_name): repmgrd = not applicable",
                    "status": "NOT APPLICABLE"
                }
            },
            "id": primary_node_ID,
            "location": "default",
            "name": "primary_host_name",
            "nodeHealth": "HEALTHY",
            "nodeRole": "PRIMARY",
            "role": "primary",
            "status": "* running",
            "upstream": ""
        },
        {
            "connectionString": "host=unreachable_standby_host_IP user=repmgr dbname=repmgr connect_timeout=2",
            "failover": {
                "details": "failover state unknown - unable to ssh to failed or unreachable node",
                "mode": "UNKNOWN",
                "repmgrd": {
                    "details": "On node unreachable_standby_node_ID (unreachable_standby_host_name): repmgrd = n/a",
                    "status": "UNKNOWN"
                }
            },
            "id": unreachable_standby_node_ID,
            "location": "default",
            "name": "unreachable_standby_host_name",
            "nodeHealth": "UNHEALTHY",
            "nodeRole": "STANDBY",
            "role": "standby",
            "status": "? unreachable",
            "upstream": "primary_host_name"
        },
        {
            "connectionString": "host=running_standby_host_IP user=repmgr dbname=repmgr connect_timeout=2",
            "failover": {
                "details": "failover = manual",
                "mode": "MANUAL",
                "repmgrd": {
                    "details": "On node running_standby_node_ID (running_standby_host_IP): repmgrd = not applicable",
                    "status": "NOT APPLICABLE"
                }
            },
            "id": running_standby_node_ID,
            "location": "default",
            "name": "running_standby_host_name",
            "nodeHealth": "HEALTHY",
            "nodeRole": "STANDBY",
            "role": "standby",
            "status": "running",
            "upstream": "primary_host_name"
        }
    ],
    "warnings": [
        "unable to connect to node \"unreachable_standby_host_name\" (ID: unreachable_standby_node_ID)",
        "node \"unreachable_standby_host_name\" (ID: unreachable_standby_node_ID) is registered as an active standby but is unreachable"
    ]
}

Causa

Para garantir a integridade dos dados, o banco de dados PostgreSQL usa o WAL (Write-Ahead Logging). O nó primário transmite o WAL constantemente aos nós ativos em espera para fins de replicação e recuperação. Os nós em espera processam o WAL quando o recebem. Se um nó em espera estiver inacessível, ele deixará de receber o WAL e não poderá ser um candidato para se tornar um novo nó primário.

Solução

  • Verifique se a máquina virtual do nó em espera inacessível está em execução.
  • Verifique se a conexão de rede com o nó em espera está funcionando.
  • Verifique se não há problemas de SSH que possam impedir que o nó em espera se comunique com os outros nós.
  • Verifique se o serviço vpostgres no nó em espera está em execução.

O que Fazer Depois

Para verificar se não há problemas de rede ou SSH, consulte Verificar o status de conectividade de um cluster de alta disponibilidade de banco de dados.