Files
homelab-configs/nextcloud-warm-storage-expansion.md
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.5 KiB

Nextcloud Warm Storage Expansion Plan

Target: Expand from 900GB to 1.5TB for Backblaze backup staging


📊 Current Storage Status

Component Current Status
Warm Storage 900GB 🔴 FULL (100%)
Mount Point /mnt/warm-storage Nextcloud VM (192.168.88.62)
NFS Path /nvme5-1tb/nextcloud-data TrueNAS (192.168.88.25)
Local Data 2.0TB 74% used (1.4TB)

⚠️ Critical Issue

The warm storage is completely full (900GB/900GB). This will block:

  • Backblaze backups
  • Nextcloud uploads
  • Data synchronization

Action Required: Expand to 1.5TB ASAP


🔧 Expansion Steps (When TrueNAS is Online)

Step 1: SSH into TrueNAS (192.168.88.25)

ssh root@192.168.88.25
# Or use your TrueNAS credentials

Step 2: Check Current Dataset Configuration

# List datasets on nvme5-1tb pool
zfs list -r nvme5-1tb

# Check the current nextcloud-data dataset
zfs get quota,available,used nvme5-1tb/nextcloud-data

# Check the pool status
zpool status nvme5-1tb

Step 3: Expand the Dataset (Two Options)

If the pool has 600GB+ available space, expand the quota:

# Increase quota from 900GB to 1.5TB
zfs set quota=1500G nvme5-1tb/nextcloud-data

# Verify the change
zfs get quota nvme5-1tb/nextcloud-data

OPTION B: Create New Dataset (If pool is full)

If the pool doesn't have enough space:

# Create a new larger dataset
zfs create -o quota=1500G nvme5-1tb/nextcloud-data-new

# Copy data from old to new
rsync -avh /nvme5-1tb/nextcloud-data/ /nvme5-1tb/nextcloud-data-new/

# Once verified, delete old dataset
zfs destroy nvme5-1tb/nextcloud-data

# Rename new dataset
zfs rename nvme5-1tb/nextcloud-data-new nvme5-1tb/nextcloud-data

Step 4: Verify NFS Export Configuration

# Check current NFS exports
cat /etc/exports

# The export should look like:
# /nvme5-1tb/nextcloud-data 192.168.88.62(rw,async,no_subtree_check)

# If needed, reload NFS
exportfs -ra

Step 5: Remount on Nextcloud VM

On Nextcloud VM (192.168.88.62):

# Unmount warm storage (ensure no active connections)
sudo umount /mnt/warm-storage

# Remount to refresh the size
sudo mount -t nfs4 192.168.88.25:/nvme5-1tb/nextcloud-data /mnt/warm-storage

# Verify new size
df -h /mnt/warm-storage

Step 6: Verify Expansion

# From Nextcloud VM
df -h /mnt/warm-storage
# Should show 1.5T available

# From TrueNAS (optional confirmation)
zfs get quota,used nvme5-1tb/nextcloud-data

📋 Pre-Expansion Checklist

  • TrueNAS is online and accessible via SSH
  • Check available space in nvme5-1tb pool
  • Verify backup of critical Nextcloud data
  • Schedule during low-traffic period if possible
  • Ensure no active Backblaze uploads

⏱️ Expected Downtime

  • Unmount/Remount: ~5-10 seconds
  • Option A (Quota Expansion): 30 seconds total
  • Option B (New Dataset + rsync): 1-4 hours (depending on data size)

🔄 Troubleshooting

If NFS mount won't remount

# Check for open connections
lsof /mnt/warm-storage

# Kill processes if necessary
sudo fuser -k /mnt/warm-storage

# Try remounting again
sudo mount -t nfs4 192.168.88.25:/nvme5-1tb/nextcloud-data /mnt/warm-storage

If dataset expansion fails

# Check pool space
zpool list nvme5-1tb

# If pool is full, need to expand the underlying storage pool
# This requires physical disk expansion on TrueNAS

If Backblaze can't write after expansion

  1. Restart Nextcloud on the VM:

    docker restart nextcloud  # or appropriate restart command
    
  2. Check Nextcloud logs:

    docker logs nextcloud | tail -50
    

📝 Commands Summary (Copy-Paste Ready)

On TrueNAS:

zfs set quota=1500G nvme5-1tb/nextcloud-data
zfs get quota nvme5-1tb/nextcloud-data

On Nextcloud VM:

sudo umount /mnt/warm-storage
sudo mount -t nfs4 192.168.88.25:/nvme5-1tb/nextcloud-data /mnt/warm-storage
df -h /mnt/warm-storage

📞 Post-Expansion Verification

After expansion is complete:

  1. Verify size with df -h /mnt/warm-storage (should show ~1.5T)
  2. Check available space: df -h | grep warm
  3. Test Nextcloud upload functionality
  4. Verify Backblaze can write to warm storage
  5. Monitor storage usage for 24 hours

Last Updated: April 27, 2026
Status: Pending TrueNAS availability
Priority: 🔴 HIGH - Warm storage is full