PowerFlex 4.X: Så här utför du en korrekt omstart på virtuella PFMP MVM-hanteringsdatorer
Sammanfattning: Innehåller information om en smidig omstart av virtuella PowerFlex Management Platform-maskiner (PFMP) för version 4.X, inklusive märkning, tömning och omstart av MVM:er samtidigt som två noder hålls aktiva och PostgreSQL-hälsa kontrolleras. Inom ramen för denna procedur är MVM1 postgres-ledare. Den töms och startas om sist. ...
Instruktioner
Omstart av virtuella MVM-datorer kan lösa vissa poddproblem, distributionsfel och andra fel
Kommandona i den här proceduren körs från ett rot-bash-gränssnitt. Om du vill spegla stegen nedan loggar du in på MVM:erna med delladmin Kör sedan sudo -s för att byta till ett nytt rotskal.
Exempel:
delladmin@pfmp-mvm03:~> whoami delladmin delladmin@pfmp-mvm03:~> sudo -s pfmp-mvm03:/home/delladmin # whoami root
- Visa en lista över alla Postgres-databasinstanser och identifiera poddnamnet med rollen Ledare, noden ledare ska vara den sista noden som töms och startas om:
-
- PFMP 4.6
kubectl exec -n powerflex -c database $(kubectl get pods -n powerflex -l='postgres-operator.crunchydata.com/role=master, postgres-operator.crunchydata.com/instance-set' | grep Running | cut -d' ' -f1) -- sh -c 'patronictl list'
Kör följande kommando för att identifiera vilken MVM som kör Postgres Leader Pod. Det här är den sista noden som töms och startas om:
for x in `kubectl get pods -n powerflex | grep "postgres-ha-cmo" |awk '{print $1}'` ; do echo $x; kubectl get pods -n powerflex $x -o json | grep '"nodeName"' | cut -d ':' -f2 ; echo " "; done
-
- PFMP 4.8
kubectl exec -it -n powerflex $(kubectl get pods -n powerflex | grep postgres-monitor | awk '{print $1'}) -- kubectl cnpg status postgres-ha-cnpg
Exempel på utdata
delladmin@node2:~> kubectl exec -it -n powerflex $(kubectl get pods -n powerflex | grep postgres-monitor | awk '{print $1'}) -- kubectl cnpg status postgres-ha-cnpg
Cluster Summary
Name powerflex/postgres-ha-cnpg
System ID: 7570829541331841052
PostgreSQL Image: dockerrepo:30500/cnpg/cnpg-postgres:14.18-22-53.6b63004-22-9.0
Primary instance: postgres-ha-cnpg-1
Primary start time: 2025-11-09 22:33:09 +0000 UTC (uptime 3803h6m21s)
Status: Cluster in healthy state
Instances: 3
Ready instances: 3
Size: 11G
Current Write LSN: B/6211B568 (Timeline: 3 - WAL File: 000000030000000B00000062)
Continuous Backup status
Not configured
Streaming Replication status
Replication Slots Enabled
Name Sent LSN Write LSN Flush LSN Replay LSN Write Lag Flush Lag Replay Lag State Sync State Sync Priority Replication Slot
---- -------- --------- --------- ---------- --------- --------- ---------- ----- ---------- ------------- ----------------
postgres-ha-cnpg-2 B/6211B568 B/6211B568 B/6211B568 B/6211B568 00:00:00.000365 00:00:00.001507 00:00:00.001618 streaming async 0 active
postgres-ha-cnpg-3 B/6211B568 B/6211B568 B/6211B568 B/6211B568 00:00:00.000321 00:00:00.001511 00:00:00.001575 streaming async 0 active
Instances status
Name Current LSN Replication role Status QoS Manager Version Node
---- ----------- ---------------- ------ --- --------------- ----
postgres-ha-cnpg-1 B/6211B568 Primary OK Burstable 1.26.1 pfmp-mvm01
postgres-ha-cnpg-2 B/6211B568 Standby (async) OK Burstable 1.26.1 pfmp-mvm02
postgres-ha-cnpg-3 B/6211B568 Standby (async) OK Burstable 1.26.1 pfmp-mvm03
- Öppna en terminal till MVM3 (en av noderna som inte är ledare). Kör följande kommando:
kubectl get nodes
- Etikett MVM3 för underhåll:
kubectl label node pfmp-mvm03 cmo.maintenance.mode=true
- Töm noden MVM03 där poddar som körs avlägsnas från noden på ett smidigt sätt. Poddarna schemalägger och körs på en annan nod. När tömningsprocessen har slutförts startas noden om. Vänta tills noden har startat igen.
- Kör följande kommando för att tömma noden:
kubectl drain pfmp-mvm03 --ignore-daemonsets --delete-emptydir-data
- När noden har tömts startar du om noden:
sudo reboot
- SSH till MVM02 och kör följande kommando för att övervaka noden som du startade om för att nå statusen Klar:
watch kubectl get nodes
- När MVM03 har rapporterat en Ready STATUS, SSH till MVM03 och utför följande kommando för att lossa och ta bort underhållsetiketten .
kubectl uncordon pfmp-mvm03 ; kubectl label node pfmp-mvm03 cmo.maintenance.mode-
Obs! Tecknet "-" efter
cmo.maintenance.mode i kommandot ovan är mycket viktigt. Glöm inte att inkludera DASH-symbolen . Detta krävs för att ta bort etiketten från noden.
- Vänta 5 till 20 minuter och kör sedan kommandot i steg 1 för att visa databasklustrets hälsa. Du kan upprepa stegen för nästa MVM när utdata matchar det felfria databasexemplet nedan.
- Upprepa steg 3–8 på MVM02 och sedan MVM01.
När du har slutfört proceduren på alla tre MVM:erna kör du kommandot i steg 1 för att kontrollera postgres-databasens hälsa. En podd ska vara ledare och i ett tillstånd av att köra. Det bör vara 0 MB fördröjning och båda Sync Standby-medlemmarna bör ha ett strömningstillstånd.
Exempel på felfri databas PFMP 4.6:
+ Cluster: postgres-ha-ha +------------------------------------------+--------------+-----------+----+-----------+ | Member | Host | Role | State | TL | Lag in MB | +-------------------------+------------------------------------------+--------------+-----------+----+-----------+ | postgres-ha-cmo1-8t2v-0 | postgres-ha-cmo1-8t2v-0.postgres-ha-pods | Leader | running | 10 | | | postgres-ha-cmo1-h4hx-0 | postgres-ha-cmo1-h4hx-0.postgres-ha-pods | Sync Standby | streaming | 10 | 0 | | postgres-ha-cmo1-pb88-0 | postgres-ha-cmo1-pb88-0.postgres-ha-pods | Sync Standby | streaming | 10 | 0 | +-------------------------+------------------------------------------+--------------+-----------+----+-----------+