PowerFlex 4.X: Jak provést řádný restart na virtuálních počítačích pro správu PFMP MVM
Shrnutí: Podrobně popisuje řádný restart virtuálních počítačů PFMP (PowerFlex Management Platform) pro verzi 4.X, včetně označení, vyprázdnění a restartování MVM při zachování aktivních dvou uzlů a kontrole stavu PostgreSQL. V rámci tohoto postupu je MVM1 vedoucím postgres. Vyprázdní se a restartuje jako poslední. ...
Pokyny
Restartování virtuálních počítačů MVM může vyřešit některé problémy s pody, selhání nasazení a další chyby.
Příkazy v tomto postupu se spouštějí z prostředí root Bash. Pokud chcete zrcadlit níže uvedené kroky, přihlaste se k MVM pomocí delladmin Pak spusťte sudo -s přepněte na nový kořenový shell.
Příklad:
delladmin@pfmp-mvm03:~> whoami delladmin delladmin@pfmp-mvm03:~> sudo -s pfmp-mvm03:/home/delladmin # whoami root
- Vypište všechny instance databáze Postgres a identifikujte název podu s rolí vedoucího, vedoucí uzel by měl být posledním uzlem, který se má vyprázdnit a restartovat:
-
- 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'
Spuštěním následujícího příkazu identifikujte, který nástroj MVM používá podu odkazu Postgres . Toto je poslední uzel, který se vyprázdní a restartuje:
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
Příklad výstupu
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
- Otevřete terminál pro MVM3 (jeden z uzlů bez odkazu). Zadejte následující příkaz:
kubectl get nodes
- Štítek MVM3 pro údržbu:
kubectl label node pfmp-mvm03 cmo.maintenance.mode=true
- Vyprázdněte uzel MVM03, kde jsou spuštěné pody řádně vyřazeny z uzlu. Pody se plánují a spouštějí na jiném uzlu. Po dokončení procesu vyprazdňování se uzel restartuje. Počkejte, až se uzel znovu zprovozní.
- Spuštěním následujícího příkazu vyprázdněte uzel:
kubectl drain pfmp-mvm03 --ignore-daemonsets --delete-emptydir-data
- Po vyprázdnění uzlu restartujte uzel:
sudo reboot
SSHdo MVM02 a spuštěním následujícího příkazu monitorujte uzel, který jste restartovali, aby bylo dosaženo stavu Připraveno:
watch kubectl get nodes
- Jakmile MVM03 ohlásí stav Ready, přejděte pomocí SSH do MVM03 a provedením následujícího příkazu uvolněte kordon a sejměte štítek údržby .
kubectl uncordon pfmp-mvm03 ; kubectl label node pfmp-mvm03 cmo.maintenance.mode-
Poznámka: Znak "-" za
cmo.maintenance.mode ve výše uvedeném příkazu je velmi důležité. Nezapomeňte uvést symbol POMLČKY . To je nutné k odebrání popisku z uzlu.
- Počkejte 5 až 20 minut a poté spuštěním příkazu v kroku 1 zobrazte stav databázového clusteru. Kroky pro další MVM můžete zopakovat, jakmile výstup odpovídá níže uvedenému příkladu databáze v pořádku.
- Opakujte kroky 3 až 8 u MVM02 a poté MVM01.
Kubectl Příkazy NEFUNGUJÍ na uzlu, který není ve stavu Připraveno.
Po dokončení postupu u všech tří MVM spusťte příkaz v kroku 1 a ověřte stav databáze Postgres . Jeden pod by měl být vůdce a měl by být ve stavu běhu. Prodleva by měla být 0 MB a oba členové pohotovostního režimu synchronizace by měli být ve stavu streamování.
Příklad databáze v pořádku 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 | +-------------------------+------------------------------------------+--------------+-----------+----+-----------+