vault backup: 2026-03-28 21:57:55

This commit is contained in:
Yanxin Lu
2026-03-28 21:57:55 -07:00
parent 6d113980f4
commit ff80846a2d

View File

@@ -1,225 +1,213 @@
# Unraid Drive Replacement Plan # Unraid Drive Replacement Plan
## Goals ## Goals
- Reduce array from 8 to 5 HDD drives
- Replace consumer SMR drives with enterprise CMR - Replace the 3 worst drives (both parity + Disk 3) with enterprise CMR
- Stay under 20% cumulative failure risk before each purchase - Remove the smallest drive (Disk 4, 4TB) — too small to be useful
- Minimize cost and hassle - Keep the 4 healthiest data drives running
- Reduce from 8 to 6 HDD drives
- Stay under 20% cumulative failure risk
- Total budget: ~$440
## Current Array (as of 2026-03-28) ## Current Array (as of 2026-03-28)
| Slot | Model | Serial | Size | Age | Est. AFR | Health | | Slot | Model | Serial | Size | Age | Est. AFR | Health | Action |
|------|-------|--------|------|-----|----------|--------| |------|-------|--------|------|-----|----------|--------|--------|
| Parity 1 | ST8000DM004 SMR | ZCT2K65B | 8TB | 5.3yr | ~4.5% | Had 180 GP errors (cleared) | | Parity 1 | ST8000DM004 SMR | ZCT2K65B | 8TB | 5.3yr | ~4.5% | Had 180 GP errors (cleared) | **Replace** |
| Parity 2 | ST8000DM004 SMR | ZCT2K5PQ | 8TB | 5.3yr | ~3.5% | Had 19 GP errors (cleared) | | Parity 2 | ST8000DM004 SMR | ZCT2K5PQ | 8TB | 5.3yr | ~3.5% | Had 19 GP errors (cleared) | **Replace** |
| Disk 1 | ST8000DM004 SMR | ZCT2K3FF | 8TB | 5.3yr | ~2.75% | Same manufacturing batch as parity drives | | Disk 1 | ST8000DM004 SMR | ZCT2K3FF | 8TB | 5.3yr | ~2.75% | Clean, same batch as parity | Keep |
| Disk 2 | ST8000DM004 SMR | ZCT2K51K | 8TB | 5.3yr | ~2.75% | 1 CRC error, otherwise clean | | Disk 2 | ST8000DM004 SMR | ZCT2K51K | 8TB | 5.3yr | ~2.75% | 1 CRC error, otherwise clean | Keep |
| Disk 3 | ST8000DM004 SMR | ZCT3XAEJ | 8TB | 4.8yr | ~3.5% | Had 10 GP errors, 2 CRC, 72K load cycles | | Disk 3 | ST8000DM004 SMR | ZCT3XAEJ | 8TB | 4.8yr | ~3.5% | Had 10 GP errors, 2 CRC, 72K load cycles | **Remove** |
| Disk 4 | WD40EFRX CMR | WD-WCC7K2YF4TDJ | 4TB | 6.6yr | ~2.5% | Pristine SMART, only 1.7TB used | | Disk 4 | WD40EFRX CMR | WD-WCC7K2YF4TDJ | 4TB | 6.6yr | ~2.5% | Pristine SMART, only 1.7TB used | **Remove** |
| Disk 5 | ST8000DM004 SMR | ZR14W632 | 8TB | 2.5yr | ~1.75% | 56C lifetime max | | Disk 5 | ST8000DM004 SMR | ZR14W632 | 8TB | 2.5yr | ~1.75% | 56C lifetime max, otherwise clean | Keep |
| Disk 6 | ST8000DM004 SMR | ZR150CVS | 8TB | 2.5yr | ~1.75% | Clean | | Disk 6 | ST8000DM004 SMR | ZR150CVS | 8TB | 2.5yr | ~1.75% | Clean | Keep |
| Cache | Samsung 970 EVO | S5H9NS0N831296A | 1TB | — | — | 1% wear, excellent | | Cache | Samsung 970 EVO | S5H9NS0N831296A | 1TB | — | — | 1% wear, excellent | Keep |
- Combined monthly failure rate: ~1.9% Total data stored: ~25TB, growing ~1TB/year
- Hits 20% cumulative failure at ~12 months (Mar 2027)
- Total data stored: ~25TB, growing ~1TB/year
- All 7 Seagate drives are consumer desktop SMR — not NAS-grade
## Shopping List ## Shopping List
| # | Drive | Model | Purpose | Est. Price | | Drive | Model | Purpose | Est. Price |
|---|-------|-------|---------|------------| |-------|-------|---------|------------|
| 1 | Seagate Exos X18 16TB | ST16000NM000J | Parity 1 | ~$220 | | Seagate Exos X18 16TB | ST16000NM000J | Parity 1 | ~$220 |
| 2 | Seagate Exos X18 16TB | ST16000NM000J | Parity 2 | ~$220 | | Seagate Exos X18 16TB | ST16000NM000J | Parity 2 | ~$220 |
| 3 | Toshiba MG08 16TB | MG08ACA16TE | Data (Disk 1) | ~$200 | | | | **Total** | **~$440** |
| | | | **Total** | **~$640** |
All are enterprise, CMR, 7200rpm, 5-year warranty. Why 16TB parity for 8TB data drives: when a data drive eventually dies or fills up (~2030), you can drop in a 16TB replacement without touching parity. Buying 8TB parity now would mean buying parity drives again later — more expensive overall. The Exos X18 should last 8-12+ years in a home NAS, outlasting multiple generations of data drives.
## Timeline
### Phase 0 — Now (free)
**Remove Disk 4 (WD Red 4TB)**
Disk 4 only has 1.7TB used. Other drives have 14.5TB of free space. No purchase needed.
1. Open **Unbalance** plugin
2. Source: Disk 4
3. Destination: Disk 3, Disk 5, Disk 6 (most free space)
4. Start transfer (~30 min for 1.7TB)
5. Verify Disk 4 is empty
6. **Stop array** (Main → Stop)
7. Unassign Disk 4 (click on the drive slot → set to "No Device")
8. **Start array** → confirm new configuration
9. Parity sync will run (~12-18 hrs, array is usable during sync)
10. Power down, physically remove the 4TB drive, power up
**Result: 8 → 7 drives.** Keep the WD Red as a cold spare — it has pristine SMART.
--- ---
### Phase 1April 2027 ## Phase 0Now (free)
**Goal: Remove Disk 4 (WD Red 4TB) — too small to be useful**
Disk 4 only has 1.7TB used. Other drives have 14.5TB of free space.
1. Open **Unbalance** plugin in Unraid WebGUI
2. Source: Disk 4
3. Destination: Disk 3, Disk 5, Disk 6 (most free space)
4. Start transfer (~30 min for 1.7TB)
5. Verify Disk 4 shows 0 bytes used
6. **Stop array** (Main → Array Operations → Stop)
7. Click on Disk 4 slot → set to **No Device**
8. **Start array** → check "Yes I want to do this" → confirm
9. Parity sync runs automatically (~12-18 hrs, array is usable during sync)
10. Once sync completes: power down, physically remove the 4TB drive, power up
**Keep the WD Red 4TB as a cold backup drive** — pristine SMART despite its age. Good for periodic offline backups via USB dock.
**Result: 8 → 7 drives.**
---
## Phase 1 — April 2027
**Goal: Replace Parity 1, remove Disk 3**
Cumulative failure risk reaches ~20% around this time. First purchase.
**Buy: 1x Seagate Exos X18 16TB (~$220)** **Buy: 1x Seagate Exos X18 16TB (~$220)**
**Replace: Parity 1 (ZCT2K65B — worst drive, had 180 GP errors)**
**Remove: Disk 3 (ZCT3XAEJ — next worst, had 10 GP errors + 2 CRC + 72K load cycles)**
Cumulative failure risk at this point: ~20% ### Step 1: Replace Parity 1
#### Step 1: Replace Parity 1
1. **Stop array** 1. **Stop array**
2. Power down server 2. Power down server
3. Remove old Parity 1 drive (sdb, serial ZCT2K65B) 3. Locate Parity 1 drive (sdb, serial ZCT2K65B) and remove it
4. Install new Exos X18 16TB in the same slot 4. Install the new Exos X18 16TB in the same physical slot
5. Power up → Main page → verify new drive shows in Parity 1 slot 5. Power up
6. **Start array**Parity sync begins (~12-18 hrs) 6. Main pageverify new drive appears in the Parity 1 slot
7. Array is fully usable during sync — avoid heavy writes 7. **Start array**
8. Wait for sync to complete (check Main page for progress) 8. Parity sync begins automatically (~12-18 hrs)
9. Array is fully usable during sync — avoid heavy writes for best performance
10. Wait for sync to complete (progress shown on Main page)
#### Step 2: Remove Disk 3 ### Step 2: Remove Disk 3
9. Open **Unbalance** plugin
10. Source: Disk 3 (~4.3TB)
11. Destination: Disk 1, Disk 2, Disk 5, Disk 6
12. Start transfer (~2-4 hrs)
13. Verify Disk 3 is empty
14. **Stop array**
15. Unassign Disk 3
16. **Start array** → confirm new configuration → parity sync (~12-18 hrs)
17. Power down, physically remove old Disk 3, power up
#### Disposal After parity sync completes:
- Old Parity 1 (ZCT2K65B): **Recycle** — worst error history
- Old Disk 3 (ZCT3XAEJ): **Recycle** — 2nd worst 11. Open **Unbalance** plugin
12. Source: Disk 3 (~4.3TB after absorbing some of Disk 4's data)
13. Destination: Disk 1, Disk 2, Disk 5, Disk 6
14. Start transfer (~2-4 hrs)
15. Verify Disk 3 shows 0 bytes used
16. **Stop array**
17. Click on Disk 3 slot → set to **No Device**
18. **Start array** → confirm → parity sync runs (~12-18 hrs)
19. Once sync completes: power down, physically remove Disk 3, power up
### Disposal
- Old Parity 1 (ZCT2K65B): **Recycle** — worst error history in the array
- Old Disk 3 (ZCT3XAEJ): **Recycle** — GP errors + CRC errors + high load cycles
**Result: 7 → 6 drives.** **Result: 7 → 6 drives.**
--- ---
### Phase 2 — June 2027 ## Phase 2 — June 2027
**Goal: Replace Parity 2**
**Buy: 1x Seagate Exos X18 16TB (~$220)** **Buy: 1x Seagate Exos X18 16TB (~$220)**
**Replace: Parity 2 (ZCT2K5PQ — had 19 GP errors)**
#### Steps
1. **Stop array** 1. **Stop array**
2. Power down, swap Parity 2 with new Exos X18 16TB 2. Power down server
3. Power up → verify drive assignment → **Start array** 3. Locate Parity 2 drive (sdc, serial ZCT2K5PQ) and remove it
4. Parity sync (~12-18 hrs) 4. Install the new Exos X18 16TB in the same physical slot
5. Power up
6. Main page → verify new drive appears in the Parity 2 slot
7. **Start array**
8. Parity sync begins (~12-18 hrs)
9. Wait for completion
#### Disposal ### Disposal
- Old Parity 2 (ZCT2K5PQ): **Recycle**
**Result: Still 6 drives.** Cannot remove another drive yet — remaining 8TB data drives are too full to consolidate without a 16TB data drive. - Old Parity 2 (ZCT2K5PQ): **Recycle** — 19 GP error history
**Result: Still 6 drives. Migration complete.**
--- ---
### Phase 3 — October 2027 ## Final Array (June 2027)
**Buy: 1x Toshiba MG08 16TB (~$200)** | Slot | Drive | Size | Used | Age | Health |
**Replace: Disk 1 (ZCT2K3FF — same batch as old parity, 5.3yr old)** |------|-------|------|------|-----|--------|
**Remove: Disk 5 (ZR14W632 — had temperature issues)** | Parity 1 | Seagate Exos X18 (new) | 16TB | — | New | Enterprise CMR, 5yr warranty |
| Parity 2 | Seagate Exos X18 (new) | 16TB | — | New | Enterprise CMR, 5yr warranty |
| Disk 1 | ST8000DM004 (kept) | 8TB | ~6.6TB | 6.3yr | Clean |
| Disk 2 | ST8000DM004 (kept) | 8TB | ~6.5TB | 6.3yr | 1 CRC, otherwise clean |
| Disk 5 | ST8000DM004 (kept) | 8TB | ~5.2TB | 3.5yr | Clean |
| Disk 6 | ST8000DM004 (kept) | 8TB | ~5.2TB | 3.5yr | Clean |
#### Step 1: Replace Disk 1 - **Usable capacity: 29.2TB** (4 × 7.3TB)
1. **Stop array** - **Data stored: ~25TB**, ~4TB free
2. Power down, swap Disk 1 with new Toshiba MG08 16TB - **Growth runway: ~4 years** at 1TB/yr before needing bigger data drives
3. Power up → verify drive assignment → **Start array** - **Annual failure rate: ~8%** (down from ~19%)
4. **Rebuild** begins (~18-20 hrs) — reconstructs Disk 1's data from parity - **2 empty drive bays** for future expansion
5. Array is usable during rebuild
#### Step 2: Remove Disk 5 ## Cost Summary
6. Open **Unbalance** plugin
7. Source: Disk 5 (~5.2TB)
8. Destination: Disk 1 (new 16TB, ~9.4TB free after rebuild)
9. Start transfer (~3-5 hrs)
10. Verify Disk 5 is empty
11. **Stop array**
12. Unassign Disk 5
13. **Start array** → confirm → parity sync (~12-18 hrs)
14. Power down, physically remove old Disk 5, power up
#### Disposal | When | What | Cost |
- Old Disk 1 (ZCT2K3FF): **Recycle** — same batch as failed parity drives |------|------|------|
- Old Disk 5 (ZR14W632): **Keep as emergency spare** — only 2.5yr old, clean SMART | Now | Remove Disk 4 | $0 |
| Apr 2027 | Exos X18 16TB (Parity 1) | $220 |
**Result: 6 → 5 drives. Migration complete.** | Jun 2027 | Exos X18 16TB (Parity 2) | $220 |
| **Total** | | **$440** |
--- ---
## Final Array (October 2027) ## When a Data Drive Eventually Dies or Fills Up (~2030)
| Slot | Drive | Size | Used | Source | Brand | Since parity is already 16TB, just buy one replacement data drive up to 16TB. No parity upgrade needed.
|------|-------|------|------|--------|-------|
| Parity 1 | Exos X18 | 16TB | — | New (Apr 2027) | Seagate |
| Parity 2 | Exos X18 | 16TB | — | New (Jun 2027) | Seagate |
| Disk 1 | MG08 | 16TB | ~12TB | New (Oct 2027) | Toshiba |
| Disk 2 | ST8000DM004 | 8TB | ~6.3TB | Original | Seagate |
| Disk 6 | ST8000DM004 | 8TB | ~5.2TB | Original | Seagate |
- **Usable capacity: 30.6TB** (16 + 7.3 + 7.3) **Recommended replacements** (for brand diversity):
- **Data stored: ~25TB** with ~6TB free - Toshiba MG08/MG10 16TB (~$200) — enterprise CMR
- **Growth runway: ~6 years** at 1TB/year - WD Ultrastar HC550 16TB (~$230) — enterprise CMR
- **Annual failure rate: ~4%** (down from ~19%)
- **3 empty drive bays** for future expansion
## Optional Future Upgrade **Procedure:**
1. Stop array, power down
2. Swap the failed/full 8TB with the new 16TB
3. Start array → rebuild (~18-20 hrs)
4. Done — you just gained 8TB of usable space
When Disk 2 (5.3yr) or Disk 6 (2.5yr) eventually show wear, or if you want more space: Each time you replace an 8TB with a 16TB, your usable capacity grows:
- 1 replaced: 37.2TB usable
| Replace | With | Cost | New usable | - 2 replaced: 45.2TB usable
|---------|------|------|------------| - 3 replaced: 53.2TB usable
| Disk 2 → 16TB enterprise | Toshiba or WD | ~$200-230 | 38.6TB | - All 4 replaced: 61.2TB usable
| Disk 6 → 16TB enterprise | Toshiba or WD | ~$200-230 | 48TB |
Going all-enterprise (5x 16TB) costs an additional ~$430 and gives 48TB usable (23+ years of growth). No rush — Disk 6 especially is young and healthy.
## If a Drive Fails Before Scheduled Replacement
**Parity drive fails:**
- Buy the replacement Exos X18 16TB
- Swap, parity sync, done
- Other parity still protects the array during sync
**Data drive fails (8TB):**
- Array keeps running — data is emulated from parity in real-time
- Buy a 16TB replacement (must upgrade parity first if no parity is ≥16TB yet)
- Swap, rebuild, done
**Data drive fails (new 16TB):**
- Same process, buy another 16TB
- Dual parity protects against up to 2 simultaneous failures
## Drives to Keep After Migration
| Drive | Reason |
|-------|--------|
| WD Red 4TB (WD-WCC7K2YF4TDJ) | Cold spare — pristine SMART despite 6.6yr age |
| Disk 5 8TB (ZR14W632) | Emergency spare — only 2.5yr old |
## Drives to Recycle ## Drives to Recycle
Wipe before recycling if concerned about data:
| Drive | Reason | | Drive | Reason |
|-------|--------| |-------|--------|
| Parity 1 (ZCT2K65B) | 180 GP error history | | Parity 1 (ZCT2K65B) | 180 GP error history |
| Parity 2 (ZCT2K5PQ) | 19 GP error history | | Parity 2 (ZCT2K5PQ) | 19 GP error history |
| Disk 3 (ZCT3XAEJ) | 10 GP errors + 2 CRC + 72K load cycles | | Disk 3 (ZCT3XAEJ) | 10 GP + 2 CRC + 72K load cycles |
| Disk 1 (ZCT2K3FF) | Same batch as parity drives, 5.3yr |
## Drives to Keep as Spares
| Drive | Use |
|-------|-----|
| Disk 4 — WD Red 4TB (WD-WCC7K2YF4TDJ) | Cold backup via USB dock. Pristine SMART. Monthly rsync of irreplaceable files (photos, documents, configs). |
## SMART Test Schedule (already running)
- Weekly short: Sundays 2:00 AM
- Monthly extended: 1st of month 3:00 AM
- Configured via User Scripts plugin
- Monitor results in Main → click any drive → SMART attributes
## Pending Config Fixes ## Pending Config Fixes
These can be done anytime from the Unraid WebGUI no downtime needed: Can be done anytime from WebGUI, no downtime needed:
- [ ] Remove compose.manager plugin (Settings → Plugins → click X) - [ ] Remove compose.manager plugin (Settings → Plugins → click X next to it)
- [ ] Set disk share security to Private (Settings → Global Share Settings → Disk Shares → No) - [ ] Disable disk shares (Settings → Global Share Settings → Enable disk shares → No)
- [ ] Set user share security to Private (Shares → each share → SMB Security → Private) - [ ] Set user share security to Private for exported shares (Shares → isos → SMB Security → Private; repeat for any other exported shares)
- [ ] Move domains share to cache (Shares → domains → Use Cache → Prefer, Cache Pool → cache) - [ ] Move domains share to cache (Shares → domains → Primary storage → Cache → Cache Pool → cache)
- [ ] Set up email notifications (Settings → Notification Settings) - [ ] Set up email notifications (Settings → Notification Settings — use Gmail + App Password)
- [ ] Configure UPS auto-shutdown (Settings → UPS Settings — CyberPower CP1500 via USB, nut-dw plugin installed) - [ ] Configure UPS auto-shutdown (Settings → UPS Settings — CyberPower CP1500, USB, battery level 20%)
- [ ] Enable XMP in BIOS at next reboot (RAM: G.Skill DDR3 1600MHz running at 1333MHz) - [ ] Enable XMP in BIOS at next reboot (G.Skill DDR3 running 1333 MT/s, rated 1600 MT/s)
- [ ] Verify appdata backups — test a restore - [ ] Verify appdata backups work — test a restore of one container
## SMART Test Schedule (already configured)
- Weekly short: Sundays 2:00 AM (`0 2 * * 0`)
- Monthly extended: 1st of month 3:00 AM (`0 3 1 * *`)
- Configured via User Scripts plugin