821f954200
- 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
198 lines
4.7 KiB
Markdown
198 lines
4.7 KiB
Markdown
# ✅ 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
|