informatique:logiciels:proxmox
Differences
This shows you the differences between two versions of the page.
| Next revision | Previous revision | ||
| informatique:logiciels:proxmox [2024/08/25 07:16] – created pteu | informatique:logiciels:proxmox [2025/10/12 09:19] (current) – [Se connecter à un LXC depuis le host] pteu | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ======ProxMox====== | + | ======Proxmox====== |
| (wp) //Proxmox Virtual Environnement (abrégé **Proxmox VE** ou **PVE**) est une plateforme de virtualisation libre (licence AGPLv3) basée sur l' | (wp) //Proxmox Virtual Environnement (abrégé **Proxmox VE** ou **PVE**) est une plateforme de virtualisation libre (licence AGPLv3) basée sur l' | ||
| Line 12: | Line 12: | ||
| src : https:// | src : https:// | ||
| + | |||
| + | |||
| + | =====Redimensionner la taille du stockage local-lvm===== | ||
| + | |||
| + | Mon but est de redimensionner le stockage **local-lvm**, | ||
| + | |||
| + | Par défaut Proxmox partitionne le disque ainsi: | ||
| + | <code bash> | ||
| + | lsblk | ||
| + | NAME | ||
| + | nvme0n1 | ||
| + | ├─nvme0n1p1 | ||
| + | ├─nvme0n1p2 | ||
| + | └─nvme0n1p3 | ||
| + | ├─pve-swap | ||
| + | ├─pve-root | ||
| + | ├─pve-data_tmeta 252:2 0 15.9G 0 lvm | ||
| + | │ └─pve-data | ||
| + | └─pve-data_tdata 252:3 0 1.7T 0 lvm | ||
| + | └─pve-data | ||
| + | </ | ||
| + | Proxmox utilise LVM pour organiser les espaces de stockage de la 3e partition nvme0n1p3 : il créé un PV (physical volume), puis un VG (volume group) qui est par défaut divisé en LV (logical volume) pour la partition de swap (LV " | ||
| + | |||
| + | N' | ||
| + | <code bash> | ||
| + | lvresize -L -1500G / | ||
| + | Thin pool volumes pve/ | ||
| + | </ | ||
| + | |||
| + | ... je l'ai supprimé (il faut au préalable le supprimer dans la webUI : Datacenter> | ||
| + | <code bash> | ||
| + | lvremove / | ||
| + | Do you really want to remove active logical volume pve/data? [y/n]: y | ||
| + | Logical volume " | ||
| + | </ | ||
| + | |||
| + | J'en ai profité pour augmenter un peu le " | ||
| + | <code bash> | ||
| + | lvresize -L +100G / | ||
| + | Size of logical volume pve/root changed from 96.00 GiB (24576 extents) to 196.00 GiB (50176 extents). | ||
| + | Logical volume pve/root successfully resized. | ||
| + | |||
| + | resize2fs / | ||
| + | resize2fs 1.47.0 (5-Feb-2023) | ||
| + | Filesystem at / | ||
| + | old_desc_blocks = 12, new_desc_blocks = 25 | ||
| + | The filesystem on / | ||
| + | </ | ||
| + | |||
| + | J'ai programmé un check au prochain reboot, la partition étant montée il n'est pas possible de le faire à chaud: | ||
| + | <code bash> | ||
| + | e2fsck -f / | ||
| + | e2fsck 1.47.0 (5-Feb-2023) | ||
| + | / | ||
| + | e2fsck: Cannot continue, aborting. | ||
| + | |||
| + | touch /forcefsck | ||
| + | </ | ||
| + | |||
| + | Je recréé le volume " | ||
| + | <code bash> | ||
| + | lvcreate -L200G -n data pve | ||
| + | |||
| + | lvconvert --type thin-pool pve/data | ||
| + | Thin pool volume with chunk size 128.00 KiB can address at most 31.75 TiB of data. | ||
| + | WARNING: Converting pve/data to thin pool's data volume with metadata wiping. | ||
| + | THIS WILL DESTROY CONTENT OF LOGICAL VOLUME (filesystem etc.) | ||
| + | Do you really want to convert pve/data? [y/n]: y | ||
| + | Converted pve/data to thin pool. | ||
| + | </ | ||
| + | |||
| + | NB : il faut le faire avant d' | ||
| + | <code bash> | ||
| + | lvconvert --type thin-pool / | ||
| + | Thin pool volume with chunk size 128.00 KiB can address at most 31.75 TiB of data. | ||
| + | WARNING: Converting pve/data to thin pool's data volume with metadata wiping. | ||
| + | THIS WILL DESTROY CONTENT OF LOGICAL VOLUME (filesystem etc.) | ||
| + | Do you really want to convert pve/data? [y/n]: y | ||
| + | Volume group " | ||
| + | </ | ||
| + | |||
| + | Et j' | ||
| + | <code bash> | ||
| + | lvcreate -l100%VG -n data2rv pve | ||
| + | Reducing 100%VG to remaining free space <1.47 TiB in VG. | ||
| + | Logical volume " | ||
| + | |||
| + | mkfs.ext4 -m 0 / | ||
| + | mke2fs 1.47.0 (5-Feb-2023) | ||
| + | Discarding device blocks: done | ||
| + | Creating filesystem with 393879552 4k blocks and 98476032 inodes | ||
| + | Filesystem UUID: ee159ef2-f2d0-400b-af01-a8f6bf3593a3 | ||
| + | Superblock backups stored on blocks: | ||
| + | 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, | ||
| + | 4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968, | ||
| + | 102400000, 214990848 | ||
| + | |||
| + | Allocating group tables: done | ||
| + | Writing inode tables: done | ||
| + | Creating journal (262144 blocks): done | ||
| + | Writing superblocks and filesystem accounting information: | ||
| + | |||
| + | echo "/ | ||
| + | |||
| + | mkdir -p /mnt/datarv | ||
| + | |||
| + | mount /mnt/datarv | ||
| + | </ | ||
| + | |||
| + | Ce qui nous donne : | ||
| + | <code bash> | ||
| + | df -Th /mnt/datarv | ||
| + | Filesystem | ||
| + | / | ||
| + | |||
| + | lvscan | ||
| + | ACTIVE | ||
| + | ACTIVE | ||
| + | ACTIVE | ||
| + | ACTIVE | ||
| + | |||
| + | lsblk | ||
| + | NAME | ||
| + | nvme0n1 | ||
| + | ├─nvme0n1p1 | ||
| + | ├─nvme0n1p2 | ||
| + | └─nvme0n1p3 | ||
| + | ├─pve-swap | ||
| + | ├─pve-root | ||
| + | ├─pve-data_tmeta 252:2 0 100M 0 lvm | ||
| + | │ └─pve-data | ||
| + | ├─pve-data_tdata 252:3 0 200G 0 lvm | ||
| + | │ └─pve-data | ||
| + | └─pve-datarv | ||
| + | </ | ||
| + | |||
| + | |||
| + | =====Partager un stockage local entre les LXC===== | ||
| + | |||
| + | (Inspiré de [[https:// | ||
| + | Pour partager [[informatique: | ||
| + | |||
| + | Dans la conf de chaque LXC : | ||
| + | <code bash> | ||
| + | echo "mp0: / | ||
| + | |||
| + | # uid map: from uid 0 map 1005 uids (in the ct) to the range starting 100000 (on the host), | ||
| + | # so 0..1004 (ct) → 100000..101004 (host) | ||
| + | lxc.idmap = u 0 100000 1005 | ||
| + | lxc.idmap = g 0 100000 1005 | ||
| + | # we map 1 uid starting from uid 1005 onto 1005, so 1005 → 1005 | ||
| + | lxc.idmap = u 1005 1005 1 | ||
| + | lxc.idmap = g 1005 1005 1 | ||
| + | # we map the rest of 65535 from 1006 upto 101006, so 1006..65535 → 101006..165535 | ||
| + | lxc.idmap = u 1006 101006 64530 | ||
| + | lxc.idmap = g 1006 101006 64530" >>/ | ||
| + | </ | ||
| + | |||
| + | Sur le système hôte: | ||
| + | <code bash> | ||
| + | echo " | ||
| + | echo " | ||
| + | chown -R 1005:1005 /mnt/datarv | ||
| + | </ | ||
| + | |||
| + | Puis redémarrer le conteneur: | ||
| + | <code bash> | ||
| + | lxc-stop 100 && lxc-start 100 | ||
| + | </ | ||
| + | |||
| + | Liens: | ||
| + | * https:// | ||
| + | |||
| + | |||
| + | =====Ajouter un SSD M.2 en passthrough sur une VM===== | ||
| + | |||
| + | (ref: https:// | ||
| + | |||
| + | En connectant un SSD m.2 sur le châssis ProxMox il est connecté en direct sur une ligne PCI express. On peut l' | ||
| + | |||
| + | La procédure se fait en ligne de commande : | ||
| + | |||
| + | Préalable potentiel... | ||
| + | <code bash> | ||
| + | apt install -y lshw | ||
| + | </ | ||
| + | |||
| + | Vérifier qu'il est bien détecté par Proxmox | ||
| + | <code bash> | ||
| + | lshw -class disk -class storage | ||
| + | *-nvme | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | bus info: pci@0000: | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | </ | ||
| + | |||
| + | On doit le retrouver dans / | ||
| + | <code bash> | ||
| + | ls -l / | ||
| + | lrwxrwxrwx 1 root root 13 Apr 2 18:10 nvme-WD_Blue_SN5000_4TB_0123456789 -> ../ | ||
| + | lrwxrwxrwx 1 root root 13 Apr 2 18:10 nvme-WD_Blue_SN5000_4TB_0123456789_1 -> ../ | ||
| + | </ | ||
| + | |||
| + | Cette commande barbare résume tous les disques détectés: | ||
| + | <code bash> | ||
| + | lsblk |awk ' | ||
| + | NAME | ||
| + | sda 8:0 0 3.6T 0 disk / | ||
| + | nvme0n1 | ||
| + | nvme1n1 | ||
| + | </ | ||
| + | |||
| + | Dans notre cas il s'agit du WD 4 To ; on l' | ||
| + | <code bash> | ||
| + | qm set 103 -scsi1 / | ||
| + | | ||
| + | </ | ||
| + | |||
| + | Vérification: | ||
| + | <code bash> | ||
| + | grep 0123456789 / | ||
| + | scsi1: / | ||
| + | </ | ||
| + | |||
| + | Si on change d' | ||
| + | <code bash> | ||
| + | qm unlink 103 --idlist scsi1 | ||
| + | </ | ||
| + | |||
| + | |||
| + | =====Déplacer une VM d'un Proxmox vers un autre===== | ||
| + | //des Proxmox qui ne soient pas en cluster bien sûr, sinon il y a plus simple//\\ | ||
| + | //cela fonctionne également pour des LXC// | ||
| + | |||
| + | ====Sauvegarder la VM==== | ||
| + | |||
| + | Via la webUI, cliquer sur la VM (ou le LXC) dans le menu Backup, et faire une sauvegarde locale (Storage: local ; Mode: Snapshot) de celle-ci. | ||
| + | |||
| + | En CLI: | ||
| + | <code bash> | ||
| + | root@pve1: | ||
| + | </ | ||
| + | ====Transférer la sauvegarde sur le nouveau Proxmox==== | ||
| + | |||
| + | Les sauvegardes sont situées dans le répertoire local / | ||
| + | |||
| + | <code bash> | ||
| + | root@pve1: | ||
| + | vzdump-qemu-100-2025_07_18-10_17_42.vma.zst | ||
| + | </ | ||
| + | |||
| + | ====Restaurer la VM sur le nouveau Proxmox==== | ||
| + | |||
| + | Il faut passer par la CLI (donc SSH ou la fenêtre "> | ||
| + | <code bash> | ||
| + | root@pve2: | ||
| + | </ | ||
| + | |||
| + | " | ||
| + | |||
| + | S'il s'agit d'un conteneur LXC: | ||
| + | <code bash> | ||
| + | root@pve2:/ | ||
| + | </ | ||
| + | |||
| + | Si on souhaite malgré tout conserver l'ID 100, il faut modifier l'ID de la VM préexistante : | ||
| + | |||
| + | ====Modifier l'ID d'une VM==== | ||
| + | |||
| + | Sauvegarder la VM (ID=100) comme indiqué précédemment ; pour la restaurer avec l' | ||
| + | <code bash> | ||
| + | root@pve2: | ||
| + | </ | ||
| + | |||
| + | =====Se connecter à un LXC depuis le host===== | ||
| + | |||
| + | <code bash> | ||
| + | pct enter < | ||
| + | </ | ||
informatique/logiciels/proxmox.1724570162.txt.gz · Last modified: 2024/08/25 07:16 by pteu