Operator Guide
Active HA Verification
Prove recovery, replication, fencing and automatic failover through supervised actions on the operator's real infrastructure—without an artificial multi-day waiting gate.
Choose the correct profile
- Full commissioning: destructive; use only on a disposable two-node pair. It proves database, secrets and full restores, a clean rebuild, fencing, planned handover and real automatic failover in both directions.
- Operational smoke: non-destructive; use on a live pair after deployment or maintenance. It proves health, one-writer routing, immediate replication and snapshot create/deep-verify/export, but never wipes, restores, powers off or hands ownership to the peer.
Trusted workstation setup
Workstation
- Check out the exact clean server commit deployed on both nodes.
- Configure passwordless SSH aliases and verify both host fingerprints through their provider panels.
- Keep the private recovery identity outside the repository and local verifier configuration.
- Activate any Python 3.11 or newer environment; the existing Conda environment below is suitable.
conda activate mp-opt-soak-test
cd /d "C:\path\to\masterplanOptimiserV3---Server-Public"
python deploy\ha\ha_verification.py --config deploy\ha\ha-verification.local.json init
python deploy\ha\ha_verification.py --config deploy\ha\ha-verification.local.jsonThe local configuration stores only the public URL, SSH aliases and discovered public node metadata. Secret-, password-, token- and private-identity-like fields are rejected.
How the guided workflow proceeds
Continue shows exactly one checkpoint, its location and its exact completion phrase. Automated probes run again before acceptance. Status, Report, Verify evidence and Abort are safe across workstation restarts. There is no background monitor to keep alive.
| Marker | Where | What happens |
|---|---|---|
| Automated check | Workstation | Public HTTPS and independent SSH probes inspect both nodes without collecting secrets. |
| MP-OPT | Named VPS over SSH | Perform one exact guarded management action. |
| Application check | Browser/Desktop | Observe login, durable writes, publishing and root HA panel behavior. |
| Power action | Named provider panel | Actually power off the selected VPS; do not substitute a Docker or systemd stop. |
| Evidence | Workstation | Hash-chained redacted observations, acknowledgements and the final classification. |
Full commissioning sequence
- Preflight proves SSH, TLS, public/origin health, lease ownership, exactly one ready writer, matching releases, clocks, services, audit chains, recovery recipients and replication receipts.
- Create disposable application data and prove root login, publishing and the root HA panel.
- Set replication temporarily to five minutes and wait for a genuinely scheduled copy—do not trigger it manually—then restore the desired interval.
- Create, deep-verify and export database, secrets and full snapshots; run wrong-key, corrupted-package and stale-transfer negative controls.
- Restore database-only and secrets-only snapshots, then wipe the disposable database and restore the full snapshot.
- Prove portable recovery on a clean standalone rebuild and run the isolated recovery self-tests.
- Prove peer-loss behavior and witness/lease-loss write fencing.
- With automatic failover still disabled, power off the current holder in its provider panel. The peer must remain fenced for the complete 360-second observation window; then power the original holder on and require its unchanged generation to recover.
- Perform a guarded planned handover to the peer and back.
- Enable automatic failover only after the preceding recovery evidence passes.
- In the current holder's provider panel, power it off. Promotion must not occur before 300 seconds and routing/public recovery must complete no later than 660 seconds.
- Power the former holder on, prove it remains fenced, and replicate current state back to it.
- Repeat the real provider power-off in the opposite direction. Both directions must pass.
- Restore the intended holder, interval and healthy baseline; generate and verify the final evidence manifest.
Operational smoke sequence
Use the smoke profile on production. It verifies public and origin health, one-writer readiness, both SSH paths, lease consistency, matching releases, the root HA panel, an immediate peer-accepted replication, and snapshot create/deep-verify/export. It deliberately performs no restore, wipe, handover, witness manipulation or provider power-off.
A smoke result is labelled OPERATIONAL_SMOKE_PASS. It does not claim disaster recovery or automatic failover was re-proven.
Private key handling
The coordinator never reads the private recovery identity. When a checkpoint needs it, SSH interactively to the named node, open MP-OPT, choose the specified deep-verify or restore action, and paste the identity only into the hidden prompt. Return to the coordinator afterwards.
For exact snapshot behavior, read Recovery Snapshots. For operating the pair after commissioning, read HA Operations.