zfs-drive-prep

Source

  • Type: local-file
  • Path: /home/topher/.openclaw/workspace-crash-bot/projects/zfs-drive-prep.md
  • Bytes: 3171
  • Updated: 2026-05-02T21:21:38.036Z

Content

# ZFS Drive Prep — Drive Status Tracker
 
**Thread:** #setting-up-zfs-on-casaos  
**Updated:** 2026-04-20
 
## Drive Inventory
 
| # | Device | Size | Model | Serial | Pool Role | SMART | badblocks | Status |
|---|--------|------|-------|--------|----------|-------|------------|--------|
| 1 | sdb | 4TB | WDC WD40EFRX-68WT0N0 | WD-WCC4E0343316 | raidz2 | ✅ PASS | ✅ 0/0/0 | **READY** |
| 2 | sdc | 9.1T | OOS10000G | 000E0RKT | CasaOS data | — | — | Mounted, skip |
| 3 | sdd | 7.3T | WDC WD8002FZWX-00BKUA0 | WD-AW0056SF | CasaOS data | — | — | Mounted, skip |
| 4 | sde | 3.6T | MDD4000GSA6472E | PBG8AVPS | raidz2 | ✅ PASS | ✅ 0/0/0 | **READY** |
| 5 | sdf | 4TB | ST4000VN008-2DR166 | ZDH7GDYA | raidz2 | ✅ PASS (short) | 🔄 IN PROGRESS (~38h) | **TESTING** |
| 6 | — | 4TB | TBD | — | raidz2 | ❓ | ❓ | **COLD** |
| 7 | — | 4TB | TBD | — | raidz2 | ❓ | ❓ | **COLD** |
| 8 | — | 4TB | TBD | — | raidz2 | ❓ | ❓ | **COLD** |
| 9 | — | 4TB | TBD | — | raidz2 | ❓ | ❓ | **COLD** |
| 10 | — | 4TB | TBD | — | HOT SPARE | ❓ | ❓ | **COLD** |
| 11 | — | 3TB | TBD | — | raidz1 | ❓ | ❓ | **COLD** |
| 12 | — | 3TB | TBD | — | raidz1 | ❓ | ❓ | **COLD** |
| 13 | — | 3TB | TBD | — | raidz1 | ❓ | ❓ | **COLD** |
 
> **Note:** sda (447G Patriot Burst) is the OS drive — not part of the ZFS pool.
 
## Pool Plan (From zfs-casaos.md)
 
### Main Pool ("tank")
- **Vdev 1:** 5×4TB raidz2 → ~12TB usable, 2-drive redundancy
- **Vdev 2:** 3×3TB raidz1 → ~6TB usable, 1-drive redundancy
 
### Backup (standalone, NOT in main pool)
- 8TB + 10TB → standalone backup targets, format TBD
 
## Testing Pipeline
 
### Phase 1: SMART Long Test
```bash
smartctl -t long /dev/sdX
smartctl -H /dev/sdX  # check result
smartctl -a /dev/sdX > smart-$(basename sdX)-$(date +%Y%m%d).log
```
 
### Phase 2: badblocks (non-destructive)
```bash
badblocks -nvs /dev/sdX > badblocks-$(basename sdX)-$(date +%Y%m%d).log
```
 
### Pass/Fail Criteria
- ✅ **PASS:** Reallocated=0, Pending=0, Uncorrectable=0, badblocks=0/0/0
- ⚠️ **CONDITIONAL:** Any reallocated/pending sectors → demote to non-critical vdev
- ❌ **FAIL:** Any uncorrectable errors, badblocks bad sectors, SMART health=FAILED → retire
 
## Key Metrics to Watch
| Attribute | Warning | Critical |
|-----------|---------|----------|
| Reallocated Sectors (5) | >0 | >100 |
| Current Pending (197) | >0 | >10 |
| Uncorrectable Errors (198) | >0 | any |
| Power-On Hours (9) | — | >50,000 |
| Temperature (194) | >40°C | >45°C |
| Power Cycle Count (12) | — | high = old/used |
 
## Current Batch Schedule
| Batch | Drives | Status |
|-------|--------|--------|
| 1 | sdb, sde | ✅ Done |
| 2 | sdc, sdd | Mounted — test when safe |
| 3-4 | Cold 4TB×4 | Need to power up and swap |
| 5 | 3×3TB | Cold — TBD |
 
## Next Steps
- [ ] Identify cold drives — get model/serial for drives 5-11
- [ ] Run SMART tests on sdc, sdd (mounted, in use)
- [ ] Power up and test cold drives in batches
- [ ] Get exact drive models for all cold storage
- [ ] Set up smartd monitoring once testing complete
- [ ] Build pool on new rig when hardware arrives

Notes

  • No related pages yet.