VMware Cloud Director erhält die synchrone Streaming-Replizierung zwischen den Knoten aufrecht. Wenn ein Standby-Knoten nicht mehr erreichbar ist, müssen Sie die Ursache ermitteln und das Problem beheben.

Problem

Die Verwaltungsbenutzeroberfläche der VMware Cloud Director-Appliance zeigt die Clusterintegrität als DEGRADED an, und der Status eines der Standard-Knoten lautet ? nicht erreichbar.

Die /nodes-API gibt die folgenden Informationen zurück: localClusterHealth ist DEGRADED, der status des Knotens lautet ? nicht erreichbar und nodeHealth ist UNHEALTHY.

Beispiel: Die /nodes-API gibt möglicherweise die folgenden Informationen für den Knoten zurück.
{
    "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"
    ]
}

Ursache

Um die Datenintegrität zu gewährleisten, verwendet die PostgreSQL-Datenbank Write-Ahead Logging (WAL). Der primäre Knoten streamt WAL zu Replizierungs- und Wiederherstellungszwecken konstant zu den aktiven Standby-Knoten. Die Standby-Knoten verarbeiten WAL, wenn sie es empfangen. Wenn ein Standby-Knoten nicht erreichbar ist, empfängt er kein WAL mehr und kann kein Kandidat für die Heraufstufung zum neuen primären Knoten mehr sein.

Lösung

  • Vergewissern Sie sich, dass die virtuelle Maschine des nicht erreichbaren Standby-Knotens ausgeführt wird.
  • Vergewissern Sie sich, dass die Netzwerkverbindung zum Standby-Knoten funktioniert.
  • Vergewissern Sie sich, dass kein SSH-Problem vorliegt, das die Kommunikation des Standby-Knotens mit den anderen Knoten verhindern könnte.
  • Vergewissern Sie sich, dass der vpostgres-Dienst auf dem Standby-Knoten ausgeführt wird.

Nächste Maßnahme

Informationen zur Überprüfung, ob Netzwerk- oder SSH Probleme vorliegen, finden Sie unter Überprüfen des Verbindungsstatus des Hochverfügbarkeits-Clusters der VMware Cloud Director-Datenbank.