Forum KNX francophone / English KNX forum

Version complète : [TUTO] Proxmox Install
Vous consultez actuellement la version basse qualité d’un document. Voir la version complète avec le bon formatage.
Pages : 1 2
Proxmox est une solution de virtualisation, vous trouverez pas mal de site, blog ou video sur Youtube.

Ce post n'a pas pour but de faire un court sur la virtualisation, mais j'essairais de vous guider dans vos 1er pas pour bien 

Idea Préambule : Je ne prétend pas être un expert en Promox/Virtualisation/ZFS/Linux ou autre, je fais des choix qui sont les miens peut être pas forcément les plus judicieux, mais qui répondent a mon besoin.

Mon choix du jour ne sera peut être pas le même demain en fonction de mon apprentissage, en fonction de l'expérience que j'aurais acquis au fil du temps et en fonction de mes besoins.

-Documentation Officiel : https://pve.proxmox.com/pve-docs/
-Forum Officiel : https://forum.proxmox.com/
-Wifi Officiel : https://pve.proxmox.com/wiki/Main_Page

Voici un exemple de Configuration / Utilisation : 
PveRouter : Remplacement Livebox
-Carte Mere Asrock + Ryzen 3 4300GE
-Ram
-1xSSD mSATA
-2xSSD 1To RAID Miror (VM)
-1xSSD Nvme (Cache ZFS ?)
-1xHDD
-1xCarte Lan 1Gb
-1xCarte Lan Broadcom 2x10Gb SFP+

Total Lan : 2Gb + 2x10Gb SFP+

Pve1 : 
VM : Routeur Mikrotik CHR : Routage 2Gb, Livebox sur Lien 1Gb pour Telephonie si besoin, Backup via 4G ou LB sur 2eme Lien 1Gb
CT : PiHole1 (Serveur DNS Principal) , un autre PiHole est en Backup et prend le relais automatiquement si PiHole1 non joignable
CT : Unifi
CT : Jdo
CT : LogitechMediaServer

TODO : 
VM/CT : Grafana / InfluxDB ...
VM/CT : NodeRED
VM : HA
VM : openHab

Pve2:
VM : Routeur Mikrotik CHR (Secours) , nécessite basculement de l'entrée fibre
VM/CT : NAS Data Raidz2
CT : PiHole2
Video Youtube Interessante : Proxmox et/ou ZFS
https://www.youtube.com/c/TontonJo
Proxmox Full Course : https://www.youtube.com/watch?v=LCjuiIsw...F50bYa8Ulo
https://www.youtube.com/watch?v=swWgav-p...gpagFNLu-M
https://www.youtube.com/user/ElectronicsWizardry
https://www.youtube.com/c/apalrdsadventures
https://www.youtube.com/c/virtualizeeverything
https://www.youtube.com/c/TechnoTimLive
https://www.youtube.com/c/AdrienLinuxtricks
https://www.youtube.com/channel/UCX_iiZx...rbMoIsPScQ

Il y en a plein d'autres, mais bon voici un bon début. Beaucoup sont en anglais, mais le plus souvent on peut utiliser la traduction des sous-titres sous YT.

La chaine ZFSrocks qui est animé par un certain Christian Zengel (Un allemand qui pratique ZFS et proxmox depuis pas mal d'année ) est aussi très interessante.
https://www.youtube.com/channel/UCC0WuyO...OasZV878Yw
Certaines video commence a sortir en anglais, et  même si je ne comprend rien a l'allemand je me suis tappé quelques video qui avait l'air interessante.
https://www.youtube.com/watch?v=D1JiI5MfavI
Prérequis :
Il faut du matériel compatible avec la virtualisation : https://www.proxmox.com/en/proxmox-ve/requirements

Installation de Proxmox (Alias Pve):
Récuperer l'ISO de Pve sur le site de Proxmox : http://www.proxmox.com

Mettre Pve sur une clé USB avec un utilitaire comme etcher (Attention certains utilitaire comme rufus ne fonctionnait pas bien a une époque)

Conseil :
-A ce stade si votre PC dispose de plusieurs carte réseau, ne brancher qu'un seul câble, cela facilitera le repérage.
-Assurez vous que les option VT-x... / AMD-V ... sont bien activé dans votre bios.

Brancher la clé USB mettre sous tension et booter sur la clé.

1.Installation de Pve
-Choix du/des disque de destination et du partitionnement :

Moi je vais partir sur du ZFS en RAID0 avec un seul SSD.

Sur un SSD de 250Go, je le partitionne a 200Go (Ca laisse de la place pour de l'overprovsioning en cas de secteur défectueux. Je ne sais pas comment Linux gère ca, mais sous Windows certains fabriquant comme Samsung se serve de ce genre de pratique pour prolonger la durée de vie des SSD)

Je ne touche pas aux autres réglages.

[attachment=1968]

Administration Password & Email Address:
On défini ici le mot de passe root de Pve qui servira aussi a la connexion a l'interface WEB
On peut definir aussi une adresse mail.

-Config Reseau :
Si on a plusieurs port réseau et que l'on a qu'un cable de branché, l'interface sélectionné sera la bonne.
Sinon il faudra la choisir, via son adresse MAC ou au PIF

On défini un Non d'hote : pveMachin.home
Adresse Ip : 192.168.50.1 / 24 (/24 = Masque de sous Réseau 255.255.255.0)
Gateway : Adresse de votre routeur/BOX.
DNS Server : Adresse de votre routeur ou de votre serveur DNS favori ex: 1.1.1.1 / 8.8.8.8

A la fin de l'installation on pourra se connecter via un navigateur sur l'adresse : https://192.168.50.1:8006
Se connecteur a l'interface WEB avec votre Navigateur :

https://192.168.50.1:8006
Login : root
Mot de passe défini lors de l'installation

Import du Certificat Navigateur:

Si vous ne voulez pas avoir a chaque foi un message d'avertissement de votre navigateur vous indiquant que votre 
connexion n'est pas privée du style : 
[attachment=1969]

Je vous conseille la manipulation suivante : 

Récuperer le fichier : /etc/pve/pve-root-ca.pem sur votre Pve*

Il faut ensuite importer le certificat dans Windows et Firefox.
IE/Edge : Option Internet
Firefox : Importer les Certificat
Chrome : Utilise les certificat de Windows (il faudra peu être redémarrer Chrome après un import)


Menu Windows/Paramètre/Panneau de Configuration/Option Internet :
[attachment=1970]

Choisir le fichier pve-root-ca.pem
[attachment=1971]

Edge : la connexion doit passer sans avertissement.
Crome : il faudra peu etre le relancer

Firefox:
Firefox n'utilise pas les même certificat que Windows, il faut faire la manipulation suivante :

Edit->Preferences->Advanced
Choose the tab Encryption and click the button View Certificates
Choose Authorities tab and click the button Import
For trust settings choose to identify websites.
No more warnings but now the domain name is displayed.


*Outil pour se connecter sur son PVE :
-Console SSH : 
On peut utiliser l'interface web de Pve
  • Putty
  • Mobaxterm
  • mRemoteNG
-SSH pour Envoir/Récuperation de Fichier (de config :
  • Mobaxterm
  • mRemoteNG
Il y en a plein d'autres, perso je suis passé sur  Mobaxterm il y a quelque temps qui est bien sympa.
Je fais toujours 2 manipulations après chaque installation : (et avant de créer la moindre VM)
-Désactivation du message m'indiquant que j'ai pas de "Valid Subscription"
-Activation du Repo Gratuit pour les mises a jour de Pve sans quoi on est sur le Repo Payant et donc on ne pourra pas le mettre a jour

Il existe une multitude de Patch/Script ou autre.

J'en ai essayé quelques un et au final il y en a un qui m'a bien plu dans le principe.
L'idée c'est qu'il se lance après une mise a jour afin de patcher Pve au cas ou celui-ci aurais mis a jour le fichier modifié.
Du coup pas besoin de le relancer a la main, sauf si la routine qui affiche le message doit être modifié

PS : J'ai fait le git pour moi pas trop dans le but d'être partagé, ne vous fiez pas aux commentaires que je n'ai pas mis a jour etc... 

Je suis parti de ce script : https://github.com/kosmonavtika/pve-patch
J'ai regardé aussi ce que TontonJo avait fait là https://github.com/Tontonjo/proxmox_toolbox

En cas de besoin le site suivant est souvent bien a jour si il faut adapter la routine du patch : 
https://johnscs.com/remove-proxmox51-sub...on-notice/
Ce site décrit aussi les manip a réaliser si l'on veut faire la manip a la main.


Installation du Patch : 
-Selectionner votre dans l'interface WEB
-Ouvrir la console de notre Pve via le bouton >_Shell (en faut a droite)


A ce stade on est connecté en ROOT : Taper la commande suivante.

Code :
wget -qO - https://raw.githubusercontent.com/filou59/pve-patch/master/patch.sh | bash

Le script est télécharger puis installé, puis exécuté.

Pour voir si il est actif, déconnectez vous (Bouton en haut a droite root@pam > Logout)

On peut vider le cache du navigateur car parfois certaines donné reste en mémoire, puis on se reconnecte.

Le message après la connexion ne doit plus apparaitre.
Si l'on clique sur Updates puis Refresh on ne doit pas non plus avoir de message

PS : Lors de votre connexion je conseille de laisser l'interface WEB en anglais car ca permet de ne pas etre perdu lorsque l'on tombe sur un TUTO sur le net.
Mettre a jour son Pve

Choisir le Noeud puis Update

Cliquer sur Refresh
Cliquer sur >_Upgrade
Valider par la touche Enter a la question Do You Want to Continue ? si des mises a jour sont a effectuer.

[attachment=1972]

Si le kernel a été mis a jour par exemple, il faudra rebooter
Utilitaires : 

Dans la console :

Code :
apt update && apt install mc inxi htop ifupdown2 git sudo libsasl2-modules

Cela permet d'installer quelques petit utilitaire.
Configuration Mail / SmartD...


A Venir
ZFS : Créer un Pool ZFS

Node/Disks/ZFS > Create 
[attachment=1973]

Ensuite il suffit de : 
  • Donner un nom au pool, 
  • Choisir le type de RAID
  • Sélectionner les Disques
  • Compression : zstd (Mieux que ON?)
Note au sujet de la compression (A Vérifier) 
LZ4 : Plus Rapide
ZSTD : Compress Plus

[attachment=1974]

Le Pool est automatiquement ajouté si la case Add Storage est coché :
[attachment=1975]

Editer le Pool et cocher Thin Provision puis passez Block size a 64k
[attachment=1976]

Explication du Thin Provisionning:
Citation :With thin provisioning activated, only the blocks that the guest system actually use will be written to the storage.

Say for instance you create a VM with a 32GB hard disk, and after installing the guest system OS, the root file system of the VM contains 3 GB of data. In that case only 3GB are written to the storage, even if the guest VM sees a 32GB hard drive. In this way thin provisioning allows you to create disk images which are larger than the currently available storage blocks. You can create large disk images for your VMs, and when the need arises, add more disks to your storage without resizing the VMs' file systems.

All storage types which have the “Snapshots” feature also support thin provisioning.

Traduction : 
Citation :Lorsque le thin provisioning est activé, seuls les blocs que le système invité utilise réellement seront écrits sur le stockage.

Disons par exemple que vous créez une VM avec un disque dur de 32 Go, et qu'après avoir installé le système d'exploitation du système invité, le système de fichiers racine de la VM contient 3 Go de données. Dans ce cas, seuls 3 Go sont écrits sur le stockage, même si la VM invitée voit un disque dur de 32 Go. De cette façon, le thin provisioning vous permet de créer des images disque plus grandes que les blocs de stockage actuellement disponibles. Vous pouvez créer de grandes images de disque pour vos machines virtuelles et, lorsque le besoin s'en fait sentir, ajouter des disques supplémentaires à votre stockage sans redimensionner les systèmes de fichiers des machines virtuelles.

Tous les types de stockage dotés de la fonction "Snapshots" prennent également en charge le thin provisioning.
ZFS Create ISO...

Par défaut Pve va créer un Directory local ou l'on pourra mettre nos ISO/Template de Container ainsi que les Backup 

J'aime bien me faire un espace dédié et un peu plus parlant.

Je vais donc créer un Dossier ISO dans un de mes Pool.

Note : Si vous avez plusieurs HDD/SSD, vous prenez celui qui vous convient le mieux.

Dans la console : 
Code :
zfs create rpool/ISO
zfs get compression rpool/ISO

NAME   PROPERTY     VALUE           SOURCE

rpool  compression  on              local
On peut voir que Proxmox a mis simplement la compression sur ON

On peut donc choisir zstd ou lz4 via les commande suivantes et regarder ensuite le résultat :

Code :
zfs set compression=zstd rpool
zfs set compression=lz4 rpool
zfs get compression rpool

NAME   PROPERTY     VALUE           SOURCE

rpool  compression  zstd            local

zfs get compression rpool/ISO

NAME       PROPERTY     VALUE           SOURCE

rpool/ISO  compression  zstd            inherited from rpool

Note : Comme on peut le voir les paramètres sont hérités entre les parents et les enfants (rpool > rpool/ISO)

Maintenant il faut ajouter un Directory dans notre STORAGE : 
[attachment=1978]

ID = ISO
Path = /rpool/ISO
Content = ISO Image , Container Template
ZFS Create Backup_Snap

Faire un espace dédié pour les Backup et Snapshot:

Code :
zfs create rpoolData/Backup_Snap

Ajouter le Directory dans STORAGE sous proxmox > ZFS : Add Directory

ID: Backup_Snap
Path : /rpoolData/Backup_Snap
Content : VZDump backup file, Snippets
Faire le ménage dans le Storage Pve :

A ce Stade on peut retirer dans storage le directory local et le local-zfs
[attachment=1979]

Du coup il nous restera pour le moment 3 emplacements qui sont assez intuitifs : 

ISO : Ou l'on va stocker nos ISO ou nos modeles de container (Template)
Backup_Snap : Un emplacement "LOCAL" pour faire des backup ou Snapshot
rpoolData : C'est l'emplacement ou l'on pourra installer nos VM ou nos Container

Attention : Dans mon exemple j'utilise le même emplacement ou sont stocker mes images pour les backups, Il faudra veiller a ne pas saturer cet emplacement sous peine de manque d'espace pour les VM
Idealement, on pourra utiliser un autre emplacement Local voir Distant.
Réservé pour ZFS Cockpit

Cockpit est une interface graphique qui facilite le management sous linux, il existe une adaptation qui permet d'effectuer des commandes ZFS.

Je décrirais l'installation ultérieurement, il faut que je test.
Deplacement d'une VM vers un autre Hote Proxmox :

En attandant une version FR, voici une video qui explique comment déplacer une VM d'un Hote Pve vers un autre Hote en passant par un Backup stocké une machine Windows

https://www.youtube.com/watch?v=EhmVVBE-sMw
https://i12bretro.github.io/tutorials/0651.html
Petit Conseil (peu être déjà dit ailleurs mais on est jamais assez prudent)  :

J'ajouterais au passage que quelque soit la méthode choisi pour installer une VM ou un container LXC / Docker comme HomeAssitant / NodeRED / PiHole ou autre, que ce soit par vous même, en suivant un TUTO ou en utilisant un script d'installation automatique comme ceux proposé sur le post précédent , et avant de vous lancer tête baissé dans l'utilisation de votre service :

-N'hésitez pas a refaire l'installation plusieurs foi en adaptant ca a votre sauce, on a rarement ce que l'on veut du 1er coup.
-Assurez vous de bien comprendre et de bien définir les espaces de stockage , les emplacements des fichiers de config ... (config que l'on pourrait peu être sauvegarder par exemple)
-Une fois l'installation réussi pensez a faire un backup et un snapshot de votre VM/LXC

-Un snapshot avant la toute 1er config permet de repartir sur une base saine si par exemple on est mal parti et que l'on a foutu le bordel ou fait des essais et que l'on se rend compte qu'il faut repartir de 0

-Faite des snapshot régulier, il y a la manière automatique (via des outils zfs-autosnapshot) et la manière manuel , là c'est a vous d'y penser.

Effectuez au minimum un backup en local, ca peut vous permettre de repartir plus rapidement, mais je vous conseille d'avoir une 2nd machine sur laquelle vous devriez stocker vos backup
Un NAS ou une autre petite machine sur laquelle vous mettez Proxmox et sur laquelle vous pourriez mettre PBS (Proxmox Backup Server) en machine virtuelle qui est une solution de backup gratuite comme Pve  et qui vous permettra de faire des backup distant


Dernier petit conseil, avoir des Backup / Snapshot c'est bien , mais encore faut-il savoir comment s'en servir et encore faut-il qu'il soit vérifié :
-PBS permet de vérifié si un Backup est valide ou si il est corrompu.
-Il ne faut pas hésiter a faire des essais, en ayant pourquoi pas quelques Ddur / SSD d'avance, par exemple on change les disques qui sont dans la machine Proxmox pour partir sur une installation saine et on reinstall Pve puis on injecte les dernier Backup que l'on aurait fait juste avant.

-Si votre config Hard est composé d'un SSD pour l'installation de Pve et d'un autre pour les VM/LXC, là vous pouvez simplement remplacer votre SSD de boot, faire une reinstall de Pve , importer votre pool ZFS contenant vos VM.
Puis réinjecter la config de Pve que vous auriez préalablement sauvegarder.

Bref pausez-vous les bonnes questions. Il vaut mieux prendre du temps a faire ce genre de test plutot que de paniquer le jour un problème arrivera surtout qu'en général qu'en ca arrive c'est là que l'on se rend compte que l'on a pas tous les backup qu'il faudrait.
Merci du conseil on n’est jamais trop prudent surtout quand on passe en exploitation
je viens enfin de créer mon premier container, je suis passé par cette méthode:
ce lien
J'avais vu ton post mais surement pas saisi, la partie helpers.
Quand on est autodidacte on a tendance à louper parfois l'essentiel.
maintenant Nodered est bien actif avec HA.

Je rame actuellement avec l'initialisation de MariaDB pour changer l' 'admin'@'localhost' et le 'password'


sudo mysql

L'invite changera pourMariaDB [(none)]>

Créez un nouvel administrateur local (modifiez le nom d'utilisateur et le mot de passe en fonction de vos préférences)

Copie
CREATE USER 'admin'@'localhost' IDENTIFIED BY 'password';
Accordez les privilèges root à l'administrateur local (modifiez le nom d'utilisateur et le mot de passe pour qu'ils correspondent ci-dessus)

Copie
GRANT ALL ON *.* TO 'admin'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;
Maintenant, nous allons donner à l'utilisateur des privilèges root admin et un accès basé sur un mot de passe qui peut se connecter de n'importe où sur votre réseau local (LAN), qui a des adresses dans le sous-réseau 192.168.100.0/24. Il s'agit d'une amélioration car ouvrir un serveur MariaDB à Internet et accorder l'accès à tous les hôtes est une mauvaise pratique. Modifiez le nom d' utilisateur , le mot de passe et le sous- réseau en fonction de vos préférences :

Copie
GRANT ALL ON *.* TO 'admin'@'192.168.100.%' IDENTIFIED BY 'password' WITH GRANT OPTION;
Videz les privilèges pour vous assurer qu'ils sont enregistrés et disponibles dans la session en cours :

Copie
FLUSH PRIVILEGES;
Ensuite, quittez le shell MariaDB :

Copie
exit

Après cette modification, je perds la main sur la base de données, je ne sais pas m'y connecter.
Je pense que je vais passer pas mal de temps.
Mais je préfère y passer du temps maintenant, pour que toute ma structure autour de HA soit correcte avant d'aller plus avant dans mon HA final.

Le plus difficile dans cette partie proxmox, est d'assimiler vraiment les choses pour être ensuite réellement autonome.

Encore merci pour l'aide.
Hello Filou

Je viens d'essayer de faire un snapshot de mon install HA et cela fonctionne nickel par contre j'aurai 2 questions:

- quand on fait le swap, faut-il ou non inclure la RAM?
- comme toi j'ai créé un volume dédié pour mes snap (backup_snap) mais PVE me l'a enregistré sur mon storage (local-zfs). Il y a une manip particulière à faire pour prendre en compte le bon dossier?

pour info, Back_snap est en contenu "Fichier sauvegarde VZDump, Fragments" alors que local-zfs est en contenu "Image disque, Conteneur"
Comme dit plus haut, on n’est jamais trop prudent surtout quand on passe en exploitation.
Avant hier, j'ai platé ha en essayant de créer une icone personnalisée, et la désastre, des sauvegardes déjà bien anciennes.

Du coup, je me suis remis à bien faire mes sauvegardes, et en reprenant les indications de Filou, j'ai découvert le backup avec option Stop qui raccourci vraiment la durée des sauvegardes..!!
(07/02/2023, 11:51:50)Kevlille a écrit : [ -> ]Hello Filou

Je viens d'essayer de faire un snapshot de mon install HA et cela fonctionne nickel par contre j'aurai 2 questions:

- quand on fait le swap, faut-il ou non inclure la RAM?
- comme toi j'ai créé un volume dédié pour mes snap (backup_snap) mais PVE me l'a enregistré sur mon storage (local-zfs). Il y a une manip particulière à faire pour prendre en compte le bon dossier?

pour info, Back_snap est en contenu "Fichier sauvegarde VZDump, Fragments" alors que local-zfs est en contenu "Image disque, Conteneur"
Je suis en ZFS donc il n'y a pas de SWAP  Big Grin

Pour la localisation du Snapshot on ne peut pas la choisir, il me semble que le snapshot est sur le volume de la VM, c'est lié a ZFS en fait, c'est une fonctionalité de ce systeme de fichier. A vérifier ...

Vue que l'on ne peut pas supprimer Local-zfs, et moi je veux utiliser un autre espace de stockage, je désactive local-zfs.
Ensuite je stock tout dans un espace par exemple : rzm_data (rzm = Raid Zaid Miror) 

Pour les backup par contre tu peux choisir l'emplacement
(07/02/2023, 14:20:54)richardpub a écrit : [ -> ]Comme dit plus haut, on n’est jamais trop prudent surtout quand on passe en exploitation.
Avant hier, j'ai platé ha en essayant de créer une icone personnalisée, et la désastre, des sauvegardes déjà bien anciennes.
Tu peux aussi mettre en place des backup automatique, 
Il faut aller dans le Datacenter / Backup / Add : 
Et puis la tu vas créer un ou plusieurs Job avec la période voulu et en sélectionnant la ou les VM

1xJob Tous les Jours : Tu y selectionnes ta VM HA
1xJob 1 fois / Semaine, Ta VM HA + ta VM TOTO ... 


Ensuite pour Chaque Job tu peux choisir une Durée de Retention, 
Pour ton job Quotidien : 8 Jours
Pour ton Job Hebdo : 4 Semaine 
...
Tu peux faire un job / heure par exemple si tu fais bcp de modif importante, et en garder 24 par exemple...

Ne pas oublier le paramètre Retention en cas de backup automatique sinon quand le Disque sera plein ca sera la merde. Et donc ne pas se planter dans la quantité a garder.
Hello Filou

Yes je parlais de snapshot et non de swap... ;-)

Ah merde je n'avais pas prévu cet impossibilité de faire le snapshot sur un autre volume que celui de la VM... Merdoume.

Pas moyen de les bouger à la mano (ou automatisée) une fois le snapshot réalisé? Je vais fouiner sur le net
(07/02/2023, 15:27:57)filou59 a écrit : [ -> ]
(07/02/2023, 14:20:54)richardpub a écrit : [ -> ]Comme dit plus haut, on n’est jamais trop prudent surtout quand on passe en exploitation.
Avant hier, j'ai platé ha en essayant de créer une icone personnalisée, et la désastre, des sauvegardes déjà bien anciennes.
Tu peux aussi mettre en place des backup automatique, 
Il faut aller dans le Datacenter / Backup / Add : 
Et puis la tu vas créer un ou plusieurs Job avec la période voulu et en sélectionnant la ou les VM

1xJob Tous les Jours : Tu y selectionnes ta VM HA
1xJob 1 fois / Semaine, Ta VM HA + ta VM TOTO ... 


Ensuite pour Chaque Job tu peux choisir une Durée de Retention, 
Pour ton job Quotidien : 8 Jours
Pour ton Job Hebdo : 4 Semaine 
...
Tu peux faire un job / heure par exemple si tu fais bcp de modif importante, et en garder 24 par exemple...

Ne pas oublier le paramètre Retention en cas de backup automatique sinon quand le Disque sera plein ca sera la merde. Et donc ne pas se planter dans la quantité a garder.
Merci pour cette explication, qui va me permettre de  mettre en place ce que je viens de voir dans les tutos correspondants à un de tes liens.
Rien ne vaut un bon plantage pour mieux comprendre..!!!
Pages : 1 2