VxRail: Fyysinen näkymä ei näy, koska solmu ei vastaa esxcli-komentoon
Summary: VxRail-klusterisolmun fyysinen näkymä puuttuu, solmu ei vastaa esxcli-komentoon, NTP:tä ei ole synkronoitu.
Symptoms
-
Kaikkien solmujen fyysiset näkymät puuttuvat.
Vuodesta web.log alkaen API-yhdyskäytävä aikakatkaistiin 10 minuutin kuluttua fyysisen näkymän tietojen noutamisesta: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
-
Voit tehdä kyselyn solmun fyysisen näkymän tiedoista suorittamalla alla olevan komennon VxRail Managerissa:
#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 -
Tulos, jossa näkyy vähintään yksi solmu, ei palauttanut tietoja 10 minuuttiin:
Kyseisissä solmuissa on palautusvirhe 504 Gateway Time-out, kun taas toimivissa solmuissa palautetaan oikeat fyysisen näkymän tiedot.

-
Kirjaudu solmuun SN edellä kuvatulla tavalla, kirjaudu solmuun ja suorita
esxcliKomento, se juuttui, mutta localCLI toimii:

Cause
Solmussa oli NTP-synkronointiongelma, jonka seurauksena esxcli komento jumissa eikä vastausta.
VxRailin fyysisen näkymän puhelut esxcli Laiteohjelmistotiedot hakevat solmun komennot, mutta solmu ei hae tietoja, kun solmu juuttuu käynnissä esxcli Komento.
Resolution
Ratkaisu on tunnistaa NTP-synkronointiongelma kaikissa solmuissa ja korjata se. Katso alta ohjeet solmujen NTP:n tilan tarkistamiseen:
-
Tarkista tiedostosta /var/log/vobd.log, onko järjestelmässä virheilmoituksia, jotka osoittavat, että järjestelmän kelloa ei ole enää synkronoitu ylävirran aikapalvelimien kanssa.
-
Jos näin on, tarkista NTP-palvelimen tila.
#ntpq -p

Jos reach-arvo ei ole 377, isännästä puuttuu NTP-tapahtuma. ESXi:ssä käytetty aika saattaa olla virheellinen ja edellyttää toimia.
#ntpq -c

Jos ositusarvo on alueen 2–6 ulkopuolella, tämän ESXi:n aikasynkronoinnissa voi esiintyä lisäviiveitä, mikä voi johtaa epätarkkaan ajanottoon.
-
Tarkista, onko VxRail Manager -tietokannan NTP-palvelimen osoite oikein API:n kanssa.
curl -k --user "[vCenter account]:[vCenter password]" --request GET "https://localhost/rest/vxm/v1/system/ntp"
-
Jos ei, päivitä NTP-palvelimen IP-osoite noudattamalla olemassa olevia toimintaohjeita (VxRail-menettelyt → sekalaiset → ohjeet, → vaihda VxRail-IP-osoitteet → uudelleenosoita uuteen NTP-palvelimen IP-osoitteeseen).
-
Käytä tarvittaessa toista toimivaa NTP-palvelinta, käynnistä solmun vpxa ja isäntäpalvelut uudelleen. Huomaa, että solmun vpxa:n ja isäntäpalvelujen uudelleenkäynnistys korjaa ongelman tilapäisesti, mutta ongelma toistuu, jos NTP:n synkronointi epäonnistuu uudelleen.
/etc/init.d/vpxa restart /etc/init.d/hostd restart