La adición de nodos a un clúster existente por parte de PowerFlex puede causar inestabilidad en la red
Summary: Se agregan nuevos nodos a un clúster existente y se observan desconexiones frecuentes.
Symptoms
Escenario
Es posible que se observen problemas de conectividad generalizados cuando se agregan nuevos nodos a la red. Los problemas de conectividad también se pueden observar fuera de PowerFlex.
Síntomas
Hay varios síntomas y cada sitio puede contener uno o más de estos:
Es posible que el cliente no pueda hacer ping a ciertas direcciones IP desde un host, pero puede hacerlo desde otro host.
Es posible que el cliente no pueda acceder mediante SSH a varios dispositivos de red (como su switch).
Es posible que el servidor no pueda acceder a servicios externos, como rsyslog.
Es posible que los SDC informen errores de asignación de conectores y desconexiones:
2022-03-28 15:55:14.310000:4507407:NEW_SDC_CONNECTED WARNING New SDC connected. ID: c39eb4b2000000ca; IP: 192.168.192.239,192.168.176.239,192.168.168.239,192.168.184.239; GUID: 23D8FFD8-E3E3-4A68-9459-D6AFCB1480DF ... 2022-03-28 15:55:17.439000:4507422:OSCILLATION_COUNTER_PASSED_THRESHOLD WARNING SDC (Name: , ID: c39eb4b2000000ca) reports frequently exceeded socket allocation failures. Short window threshold (300 socket allocation failures in 60 seconds). 2022-03-28 15:55:17.439000:4507423:OSCILLATION_COUNTER_PASSED_THRESHOLD WARNING SDC (Name: , ID: c39eb4b2000000ca) reports frequently exceeded socket allocation failures. Medium window threshold (500 socket allocation failures in 3600 seconds). ... 2022-03-28 16:19:29.708000:4507849:SDC_DISCONNECTED WARNING SDC disconnected. ID: c39eb4b2000000ca; GUID: 23D8FFD8-E3E3-4A68-9459-D6AFCB1480DF
Es probable que se produzcan eventos de desacoplamiento de SDS junto con advertencias sobre el estado de conectividad:
2022-03-28 15:55:28.223000:4507431:SDS_DECOUPLED ERROR SDS: Sds-pdc1lfisnxbsn01.fnfis.com (id: b0abeb1300000000) decoupled. 2022-03-28 15:55:34.488000:4507433:CMATRIX_POLICY_BECAME_WORSE WARNING The inter-SDS connectivity health for Protection Domain ID: 7a1f601000000000 has changed from HEALTHY to REBUILD_ALLOWED
La estabilidad se restableció cuando se apagaron los nuevos sistemas.
Impacto
El uranio empobrecido podría ocurrir si el comportamiento es grave. Las desacoplaciones de SDS con reconstrucciones correctas son más comunes.
Cause
Los nodos adicionales superaron la cantidad máxima de entradas ARP configuradas en el servidor.
Para determinar la configuración actual de ARP, ejecute el siguiente comando:
sysctl -a | grep "net.ipv4.neigh.default.gc_thresh" net.ipv4.neigh.default.gc_thresh1 = 128 net.ipv4.neigh.default.gc_thresh2 = 512 net.ipv4.neigh.default.gc_thresh3 = 1024
Esta información también estará en sysctl.txt en el paquete de registro:
$ grep "net.ipv4.neigh.default.gc_thresh" /path/to/server_directory/sysctl.txt net.ipv4.neigh.default.gc_thresh1 = 128 net.ipv4.neigh.default.gc_thresh2 = 512 net.ipv4.neigh.default.gc_thresh3 = 1024
Para determinar cuántas entradas ARP se utilizan actualmente, ejecute el siguiente comando:
Si la cantidad de entradas ARP está cerca (o por encima) del umbral de gc_thresh2, es probable que tenga este problema.
arp –a | grep ether | wc –l
Esta información también estará en arp_av.txt en el paquete de registro:
$ grep "ether" /path/to/server_directory/arp_av.txt | wc -l 565
Resolution
Solución alternativa
Aumente el umbral de ARP.
- La versión 3.7.1 y posteriores de PxFM actualizarán automáticamente la configuración (este cambio se implementó para admitir 2,000 SDC con V4.0+).
- Los siguientes ajustes se prueban y son compatibles con PowerFlex 3.6 y versiones posteriores.
- Los cambios que se indican a continuación se deben realizar en todos los MDM, SDS y SDC para mantener la coherencia.
Actualice los umbrales en sysctl.conf:
file="/etc/sysctl.conf"
cp "$file" "$file".backup
if grep -q "net.ipv4.neigh.default.gc_thresh" "$file"; then
sed -i 's/net.ipv4.neigh.default.gc_thresh1 = [0-9]\+/net.ipv4.neigh.default.gc_thresh1 = 8192/' "$file"
sed -i 's/net.ipv4.neigh.default.gc_thresh2 = [0-9]\+/net.ipv4.neigh.default.gc_thresh2 = 16384/' "$file"
sed -i 's/net.ipv4.neigh.default.gc_thresh3 = [0-9]\+/net.ipv4.neigh.default.gc_thresh3 = 32768/' "$file"
sysctl -p
else
echo -e "net.ipv4.neigh.default.gc_thresh1 = 8192 \nnet.ipv4.neigh.default.gc_thresh2 = 16384 \nnet.ipv4.neigh.default.gc_thresh3 = 32768" >> "$file"
sysctl -p
fi
Esto es lo que hace el script:
Define sysctl.conf como el nombre del archivo en la variable de archivo.
Hace una copia de sysctl.conf antes de realizar cualquier cambio.
Utiliza grep -q para comprobar si la línea que contiene "net.ipv4.neigh.default.gc_thresh" existe en el archivo. La marca -q hace que grep sea silencioso y solo devuelve un estado de salida exitoso o fallido.
Si grep tiene éxito (es decir, la línea existe), utiliza sed para actualizar los valores de thresh[1|2|3] a 8192, 16384 y 32768, respectivamente, en su lugar dentro del archivo, y ejecuta sysctl -p para aplicar los cambios en sysctl.conf.
Si grep no tiene éxito (es decir, la línea no existe), agrega las líneas "... thresh1 = 8192", "... thresh2 = 16384", y "... thresh3 = 32768" al final del archivo y ejecuta sysctl -p para aplicar los cambios en sysctl.conf.
Versiones
afectadasN/D: el problema no es específico de PowerFlex.
Solucionado en la versión
N/D
Para los clientes de PxFM, consulte el comentario anterior en la sección Solución alternativa.