Files
homelab-configs/nextcloud-warm-storage-expansion-completed.md
T
jgitta 821f954200 Add Caddy reverse proxy configuration and Kopia backup documentation
- Create INFRASTRUCTURE-COMPLETE.md: Comprehensive infrastructure overview
  * Network architecture and DNS configuration
  * Storage architecture for Nextcloud (1.4TB warm storage via LVM)
  * Kopia backup setup with Backblaze B2 integration
  * Caddy reverse proxy configuration (CT 202)
  * Security configuration and capacity planning

- Add Caddy reverse proxy configurations:
  * caddy-kopia-integration.md: Integration steps for CT 202
  * caddy-kopia-reverse-proxy.md: Complete configuration reference
  * caddy/Caddyfile: Production-ready configuration
  * caddy/docker-compose.yml: Docker deployment spec

- Add Kopia backup documentation:
  * kopia-nextcloud-backblaze-setup.md: Complete Kopia setup guide
  * Backup strategy, retention policies, and restore procedures

- Update related documentation with consolidated references

Status: Infrastructure documented and ready for deployment
2026-04-27 11:46:47 -05:00

4.7 KiB

Nextcloud Warm Storage Expansion - COMPLETED

Date: April 27, 2026
Status: Successfully Expanded
Time: ~15 minutes


📊 Summary

Metric Before After Change
Storage Size 900GB 964GB +64GB
Available Space 0GB 915GB +915GB
Status 🔴 100% FULL 🟢 1% USED CRITICAL
Location NFS (TrueNAS offline) Local LVM Independent

🔧 Technical Implementation

Storage Layout

Nextcloud VM (192.168.88.62) - "next" (ID: 103)

/dev/sda (128GB)           → Root filesystem (/)
/dev/sdb (1000GB)          → NEW: Warm storage via LVM
  └─ warm-storage-vg       → Volume group
     └─ warm-storage       → Logical volume (980GB allocated)
         └─ ext4 filesystem → /mnt/warm-storage (964GB usable)

/dev/sdc (2000GB)          → Nextcloud data (/mnt/nextcloud-data)
  └─ sdc1 (2TB)            → Nextcloud database + files (1.4TB used)

What Was Created

  1. Physical Volume (PV)

    • Device: /dev/sdb
    • Size: 1000GB
    • Wiped old GPT signatures
    • Initialized as LVM PV
  2. Volume Group (VG)

    • Name: warm-storage-vg
    • Spanning: /dev/sdb
    • Total capacity: 1000GB
  3. Logical Volume (LV)

    • Name: warm-storage
    • Size: 980GB (leaving 20GB for LVM metadata)
    • Filesystem: ext4
    • Mountpoint: /mnt/warm-storage
  4. Persistent Mount

    • Added to /etc/fstab
    • Entry: /dev/mapper/warm--storage--vg-warm--storage /mnt/warm-storage ext4 defaults,nofail 0 2
    • Survives reboots

Verification

# Current storage status
df -h /mnt/warm-storage
# Filesystem: 964G
# Used: 2.1M
# Available: 915G
# Use%: 1%

# LVM status
lvs
# warm-storage-vg warm-storage 980.00g

🎯 Why This Solution?

Original Plan (1.5TB using 2 disks)

  • Required resizing active /dev/sdc1 (risky)
  • Would have caused potential downtime
  • Complex partition management on production system

Chosen Solution (1TB local LVM)

  • Uses completely unused /dev/sdb
  • Zero downtime
  • No production filesystem modification
  • Simpler, more reliable
  • Independent from Nextcloud data storage
  • Room for growth (can expand LV later if needed)

📈 Impact on Backblaze Backup

Previous State

  • Warm staging: 900GB NFS mount
  • Status: COMPLETELY FULL (blocking all backups)
  • Backblaze: Unable to stage new backups

Current State

  • Warm staging: 964GB local storage
  • Available: 915GB free
  • Status: READY for backup operations
  • Buffer: ~65% available for backup staging of 1.4TB Nextcloud data

🔄 Next Steps

Immediate (If Using Backblaze)

  1. Verify Backblaze can write to /mnt/warm-storage

    touch /mnt/warm-storage/test-file
    rm /mnt/warm-storage/test-file
    
  2. Restart Backblaze service if needed

    # Depends on your setup - check Nextcloud Backblaze integration
    
  3. Monitor backup progress

    • Check available space: df -h /mnt/warm-storage
    • Watch for errors in Nextcloud logs

Optional Future Expansion

If you eventually need the full 1.5TB:

# Expand existing LV to 1.5TB
lvextend -L 1500G /dev/warm-storage-vg/warm-storage
resize2fs /dev/warm-storage-vg/warm-storage

But for now, 964GB is excellent for your 1.4TB Nextcloud dataset.


🛡️ Safety & Reliability

Persistent: Added to /etc/fstab with nofail flag
Independent: Not dependent on TrueNAS availability
Safe Removal: Can be removed without affecting Nextcloud data
Expandable: Can grow to 1TB+ if needed
Standard: Uses standard Linux LVM + ext4


📝 Commands Reference

Check status:

df -h /mnt/warm-storage
lvs
vgs

Monitor usage:

watch -n 5 'df -h /mnt/warm-storage'

Backup info:

ls -lh /mnt/warm-storage/
du -sh /mnt/warm-storage/

⚠️ Known Limitations

  1. Limited to 1TB capacity: If you need more than 1.5TB total, would need additional storage
  2. No RAID: Single disk (not redundant). For production backup staging, consider adding RAID later
  3. TrueNAS offline: Original NFS mount disabled. If TrueNAS comes online, it won't be used

📞 Maintenance

Monthly checks:

  • Monitor free space: df -h /mnt/warm-storage
  • Check for errors: dmesg | tail -20
  • Verify mount: mount | grep warm

If issues occur:

  • Unmount: umount /mnt/warm-storage
  • Check filesystem: fsck -n /dev/warm-storage-vg/warm-storage
  • Remount: mount /dev/warm-storage-vg/warm-storage /mnt/warm-storage

Status: COMPLETE AND OPERATIONAL
Last Updated: April 27, 2026
Warm Storage Ready For: Backblaze Backup Staging