📦 Proxmox - Guia Completo
🔄 Live Migration sem Clusters
Este tutorial ensina como migrar uma máquina virtual (VM) entre dois servidores Proxmox que não fazem parte de um cluster. É possível realizar migrações ao vivo utilizando autenticação via token de API e configuração de fingerprint.
1. Obter o Fingerprint no Servidor de Destino
openssl x509 -in /etc/pve/local/pve-ssl.pem -noout -fingerprint -sha256
Exemplo de saída:
SHA256 Fingerprint=CD:71:0A:8C:A2:9B:72:89:3B:72:32:0A:04:4B:60:AA:71:AE:A4:97:4B:64:80:77:61:87:9D:2D:30:C9:03:B0
2. Criar um Token de API no Servidor de Origem
Acesse a interface web do Proxmox → Data Center > Permissions > API Tokens
- Selecione
root@pamou outro usuário com permissões. - Clique em Add e copie o token gerado.
3. Executar o Comando de Migração
qm remote-migrate ID-DA-VM ID-NO-DESTINO 'host=IP-DE-DESTINO,apitoken=PVEAPIToken=root@pam!token=SEU-TOKEN,fingerprint=SEU-FINGERPRINT' --target-bridge vmbr0 --target-storage SEU-STORAGE --online
Parâmetros:
ID-DA-VM: ID da VM de origemID-NO-DESTINO: ID da VM no destinohost: IP do servidor destinoapitoken: Token geradofingerprint: Obtido no passo 1--target-bridge: Interface de rede no destino--target-storage: Nome do storage--online: Migração em tempo real
4. Confirmar Migração
- A VM será migrada e desligada na origem.
- A nova VM estará ativa no servidor de destino.
✅ Exemplo
qm remote-migrate 101 102 'host=192.168.1.10,apitoken=PVEAPIToken=root@pam!token=9d5481e1-f251-49aa-b5af-88907d4d4e46,fingerprint=CD:71:0A:8C:A2:9B:72:89:3B:72:32:0A:04:4B:60:AA:71:AE:A4:97:4B:64:80:77:61:87:9D:2D:30:C9:03:B0' --target-bridge vmbr0 --target-storage local-lvm --online
🔗 Utilizando SSHFS para Criar Storage no Proxmox
1. Introdução
O SSHFS permite montar sistemas de arquivos remotos via SSH. Isso é útil para adicionar storage extra ao Proxmox (backups, ISOs etc.).
2. Pré-requisitos
- Proxmox com acesso root
- Servidor remoto com SSH ativo
- Conectividade entre as máquinas
- Chaves SSH para autenticação
3. Instalar SSHFS
apt update
apt install sshfs
sshfs --version
4. Montagem
4.1 Criar ponto de montagem
mkdir -p /mnt/sshfs-storage
4.2 Montar o diretório remoto
sshfs usuario@ip_do_servidor_remoto:/caminho/para/storage /mnt/sshfs-storage
Com chave SSH:
sshfs -o IdentityFile=/root/.ssh/id_rsa usuario@ip_do_servidor_remoto:/caminho/para/storage /mnt/sshfs-storage
5. Montagem automática via /etc/fstab
nano /etc/fstab
Adicione:
usuario@ip_do_servidor_remoto:/caminho/para/storage /mnt/sshfs-storage fuse.sshfs _netdev,allow_other,IdentityFile=/root/.ssh/id_rsa,defaults 0 0
Teste:
mount -a
df -h | grep /mnt/sshfs-storage
6. Adicionar no Proxmox
- Acesse a interface web
- Vá em Datacenter > Storage > Add > Directory
- Configure:
- ID: Nome do storage
- Directory:
/mnt/sshfs-storage - Content: Selecione os tipos (backup, container, ISO etc.)
❌ Remover Nó do Cluster Proxmox
pvecm expected 1
pvecm nodes
pvecm delnode pve2
💽 Formatar Disco via CLI
Método 1
fdisk /dev/sdX
# pressione "d" e depois "w"
mkfs.ext4 /dev/sdX
Método 2
wipefs --all /dev/sdX
reboot
🧹 Formatar Disco Utilizado pelo CEPH
sgdisk --zap-all /dev/sdX
reboot
📈 Expandir Disco Root
Verificar espaço disponível:
vgs
Exemplo de saída:
VG #PV #LV #SN Attr VSize VFree
pve 1 2 0 wz--n- <118.24g 100G
Expandir:
lvresize --size +100G --resizefs /dev/pve/root
lvresize --extents +100%FREE --resizefs /dev/pve/root
📶 Expandir SWAP no Proxmox
swapoff -v /dev/dm-0
lvm lvresize /dev/pve/swap -L +16G
mkswap /dev/mapper/pve-swap
swapon -va
🔓 Desbloquear VM ou CT
qm list # listar VMs
pct list # listar containers
pct unlock <ID>
qm unlock <ID>
📥 Importar Disco VM
qm importdisk <ID-VM> /mnt/pve/arquivo.raw local
☁️ Criar Imagens Cloud-Init
Ubuntu
wget https://cloud-images.ubuntu.com/bionic/current/bionic-server-cloudimg-amd64.img
qm create 9000 --name ubuntu1804-templ --memory 2048 --net0 virtio,bridge=vmbr1
qm importdisk 9000 bionic-server-cloudimg-amd64.img local -format qcow2
qm set 9000 --scsihw virtio-scsi-pci --scsi0 /var/lib/vz/images/9000/vm-9000-disk-0.qcow2
qm set 9000 --ide2 local:cloudinit --boot c --bootdisk scsi0 --serial0 socket --vga serial0
qm resize 9000 scsi0 +30G
qm set 9000 --ipconfig0 ip=dhcp
qm set 9000 --sshkey ~/.ssh/id_rsa.pub
qm cloudinit dump 9000 user
Debian
wget https://cdimage.debian.org/cdimage/openstack/current/debian-10.0.2-20190721-openstack-amd64.qcow2
qm create 9110 --name debian10-cloud --memory 2048 --net0 virtio,bridge=vmbr1
qm importdisk 9110 debian-10.0.2-20190721-openstack-amd64.qcow2 local -format qcow2
qm set 9110 --scsihw virtio-scsi-pci --scsi0 /var/lib/vz/images/9110/vm-9110-disk-0.qcow2
qm set 9110 --ide2 local:cloudinit --boot c --bootdisk scsi0 --serial0 socket --vga serial0
qm resize 9110 scsi0 +30G
qm set 9110 --ipconfig0 ip=dhcp
qm set 9110 --sshkey ~/.ssh/id_rsa.pub
qm cloudinit dump 9110 user
🔐 Habilitar Autenticação por Senha SSH
sudo nano /etc/ssh/sshd_config
Altere:
PasswordAuthentication yes
ChallengeResponseAuthentication no
Reinicie:
sudo systemctl restart sshd
📦 Instalar Dependências Recomendadas
apt install -y cloud-init cloud-initramfs-growroot qemu-guest-agent sudo git curl
apt install -y fish figlet tmux mlocate fonts-powerline resolvconf htop iftop bmon net-tools dnsutils gnupg2 ntpdate
📜 Script para Provisionamento Cloud
Você pode utilizar um script para baixar imagens automaticamente e provisionar. Edite o nome do usuário e o caminho onde as imagens serão salvas dentro do script.