User Tools

Site Tools


informatique:logiciels:proxmox

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
informatique:logiciels:proxmox [2025/02/14 14:16] – [Redimensionner la taille du stockage local-lvm] pteuinformatique:logiciels:proxmox [2025/04/02 16:48] (current) – [Ajouter un SSD M.2 en passthrough sur une VM] pteu
Line 33: Line 33:
     └─pve-data     252:   0  1.7T  0 lvm     └─pve-data     252:   0  1.7T  0 lvm
 </code> </code>
-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 "swap"), / (LV "root"), et le **local-lvm** (LV "data"). PI le stockage **local** est quant à lui un sous-répertoire de /.+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 "swap"), / (LV "root"), et le **local-lvm** (LV "data"). PI le stockage **local** est quant à lui un sous-répertoire de / (''/var/lib/vz'').
  
 N'ayant pas réussi à réduire directement le volume "data": N'ayant pas réussi à réduire directement le volume "data":
Line 149: Line 149:
  
  
 +=====Partager un stockage local entre les LXC=====
 +
 +(Inspiré de [[https://pve.proxmox.com/wiki/Unprivileged_LXC_containers|Using local directory bind mount points]])
 +Pour partager [[informatique:logiciels:proxmox#redimensionner_la_taille_du_stockage_local-lvm|la partition précédemment créée]] entre un ou plusieurs conteneurs non privilégiés (le 100 pour cet exemple) :
 +
 +Dans la conf de chaque LXC :
 +<code bash>
 +echo "mp0: /mnt/datarv,mp=/data
 +
 +# 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" >>/etc/pve/lxc/100.conf
 +</code>
 +
 +Sur le système hôte:
 +<code bash>
 +echo "root:1005:1" >>/etc/subuid
 +echo "root:1005:1" >>//etc/subgid
 +chown -R 1005:1005 /mnt/datarv
 +</code>
 +
 +Puis redémarrer le conteneur:
 +<code bash>
 +lxc-stop 100 && lxc-start 100
 +</code>
 +
 +Liens:
 +  * https://www.closingtags.com/writing-to-bind-mounts-from-unprivileged-lxc-containers
 +
 +
 +=====Ajouter un SSD M.2 en passthrough sur une VM=====
 +
 +(ref: https://pve.proxmox.com/wiki/Passthrough_Physical_Disk_to_Virtual_Machine_(VM) )
 +
 +En connectant un SSD m.2 sur le châssis ProxMox il est connecté en direct sur une ligne PCI express. On peut l'ajouter en mode Passthrough sur une VM dans Proxmox, pour maximiser les performances ; l'inconvénient est que ce disque sera physiquement attaché à la VM, celle-ci ne sera pas transférable sur un autre Proxmox si on a un cluster.
 +
 +La procédure se fait en ligne de commande :
 +
 +Préalable potentiel...
 +<code bash>
 +apt install -y lshw
 +</code>
 +
 +Vérifier qu'il est bien détecté par Proxmox
 +<code bash>
 +lshw -class disk -class storage
 +  *-nvme                    
 +       description: NVMe device
 +       product: WD Blue SN5000 4TB
 +       vendor: Sandisk Corp
 +       physical id: 0
 +       bus info: pci@0000:01:00.0
 +       logical name: /dev/nvme0
 +       version: 341600WD
 +       serial: 0123456789
 +       width: 64 bits
 +       clock: 33MHz
 +       capabilities: nvme pm msi msix pciexpress nvm_express bus_master cap_list
 +       configuration: driver=nvme latency=0 nqn=nqn.2018-01.com.wdc:guid:E8238FA6BF53-0001-001B444A41DF50DA state=live
 +       resources: irq:16 memory:5f600000-5f603fff
 +</code>
 +
 +On doit le retrouver dans /dev/disk/by-id , en recherchant sur sa marque ou son serial:
 +<code bash>
 +ls -l /dev/disk/by-id | grep 0123456789
 +lrwxrwxrwx 1 root root 13 Apr  2 18:10 nvme-WD_Blue_SN5000_4TB_0123456789 -> ../../nvme0n1
 +lrwxrwxrwx 1 root root 13 Apr  2 18:10 nvme-WD_Blue_SN5000_4TB_0123456789_1 -> ../../nvme0n1
 +</code>
 +
 +Cette commande barbare résume tous les disques détectés:
 +<code bash>
 +lsblk |awk 'NR==1{print $0" DEVICE-ID(S)"}NR>1{dev=$1;printf $0" ";system("find /dev/disk/by-id -lname \"*"dev"\" -printf \" %p\"");print "";}'|grep -v -E 'part|lvm'
 +NAME                         MAJ:MIN RM    SIZE RO TYPE MOUNTPOINTS DEVICE-ID(S)
 +sda                            8:0    0    3.6T  0 disk   /dev/disk/by-id/wwn-0x5002538f00000000 /dev/disk/by-id/usb-Samsung_PSSD_T5_EVO_0123456789-0:0 /dev/disk/by-id/ata-Samsung_Portable_SSD_T5_EVO_0123456789
 +nvme0n1                      259:0    0    3.6T  0 disk   /dev/disk/by-id/nvme-eui.e8238fa6bf530001001b444a41df50da /dev/disk/by-id/nvme-WD_Blue_SN5000_4TB_0123456789 /dev/disk/by-id/nvme-WD_Blue_SN5000_4TB_0123456789_1
 +nvme1n1                      259:1    0    1.9T  0 disk   /dev/disk/by-id/nvme-ORICO_0123456789 /dev/disk/by-id/nvme-eui.34354536423432374ce0001830363033 /dev/disk/by-id/nvme-ORICO_0123456789_1
 +</code>
 +
 +Dans notre cas il s'agit du WD 4 To ; on l'ajoute à la VM 103 en tant que disque scsi1 avec la commande:
 +<code bash>
 +qm set 103 -scsi1 /dev/disk/by-id/nvme-WD_Blue_SN5000_4TB_0123456789
 + update VM 103: -scsi1 /dev/disk/by-id/nvme-WD_Blue_SN5000_4TB_0123456789
 +</code>
 +
 +Vérification:
 +<code bash>
 +grep 0123456789 /etc/pve/qemu-server/103.conf
 +scsi1: /dev/disk/by-id/nvme-WD_Blue_SN5000_4TB_0123456789,size=3907018584K
 +</code>
 +
 +Si on change d'avis, on peut toujours enlever le disque de la VM :
 +<code bash>
 +qm unlink 103 --idlist scsi1
 +</code>
informatique/logiciels/proxmox.1739542570.txt.gz · Last modified: 2025/02/14 14:16 by pteu