From ebdc56fc774d62d5331efe81e2798859f0edb613 Mon Sep 17 00:00:00 2001
From: phixxy <139031540+phixxy@users.noreply.github.com>
Date: Fri, 31 Oct 2025 14:13:57 -0700
Subject: [PATCH] Add files via upload
---
README.md | 79 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 79 insertions(+)
create mode 100644 README.md
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..852447b
--- /dev/null
+++ b/README.md
@@ -0,0 +1,79 @@
+# Unraid Backup & Recovery Plan
+
+_Last revised:_ 2025-10-31
+_Server name:_ Gyarados
+
+---
+
+## System Overview
+
+| Component | Details |
+|------------|----------|
+| **Array** | 4 drives total (3 data + 1 parity) |
+| **Parity** | 1 drive (single parity protection) |
+| **Pools** | - `cache_protected` → 500GB RAID1 (btrfs)
- `cache_appdata` → 500GB RAID1 (btrfs)
- `cache` → 4TB XFS (no redundancy)|
+| **Important Shares** | `appdata`, `system`, `backups` |
+| **Unraid Flash Drive** | Backed up daily by CA Backup/Restore plugin |
+
+---
+
+## Backup Strategy
+
+### Local / Onsite
+| Backup Type | Tool | Frequency | Destination | Notes |
+|--------------|------|------------|--------------|-------|
+| **Appdata + Flash** | CA Backup/Restore | Daily | `/mnt/user/backups/unraid_backups` on array | Stored in “backups” share, included in offsite sync |
+| **Array Data Backup** | `rsync` | Monthly | External 28TB USB drive | Plugged in manually, includes flash + appdata backups |
+| **Parity Check** | Unraid checker | Monthly | N/A | Non-correcting, same day as backup |
+
+### Offsite
+| Backup Type | Tool | Frequency | Destination | Notes |
+|--------------|------|------------|--------------|-------|
+| **1st Critical Data Backup** | Duplicacy | Nightly | Backblaze B2 | Backs up `/mnt/user/backups` share (includes appdata + flash backups) |
+| **2nd Critical Data Backup** | rclone | Weekly | Backblaze B2 | Backs up `/mnt/user/backups` share (includes appdata + flash backups) |
+| **Offsite Verification** | Scripted Duplicacy restore | Monthly | Local `test_restore` folder | Verifies integrity with checksum comparison |
+
+---
+
+## Maintenance Schedule
+
+| Task | Frequency | Tool / Command | Notes |
+|------|------------|----------------|-------|
+| **Parity Check (non-correcting)** | Monthly | Unraid Checker | Run before external backup |
+| **External Backup (rsync)** | Monthly | 28TB External Userscript | Rotate drive offsite if possible |
+| **btrfs Scrub (cache pools)** | Monthly | `btrfs scrub start -Bd /mnt/cache_protected` and `/mnt/cache_appdata` | Detects and repairs bitrot |
+| **Duplicacy Check** | Monthly | `duplicacy check -a -tabular` | Confirms remote chunks are valid |
+| **File Integrity Verification** | Monthly | Offsite Verify Userscript | Grab random files, checksum them and compare vs. backup |
+| **Recovery Test** | Every 90 days | Manual | Restore 3-5 files from each backup source |
+
+---
+
+## Recovery Procedures
+
+### Array or Disk Failure
+1. Confirm only one disk is disabled and parity is valid before proceeding with rebuild.
+2. Identify the failed drive by serial number. Stop the array.
+3. Replace the failed drive with a new, precleared one and assign it to the same slot.
+4. Start the array — Unraid will begin rebuilding the disk from parity.
+5. Run a **non-correcting parity check** to confirm parity accuracy post-rebuild.
+
+### Flash Drive Failure
+1. Replace flash with new USB stick.
+2. Copy contents of latest flash backup (gyarados-flash-backup.zip) from `/mnt/user/backups/unraid_backups` or Backblaze.
+3. Transfer license using Unraid’s automated license replacement system (Tools → Registration).
+
+### Appdata Loss / Corruption
+1. Stop the Docker service before restoring appdata.
+2. Install “CA Backup/Restore Appdata” plugin (if not already).
+3. Select most recent backup under `/mnt/user/backups/unraid_backups/`.
+4. Click "Restore" at the top of the Appdata Restore plugin and follow instructions.
+5. Start the Docker service and verify containers.
+
+### Full Array Loss / Catastrophic Event
+1. Reinstall Unraid on new flash drive if needed.
+2. Recreate array and pools matching original layout from system overview.
+3. Restore data from:
+ - External 28TB backup drive (via rsync)
+ - Duplicacy or rclone (Backblaze) for critical data if External is damaged
+
+