Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| linux:proxmox9 [08-11-2025 09:56] – [Qemu / KVM] edmc73 | linux:proxmox9 [04-01-2026 22:22] (Version actuelle) – edmc73 | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| ====== Proxmox9 ====== | ====== Proxmox9 ====== | ||
| + | ===== Scripts utiles ===== | ||
| + | |||
| + | https:// | ||
| ===== upgrade 8 to 9 ===== | ===== upgrade 8 to 9 ===== | ||
| https:// | https:// | ||
| + | |||
| + | |||
| + | ===== Config ZFS ===== | ||
| + | |||
| + | Pour pouvoir faire des snapshot de vos VM | ||
| + | |||
| + | --- https:// | ||
| + | |||
| + | Il n'est pas nécessaire de créer un dataset supplémentaire, | ||
| + | Mais je laisse la commande pour info. | ||
| + | |||
| + | |||
| + | < | ||
| + | proxmox9:~# zfs list | ||
| + | NAME | ||
| + | data 96.0G | ||
| + | data/ | ||
| + | </ | ||
| + | |||
| + | Dans proxmox, cliquez sur **datacenter** aller dans le menu **Storage** cliquer sur **Add** / **ZFS** | ||
| + | |||
| + | Choisissez votre dataset, content = Disk Image, **bien cocher la case Thin provision** -> OK | ||
| + | |||
| + | Ensuite, cliquez sur votre VM, cliquez sur **Hardware**, | ||
| + | |||
| + | Choisissez votre dataset et voilà ! L' | ||
| + | |||
| + | < | ||
| + | proxmox9:~# zfs list | ||
| + | NAME | ||
| + | data | ||
| + | data/ | ||
| + | data/ | ||
| + | </ | ||
| + | |||
| + | |||
| Ligne 121: | Ligne 160: | ||
| scsi0: thin_provision: | scsi0: thin_provision: | ||
| scsi1: thin_provision: | scsi1: thin_provision: | ||
| + | |||
| + | |||
| + | ===== Pour la SWAP ===== | ||
| + | |||
| + | Plutôt que de partitionner votre disque /dev/sda pour la swap, autant ajouter un disque dédié qu'on n' | ||
| + | |||
| + | Ajouter un disque avec les options suivantes : | ||
| + | * Cache : Write back : Meilleur compromis performance/ | ||
| + | * Discard : activé : si SSD | ||
| + | * IO thread : activé : toujours le bon choix | ||
| + | * Backup : désactivé : ne sera pas sauvegardé | ||
| + | |||
| + | Sur votre vm, regardé si votre disque apparait avec | ||
| + | fdisk -l | ||
| + | |||
| + | En principe, c'est ''/ | ||
| + | mkswap /dev/sdb | ||
| + | Activation de la swap | ||
| + | swapon /dev/sdb | ||
| + | Ajouter dans fstab | ||
| + | echo '/ | ||
| + | Vérifier | ||
| + | free -h | ||
| + | |||
| + | |||
| + | |||
| + | ===== Créer un sous réseau local ===== | ||
| + | |||
| + | ==== Créons un bridge qui définira notre réseau local ==== | ||
| + | |||
| + | Menu: proxmox9 / System / Network | ||
| + | * Create : Linux Bridge | ||
| + | |||
| + | Name: vmbr1 | ||
| + | IPv4/CIDR : 192.168.0.1/ | ||
| + | Gateway (IPv4) : (vide) | ||
| + | Bridge ports: (vide) | ||
| + | |||
| + | * Apply Configuration | ||
| + | |||
| + | cat / | ||
| + | echo 1 > / | ||
| + | iptables -t nat -A POSTROUTING -s 192.168.0.0/ | ||
| + | |||
| + | Pour pérenniser cette config | ||
| + | vi / | ||
| + | # Uncomment the next line to enable packet forwarding for IPv4 | ||
| + | net.ipv4.ip_forward=1 | ||
| + | |||
| + | Créer un service avec systemd pour les règles de NAT | ||
| + | |||
| + | vi / | ||
| + | < | ||
| + | [Unit] | ||
| + | Description=Proxmox NAT Rules | ||
| + | After=network.target | ||
| + | |||
| + | [Service] | ||
| + | Type=oneshot | ||
| + | RemainAfterExit=yes | ||
| + | ExecStart=/ | ||
| + | ExecStop=/ | ||
| + | |||
| + | [Install] | ||
| + | WantedBy=multi-user.target | ||
| + | </ | ||
| + | Activez le service : | ||
| + | |||
| + | systemctl enable proxmox-nat.service | ||
| + | systemctl start proxmox-nat.service | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | ==== Commandes utiles sur proxmox ==== | ||
| + | < | ||
| + | ip a | ||
| + | 3: vmbr0: < | ||
| + | link/ether 00: | ||
| + | inet xxx.xxx.xxx.xxx/ | ||
| + | | ||
| + | inet6 xxxx:: | ||
| + | | ||
| + | 4: vmbr1: < | ||
| + | link/ether 56: | ||
| + | inet 192.168.0.1/ | ||
| + | | ||
| + | inet6 xxxx:: | ||
| + | | ||
| + | |||
| + | ip route | ||
| + | default via xxx.xxx.xxx.1 dev vmbr0 proto kernel onlink | ||
| + | xxx.xxx.xxx.0/ | ||
| + | 192.168.0.0/ | ||
| + | |||
| + | ping -I vmbr0 google.fr | ||
| + | -> ça marche | ||
| + | |||
| + | ping -I vmbr1 google.fr | ||
| + | -> ça marche pas (normal) | ||
| + | |||
| + | ifup vmbr1 | ||
| + | ip a show dev vmbr1 | ||
| + | |||
| + | </ | ||
| + | |||
| + | Si l' | ||
| + | |||
| + | |||
| + | ==== Config réseau d'une VM ==== | ||
| + | Au niveau hardware, le Network Device (net0) doit avoir le bridge configuré sur vmbr1 | ||
| + | < | ||
| + | # The loopback network interface | ||
| + | auto lo | ||
| + | iface lo inet loopback | ||
| + | |||
| + | # The primary network interface | ||
| + | allow-hotplug ens18 | ||
| + | iface ens18 inet static | ||
| + | address 192.168.0.10/ | ||
| + | gateway 192.168.0.1 | ||
| + | # dns-* options are implemented by the resolvconf package, if installed | ||
| + | dns-nameservers 213.186.33.99 | ||
| + | dns-search edmc.local | ||
| + | </ | ||
| + | |||
| + | < | ||
| + | ip route | ||
| + | default via 192.168.0.1 dev ens18 onlink | ||
| + | 192.168.0.0/ | ||
| + | </ | ||
| + | |||
| + | ===== Firewall ===== | ||
| + | |||
| + | Il y a 3 étages de firewall, dans l' | ||
| + | * Datacenter | ||
| + | * Node | ||
| + | * VM / LXC | ||
| + | |||
| + | ==== Datacenter ==== | ||
| + | Avant d' | ||
| + | * Direction: in | ||
| + | * Action: ACCEPT | ||
| + | * Interface: vmbr0 | ||
| + | * Protocol: tcp | ||
| + | * Dest. Port.: 8006 | ||
| + | * Enable: x | ||
| + | |||
| + | * Direction: in | ||
| + | * Action: ACCEPT | ||
| + | * Interface: vmbr0 | ||
| + | * Macro: Ping | ||
| + | * Enable: x | ||
| + | |||
| + | Puis, menu Datacenter / Firewall / Options : Firewall -> Yes | ||
| + | |||
| + | Ces règles sont global à tous les nœuds et VM/LXC | ||
| + | |||
| + | ==== Node ==== | ||
| + | Sur le nœud, on peut ajouter par exemple l' | ||
| + | |||
| + | ==== VM/LXC ==== | ||
| + | Ajoutez les règles d' | ||
| + | |||
| + | |||
| + | |||
| + | ===== Migrer ces VM d'un proxmox à un autre ===== | ||
| + | |||
| + | Imaginons un proxmox8 et un nouveau proxmox9. On veut migrer les VM du 8 vers le 9 en essayant de minimiser le temps de coupure. | ||
| + | |||
| + | Faite un backup d'une machine : | ||
| + | * Sélectionnez la VM | ||
| + | * Menu Backup | ||
| + | * Bouton **Backup Now** | ||
| + | |||
| + | |||
| + | Copiez le backup de la VM avec, par exemple, un id 110 | ||
| + | proxmox8# scp / | ||
| + | |||
| + | Restaurez la VM via l' | ||
| + | * Sélectionnez le **Storage** qui est configuré pour les backup (par défaut **local**) | ||
| + | * Menu Backup | ||
| + | * Sélectionnez le backup et cliquez sur le bouton **Restore** | ||
| + | |||
| + | Si les images disques ne sont pas sur un pool ZFS, vous pouvez essayé de synchroniser les dernières données via rsync | ||
| + | proxmox# rsync / | ||
| + | |||
| + | Si vous utilisez un pool ZFS pour stocker vos disques de VM, repérez le nom du pool de votre disque | ||
| + | |||
| + | < | ||
| + | proxmox9:~# zfs list | ||
| + | NAME | ||
| + | data | ||
| + | data/ | ||
| + | </ | ||
| + | |||
| + | Et supprimons le | ||
| + | zfs destroy data/ | ||
| + | |||
| + | |||
| + | Faites un snapshot via la commande | ||
| + | |||
| + | < | ||
| + | # À exécuter sur le serveur source | ||
| + | # création du snapshot | ||
| + | zfs snapshot data/ | ||
| + | |||
| + | # envoi du snapshot | ||
| + | zfs send -v data/ | ||
| + | </ | ||
| + | |||
| + | Pour migrer au dernier moment seulement les dernières modifications, | ||
| + | Envoyez ensuite le dernier snapshot via les commandes suivantes : | ||
| + | |||
| + | # Envoyer uniquement les changements entre les deux snapshots | ||
| + | zfs send -v -i data/ | ||
| + | | ||
| + | Une fois que le moment est bon, il n'y a plus qu'à basculer vos ip failover si vous en avez ou basculer vos DNS et démarrer votre nouvelle VM. | ||
| + | |||
| + | |||
| + | Vous pourrez ensuite supprimer vos 2 snapshots | ||
| + | < | ||
| + | proxmox9:~# zfs list -t all | ||
| + | NAME | ||
| + | data | ||
| + | data/ | ||
| + | data/ | ||
| + | data/ | ||
| + | |||
| + | zfs destroy data/ | ||
| + | zfs destroy data/ | ||
| + | </ | ||
| + | |||
| + | |||