VxRail: En la página Configuración de NIC se muestra el error de respuesta de falla HTTP durante la expansión del nodo
Resumen: El nombre del switch virtual distribuido (DVS) de uno de los nodos es diferente al de otros nodos del mismo clúster. Esto provoca una incompatibilidad de información del clúster y no muestra la información de configuración de NIC en la página. ...
Síntomas
En la página NIC Configuration se muestra el error de respuesta de respuesta de falla de http durante la expansión del nodo.
Short.term.log:
2022-07-04-01:03:31 microservice.ms-day2 "2022-07-04 01:03:31,095 [ERROR] <ThreadPoolExecutor-0_49:140246234617600> exp_general_controller.py get() (108): Internal Error During discovering configured hosts pnic info." 2022-07-04-01:03:31 microservice.ms-day2 "Traceback (most recent call last):" 2022-07-04-01:03:31 microservice.ms-day2 " File ""/home/app/runtime_operations_app/main/controllers/exp_general_controller.py"", line 100, in get" 2022-07-04-01:03:31 microservice.ms-day2 " hosts_pnic_info = NodeNicService().query_configured_hosts_pnic_info(segment_label)" 2022-07-04-01:03:31 microservice.ms-day2 " File ""/home/app/runtime_operations_app/main/services/node_nic_service.py"", line 157, in query_configured_hosts_pnic_info" 2022-07-04-01:03:31 microservice.ms-day2 " config_hosts = self._assemble_configured_hosts_pnic_info(configured_hosts_pnic_info)" 2022-07-04-01:03:31 microservice.ms-day2 " File ""/home/app/runtime_operations_app/main/services/node_nic_service.py"", line 124, in _assemble_configured_hosts_pnic_info" 2022-07-04-01:03:31 microservice.ms-day2 " self._update_configured_hosts_pnic_vds_info(config_hosts)" 2022-07-04-01:03:31 microservice.ms-day2 " File ""/home/app/runtime_operations_app/main/services/node_nic_service.py"", line 87, in _update_configured_hosts_pnic_vds_info" 2022-07-04-01:03:31 microservice.ms-day2 " cluster_host = list(filter(lambda host:host.hostname == config_host['hostname'], cluster_hosts))[0]" 2022-07-04-01:03:31 microservice.ms-day2 "IndexError: list index out of range"
Causa
Hay dos causas diferentes para este problema:
- El nombre de DVS de uno de los nodos es diferente al de otros nodos del mismo clúster. Esto provoca una incompatibilidad de información del clúster y no muestra la información de configuración de NIC en la página.
- El nombre de DVS es diferente de la parte de host y red de GQL.
Resolución
Causa 1: Si se produjo este problema, ejecute el siguiente comando en VxRail Manager para obtener toda la información del nodo. Este comando muestra toda la información del clúster en JSON formato.
curl -k -H "Content-Type: application/json" -X POST -u <username>:<Password> --unix-socket /var/lib/vxrail/nginx/socket/nginx.sock -d '{"query":"query {cluster(moid : \"<mob-ID>\") {host{name hardware{systemInfo{serialNumber}}config{virtualNicManagerInfo{netConfig{nicType selectedVnic}}network{proxySwitch{dvsUuid dvsName hostLag{lagKey lagName uplinkPort{key value}}spec{backing{pnicSpec{pnicDevice uplinkPortKey uplinkPortgroupKey}}}uplinkPort{key value}}}}configManager{networkSystem{networkInfo{netStackInstance{name ipRouteConfig{defaultGateway}}}networkConfig{vnic{device spec{ip{ipAddress subnetMask}distributedVirtualPort{portgroupKey}}}}}}} network{moid name backingType config{key type defaultPortConfig{vlan{vlanId}uplinkTeamingPolicy{uplinkPortOrder{activeUplinkPort standbyUplinkPort inherited}}}distributedVirtualSwitch{name moid}}}}}", "variables":null,"operationName":null}' http://127.0.0.1/rest/vxm/internal/do/v1/network/vds/query
En el comando, reemplace el valor con la siguiente interpretación.
The value of <username>, <Password>, <mob-ID> should be replaced based on the running cluster information. The "<mob-ID>" is cluster MoRef ID: vc_mob/content/rootFolder/childEntity/hostFolder/childEntity(domain-xx) The "<username>, <Password>" is VxRail Manager's root credential
Filtre el contenido de la salida y compare el dvsName valor de los hosts para identificar el host con un nombre de DVS diferente al de otros hosts. (Incluso el dvsUuid Los valores de los hosts son los mismos)
Corrija el nombre de DVS del host en vCenter.
Causa 2: Ejecute el siguiente comando y confirme ambos resultados DVS El nombre es el mismo.
curl -s -k --unix-socket /var/lib/vxrail/nginx/socket/nginx.sock -H "Content-Type: application/json" \
-d "$(cluster_moid=$(curl -s --unix-socket /var/lib/vxrail/nginx/socket/nginx.sock \
http://127.0.0.1/rest/vxm/internal/configservice/v1/configuration/keys/cluster_moid | jq -r .value); \
printf '{"query":"query($moid:ID!){cluster(moid: $moid) { host { hardware { systemInfo { serialNumber } } config { network { proxySwitch { dvsUuid dvsName } } } } network { moid config { distributedVirtualSwitch { name moid } } } }}","variables":{"moid":"%s"}}' "$cluster_moid")" \
http://127.0.0.1/rest/vxm/internal/do/v1/network/vds/query | jq |grep name
curl -s -k --unix-socket /var/lib/vxrail/nginx/socket/nginx.sock -H "Content-Type: application/json" \
-d "$(cluster_moid=$(curl -s --unix-socket /var/lib/vxrail/nginx/socket/nginx.sock \
http://127.0.0.1/rest/vxm/internal/configservice/v1/configuration/keys/cluster_moid | jq -r .value); \
printf '{"query":"query($moid:ID!){cluster(moid: $moid) { host { hardware { systemInfo { serialNumber } } config { network { proxySwitch { dvsUuid dvsName } } } } network { moid config { distributedVirtualSwitch { name moid } } } }}","variables":{"moid":"%s"}}' "$cluster_moid")" \
http://127.0.0.1/rest/vxm/internal/do/v1/network/vds/query | jq |grep dvsName