DustBowl.Games

Server Migration & Relocation Runbook

Generate coordinated, zero-downtime cutover runbooks when moving live servers between hardware nodes or datacenters. Automates DNS TTL reduction, rsync delta transfers, maintenance window freezing, and contingency rollback triggers.

RUNBOOK ENGINE ZERO-DOWNTIME

Relocation Plan Overview

Checklist Progress: 0 of 17 Tasks (0%)
Target Engine DayZ Standalone
Source Node 198.51.100.10:22
Target Node 203.0.113.50:22
Downtime Budget 45 min window

Migration Parameters

Source Node (Current Host)
Target Node (New Host / Warden)

Phase 1: Pre-Migration Staging & Planning

T-48h to T-2h

Prepare target host, lower DNS TTL, pre-sync static assets, and notify users.

Reduce DNS A record Time-to-Live (TTL) to 300 seconds (5 minutes) so that DNS cache records expire quickly during the final cutover.

dig +nocmd dayz.dustbowl.games any +multiline +noall +answer
✓ Verification: Confirm TTL <= 300s across public resolvers.

Verify SSH connectivity to 203.0.113.50:22 and ensure the target directory structure and DustBowl Warden port allocations are ready.

ssh -p 22 [email protected] 'mkdir -p /home/container'
✓ Verification: Target host returns exit code 0.

Transfer static assets, mods, maps, and binaries while the source server remains live. Excludes active saves and logs to minimize final maintenance downtime.

rsync -avzP -e 'ssh -p 22' --exclude 'save*' --exclude '*.log' --exclude '*.sqlite-journal' /opt/dayz/server/ [email protected]:/home/container/
✓ Verification: Check target disk space and initial file transfer.

Publish an announcement to Discord, forums, or Steam groups scheduled for T-0 (45 minute expected downtime).

✓ Verification: Community is notified of maintenance start time.

Phase 2: Freeze & Delta Synchronization

T-0 (Maintenance Start)

Gracefully stop source server, lock data state, and transfer differential saves.

Send broadcast notices at 15m, 5m, and 1m warning active players that server maintenance is beginning.

✓ Verification: Broadcast acknowledged in game chat/logs.
CRITICAL

Issue save-all / flush command via RCON, then gracefully terminate the server daemon to freeze game world state.

ssh -p 22 [email protected] 'systemctl stop game-server || true'
✓ Verification: Confirm no active processes are writing to save files.
CRITICAL

Run exact delta synchronization with --delete flag to copy dynamic world saves, databases, player inventories, and state.

rsync -avzP --delete -e 'ssh -p 22' /opt/dayz/server/ [email protected]:/home/container/
✓ Verification: rsync exits with 0 and shows total bytes transferred.

Generate SHA-256 checksums of the primary world save on both source and target to guarantee zero corruption during transfer.

sha256sum /home/container/$(ls -t /home/container | head -n 1)
✓ Verification: Hashes match between source and target hosts.

Phase 3: Target Boot & Smoke Testing

T+15m

Apply permissions, start daemon on target node, and perform operator verification.

Fix UID/GID ownership (1000:1000) and ensure folders have 755 and files have 644 permissions.

ssh -p 22 [email protected] 'chown -R 1000:1000 /home/container && find /home/container -type d -exec chmod 755 {} + && find /home/container -type f -exec chmod 644 {} +'
✓ Verification: Directory and file permissions verified via ls -la.
CRITICAL

Start the game server process on the target host. Verify logs for successful world loading, chunk parsing, and database initialization.

ssh -p 22 [email protected] 'cd /home/container && ./start.sh || systemctl start game-server'
✓ Verification: Server log indicates 'World Loaded' or 'Game Server Active'.

An operator connects directly via target IP to verify inventory, base structures, permissions, and entity data.

✓ Verification: Admin character spawns with intact inventory and base structures.

Phase 4: DNS Cutover & Public Launch

T+30m

Shift DNS resolution to target node and open public player traffic.

CRITICAL

Point dayz.dustbowl.games to target IP 203.0.113.50. Because TTL was lowered to 300s, resolution shifts rapidly.

✓ Verification: dig +short dayz.dustbowl.games returns 203.0.113.50.

Disable password/whitelist restriction on target server to welcome public players.

✓ Verification: Target server accepts incoming player connections.

Notify community that migration is complete with updated connection IP/port info.

✓ Verification: Community announcement posted.

Phase 5: Post-Cutover Monitoring & Rollback Plan

T+60m to T+72h

Observation period and emergency rollback safeguards.

Watch CPU, RAM, tick rate / FPS, and query response for 60 minutes post-cutover.

✓ Verification: Resource usage and tick rates remain stable.

Keep the source host intact and stopped for 72 hours as an immutable fallback snapshot.

✓ Verification: Source host remains powered down with original data preserved.

If catastrophic data failure occurs on target: (1) Revert DNS dayz.dustbowl.games to 198.51.100.10, (2) Start source server daemon, (3) Post incident update.

ssh -p 22 [email protected] 'systemctl start game-server'
✓ Verification: Source server resumes operations if rollback is triggered.

Connection interrupted

We are restoring your session

Your account remains secure while we reconnect you.

Attempt in progress

A fresh reload verifies your session and pulls current content and security updates from the server.

Unsaved changes may be lost while your session is interrupted.

View system status

Need help? Home · Support · Discord

Check your connection, then try again or review our system status.

A fresh reload verifies your session and pulls current content and security updates from the server.

Unsaved changes may be lost while your session is interrupted.

View system status

Need help? Home · Support · Discord

The server rejected this session. Reload to continue securely.

A fresh reload verifies your session and pulls current content and security updates from the server.

Unsaved changes may be lost while your session is interrupted.

View system status

Need help? Home · Support · Discord

Connection status and recovery controls.