Outils pour utilisateurs

Outils du site


linux:proxmox9 (lu 7051 fois)

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
linux:proxmox9 [27-09-2025 11:56] – créée edmc73linux:proxmox9 [05-12-2025 23:19] (Version actuelle) – [Migrer ces VM d'un proxmox à un autre] edmc73
Ligne 5: Ligne 5:
  
 https://pve.proxmox.com/wiki/Upgrade_from_8_to_9 https://pve.proxmox.com/wiki/Upgrade_from_8_to_9
 +
 +
 +===== Config ZFS =====
 +
 +Pour pouvoir faire des snapshot de vos VM
 +
 +--- https://forum.proxmox.com/threads/zfs-and-snapshots-again.132104/
 +
 +Il n'est pas nécessaire de créer un dataset supplémentaire, on peut utiliser le zp0 (ou le data) créé par défaut.  \\
 +Mais je laisse la commande pour info.
 +
 +
 +<code>
 +proxmox9:~# zfs list
 +NAME       USED  AVAIL  REFER  MOUNTPOINT
 +data      96.0G   288G    96K  none
 +data/zd0  95.9G   288G  95.9G  /var/lib/vz
 +</code>
 +
 +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**, sélectionnez votre **Hard Disk**, cliquez sur le menu **Disk Action** puis **Move Storage**
 +
 +Choisissez votre dataset et voilà ! L'option "Créer des snapshosts" est maintenant disponible
 +
 +<code>
 +proxmox9:~# zfs list
 +NAME                 USED  AVAIL  REFER  MOUNTPOINT
 +data                 102G   281G    96K  none
 +data/vm-120-disk-0  6.32G   281G  6.32G  -
 +data/zd0            95.9G   281G  95.9G  /var/lib/vz
 +</code>
 +
 +
 +
 +
 +===== Ajouter de l'espace disque à chaud =====
 +
 +Voici une table de partition classique d'une VM
 +
 +<code>
 +root@debian:~# lsblk
 +NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
 +sda      8:0    0   10G  0 disk
 +├─sda1   8:   0  9,4G  0 part /
 +├─sda2   8:   0    1K  0 part
 +└─sda5   8:   0  583M  0 part [SWAP]
 +sr0     11:   1  783M  0 rom
 +
 +df -h /dev/sda1
 +Sys. de fichiers Taille Utilisé Dispo Uti% Monté sur
 +/dev/sda1          9,2G    1,1G  7,7G  13% /
 +
 +</code>
 +
 +On a un disque de 10Go et une partition de 9.4Go que l'on veut augmenter de 2Go.
 +
 +On augmente la taille du disque dans proxmox
 +
 +Menu ''Hardware'' on clique sur ''Hard Disk'' puis on clic en haut dans le menu sur ''Disk Action'' puis ''Resize''
 +
 +J'ai ajouté 2Go au disque, on le retrouve bien directement ici sur la taille du disque, mais rien n'a changé sur les partitions.
 +<code>
 +root@debian:~# lsblk
 +NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
 +sda      8:0    0   12G  0 disk
 +├─sda1   8:   0  9,4G  0 part /
 +├─sda2   8:   0    1K  0 part
 +└─sda5   8:   0  583M  0 part [SWAP]
 +sr0     11:   1  783M  0 rom
 +
 +df -h /dev/sda1
 +Sys. de fichiers Taille Utilisé Dispo Uti% Monté sur
 +/dev/sda1          9,2G    1,1G  7,7G  13% /
 +
 +</code>
 +
 +Maintenant on installe ce paquet
 +  apt install cloud-guest-utils
 +
 +Et on va augmenter la taille de notre partition sda1 
 +  growpart /dev/sda 1
 +  NOCHANGE: partition 1 could only be grown by 2046 [fudge=2048]
 +
 +
 +Ok la partition a augmenter doit se trouver à la fin du disque, car ici, il n'y a pas d'espace disponible entre sda1 et sda2
 +
 +On peut déplacer les partitions avec gparted, même si lsblk montre les partitions dans l'ordres de leur nom, du moment que sda1 est physiquement à la fin du disk, ça marchera.
 +
 +Une fois le growpart exécuté avec succès, utiliser la commande suivante 
 +  resize2fs /dev/sda1
 +
 +Constatez avec un ''df -h'' que tout est ok
 +
 +===== Problème de backup =====
 +
 +J'ai eu ce problème sur le backup d'un LXC
 +<code>
 +INFO: starting first sync /proc/3224260/root/ to /var/tmp/vzdumptmp3498328_150
 +ERROR: rsync: [receiver] write failed on "/var/tmp/vzdumptmp3498328_150/var/log/journal/b4d4726a5f8b4fc88c6c226650ca0668/system@f30e550852f241da980f73b64033da35-000000000074f9ae-000640a1a2cf98a9.journal": No space left on device (28)
 +ERROR: rsync error: error in file IO (code 11) at receiver.c(381) [receiver=3.2.7]
 +ERROR: rsync: [sender] write error: Broken pipe (32)
 +ERROR: Backup of VM 150 failed - command 'rsync --stats -h -X -A --numeric-ids -aH --delete --no-whole-file --sparse --one-file-system --relative '--exclude=/tmp/?*' '--exclude=/var/tmp/?*' '--exclude=/var/run/?*.pid' /proc/3224260/root//./ /var/tmp/vzdumptmp3498328_150' failed: exit code 11
 +INFO: Failed at 2025-10-22 04:07:46
 +</code>
 +
 +Il s'avère que proxmox fait une copie dans le répertoire temporaire par défaut qui est ''/var/tmp'' \\
 +Sauf que ce répertoire se trouve sur la partition système qui n'est pas très grande.
 +
 +Pour résoudre le problème, il faut définir à la main le répertoire temporaire dans ''/etc/vzdump.conf''
 +
 +  tmpdir: /var/lib/vz/tmp
 +
 +
 +===== LXC =====
 +
 +Quelques commandes
 +  pct list
 +Faire un checkdisk
 +  pct fsck <vmid>
 +
 +Ajouter 2G
 +  pct resize <vmid> rootfs +2G
 +
 +  e2fsck -f -y /var/lib/vz/images/150/vm-150-disk-0.raw
 +  e2fsck -p /var/lib/vz/images/150/vm-150-disk-0.raw
 +  
 +  resize2fs /var/lib/vz/images/150/vm-150-disk-0.raw
 +
 +===== Qemu / KVM =====
 +
 +Quelques commandes
 +
 +Pour avoir la config d'une VM (identique au fichier /etc/pve/qemu-server/<vmid>.conf  )
 +  qm config <vmid>
 +
 +Voir plus -> https://pve.proxmox.com/pve-docs/qm.1.html
 +
 +Dans le cas de TrueNAS qui sort l'erreur 
 +  Disks have duplicate serial numbers: None (sda, sdb)
 +
 +Il faut modifier le fichier ''/etc/pve/qemu-server/<vmid>.conf''
 +
 +repérer les lignes
 +  scsi0: thin_provision:vm-212-disk-0,discard=on,iothread=1,size=32G
 +  scsi1: thin_provision:vm-212-disk-1,iothread=1,size=5G
 +
 +Et ajouter ''serial=12345''
 +  scsi0: thin_provision:vm-212-disk-0,discard=on,iothread=1,size=32G,serial=12345
 +  scsi1: thin_provision:vm-212-disk-1,iothread=1,size=5G,serial=12346
 +
 +===== 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/24
 +  Gateway (IPv4) : (vide)
 +  Bridge ports: (vide)
 +
 +  * Apply Configuration
 +
 +  cat /proc/sys/net/ipv4/ip_forward
 +  echo 1 > /proc/sys/net/ipv4/ip_forward
 +  iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o vmbr0 -j MASQUERADE
 +
 +Pour pérenniser cette config
 +  vi /etc/sysctl.d/99-sysctl.conf (ou créer un fichier vide avec ce qui suit)
 +  # 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 /etc/systemd/system/proxmox-nat.service
 +<code>
 +[Unit]
 +Description=Proxmox NAT Rules
 +After=network.target
 +
 +[Service]
 +Type=oneshot
 +RemainAfterExit=yes
 +ExecStart=/sbin/iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o vmbr0 -j MASQUERADE
 +ExecStop=/sbin/iptables -t nat -D POSTROUTING -s 192.168.0.0/24 -o vmbr0 -j MASQUERADE
 +
 +[Install]
 +WantedBy=multi-user.target
 +</code>
 +Activez le service :
 +
 +  systemctl enable proxmox-nat.service
 +  systemctl start proxmox-nat.service
 +
 +
 +
 +
 +==== Commandes utiles sur proxmox ====
 +<code>
 +ip a
 +3: vmbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
 +    link/ether 00:00:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
 +    inet xxx.xxx.xxx.xxx/24 scope global vmbr0
 +       valid_lft forever preferred_lft forever
 +    inet6 xxxx::xxx:xxxx:xxxx:xxxx/64 scope link proto kernel_ll 
 +       valid_lft forever preferred_lft forever
 +4: vmbr1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
 +    link/ether 56:0f:bd:5e:69:e8 brd ff:ff:ff:ff:ff:ff
 +    inet 192.168.0.1/24 scope global vmbr1
 +       valid_lft forever preferred_lft forever
 +    inet6 xxxx::xxxx:xxxx:xxxx:xxxx/64 scope link proto kernel_ll 
 +       valid_lft forever preferred_lft forever
 +
 +ip route
 +default via xxx.xxx.xxx.1 dev vmbr0 proto kernel onlink 
 +xxx.xxx.xxx.0/24 dev vmbr0 proto kernel scope link src xxx.xxx.xxx.xxx
 +192.168.0.0/24 dev vmbr1 proto kernel scope link src 192.168.0.1 
 +
 +ping -I vmbr0 google.fr
 +-> ça marche
 +
 +ping -I vmbr1 google.fr
 +-> ça marche pas (normal)
 +
 +ifup vmbr1
 +ip a show dev vmbr1
 +
 +</code>
 +
 +Si l'état de vmbr1 est UNKNOWN au lieu de UP, c'est normal si aucune VM n'est allumé et configuré sur vmbr1
 +
 +
 +==== Config réseau d'une VM ====
 +Au niveau hardware, le Network Device (net0) doit avoir le bridge configuré sur vmbr1
 +<code>
 +# 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/24
 +    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
 +</code>
 +
 +<code>
 +ip route
 +default via 192.168.0.1 dev ens18 onlink 
 +192.168.0.0/24 dev ens18 proto kernel scope link src 192.168.0.2
 +</code>
 +
 +===== Firewall =====
 +
 +Il y a 3 étages de firewall, dans l'ordre :
 +  * Datacenter
 +  * Node
 +  * VM / LXC
 +
 +==== Datacenter ====
 +Avant d'activer le firewall dans l'interface web, ajoutez la règle suivante pour ne pas perdre l'accès à l'interface web
 +  * 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'accès à SSH
 +
 +==== VM/LXC ====
 +Ajoutez les règles d'accès standard: HTTP/HTTPS
 +
 +
 +
 +===== 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 /var/lib/vz/dump/vzdump-qemu-110-2025_12_05-04_00_07.* mon.proxmox9.com:/var/lib/vz/dump/.
 +
 +Ensuite, procédé à un rsync entre les disques des VM
 +  proxmox# rsync /var/lib/vz/images/110/ mon.proxmox9.com:/var/lib/vz/images/110/
 +
 +Si vous utilisez un pool ZFS pour stocker vos disques de VM, repérez le nom du pool de votre disque
 +
 +<code>
 +proxmox9:~# zfs list
 +NAME                 USED  AVAIL  REFER  MOUNTPOINT
 +data                 131G   253G    96K  none
 +data/vm-110-disk-0  34.8G   253G  34.8G  -
 +</code>
 +et copiez via les commandes zfs
 +
 +Faites d'abord un snapshot via l'interface proxmox ou via la commande
 +
 +<code>
 +# À exécuter sur le serveur source
 +# création du snapshot
 +zfs snapshot data/vm-110-disk-0@migration
 +
 +# envoi du snapshot
 +zfs send data/vm-110-disk-0@migration | ssh root@proxmox9 zfs recv -v data/vm-110-disk-new
 +</code>
 +
 +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/vm-101-disk-0@migration data/vm-101-disk-0@migration2 | ssh root@proxmox9 zfs recv -v data/vm-110-disk-new
 +  
 +Une fois que le moment est bon, on va remplacé notre disque issue du backup par cette nouvelle copie et supprimer le snapshot
 +
 +<code>
 +proxmox9:~# zfs list
 +NAME                  USED  AVAIL  REFER  MOUNTPOINT
 +data                  131G   253G    96K  none
 +data/vm-110-disk-0   34.8G   253G  34.8G  -
 +data/vm-110-disk-new 34.8G   253G  34.8G  -
 +
 +zfs destroy data/vm-110-disk-0
 +zfs rename data/vm-110-disk-new data/vm-110-disk-0
 +zfs destroy data/vm-110-disk-0@migrate
 +</code>
 +
 +Vous pouvez maintenant lancer votre VM
linux/proxmox9.1758974211.txt.gz · Dernière modification : de edmc73