πΎ ConfiguraΓ§Γ£o de Storage - Proxmox VE
Guia completo de configuraΓ§Γ£o de storage no Proxmox VE, incluindo LVM thin provisioning, storage pools e boas prΓ‘ticas.
π VisΓ£o Geral
O Proxmox VE suporta diversos tipos de storage para armazenar VMs, containers, backups, ISOs e templates. O projeto FSociety utiliza uma combinaΓ§Γ£o de HDD para capacidade e NVMe para performance.
Arquitetura de Storage
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Proxmox VE Host Storage β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β Disco 1: /dev/sda (HDD 931.5 GB) β β
β β ββββββββββββββββ βββββββββββββββββββββββββββββββββ β β
β β β sda1: EFI β β sda2: Boot (1 GB) β β β
β β β 1 GB β β ext4 β β β
β β ββββββββββββββββ βββββββββββββββββββββββββββββββββ β β
β β β β
β β ββββββββββββββββββββββββββββββββββββββββββββββββββββ β β
β β β sda3: LVM PV (pve VG) β β β
β β β ββββββββββββββββββ ββββββββββββββββββββββββ β β β
β β β β pve-root β β pve-data β β β β
β β β β 96 GB (37%) β β 794 GB (15%) β β β β
β β β β β local (dir) β β β local-lvm (thin) β β β β
β β β β /var/lib/vz β β VMs/Containers β β β β
β β β ββββββββββββββββββ ββββββββββββββββββββββββ β β β
β β ββββββββββββββββββββββββββββββββββββββββββββββββββββ β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β Disco 2: /dev/nvme0n1 (NVMe 223.6 GB) β β
β β ββββββββββββββββββββββββββββββββββββββββββββββββββββ β β
β β β nvme0n1p1: LVM PV (pve-nvme VG) β β β
β β β ββββββββββββββββββ ββββββββββββββββββββββββ β β β
β β β β pve-nvme-swap β β pve-nvme-data β β β β
β β β β 8 GB β β 200 GB (12%) β β β β
β β β β β swap β β β pve-nvme (thin) β β β β
β β β β β β VMs CrΓticas β β β β
β β β ββββββββββββββββββ ββββββββββββββββββββββββ β β β
β β ββββββββββββββββββββββββββββββββββββββββββββββββββββ β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β Storage Remoto: pbs-store (PBS) β β
β β 192.168.1.30:8007 β β
β β 42 GB (95% utilizado) β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
πΏ Discos FΓsicos
/dev/sda - HDD 931.5 GB
| PartiΓ§Γ£o | Tamanho | Tipo | UtilizaΓ§Γ£o |
|---|---|---|---|
| sda1 | 1 GB | EFI | Boot EFI |
| sda2 | 1 GB | ext4 | /boot |
| sda3 | ~929 GB | LVM | Volume Group βpveβ |
# Ver layout de partiΓ§Γ΅es
fdisk -l /dev/sda
# SaΓda esperada:
# Device Start End Sectors Size Type
# /dev/sda1 2048 2099199 2097152 1G EFI System
# /dev/sda2 2099200 4196351 2097152 1G Linux filesystem
# /dev/sda3 4196352 1953525134 1949328783 929G Linux LVM
/dev/nvme0n1 - NVMe 223.6 GB
| PartiΓ§Γ£o | Tamanho | Tipo | UtilizaΓ§Γ£o |
|---|---|---|---|
| nvme0n1p1 | ~223 GB | LVM | Volume Group βpve-nvmeβ |
# Ver layout de partiΓ§Γ΅es
fdisk -l /dev/nvme0n1
# SaΓda esperada:
# Device Start End Sectors Size Type
# /dev/nvme0n1p1 2048 468862127 468860080 223G Linux LVM
ποΈ Storage Pools Configurados
1. local (Directory - HDD)
Tipo: Directory
Path: /var/lib/vz
Dispositivo: /dev/pve/root (LVM LV em /dev/sda)
| ParΓ’metro | Valor |
|---|---|
| ID | local |
| Tipo | dir |
| Path | /var/lib/vz |
| Capacidade | 96 GB |
| Utilizado | 36 GB (37%) |
| DisponΓvel | 60 GB |
| ConteΓΊdo | VZDump backup files, ISO images, Container templates |
| Compartilhado | NΓ£o |
| Ativo | Sim |
CaracterΓsticas:
- β Ideal para ISOs, templates e backups
- β FΓ‘cil de gerir e fazer backup
- β NΓ£o suporta snapshots de VMs
- β Performance limitada (HDD)
UtilizaΓ§Γ£o:
# Ver espaΓ§o
df -h /var/lib/vz
# Upload de ISO
# Via Web UI: local β ISO Images β Upload
# Via CLI:
cd /var/lib/vz/template/iso
wget https://releases.ubuntu.com/24.04/ubuntu-24.04-live-server-amd64.iso
2. local-lvm (LVM-Thin - HDD)
Tipo: LVM-Thin
Volume Group: pve
Thin Pool: data
| ParΓ’metro | Valor |
|---|---|
| ID | local-lvm |
| Tipo | lvmthin |
| Volume Group | pve |
| Thin Pool | data |
| Capacidade | 794 GB |
| Utilizado | 119 GB (15%) |
| DisponΓvel | 675 GB |
| ConteΓΊdo | Disk image, Container |
| Compartilhado | NΓ£o |
| Ativo | Sim |
CaracterΓsticas:
- β Suporta snapshots de VMs
- β Thin provisioning (over-provisioning possΓvel)
- β Grande capacidade (HDD 1TB)
- β Performance mΓ©dia (HDD)
VMs Armazenadas:
- VMID 101: Proxmox-Backup (50 GB)
- VMID 104: Web-Server (50 GB)
- VMID 106: Servidor-de-Ficheiros (50 GB)
- VMID 108: mailcow
# Ver volume group
vgs pve
# Ver logical volumes
lvs pve
# Ver thin pool
lvs -a pve/data
# Ver utilizaΓ§Γ£o detalhada
lvs -a -o +lv_metadata_size,lv_size,data_percent,metadata_percent pve/data
3. pve-nvme (LVM-Thin - NVMe)
Tipo: LVM-Thin
Volume Group: pve-nvme
Thin Pool: data
| ParΓ’metro | Valor |
|---|---|
| ID | pve-nvme |
| Tipo | lvmthin |
| Volume Group | pve-nvme |
| Thin Pool | data |
| Capacidade | 200 GB |
| Utilizado | 24 GB (12%) |
| DisponΓvel | 176 GB |
| ConteΓΊdo | Disk image, Container |
| Compartilhado | NΓ£o |
| Ativo | Sim |
CaracterΓsticas:
- β Alta performance (NVMe SSD)
- β Suporta snapshots
- β Thin provisioning
- β οΈ Capacidade limitada (224 GB)
VMs Armazenadas (CrΓticas):
- VMID 102: pfSense (50 GB)
- VMID 105: Servidor-de-dominio (50 GB)
# Ver volume group NVMe
vgs pve-nvme
# Ver logical volumes
lvs pve-nvme
# Ver performance do NVMe
hdparm -Tt /dev/nvme0n1
# SaΓda esperada:
# Timing cached reads: ~30000 MB/sec
# Timing buffered disk reads: ~3000 MB/sec
4. pbs-store (Proxmox Backup Server - Remoto)
Tipo: PBS (Proxmox Backup Server)
Servidor: 192.168.1.30:8007
| ParΓ’metro | Valor |
|---|---|
| ID | pbs-store |
| Tipo | pbs |
| Servidor | 192.168.1.30 |
| Datastore | pve-store |
| Utilizador | root@pam |
| Capacidade | 42 GB |
| Utilizado | 40 GB (95%) |
| DisponΓvel | 2 GB |
| ConteΓΊdo | VZDump backup files |
| EncriptaΓ§Γ£o | Sim (fingerprint configurado) |
CaracterΓsticas:
- β Backups deduplic ados e comprimidos
- β EncriptaΓ§Γ£o de backups
- β VerificaΓ§Γ£o de integridade
- β οΈ Requer VM separada para PBS
βοΈ ConfiguraΓ§Γ£o de Storage
Ficheiro /etc/pve/storage.cfg
# ConfiguraΓ§Γ£o de Storage - Proxmox VE
# mail.fsociety.pt
# Directory storage (local)
dir: local
path /var/lib/vz
content iso,vztmpl,backup
maxfiles 3
shared 0
# LVM-Thin storage (HDD)
lvmthin: local-lvm
thinpool data
vgname pve
content rootdir,images
nodes mail
# LVM-Thin storage (NVMe - Alta Performance)
lvmthin: pve-nvme
thinpool data
vgname pve-nvme
content rootdir,images
nodes mail
# Proxmox Backup Server (remoto)
pbs: pbs-store
datastore pve-store
server 192.168.1.30
content backup
fingerprint XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX
username root@pam
port 8007
Ver ConfiguraΓ§Γ£o Atual
# Ver storage.cfg
cat /etc/pve/storage.cfg
# Listar todos os storages
pvesm status
# SaΓda esperada:
# Name Type Status Total Used Available
# local dir active 98703360 36700160 57318144
# local-lvm lvmthin active 834109440 125304832 708804608
# pbs-store pbs active 44040192 41877504 2162688
# pve-nvme lvmthin active 209715200 25165824 184549376
π οΈ GestΓ£o de Storage
Adicionar Storage via Web UI
Directory Storage
- Datacenter β Storage β Add β Directory
| Campo | Valor |
|---|---|
| ID | backup-local |
| Directory | /mnt/backup |
| Content | VZDump backup files |
| Nodes | |
| Enable | β Sim |
| Shared | β NΓ£o |
- Clicar em Add
LVM-Thin Storage
- Datacenter β Storage β Add β LVM-Thin
| Campo | Valor |
|---|---|
| ID | pve-nvme |
| Volume group | pve-nvme |
| Thin Pool | data |
| Content | Disk image, Container |
| Nodes |
- Clicar em Add
Adicionar Storage via CLI
# Adicionar directory storage
pvesm add dir backup-local --path /mnt/backup --content backup
# Adicionar LVM-Thin storage
pvesm add lvmthin pve-nvme --vgname pve-nvme --thinpool data --content images,rootdir
# Remover storage
pvesm remove <storage-id>
# Desativar storage
pvesm set <storage-id> --disable 1
# Ativar storage
pvesm set <storage-id> --disable 0
π§ LVM Thin Provisioning
Verificar Thin Pool
# Ver estado do thin pool
lvs -a pve/data
# SaΓda esperada:
# LV VG Attr LSize Pool Origin Data% Meta%
# data pve twi-aotz-- 794.00g 15.00 1.50
# Monitorizar em tempo real
watch -n 2 'lvs -a pve/data'
Expandir Thin Pool
Se o thin pool estiver cheio:
# Ver espaΓ§o disponΓvel no VG
vgs pve
# Expandir thin pool
lvextend -L +100G /dev/pve/data
# Ou usar percentagem do espaΓ§o livre
lvextend -l +50%FREE /dev/pve/data
# Verificar nova capacidade
lvs pve/data
Over-Provisioning
Thin provisioning permite alocar mais espaΓ§o do que fisicamente disponΓvel:
# Exemplo:
# Thin Pool: 794 GB
# VMs alocadas: 5 x 50 GB = 250 GB
# UtilizaΓ§Γ£o real: 119 GB (15%)
# CΓ‘lculo de over-provision:
# Alocado total: 250 GB
# Capacidade fΓsica: 794 GB
# Ratio: 250/794 = 31.5% (seguro)
# Recomendado: NΓ£o exceder 200% de over-provision
π MonitorizaΓ§Γ£o de Storage
Via Web UI
Datacenter β mail β Disks
Mostra:
- UtilizaΓ§Γ£o por disco
- SMART status
- Health
Datacenter β Storage
Mostra:
- Capacidade total
- EspaΓ§o usado/disponΓvel
- Status (ativo/inativo)
Via CLI
# Resumo de storage
pvesm status
# Detalhes de um storage especΓfico
pvesm list local
# EspaΓ§o em disco
df -h
# UtilizaΓ§Γ£o LVM
vgs
lvs
# SMART health
smartctl -H /dev/sda
smartctl -H /dev/nvme0n1
# I/O stats
iostat -x 2
π― Boas PrΓ‘ticas
Escolha de Storage para VMs
| Tipo de VM | Storage Recomendado | Motivo |
|---|---|---|
| Firewall (pfSense) | pve-nvme (NVMe) | Alta performance de I/O necessΓ‘ria |
| Domain Controller | pve-nvme (NVMe) | Acesso rΓ‘pido a LDAP/DNS |
| File Server | local-lvm (HDD) | Grande capacidade para ficheiros |
| Web Server | local-lvm (HDD) | I/O moderado |
| Mail Server | local-lvm (HDD) | Grande capacidade para emails |
| Backup Server | local-lvm (HDD) | Capacidade mais importante que velocidade |
GestΓ£o de EspaΓ§o
- Monitorizar regularmente
# Adicionar a crontab 0 */6 * * * /usr/sbin/pvesm status | mail -s "Proxmox Storage Status" admin@fsociety.pt - Configurar alertas
- Datacenter β Options β Email Settings
- Configurar threshold para alertas (ex: 80%)
- Limpar backups antigos
# Listar backups pvesm list local --content backup # Remover backup especΓfico pvesm free local:backup/vzdump-qemu-102-2025_12_01-02_00_00.vma.zst - Utilizar PBS para backups
- DeduplicaΓ§Γ£o economiza espaΓ§o
- RetenΓ§Γ£o automΓ‘tica configurΓ‘vel
Thin Provisioning
- NΓ£o over-provisionar excessivamente
- Manter ratio < 200%
- Monitorizar Data% regularmente
- Configurar alertas
# Criar script de monitorizaΓ§Γ£o nano /usr/local/bin/check-thin-pool.sh#!/bin/bash THRESHOLD=80 USAGE=$(lvs --noheadings -o data_percent pve/data | tr -d ' ') if [ ${USAGE%.*} -gt $THRESHOLD ]; then echo "Thin pool acima de $THRESHOLD%: ${USAGE}%" | \ mail -s "ALERTA: Thin Pool pve/data" admin@fsociety.pt fi - Expandir proativamente
- Adicionar espaΓ§o antes de atingir 90%
π Troubleshooting
Problema: Thin pool cheio
Sintoma: Erro ao iniciar VMs ou criar discos
SoluΓ§Γ£o:
# Verificar utilizaΓ§Γ£o
lvs pve/data
# Se Data% > 95%, expandir:
lvextend -L +50G /dev/pve/data
# Ou adicionar novo disco e estender VG
pvcreate /dev/sdX
vgextend pve /dev/sdX
lvextend -L +100G /dev/pve/data
Problema: Storage nΓ£o aparece na Web UI
SoluΓ§Γ£o:
# Verificar ficheiro de configuraΓ§Γ£o
cat /etc/pve/storage.cfg
# Verificar se storage estΓ‘ montado
df -h
mount | grep vz
# Reiniciar serviΓ§os
systemctl restart pve-cluster
systemctl restart pvedaemon
Problema: Performance lenta em VMs
DiagnΓ³stico:
# Verificar I/O wait
top
# Observar %wa (I/O wait)
# Ver I/O por disco
iostat -x 2
# Ver VMs com mais I/O
iotop
SoluΓ§Γ£o:
- Mover VMs crΓticas para NVMe
- Adicionar mais RAM (cache)
- Considerar SSD adicional
π PrΓ³ximos Passos
ApΓ³s configurar storage, prosseguir com:
- β Storage Configurado
- β‘οΈ CriaΓ§Γ£o de VMs - Criar e configurar VMs
- β‘οΈ Backup - Configurar backups automΓ‘ticos
π InformaΓ§Γ£o AcadΓ©mica
| Campo | InformaΓ§Γ£o |
|---|---|
| InstituiΓ§Γ£o | ESTG - Instituto PolitΓ©cnico do Porto |
| Unidade Curricular | AdministraΓ§Γ£o de Sistemas II |
| Ano Letivo | 2025/2026 |
| Autores | Ryan Barbosa, Hugo Correia, Igor AraΓΊjo |
Γltima atualizaΓ§Γ£o: Dezembro 2025