Case study · Storage
Storage platform: mdadm RAID1, SMB and a validated disk migration
OpenMediaVault provides the homelab's file storage and hosts its Docker services. Along the way the storage has been migrated to new hardware, recovered at the filesystem level and kept under SMART monitoring, with every change validated before services were reconnected.
At a glance
Key facts
- Platform
- OpenMediaVault as a Proxmox VM
- Redundancy
- Two-disk mdadm RAID1 for critical data
- Non-critical media
- Separate single disk outside the mirror
- Services
- SMB shares; Docker host for infrastructure services
- Health
- SMART monitoring; RAID status and disk usage in Grafana
- OpenMediaVault
- mdadm
- RAID1
- SMB
- SMART
- Linux
Context
OpenMediaVault runs as a virtual machine on Proxmox. Its critical data lives on a two-disk mdadm RAID1 mirror and is shared over SMB. Non-critical media is kept on a separate disk outside the mirror, so the redundant capacity is spent where it matters.
The same VM is the Docker host for DNS, reverse proxy, monitoring and GPU workloads, so the storage platform is also the foundation the rest of the environment depends on.
Disk migration
When the storage moved to new hardware under a different host platform, the goal was to move the data without ever putting it into a state that could not be rolled back.
- Identified disks by persistent identifiers rather than device names, which can change between hosts.
- Verified that each expected RAID member was present before assembling anything.
- Reassembled the array and checked its status.
- Validated filesystem integrity.
- Mounted read-only first and confirmed the expected data was present.
- Only then mounted read-write and reconnected services.
Filesystem recovery
The platform has also needed filesystem-level recovery work. The approach was the same: confirm the state of the array first, validate the filesystem before mounting it read-write, and check the data before any service was pointed back at it.
Ongoing health
Disk health is monitored with SMART. RAID status and disk usage are surfaced in Grafana through Node Exporter, so a degraded array or a filling disk is visible on a dashboard rather than discovered when something fails.
Validation checklist
Every storage change on this platform is checked against the same list before it is considered done.
- RAID status is healthy.
- The filesystem mounts correctly.
- The expected data is present.
- Read and write behaviour is normal.
- Services can access the storage as expected.
Scope
What this does not claim
- Backup and migration work with validation has been done on this platform, but it is not presented as a mature automated backup strategy with scheduled jobs and routine restore testing.
- RAID1 provides resilience against a single disk failure. It is not a backup, and this page does not treat it as one.
Further reading
Related technical write-ups
Articles on my blog that cover this work in more detail.
More
Other case studies
Linux troubleshooting
Recovering GPU passthrough after a kernel upgrade broke DKMS
Read
Cloud administration
Azure administration lab: CLI provisioning, cost controls and private storage with RBAC
Read
Networking & services
DNS, HTTPS and service routing with Pi-hole, Unbound, Nginx Proxy Manager and Cloudflare Tunnel
Read