fixed needed readme's over the writeback change

This commit is contained in:
2026-04-19 16:20:22 -04:00
parent 4399c81b6e
commit af14a5ca2c
3 changed files with 112 additions and 42 deletions
+21 -13
View File
@@ -30,9 +30,10 @@ Cost: $0 beyond what they were already running
**The honest user experience during failover:**
```
Library transcode users — buffer absorbs the cutover, usually seamless
Library direct play — will notice, needs to resume
Library direct play — may notice, needs to resume
Live TV direct play — no buffer, notices every time, has to resume
Watch history — worst case 15-30min window behind
reality: a show or two, movies likely unaffected
Could force transcode on Live TV to get the buffer benefit —
not worth the permanent CPU/RAM overhead for an event that rarely happens.
@@ -124,26 +125,32 @@ NPM rule added on HOST1 → mirrored to HOST2 → routes on both servers
Early versions started the auth stack from cold on failover. Testing showed 30-60 seconds of broken authentication after DNS cut over — Emby clients hit HOST2 before LLDAP, Authelia, and NPM were ready. For library transcode users with buffer this was invisible. For Live TV and direct play users this meant the stream died and reconnect failed, forcing a manual exit and resume.
Running the auth stack warm on HOST2 at all times eliminates this window entirely. When failover triggers, the auth stack is already running and ready. Only two containers actually start from stopped:
Running the auth stack warm on both servers at all times eliminates this window entirely. When failover triggers, the auth stack is already running and ready. What actually starts from stopped:
```
Emby ← starts from stopped on HOST2
DDNS updater ← HOST1's domain updater starts on HOST2
Tier 1 — immediate:
Emby ← starts from stopped on covering server
DDNS updater ← remote domain updater starts on covering server
Everything else in Tier 1 is verified healthy — not cold started:
NPM, LLDAP, Authelia, certs — already running, already warm
Everything else verified healthy — NOT cold started:
NPM, LLDAP, Authelia, certs — already running, already warm on both servers
Tier 4 — 18hr+ outage:
Arrs_Stack ← starts from stopped on covering server
has mirrored Arrs_Stack appdata — starts in known good state
```
**When HOST1 goes down:**
```
HOST2 detects HOST1 unreachable + internet up
→ Starts HOST1's DDNS updater — Gmer4Lfe.com now points at HOST2
→ Starts Emby — only real container starting from stopped
→ Auth stack already running — users authenticate immediately
→ Starts Emby — only real Tier 1 container starting from stopped
→ Auth stack already running on HOST2 — users authenticate immediately
→ DNS TTL 1 minute — cutover fast
→ Library transcode users — buffer absorbs, usually seamless
→ Live TV / direct play users — will notice, need to resume
→ Watch history — worst case 15-30min behind (mirror interval)
→ Watch history — worst case 15-30min behind, reality a show or two
movies may be unaffected given their length
→ Tiers 2/3/4 escalate if outage extends
→ HOST2's own services keep running unaffected throughout
```
@@ -153,9 +160,10 @@ HOST2 detects HOST1 unreachable + internet up
HOST1 detects HOST2 unreachable + internet up
→ Starts HOST2's DDNS updater — Gmer4Lfe.us now points at HOST1
→ Starts his Emby — his users served from HOST1
→ His auth stack starts from stopped (his server is down)
HOST1 has mirrored auth data — starts with current state
→ Tiers escalate if outage extends
→ His auth stack already running on HOST1 — serving his domain continuously
→ Tiers 2/3 escalate if outage extends
→ Tier 4 (18hr+): his Arrs_Stack starts from stopped on HOST1
mirrored appdata — starts in known good state
→ HOST1's own services keep running unaffected throughout
```
@@ -240,7 +248,7 @@ HOST2_PERSONAL_SHARES=(
)
```
`daily_sync.sh` automatically picks up the personal shares for the local host and syncs them alongside the media shares.
`daily_sync.sh` automatically picks up the personal shares for the local host and syncs them alongside that host's truth shares.
**Encrypting personal shares — unRAID 7 ZFS:**