PowerScale : Problèmes de réplication SyncIQ lorsque des trames Jumbo sont activées sur des clusters PowerScale
Summary: Les tâches de réplication SyncIQ peuvent échouer par intermittence en raison de redémarrages du worker SyncIQ et d’erreurs liées au réseau. Ces problèmes sont souvent observés dans les environnements où les sous-réseaux PowerScale sont configurés pour utiliser des trames Jumbo. La base de connaissances (KB) décrit les procédures permettant de vérifier si l’infrastructure réseau de bout en bout prend en charge les trames Jumbo lorsque des paquets IP sont transmis avec la balise « Do Not Fragment » (DF) définie dans l’en-tête IP. Lorsque le bit DF est activé, les périphériques intermédiaires ne sont pas en mesure de fragmenter les paquets surdimensionnés. Si un segment du chemin réseau ne prend pas en charge la taille MTU configurée (généralement 9 000 octets pour les trames Jumbo), ces paquets peuvent être abandonnés, ce qui peut entraîner des échecs de processus de travail SyncIQ et une instabilité des tâches de réplication. ...
Symptoms
La réplication SyncIQ peut échouer avec l’erreur suivante : "SyncIQ policy failed. A work item has been restarted too many times."
- Les tâches SyncIQ répliquant de petits jeux de données se terminent généralement avec succès.
- Les tâches SyncIQ impliquant des jeux de données plus volumineux peuvent échouer lors de l’exécution.
- Les tâches de réplication SyncIQ sans chiffrement aboutissent, tandis que celles qui utilisent le chiffrement échouent immédiatement.
Cause
Ce problème peut se produire par intermittence ou apparaître de façon aléatoire dans les environnements où le routage dynamique est activé. Dans ce cas, le trafic SyncIQ peut parfois être acheminé via un chemin réseau qui ne prend pas en charge la fragmentation des paquets, ce qui entraîne des défaillances.
Dépannage :
- Utilisez la commande ping pour vérifier si l’infrastructure réseau prend en charge les trames Jumbo en testant la compatibilité MTU de bout en bout.
ping de l’interface de réplication du cluster source vers l’interface de réplication du cluster cible, en spécifiant une taille de charge utile de 8 972 octets sans définir la balise « Do Not Fragment » (DF).
isi_for_array -n<lnn> 'ping -S <source-ip> -s 8972 <target-ip>'
source-1# isi_for_array -n1 'ping -c 4 -S xxx.xxx.xxx.xxx -s 8972 yyy.yyy.yyy.yyy'
source-1: PING yyy.yyy.yyy.yyy (10.0.1.231) from xxx.xxx.xxx.xxx: 8972 data bytes
source-1: 1528 bytes from yyy.yyy.yyy.yyy: icmp_seq=0 ttl=64 time=0.944 ms
source-1: 1528 bytes from yyy.yyy.yyy.yyy: icmp_seq=1 ttl=64 time=0.797 ms
source-1: 1528 bytes from yyy.yyy.yyy.yyy: icmp_seq=2 ttl=64 time=0.912 ms
La sortie montre quele réseau transmet avec succès les paquets lorsque la balise « Do Not Fragment » (DF) n’est pas définie, ce qui suggère que les paquets peuvent être fragmentés en transit.
Pour vérifier la prise en charge des paquets jumbo en envoyant un ping de l’interface de réplication du cluster source à l’interface de réplication du cluster cible avec la balise « Do Not Fragment » activée, procédez comme suit :
isi_for_array -n<lnn> 'ping -S <source-ip> -D -s 8972 <target-ip>'
source-1# isi_for_array -n1 'ping -c 4 -S xxx.xxx.xxx.xxx -D -s 8972 yyy.yyy.yyy.yyy'
source-1: ping: sendto: Message too long
source-1: ping: sendto: Message too long
source-1: ping: sendto: Message too long
source-1: ping: sendto: Message too long
source-1: ping: sendto: Message too long
La sortie indique que la transmission de paquets échoue lorsque le bit « Do Not Fragment » (DF) est défini, ce qui suggère des contraintes MTU possibles ou des problèmes avec la découverte de MTU de chemin.
- À utiliser
tracerouteavec des tests MTU pour identifier les sauts réseau intermédiaires qui peuvent ne pas prendre en charge les trames Jumbo.
Test spécifiant une taille de charge utile de 8 972 octets avec la balise « Do Not Fragment » (DF) non définie.
isi_for_array -n<lnn> 'traceroute -s <source-ip> -p 5667 <target-ip> 8972'
source-1# isi_for_array -n1 'traceroute -s xxx.xxx.xxx.xxx -p 5667 yyy.yyy.yyy.yyy 8972' traceroute to yyy.yyy.yyy.yyy (yyy.yyy.yyy.yyy) from xxx.xxx.xxx.xxx, 64 hops max, 8972 byte packets 1 example.name.internal (aaa.aaa.aaa.aaa) 0.577 ms 0.470 ms 0.472 ms 2 bbb.bbb.bbb.bbb (bbb.bbb.bbb.bbb) 24.810 ms ccc.ccc.ccc.ccc (ccc.ccc.ccc.ccc) 23.418 ms 23.366 ms 3 yyy.yyy.yyy.yyy (yyy.yyy.yyy.yyy) 23.639 ms 23.596 ms 23.608 ms
La sortie indique que le test traceroute s’est terminé avec succès lorsque la balise « Do Not Fragment » (DF) n’a pas été définie.
source-1# isi_for_array -n1 'traceroute -s xxx.xxx.xxx.xxx -p 5667 yyy.yyy.yyy.yyy 8972' traceroute to yyy.yyy.yyy.yyy (yyy.yyy.yyy.yyy) from xxx.xxx.xxx.xxx, 64 hops max, 8972 byte packets 1 * * * 2 * * * 3 yyy.yyy.yyy.yyy (yyy.yyy.yyy.yyy) 23.661 ms 23.618 ms 23.743 ms
La sortie montre que le test traceroute s’est terminé avec succès lorsque la balise « Do Not Fragment » (DF) n’a pas été définie, mais que des indicateurs de fragmentation ont été observés le long du chemin réseau.
Test spécifiant une taille de charge utile de 8 972 octets avec la balise « Do Not Fragment » (DF) définie.
isi_for_array -n<lnn> 'traceroute -F -s <source-ip> -p 5667 <target-ip> 8972'
source-1# isi_for_array -n1 'traceroute -F -s xxx.xxx.xxx.xxx -p 5667 yyy.yyy.yyy.yyy 8972'
traceroute to yyy.yyy.yyy.yyy (yyy.yyy.yyy.yyy) from xxx.xxx.xxx.xxx, 64 hops max, 8972 byte packets
traceroute: sendto: Message too long
1 traceroute: wrote yyy.yyy.yyy.yyy 8972 chars, ret=-1
*traceroute: sendto: Message too long
traceroute: wrote yyy.yyy.yyy.yyy 8972 chars, ret=-1
*traceroute: sendto: Message too long
traceroute: wrote yyy.yyy.yyy.yyy 8972 chars, ret=-1
*
traceroute: sendto: Message too long
2 traceroute: wrote yyy.yyy.yyy.yyy 8972 chars, ret=-1
*traceroute: sendto: Message too long
traceroute: wrote yyy.yyy.yyy.yyy 8972 chars, ret=-1
*traceroute: sendto: Message too long
traceroute: wrote yyy.yyy.yyy.yyy 8972 chars, ret=-1
*
La sortie indique que le traceroute vers la cible a échoué, ce qui suggère des limitations potentielles de MTU ou des problèmes de fragmentation le long du chemin réseau.
Resolution
Solution de contournement :
- Si le sous-réseau PowerScale désigné pour le trafic SyncIQ est configuré avec une MTU de 9 000 octets, il est essentiel de s’assurer que l’intégralité du chemin réseau entre les clusters PowerScale participants prend entièrement en charge les trames Jumbo.
- Si le chemin réseau entre les clusters PowerScale participants ne prend pas en charge les trames Jumbo, assurez-vous que le sous-réseau PowerScale dédié au trafic SyncIQ est configuré avec une MTU de 1 500 octets sur les systèmes source et cible.