VxRail: Fysieke weergave wordt niet weergegeven omdat knooppunt niet reageert op de opdracht "esxcli"
Summary: Fysieke weergave VxRail clusterknooppunt ontbreekt, knooppunt reageert niet op opdracht esxcli, NTP is niet gesynchroniseerd.
Symptoms
-
De fysieke weergaven van alle knooppunten ontbreken.
Vanaf web.log trad er een time-out op van de API-gateway na 10 minuten na het ophalen van de fysieke weergavegegevens:2023-11-20T09:24:31.039Z <7527c8d153655e9bbb43b32dcd312443> marvin [ERROR] <261> ApplianceServiceImpl.java populatePvCache() (276): failed to fetch data. javax.ws.rs.ServerErrorException: HTTP 504 Gateway Time-out at org.glassfish.jersey.client.JerseyInvocation.createExceptionForFamily(JerseyInvocation.java:1125) ~[jersey-client-2.27.jar:?] at org.glassfish.jersey.client.JerseyInvocation.convertToException(JerseyInvocation.java:1105) ~[jersey-client-2.27.jar:?] at org.glassfish.jersey.client.JerseyInvocation.translate(JerseyInvocation.java:883) ~[jersey-client-2.27.jar:?] at org.glassfish.jersey.client.JerseyInvocation.lambda$invoke$1(JerseyInvocation.java:767) ~[jersey-client-2.27.jar:?] at org.glassfish.jersey.internal.Errors.process(Errors.java:316) ~[jersey-common-2.27.jar:?] at org.glassfish.jersey.internal.Errors.process(Errors.java:298) ~[jersey-common-2.27.jar:?] at org.glassfish.jersey.internal.Errors.process(Errors.java:229) ~[jersey-common-2.27.jar:?] at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:414) ~[jersey-common-2.27.jar:?] at org.glassfish.jersey.client.JerseyInvocation.invoke(JerseyInvocation.java:765) ~[jersey-client-2.27.jar:?] at org.glassfish.jersey.client.JerseyInvocation$Builder.method(JerseyInvocation.java:456) ~[jersey-client-2.27.jar:?] at org.glassfish.jersey.client.JerseyInvocation$Builder.post(JerseyInvocation.java:357) ~[jersey-client-2.27.jar:?] at com.vce.commons.domainowner.graphq.DefaultQueryExecutorImpl.doJsonRequestExecution(DefaultQueryExecutorImpl.java:139) ~[commons-7.0.480.jar:?] at com.vce.commons.domainowner.graphq.DefaultQueryExecutorImpl.execute(DefaultQueryExecutorImpl.java:94) ~[commons-7.0.480.jar:?] at com.emc.mystic.manager.graphql.client.host.HostQuery.configuredHosts(HostQuery.java:138) ~[do-host-graphql-client-1.20.41.jar:?] at com.emc.mystic.manager.graphql.client.host.HostQuery.configuredHosts(HostQuery.java:102) ~[do-host-graphql-client-1.20.41.jar:?] at com.vce.commons.domainowner.node.NodeRepository.getAllClusterNodeData(NodeRepository.java:1997) ~[commons-7.0.480.jar:?] at com.emc.mystic.manager.cluster.service.ApplianceServiceImpl.getAllHostData(ApplianceServiceImpl.java:543) ~[classes/:?] at com.emc.mystic.manager.cluster.service.ApplianceServiceImpl.populatePvCache(ApplianceServiceImpl.java:260) ~[classes/:?] at com.emc.mystic.manager.cluster.service.ApplianceServiceImpl.lambda$updateCacheTask$6(ApplianceServiceImpl.java:320) ~[classes/:?] at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?] at java.lang.Thread.run(Thread.java:829) [?:?] 2023-11-20T09:24:31.045Z <7527c8d153655e9bbb43b32dcd312443> marvin [INFO] <261> ApplianceServiceImpl.java lambda$updateCacheTask$6() (321): Success to refresh cache for node: <node SN> 2023-11-20T09:24:31.046Z <7527c8d153655e9bbb43b32dcd312443> marvin [INFO] <59> ApplianceDataRoot.java refreshVxRailClusterTag() (289): Skip refreshing VxRail-Cluster-Tag triggered by scheduled job as it has already been done within 15 minutes. 2023-11-20T09:24:31.046Z <7527c8d153655e9bbb43b32dcd312443> marvin [INFO] <59> ApplianceDataRoot.java fetchData() (357): [VXMPERF] PV fetch data execution time in 602 seconds
-
Voer de onderstaande opdracht uit in de VxRail Manager om query's uit te voeren op data van de fysieke weergave van knooppunten:
#curl -X GET --unix-socket /var/lib/vxrail/nginx/socket/nginx.sock http://127.0.0.1/rest/vxm/internal/do/v1/host/query -H 'Content-Type: application/json' -d '{"query":"{ configuredHosts { hardware { sn } } }"}' 2>/dev/null | jq | egrep "name|sn" | awk -F\" '/sn/{print $4}' | sort -u | while read sn; do time curl -X POST --unix-socket /var/lib/vxrail/nginx/socket/nginx.sock -H 'Content-Type: application/json' -d '{"variables":"{\"sn\":\"'${sn}'\"}","query":"query ($sn:[String]){ configuredHosts(sn:$sn) { moid name type summary{ hardware{ cpuNum}} config{ hostUUID isPrimary network{ vnic{ device ipv4 allIpv6s nonLinkLocalIpv6} idrac{ ipAddress ipAddressSource netmask gateway ipAddressV6 gatewayV6 prefixLen ipv6AutoConfig vlan{ enabled id priority}}} localSlotClaims{ slot bay type usage diskgroupId} diskgroup{ slotNum current{ type}} installedComponent{ displayName version model description installedTime}} runtime{ connectionState overallStatus powerState inMaintenanceMode} hardware{ sn psnt slot manufacturer name systemStatusLed tpm model firmware{ id model} firmwareRevisions{ idsdmFwRevision biosFwRevision bmcFwRevision diskCtrlFwRevision bossFwRevision cpldFwRevision expanderBackplane nonExpanderBackplane dcpmFwRevision percDiskCtrlFwRevision} baseline{ sn slot chassisId isMissing} chassis{ name model psnt partNumber serviceTag psus{ sn name slot manufacturer partNumber firmwareVersion baseline{ sn slot isMissing}}} disks{ sn guid capacity slot firmwareVersion diskType diskState manufacturer protocol maxCapableSpeed model ledStatus writeEndurance bay enclosure remainingWriteEnduranceRate encryptionAbility encryptionStatus baseline{ sn slot bay isMissing}} bootDevices{ sn firmwareVersion sataType powerOnHours powerCycleCount avrEraseCount maxEraseCount capacity deviceModel slot health bootDeviceType status blockSizeBytes partNumber manufacturer controllerFirmware controllerModel controllerStatus raidStatus} nics{ mac linkSpeed firmwareFamilyVersion linkStatus fqdd specificNicType wwnn wwpn drivers{ driverName driverVersion}} position{ rackName rackSlot} storageInstance{ securityStatus encryptionMode}}} }","operationName":null}' http://0/rest/vxm/internal/do/v1/host/query; echo ""; echo ""; echo "Done checking $sn"; done -
Resultaat waaruit blijkt dat een of meer knooppunten de data niet binnen 10 minuten hebben geretourneerd:
Knooppunten in kwestie hebben retourfout "504 Gateway Time-out", terwijl werkende knooppunten de juiste fysieke weergavedata hebben geretourneerd.

-
Ga op basis van het knooppunt SN geïdentificeerd zoals hierboven, meld u aan bij het knooppunt en voer het uit
esxclicommando, het blijft hangen maar localcli werkt:

Cause
Knooppunt had een NTP-synchronisatieprobleem dat resulteerde in het esxcli commando zit vast en geen reactie.
Fysieke VxRail-weergaveoproepen esxcli opdrachten op knooppunt om firmware-informatie op te halen, het kan de informatie niet ophalen wanneer knooppunt vastloopt bij uitvoeren esxcli Opdracht.
Resolution
De oplossing is om het NTP-synchronisatieprobleem op alle knooppunten te identificeren en op te lossen. Zie onderstaande stappen voor het controleren van de status van NTP op knooppunten:
-
Controleer /var/log/vobd.log op foutberichten die aangeven dat de systeemklok niet langer wordt gesynchroniseerd met upstream-tijdservers.
-
Controleer zo ja, de status van de NTP-server.
#ntpq -p

Als de waarde "bereik" niet 377 is, ontbreekt de NTP-transactie voor de host. De tijd op deze ESXi is mogelijk onjuist en heeft aandacht nodig.
#ntpq -c

Als de "stratum"-waarde buiten het bereik van 2 tot 6 valt, kan de tijdsynchronisatie op deze ESXi extra vertragingen ondervinden, wat mogelijk kan leiden tot onnauwkeurige tijdwaarneming.
-
Controleer met de API of het NTP-serveradres in de VxRail Manager-database correct is.
curl -k --user "[vCenter account]:[vCenter password]" --request GET "https://localhost/rest/vxm/v1/system/ntp"
-
Als dit niet het geval is, volg dan de bestaande 'Hoe kan ik'-procedures (VxRail procedures → Diversen → 'Hoe kan ik'-procedures → VxRail IP-adressen wijzigen → Opnieuw wijzen naar een nieuw IP-adres van NTP-server) om het IP-adres van de NTP-server bij te werken.
-
Gebruik indien nodig een andere werkende NTP-server, start het knooppunt vpxa en de hostservices opnieuw. Houd er rekening mee dat het probleem tijdelijk wordt opgelost door het knooppunt vpxa en de hostservices opnieuw op te starten, maar dat het probleem terugkeert als NTP niet opnieuw kan worden gesynchroniseerd.
/etc/init.d/vpxa restart /etc/init.d/hostd restart