105 lines
3.1 KiB
Markdown
105 lines
3.1 KiB
Markdown
|
|
# VM Disk Size Recommendations
|
||
|
|
|
||
|
|
## Current Disk Sizes
|
||
|
|
|
||
|
|
- **VM 100 (cloudflare-tunnel)**: 40G
|
||
|
|
- **VM 101 (k3s-master)**: 80G
|
||
|
|
- **VM 102 (git-server)**: 100G
|
||
|
|
- **VM 103 (observability)**: 200G
|
||
|
|
|
||
|
|
## Recommended Disk Sizes
|
||
|
|
|
||
|
|
### VM 100: Cloudflare Tunnel (40G → 20G)
|
||
|
|
**Current:** 40G
|
||
|
|
**Recommended:** 20G
|
||
|
|
**Rationale:**
|
||
|
|
- Ubuntu 24.04 base: ~5-8GB
|
||
|
|
- cloudflared binary: ~50MB
|
||
|
|
- Logs and config: ~1-2GB
|
||
|
|
- **Total needed:** ~10-12GB
|
||
|
|
- **20G provides:** 2x headroom for logs and updates
|
||
|
|
|
||
|
|
### VM 101: K3s Master (80G → 40G)
|
||
|
|
**Current:** 80G
|
||
|
|
**Recommended:** 40G
|
||
|
|
**Rationale:**
|
||
|
|
- Ubuntu 24.04 base: ~5-8GB
|
||
|
|
- K3s binaries: ~200MB
|
||
|
|
- Container images: ~5-10GB (can grow)
|
||
|
|
- etcd data: ~2-5GB (grows with cluster)
|
||
|
|
- **Total needed:** ~15-25GB
|
||
|
|
- **40G provides:** Good headroom for images and etcd growth
|
||
|
|
- **Note:** Can expand later if needed
|
||
|
|
|
||
|
|
### VM 102: Git Server (100G → 50G)
|
||
|
|
**Current:** 100G
|
||
|
|
**Recommended:** 50G
|
||
|
|
**Rationale:**
|
||
|
|
- Ubuntu 24.04 base: ~5-8GB
|
||
|
|
- Gitea/GitLab: ~2-5GB
|
||
|
|
- Repository data: Variable (depends on usage)
|
||
|
|
- **Total needed:** ~15-30GB for small-medium repos
|
||
|
|
- **50G provides:** Good starting point, can expand later
|
||
|
|
- **Note:** If you have large repos, keep 100G or expand later
|
||
|
|
|
||
|
|
### VM 103: Observability (200G → 100G)
|
||
|
|
**Current:** 200G
|
||
|
|
**Recommended:** 100G
|
||
|
|
**Rationale:**
|
||
|
|
- Ubuntu 24.04 base: ~5-8GB
|
||
|
|
- Prometheus: ~10-30GB (depends on retention)
|
||
|
|
- Grafana: ~2-5GB
|
||
|
|
- Loki/Logs: ~20-50GB (depends on retention)
|
||
|
|
- **Total needed:** ~40-90GB for 7-30 day retention
|
||
|
|
- **100G provides:** Good starting point for 7-14 day retention
|
||
|
|
- **Note:** Can expand later as metrics/logs grow
|
||
|
|
|
||
|
|
## Summary
|
||
|
|
|
||
|
|
| VM | Current | Recommended | Savings |
|
||
|
|
|----|---------|-------------|---------|
|
||
|
|
| cloudflare-tunnel | 40G | 20G | -20G |
|
||
|
|
| k3s-master | 80G | 40G | -40G |
|
||
|
|
| git-server | 100G | 50G | -50G |
|
||
|
|
| observability | 200G | 100G | -100G |
|
||
|
|
| **Total** | **420G** | **210G** | **-210G** |
|
||
|
|
|
||
|
|
## Benefits of Smaller Disks
|
||
|
|
|
||
|
|
1. **Faster Cloning:** Smaller disks clone faster from template
|
||
|
|
2. **Less Storage Used:** Frees up 210GB on Proxmox storage
|
||
|
|
3. **Faster Backups:** Smaller disks backup faster
|
||
|
|
4. **Cost Savings:** If using paid storage, reduces costs
|
||
|
|
5. **Easy Expansion:** Can expand disks later if needed (Proxmox supports online expansion)
|
||
|
|
|
||
|
|
## When to Use Larger Disks
|
||
|
|
|
||
|
|
- **Git Server (100G)**: If you expect large repositories or many repos
|
||
|
|
- **Observability (200G)**: If you need 30+ days of metrics/logs retention
|
||
|
|
- **K3s Master (80G)**: If you'll store many container images locally
|
||
|
|
|
||
|
|
## Disk Expansion
|
||
|
|
|
||
|
|
Proxmox supports online disk expansion. You can:
|
||
|
|
1. Expand via Proxmox web UI
|
||
|
|
2. Expand via API
|
||
|
|
3. Expand via `qm resize` command
|
||
|
|
|
||
|
|
After expansion, resize the filesystem inside the VM:
|
||
|
|
```bash
|
||
|
|
sudo growpart /dev/sda 1
|
||
|
|
sudo resize2fs /dev/sda1 # for ext4
|
||
|
|
# or
|
||
|
|
sudo lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv # for LVM
|
||
|
|
sudo resize2fs /dev/ubuntu-vg/ubuntu-lv
|
||
|
|
```
|
||
|
|
|
||
|
|
## Recommendation
|
||
|
|
|
||
|
|
**Start with smaller sizes (20G, 40G, 50G, 100G)** and expand later if needed. This:
|
||
|
|
- Saves storage space
|
||
|
|
- Speeds up initial deployment
|
||
|
|
- Provides sufficient space for initial operations
|
||
|
|
- Allows expansion when actual usage patterns are known
|
||
|
|
|