PowerFlex: Implementering mislykkes – Uoverensstemmelse i netværkskonfiguration – grænseflader er tilsluttet den samme switch
Oversigt: Denne artikel indeholder procedurer for PFxM (PowerFlex Manager) version 3.x og PFMP (PowerFlex Management Platform) 4.x. For PFxM 3.x rapporterer tjenesteaktiviteten muligvis "grænseflader er tilsluttet den samme switch". Det samme gælder for PFMP 4.x RG-aktivitet (Resource Group). Brugergrænsefladen kan rapportere "Uoverensstemmelse i netværkskonfiguration", selv når serverens fysiske kabler matcher skabelonkonfigurationen. ...
Symptomer
Tjenesten fjernes fra PFxM eller RG i PFMP, og serveren tilsluttes igen til en anden implementering, som kan mislykkes med følgende brugergrænsefladefejl:
The port channel for interfaces NIC.Integrated.1-2-1 NIC.Slot.2-2-1 cannot be created because the interfaces are connected to the same switch % {switch_certname}.
exception.log
#/opt/asm-deployer/lib/asm/provider/switch/base.rb:462:in `validate_connectivity'
/opt/asm-deployer/lib/asm/provider/switch/nexus5k.rb:245:in `configure_server_interface'
/opt/asm-deployer/lib/asm/provider/switch/nexus5k.rb:216:in `block in provision_server_networking'
org/jruby/RubyArray.java:1735:in `each'
/opt/asm-deployer/lib/asm/provider/switch/nexus5k.rb:215:in `provision_server_networking'
/opt/asm-deployer/lib/asm/provider/switch/nexus5k.rb:153:in `configure_server'
/opt/asm-deployer/lib/asm/type/base.rb:413:in `delegate'
/opt/asm-deployer/lib/asm/type/switch.rb:173:in `configure_server'
/opt/asm-deployer/lib/asm/type/server.rb:3030:in `block in configure_networking!'
org/jruby/RubyArray.java:1735:in `each'
/opt/asm-deployer/lib/asm/type/server.rb:3023:in `configure_networking!'
/opt/asm-deployer/lib/asm/type/switch.rb:90:in `block in configure_server_networking!'
org/jruby/RubyArray.java:1735:in `each'
/opt/asm-deployer/lib/asm/type/switch.rb:89:in `configure_server_networking!'
/opt/asm-deployer/lib/asm/service/switch_collection.rb:337:in `block in configure_server_switches!'
org/jruby/RubyArray.java:1735:in `each'
/opt/asm-deployer/lib/asm/service/switch_collection.rb:329:in `configure_server_switches!'
/opt/asm-deployer/lib/asm/service/switch_collection.rb:429:in `configure_server_networking!'
/opt/asm-deployer/lib/asm/service_deployment.rb:4962:in `process_switches_via_types'
/opt/asm-deployer/lib/asm/service_deployment.rb:537:in `process'
/opt/asm-deployer/lib/asm.rb:220:in `block in process_deployment'
Påvirkning
Service- eller RG-implementeringsfejl.
Årsag
Fjernelse af en tjeneste eller RG rydder ikke cachelagrede network_topology data.
Cachelagrede data kan bruges på den næste service- eller RG-implementering, hvilket får implementeringen til at mislykkes.
Løsning
Bekræft, at den problematiske server er kablet på en AB-BA-måde. Hvis kablerne er valideret, men viser forkerte data i brugergrænsefladen, skal du rydde cachen for at gennemtvinge en genberegning under den næste service- eller RG-implementering.
Følg kommandoerne nedenfor, afhængigt af versionen, for at rydde de cachelagrede poster.
Ressourcenavnets format er {rackserver-servicetag}
Til PFxM 3.x
For PFxM version 3.6.1 og lavere skal du følge nedenstående proces:
1. Kør følgende kommando:
env RUBYLIB=/opt/asm-deployer/lib pry
2. Fra skallen, der åbnes, skal du køre følgende Ruby-kommandoer:
Udskift servicekoden med nodens servicekode med små bogstaver.
require "asm"
puppetdb = ASM::Client::Puppetdb.new(:logger => Logger.new("/dev/stdout")); nil
puppetdb.merge_facts_blocking!("rackserver-servicetag".downcase, "network_topology" => "{}"); nil
3. Kør lageret igen på serveren Den næste implementering med denne server genberegner switchforbindelsen fra bunden.
For PFxM version 3.6.2 og nyere skal du følge nedenstående proces:
1. Kør følgende kommando for at logge på psql-shellen :
psql -U orion asm_dev
2. Følgende kommando viser alle noder og finder den post, der svarer til den vært, der skal ryddes cachen for:
asm_dev=> SELECT certname FROM factsets WHERE certname LIKE 'rackserver%';
For eksempel:
asm_dev=> SELECT certname FROM factsets WHERE certname LIKE 'rackserver%';
certname
-------------------
rackserver-1a1b123
rackserver-1a1b124
rackserver-1a1b125
rackserver-1a1b126
rackserver-1a1b127
(5 rows)
3. Rediger eksempelkommandoen nedenfor, og erstat rackserver-xxxxxx med den værdi, der svarer til det korrekte node-id:
asm_dev=> DELETE FROM factsets WHERE certname = LOWER('rackserver-xxxxxx');
4. Fra psql-shellen skal du køre følgende kommando for at gemme transaktionen i databasen:
asm_dev=> COMMIT;
5. Afslut psql-shell:
asm_dev=> \q
6. Godkend, at der ikke er nogen kørende job i PFxM, og genstart asmmanager-processen:
systemctl restart asmmanager
7. Kør lagerbeholdningen på serveren fra fanen PFxM "Ressourcer" i brugergrænsefladen. Den næste implementering, hvor denne server benyttes, genberegner switchforbindelsen fra bunden.
Til PFMP 4.x
1. Kør følgende kommando fra en af Kubernetes-administrationsnoderne (K8s), også kendt som "MVM" (Management Virtual Machine), for at logge på den psql-shell , der er tilsluttet den asm_dev database:
For PFMP version 4.6 og lavere
kubectl exec -it -n powerflex $(kubectl get pods -n powerflex -l='postgres-operator.crunchydata.com/role=master' | grep Running | cut -d' ' -f1) -- psql -U postgres -d asm_dev
For PFMP version 4.8 og nyere
kubectl exec -it -n powerflex $(kubectl get pods -n powerflex -l='cnpg.io/instanceRole=primary, cnpg.io/podRole=instance' | grep Running | cut -d' ' -f1) -- psql -U postgres -d asm_dev
2. Følgende kommando viser alle noder og finder den post, der svarer til den vært, der skal ryddes cachen for:
SELECT certname FROM factsets WHERE certname LIKE 'rackserver%';
For eksempel:
asm_dev=> SELECT certname FROM factsets WHERE certname LIKE 'rackserver%';
certname
-------------------
rackserver-1a1b123
rackserver-1a1b124
rackserver-1a1b125
rackserver-1a1b126
rackserver-1a1b127
(5 rows)
3. Rediger eksempelkommandoen nedenfor, og erstat rackserver-xxxxxx med den værdi, der svarer til det korrekte node-id:
asm_dev=> DELETE FROM factsets WHERE certname = LOWER('rackserver-xxxxxx');
For eksempel:
asm_dev=# DELETE FROM factsets WHERE certname = LOWER('rackserver-1a1b123');
DELETE 1
4. Godkend, at posten er ryddet:
asm_dev=# SELECT certname FROM factsets WHERE certname LIKE 'rackserver-xxxxxx';
(0 rows)
5. Afslut psql-shell :
asm_dev=> \q
6. Genstart alle pods i PowerFlex-navneområdet:
kubectl rollout restart deployment -n powerflex
7. Kør lagerbeholdningen på serveren fra fanen PFMP "Ressourcer" i brugergrænsefladen. Bekræft, at switch-portene afspejler topologien korrekt ved at klikke på "Vis detaljer" på ressourcen. Den næste RG-implementering ved hjælp af serveren genberegner switchforbindelsen fra bunden.
Påvirkede versioner:
PFxM 3.x
PFMP 4.x