Aller au contenu principal

Proxmox

1. Informations​

Pour plus de détails sur l'architecture, voir le schéma d'architecture physique

1.1. pve1.home.lab​

  • interfaces réseau
    • eth0 : 192.168.50.201 (admin) pve1.home.lab
    • eth1 : 192.168.51.201 (glusterfs) gfs1.home.lab
    • eth2 : 192.168.20.201 (wan) adm-pve1.home.lab

1.2. pve2.home.lab​

  • interfaces réseau
    • eth0 : 192.168.50.202 (admin) pve2.home.lab
    • eth1 : 192.168.51.202 (glusterfs) gfs2.home.lab
    • eth2 : 192.168.20.202 (admin) adm-pve2.home.lab

2. Documentations​

3. Partitionnement du disque​

3.1. Description​

  • Partition 1 : system 150Go
    • lv_root : 20Go, monté dans /
    • lv_home : 20Go, monté dans /home
    • lv_tmp : 8Go, monté dans /tmp
    • lv_swap : 16Go pour la swap
    • lv_glusterd : 8Go, monté dans /var/lib/glusterd
    • lv_log : 5Go, monté dans /var/log
    • lv_data : 20Go
  • Partition 2 : stockage 500Go

3.2. Créer les volumes logiques LVM​

  • Si besoin, supprimer le volume logique /dev/pve/data
$ sudo lvremove /dev/pve/data
  • Créer les volumes logiques
$ sudo lvcreate -L 20G -n root pve
$ sudo lvcreate -L 20G -n home pve
$ sudo lvcreate -L 8G -n tmp pve
$ sudo lvcreate -L 16G -n swap pve
$ sudo lvcreate -L 8G -n glusterd pve
$ sudo lvcreate -L 5G -n log pve
$ sudo lvcreate -L 20G -n data pve

3.3. Créer les systèmes de fichier​

$ sudo mkfs.ext4 /dev/pve/data
$ sudo mkfs.ext4 /dev/pve/glusterd
$ sudo mkfs.ext4 /dev/pve/home
$ sudo mkfs.ext4 /dev/pve/log
$ sudo mkfs.ext4 /dev/pve/tmp

3.4. Modifier le fichier fstab​

  • Modifier le fichier /etc/fstab
/dev/pve/root        /                xfs   defaults 0 1

/dev/pve/glusterd /var/lib/glusterd ext4 defaults 0 1
/dev/pve/home /home ext4 nosuid,nodev,noexec 0 2
/dev/pve/log /var/log ext4 nosuid,nodev,noexec 0 2
/dev/pve/swap none swap sw 0 0
/dev/pve/tmp /tmp ext4 nosuid,nodev,noexec 0 2

proc /proc defaults 0 0
  • Créer les répertoires nécessaires
$ sudo mkdir -p /var/lib/glusterd
$ sudo mkdir /var/log/pveproxy
$ sudo chmod 755 /var/log/pveproxy
$ sudo chown www-data:www-data /var/log/pveproxy
  • Monter les partitions
$ sudo systemctl daemon-reload
$ sudo mount -a

4. Configuration réseau​

https://pve.proxmox.com/pve-docs/chapter-sysadmin.html#_disabling_ipv6_on_the_node

4.1. Configurer certains paramètres réseau du kernel​

  • Créer le fichier `/etc/sysctl.d/proxmox.conf
/etc/sysctl.d/proxmox.conf
net.ipv4.conf.all.rp_filter=1
net.ipv4.icmp_echo_ignore_broadcasts=1
net.ipv4.ip_forward=1
  • Appliquer les paramètres kernel
$ sudo sysctl -p /etc/sysctl.d/proxmox.conf

4.2. Désactiver IPv6​

  • Créer le fichier /etc/sysctl.d/disable-ipv6.conf
/etc/sysctl.d/disable-ipv6.conf
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
  • Appliquer les paramètres kernel
$ sudo sysctl -p /etc/sysctl.d/disable-ipv6.conf
  • Modifier le fichier /etc/default/grub
/etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="quiet ipv6.disable=1"
GRUB_CMDLINE_LINUX="ipv6.disable=1"
  • Regénérer la configuration de grub
$ sudo update-grub
  • Rebooter

4.3. Configurer les interfaces réseau de pve1​

  • Modifier le fichier /etc/network/interfaces
/etc/network/interfaces
source /etc/network/interfaces.d/*

auto lo
iface lo inet loopback

auto enp1s0
iface enp1s0 inet manual

auto vmbr0
iface vmbr0 inet static
address 192.168.50.201/24
bridge-ports enp1s0
bridge-stp off
bridge-fd 0

auto enp3s0
iface enp3s0 inet static
address 192.168.51.201/24

auto wlp2s0
iface wlp2s0 inet static
wpa-ssid "SSID"
wpa-psk "changeme"
address 192.168.20.201/24
gateway 192.168.20.1

4.4. Configurer les interfaces réseau de pve2​

  • Modifier le fichier /etc/network/interfaces
/etc/network/interfaces
source /etc/network/interfaces.d/*

auto lo
iface lo inet loopback

auto enp1s0
iface enp1s0 inet manual

auto vmbr0
iface vmbr0 inet static
address 192.168.50.202/24
bridge-ports enp1s0
bridge-stp off
bridge-fd 0

auto enp3s0
iface enp3s0 inet static
address 192.168.51.202/24

auto wlp2s0
iface wlp2s0 inet static
wpa-ssid "SSID"
wpa-psk "changeme"
address 192.168.20.202/24
gateway 192.168.20.1

4.5. Configurer le DNS​

  • Modifier le fichier /etc/hosts
/etc/hosts
192.168.50.201 pve1.home.lab pve1
192.168.50.202 pve2.home.lab pve2

192.168.51.201 gfs1.home.lab gfs1
192.168.51.202 gfs2.home.lab gfs2

192.168.20.201 adm-pve1.home.lab adm-pve1
192.168.20.202 adm-pve2.home.lab adm-pve2

5. Changement de l'adresse des dépôts proxmox​

5.1. Modifier le fichier ceph.list​

  • Modifier le fichier /etc/apt/sources.list.d/ceph.list
#deb https://enterprise.proxmox.com/debian/ceph-quincy bookworm enterprise
deb http://download.proxmox.com/debian/ceph-squid bookworm no-subscription

5.2. Modifier le fichier pve-enterprise.list​

  • Modifier le fichier /etc/apt/sources.list.d/pve-enterprise.list
#deb https://enterprise.proxmox.com/debian/pve bookworm pve-enterprise

deb http://ftp.debian.org/debian bookworm main contrib
deb http://ftp.debian.org/debian bookworm-updates main contrib

# Proxmox VE pve-no-subscription repository provided by proxmox.com,
# NOT recommended for production use
deb http://download.proxmox.com/debian/pve bookworm pve-no-subscription

# security updates
deb http://security.debian.org/debian-security bookworm-security main contrib

6. Création du stockage répliqué GlusterFS​

6.1. Installer GlusterFS​

  • Installer le package glusterfs-server
$ sudo apt-get update  
$ sudo apt install glusterfs-server
$ sudo systemctl enable glusterd
$ sudo systemctl start glusterd

6.2. Configurer le firewall​

  • Ouvrir les ports du service glusterfs sur firewalld
$ sudo firewall-cmd --add-service=glusterfs --permanent
$ sudo firewall-cmd --reload

6.3. Configurer un stockage répliqué entre les noeuds pve1 et pve2​

  • sur pve1
$ sudo gluster peer probe gfs2
  • sur pve2
$ sudo gluster peer probe gfs1
  • sur pve1 ou pve2
$ sudo gluster peer status
Number of Peers: 1

Hostname: gfs2
Uuid: 68c8db18-615a-478a-a2ba-b28f3dded376
State: Peer in Cluster (Connected)

6.4. Ajouter un gluster volume gv0​

  • sur pve1
$ sudo mkfs.xfs -i size=512 /dev/sda4 -f
$ sudo mkdir -p /data/brick1
$ sudo echo "/dev/sda4 /data/brick1 xfs default 0 2" >> /etc/fstab
$ sudo systemctl daemon-reload
$ sudo mount -a
  • sur pve2
$ sudo mkfs.xfs -i size=512 /dev/sda4 -f
$ sudo mkdir -p /data/brick1
$ sudo echo "/dev/sda4 /data/brick1 xfs default 0 2" >> /etc/fstab
$ sudo systemctl daemon-reload
$ sudo mount -a
  • sur pve1
$ sudo mkdir -p /data/brick1/gv0
$ sudo gluster volume create gv0 replica 2 gfs1:/data/brick1/gv0 gfs2:/data/brick1/gv0 force
$ sudo gluster volume start gv0
  • Vérifier le statut du volume gluster
$ sudo gluster vol info gv0
Volume Name: gv0 Type: Replicate
Volume ID: b44fa185-4bfd-459d-afa1-4842d86a2a7d
Status: Started
Snapshot Count: 0
Number of Bricks: 1 x 2 = 2
Transport-type: tcp
Bricks:
Brick1: gfs1:/data/brick1/gv0
Brick2: gfs2:/data/brick1/gv0
Options Reconfigured:
cluster.granular-entry-heal: on
storage.fips-mode-rchecksum: on
transport.address-family: inet
nfs.disable: on
performance.client-io-threads: off
$ sudo gluster vol status gv0
Status of volume: gv0
Gluster process TCP Port RDMA Port Online Pid
------------------------------------------------------------------------------
Brick gfs1:/data/brick1/gv0 50349 0 Y 41267
Brick gfs2:/data/brick1/gv0 49518 0 Y 29622
Self-heal Daemon on localhost N/A N/A Y 41284
Self-heal Daemon on gfs2 N/A N/A Y 29641
Task Status of Volume gv0
------------------------------------------------------------------------------

There are no active volume tasks
$ sudo gluster volume profile gv0 start
$ sudo gluster volume profile gv0 info

6.5. Eviter le split-brain​

$ sudo gluster vol set gv0 cluster.heal-timeout 5  
$ sudo gluster volume heal gv0 enable
$ sudo gluster vol set gv0 cluster.quorum-reads false
$ sudo gluster vol set gv0 cluster.quorum-count 1
$ sudo gluster vol set gv0 network.ping-timeout 2
$ sudo gluster volume set gv0 cluster.favorite-child-policy mtime
$ sudo gluster volume heal gv0 granular-entry-heal enable
$ sudo gluster volume set gv0 cluster.data-self-heal-algorithm full
$ sudo gluster volume set gv0 performance.io-thread-count 8

6.6. Activer le chiffrement TLS​

7. Création du cluster Proxmox​

7.1. Ajouter le stockage glusterFS sur les noeuds pve1 et pve2​

  • Aller dans le menu : Datacenter > Storage

  • Cliquer sur le bouton : Add: GlusterFS

  • Vérifier que le volume gv0 apparaît dans l'arborescence du noeud pve1

  • Afficher les informations sur le volume gluster gv0 sur le noeud pve1

  • Afficher les informations sur le volume gluster gv0 sur le noeud pve2

7.2. Créer le cluster Proxmox​

  • Sur pve1, cliquer sur le menu Datacenter > Cluster et cliquer sur le bouton Create Cluster

  • Donner un nom au cluster (par exemple : cl-homelab) et choisir l'interface réseau vmbr0

  • Attendre la fin de la tâche de création du cluster Proxmox

  • Le cluster Proxmox ne comporte que le noeud pve1 pour l'instant

  • Cliquer sur le bouton Join Information afin de récupérer les informations pour rejoindre le cluster Proxmox

  • sur pve2, aller dans le menu Datacenter > Cluster et cliquer sur le bouton Join Cluster

  • Recopier les informations du noeud pve1

  • Attendre la fin de la tâche de jonction du noeud pve2 au cluster Proxmox

  • Les deux noeuds du cluster Proxmox devraient apparaître dans l'interface web : pve1 et pve2