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
This commit is contained in:
@@ -0,0 +1,197 @@
|
||||
# ✅ 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
|
||||
|
||||
```bash
|
||||
# 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`
|
||||
```bash
|
||||
touch /mnt/warm-storage/test-file
|
||||
rm /mnt/warm-storage/test-file
|
||||
```
|
||||
|
||||
2. Restart Backblaze service if needed
|
||||
```bash
|
||||
# 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:
|
||||
```bash
|
||||
# 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**:
|
||||
```bash
|
||||
df -h /mnt/warm-storage
|
||||
lvs
|
||||
vgs
|
||||
```
|
||||
|
||||
**Monitor usage**:
|
||||
```bash
|
||||
watch -n 5 'df -h /mnt/warm-storage'
|
||||
```
|
||||
|
||||
**Backup info**:
|
||||
```bash
|
||||
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
|
||||
Reference in New Issue
Block a user