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 [22-10-2025 21:37] – [Problème de backup] edmc73 | linux:proxmox9 [05-12-2025 23:19] (Version actuelle) – [Migrer ces VM d'un proxmox à un autre] edmc73 | ||
|---|---|---|---|
| Ligne 5: | Ligne 5: | ||
| 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 85: | Ligne 121: | ||
| + | ===== LXC ===== | ||
| + | |||
| + | Quelques commandes | ||
| + | pct list | ||
| + | Faire un checkdisk | ||
| + | pct fsck < | ||
| + | |||
| + | Ajouter 2G | ||
| + | pct resize < | ||
| + | |||
| + | e2fsck -f -y / | ||
| + | e2fsck -p / | ||
| + | | ||
| + | resize2fs / | ||
| + | |||
| + | ===== Qemu / KVM ===== | ||
| + | |||
| + | Quelques commandes | ||
| + | |||
| + | Pour avoir la config d'une VM (identique au fichier / | ||
| + | qm config < | ||
| + | |||
| + | Voir plus -> https:// | ||
| + | |||
| + | Dans le cas de TrueNAS qui sort l' | ||
| + | Disks have duplicate serial numbers: None (sda, sdb) | ||
| + | |||
| + | Il faut modifier le fichier ''/ | ||
| + | |||
| + | repérer les lignes | ||
| + | scsi0: thin_provision: | ||
| + | scsi1: thin_provision: | ||
| + | |||
| + | Et ajouter '' | ||
| + | scsi0: thin_provision: | ||
| + | scsi1: thin_provision: | ||
| + | |||
| + | ===== 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. | ||
| + | |||
| + | On commence par copier un backup d'une VM avec un id 110 | ||
| + | proxmox8# scp / | ||
| + | |||
| + | Ensuite, procédé à un rsync entre les disques des VM | ||
| + | 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 copiez via les commandes zfs | ||
| + | |||
| + | Faites d' | ||
| + | |||
| + | < | ||
| + | # À exécuter sur le serveur source | ||
| + | # création du snapshot | ||
| + | zfs snapshot data/ | ||
| + | |||
| + | # envoi du snapshot | ||
| + | zfs send data/ | ||
| + | </ | ||
| + | |||
| + | Pour migrer ultérieurement seulement les modifications (beaucoup plus rapide), créez un nouveau snapshot (@migration2) et référencez le précédent (@migration) : | ||
| + | |||
| + | # Envoyer uniquement les changements entre les deux snapshots | ||
| + | zfs send -i data/ | ||
| + | | ||
| + | Une fois que le moment est bon, on va remplacé notre disque issue du backup par cette nouvelle copie et supprimer le snapshot | ||
| + | |||
| + | < | ||
| + | proxmox9:~# zfs list | ||
| + | NAME USED AVAIL REFER MOUNTPOINT | ||
| + | data 131G | ||
| + | data/ | ||
| + | data/ | ||
| + | |||
| + | zfs destroy data/ | ||
| + | zfs rename data/ | ||
| + | zfs destroy data/ | ||
| + | </ | ||
| + | |||
| + | Vous pouvez maintenant lancer votre VM | ||