Prérequis
Attention:
- Les noeuds doivent être déclarés dans un DNS ou dans le fichier /etc/hosts de chaque noeud.
- Les noeuds doivent tous être dans le même réseau IP.
Note:
Pour l'architecture de test définie, nous n'aurons qu'une seule IP par noeud disponible (voir la section sur le minimum requis pour un environnement de production).
Pour une plateforme de test1)
- CPU: 64bit (Intel EMT64 or AMD64)
- Carte mère / CPU compatible Intel VT / AMD-V pour la prise en charge de la virtualisation complète KVM
- RAM: 1 Go de RAM, plus de la RAM supplémentaire pour les VMs
- Disque dur
- Une carte réseau
Architecture déployer
Pour la création du cluster, nous partirons sur trois noeuds (nommés respectivement px1, px2, px3). un quatrième noeud (pxtest) sera intégré plus tard afin de tester l'ajout et la suppression d'un noeud à un cluster existant.
Sur chaque machine, un volume est dédié au système et un autre aux datas (VMs)
Schéma du cluster:
Installation système
Récupérer l’image ISO via le site de Proxmox (Proxmox)
Graver l’image ISO sur un CD ou une clé USB bootable et lancer l'installation :
Valider la licence.
L’installation se fera par défaut sur le premier disque.
Le partitionnement se fait automatiquement en fonction des valeurs par défaut.
Vous pouvez accéder aux options du disque en cliquant sur “options”.
Note:
Lors de l'installation, l’installeur crée un “Volume Group” (VG) appelé “pve”, et des “Logical Volumes” (LVs) supplémentaires appelés “root”, “data” et “swap”.
Les options de ces volumes sont contrôlés par :
Filesystem :
- Ext3
- Ext4 (Valeur par défaut)
- Xfs
- Zfs (Raid 0)
- Zfs (Raid 1)
- Zfs (Raid 10)
- Zfs (Raidz-1)
- Zfs (Raidz-2)
- Zfs (Raidz-3)
hdsize : Définit la taille totale du disque dur a utiliser. De cette façon, vous pouvez économiser de l’espace libre sur le disque dur pour d'autres partitions (ex: un PV et un VG supplémentaires sur le même disque dur pouvant être utilisés pour le stockage LVM).
swapsize : Définit la taille du volume de swap. La valeur par défaut est la taille de la mémoire installée, minimum 4 Go et maximum 8 Go. La valeur résultante ne peut pas être supérieure à hdsize / 8.
Note : Si définie à 0, aucun volume de swap ne sera créé.
maxroot : Définit la taille maximale du volume racine, qui stocke le système d'exploitation. La limite maximale de la taille du volume racine est hdsize / 4.
maxvz : Définit la taille maximale du volume de données. La taille actuelle du volume de données est la suivante:
datasize = hdsize - rootsize - swapsize - minfree
Où datasize ne peut pas être plus grand que maxvz.
Note : Dans le cas de LVM thin, le pool de données ne sera créé que si datasize est supérieur à 4 Go.
Note : Si définie à 0, aucun volume de données ne sera créé et la configuration du stockage sera adaptée en conséquence.
minfree : Définit la quantité d'espace libre restant dans le groupe de volumes LVM “pve”. Avec plus de 128 Go de stockage disponible, la valeur par défaut est de 16 Go, sinon hdsize / 8 sera appliqué.
Note : LVM nécessite de l'espace libre dans le VG pour la création de snapshots (non requis pour les snapshots lvmthin).
Astuces de performance ZFS
ZFS utilise beaucoup de mémoire, il est donc préférable d'ajouter de la RAM supplémentaire si vous souhaitez utiliser ZFS. Un bon calcul est de 4 Go + 1 Go de RAM pour chaque To brut d'espace disque.
ZFS fournit également la fonctionnalité pour utiliser un disque SSD rapide comme cache en écriture. Le cache en écriture est appelé le journal d'intention ZFS (ZIL). Vous pouvez l'ajouter après l'installation à l'aide de la commande suivante:
zpool add <pool-name> log </dev/path_to_fast_ssd>
Sélection du pays, de la région et du clavier.
Sélection du mot de passe root et de l’adresse mail pour recevoir les alertes du serveur.
Renseigner la configuration pour l’interface réseau principale ainsi que le nom d’hôte.
L’installation démarre :
Une fois l’installation terminé, cliquer sur “reboot” puis enlever le média d’installation.
L’installation est terminée, vous pouvez dès lors vous connecter à l’interface d’administration via un navigateur.
Interface web de gestion
Vous pouvez maintenant vous connecter à l'interface web de gestion depuis n'importe lequel des noeuds.
https://192.168.1.110:8006/
https://px1.e-mcr.net:8006/
La première connexion vous donne un aperçu des ressources de votre Cluster, dans notre cas seul un noeud étant installé, on ne verra que les ressources disponibles de cet hyperviseur.
L'interface web de gestion se décompose en 5 zones:
Note:
- L'entête, permet la recherche de ressources, la création de VM/Conteneur, l'accès à la documentation et Déconnexion.
- Vue des ressources : plusieurs vues sont disponibles (“Server View”, “Folder View”, “Storage View” et “Pool View”).
- Contenu : contrôle des ressources en fonction de la ressource sélectionnée dans la zone 2.
- Contenu : zone principale permettant en fonction de la ressource sélectionnée dans la zone 2 et du menu en zone 3.
- Accès aux logs des tâches réalisées sur le noeud sélectionné en zone 2 et aux logs du cluster dans sa globalité.
Les zones 3 et 4 regroupent la gestion pour chaque ressource et ses spécificités, que cela soit un noeud, une VM/Conteneur, un stockage ou un pool de ressources.
Dans la gestion du cluster, nous reviendrons sur chaque partie de l'interface graphique.
Préparation du système
A faire sur l’ensemble des hyperviseurs après installation du système de base.
Licence entreprise
Commenter la ligne du fichier /etc/apt/sources.list.d/pve-enterprise.list, afin de désactiver le repo avec licence et activation du repo sans souscription Proxmox.
root@px1:~# nano /etc/apt/sources.list.d/pve-enterprise.list #deb https://enterprise.proxmox.com/debian/pve stretch pve-enterprise deb http://download.proxmox.com/debian/pve stretch pve-no-subscription
Lors de la connexion à l’interface de gestion (quelques soit l’hôte), le message suivant apparaît :
Pour supprimer le message à chaque connexion à l’interface, il faut éditer le fichier /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js et chercher la ligne (ligne 353) :
if (data.status !== 'Active') {
Et la remplacez par :
if (false) {
root@px1:~# nano /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js // if (data.status !== 'Active') { if (false) {
Pensez à vider le cache de votre navigateur ! ( CTRL + F5 )
Mise à jour système
Attention:
A savoir, lorsque vous lancerez des mises à jour du kernel, il est fortement recommandé d'effectuer un re-démarrage du système.
Il faudra être attentif lorsque cela est fait via la ligne de commande, vous n'aurez pas d'avertissement d'une mise à jour du kernel et de la nécessité d'effectuer un re-démarrage.
Ce qui n'est pas le cas lorsque cela est effectué via l'interface web.
Voir la fin de l'application des mises à jour “ligne de commande” Vs “Interface web”
Ligne de commande
Mise à jour des dépôts :
root@px1:~# apt-get update Ign:1 http://ftp.fr.debian.org/debian stretch InRelease Hit:2 http://security.debian.org stretch/updates InRelease Hit:3 http://ftp.fr.debian.org/debian stretch-updates InRelease Hit:4 http://ftp.fr.debian.org/debian stretch Release Get:5 http://download.proxmox.com/debian/pve stretch InRelease [3,052 B] Get:7 http://download.proxmox.com/debian/pve stretch/pve-no-subscription amd64 Packages [291 kB] Fetched 294 kB in 1s (183 kB/s) Reading package lists... Done
Installation des mises à jour disponibles :
root@px1:~# apt-get dist-upgrade Reading package lists... Done Building dependency tree Reading state information... Done Calculating upgrade... Done The following NEW packages will be installed: ceph-fuse libgoogle-perftools4 libtcmalloc-minimal4 libunwind8 pve-kernel-4.15.18-1-pve The following packages will be upgraded: base-files ca-certificates dpkg file fuse gnupg gnupg-agent gpgv iproute2 libc-bin libc-dev-bin libc-l10n libc6 libc6-dev libcups2 libcurl3-gnutls libfuse2 libgcrypt20 libgnutls-openssl27 libgnutls30 libgnutlsxx28 libldap-2.4-2 libldap-common libmagic-mgc libmagic1 libnvpair1linux libpam-systemd libperl5.24 libprocps6 libpve-apiclient-perl libpve-common-perl libpve-guest-common-perl libpve-http-server-perl libpve-storage-perl libsystemd0 libudev1 libuutil1linux libxapian30 libzfs2linux libzpool2linux linux-libc-dev locales multiarch-support novnc-pve patch perl perl-base perl-modules-5.24 procps proxmox-widget-toolkit pve-cluster pve-container pve-docs pve-edk2-firmware pve-firewall pve-firmware pve-i18n pve-kernel-4.15 pve-manager pve-qemu-kvm python3-reportbug qemu-server reportbug spl systemd systemd-sysv tzdata udev zfs-initramfs zfsutils-linux 70 upgraded, 5 newly installed, 0 to remove and 0 not upgraded. Need to get 146 MB of archives. After this operation, 270 MB of additional disk space will be used. Do you want to continue? [Y/n] y Get:1 http://security.debian.org stretch/updates/main amd64 linux-libc-dev amd64 4.9.110-3+deb9u1 [1,347 kB] Get:2 http://ftp.fr.debian.org/debian stretch/main amd64 base-files amd64 9.9+deb9u5 [67.3 kB] Get:3 http://ftp.fr.debian.org/debian stretch/main amd64 dpkg amd64 1.18.25 [2,115 kB] Get:4 http://download.proxmox.com/debian/pve stretch/pve-no-subscription amd64 iproute2 amd64 4.15.0-5 [724 kB] Get:5 http://security.debian.org stretch/updates/main amd64 fuse amd64 2.9.7-1+deb9u1 [71.3 kB] Get:6 http://security.debian.org stretch/updates/main amd64 libfuse2 amd64 2.9.7-1+deb9u1 [126 kB] Get:7 http://security.debian.org stretch/updates/main amd64 libcups2 amd64 2.2.1-8+deb9u2 [306 kB] Get:8 http://download.proxmox.com/debian/pve stretch/pve-no-subscription amd64 libuutil1linux amd64 0.7.9-pve1~bpo9 [50.0 kB] Get:9 http://download.proxmox.com/debian/pve stretch/pve-no-subscription amd64 libnvpair1linux amd64 0.7.9-pve1~bpo9 [47.3 kB] Get:10 http://download.proxmox.com/debian/pve stretch/pve-no-subscription amd64 libpve-apiclient-perl all 2.0-5 [6,434 B] Get:11 http://download.proxmox.com/debian/pve stretch/pve-no-subscription amd64 libpve-http-server-perl all 2.0-9 [95.8 kB] Get:12 http://download.proxmox.com/debian/pve stretch/pve-no-subscription amd64 libpve-storage-perl all 5.0-24 [80.9 kB] Get:13 http://download.proxmox.com/debian/pve stretch/pve-no-subscription amd64 novnc-pve amd64 1.0.0-2 [497 kB] Get:14 http://ftp.fr.debian.org/debian stretch/main amd64 libperl5.24 amd64 5.24.1-3+deb9u4 [3,522 kB] Get:15 http://download.proxmox.com/debian/pve stretch/pve-no-subscription amd64 proxmox-widget-toolkit all 1.0-19 [39.7 kB] Get:16 http://download.proxmox.com/debian/pve stretch/pve-no-subscription amd64 pve-cluster amd64 5.0-29 [137 kB] Get:17 http://download.proxmox.com/debian/pve stretch/pve-no-subscription amd64 libpve-guest-common-perl all 2.0-17 [16.7 kB] Get:18 http://download.proxmox.com/debian/pve stretch/pve-no-subscription amd64 pve-manager amd64 5.2-6 [1,917 kB] Get:19 http://download.proxmox.com/debian/pve stretch/pve-no-subscription amd64 qemu-server amd64 5.0-30 [167 kB] Get:20 http://ftp.fr.debian.org/debian stretch/main amd64 perl amd64 5.24.1-3+deb9u4 [218 kB] Get:21 http://download.proxmox.com/debian/pve stretch/pve-no-subscription amd64 libpve-common-perl all 5.0-37 [89.4 kB] Get:22 http://download.proxmox.com/debian/pve stretch/pve-no-subscription amd64 pve-container all 2.0-24 [94.3 kB] Get:23 http://ftp.fr.debian.org/debian stretch/main amd64 perl-base amd64 5.24.1-3+deb9u4 [1,345 kB] Get:24 http://download.proxmox.com/debian/pve stretch/pve-no-subscription amd64 pve-docs all 5.2-5 [7,580 kB] Get:25 http://ftp.fr.debian.org/debian stretch/main amd64 perl-modules-5.24 all 5.24.1-3+deb9u4 [2,724 kB] Get:26 http://ftp.fr.debian.org/debian stretch/main amd64 libc6-dev amd64 2.24-11+deb9u3 [2,361 kB] Get:27 http://ftp.fr.debian.org/debian stretch/main amd64 libc-dev-bin amd64 2.24-11+deb9u3 [258 kB] Get:28 http://ftp.fr.debian.org/debian stretch/main amd64 libc6 amd64 2.24-11+deb9u3 [2,693 kB] Get:29 http://download.proxmox.com/debian/pve stretch/pve-no-subscription amd64 pve-firewall amd64 3.0-13 [63.1 kB] Get:30 http://download.proxmox.com/debian/pve stretch/pve-no-subscription amd64 pve-i18n all 1.0-6 [62.5 kB] Get:31 http://download.proxmox.com/debian/pve stretch/pve-no-subscription amd64 pve-qemu-kvm amd64 2.11.2-1 [6,808 kB] Get:32 http://ftp.fr.debian.org/debian stretch/main amd64 libc-bin amd64 2.24-11+deb9u3 [779 kB] Get:33 http://ftp.fr.debian.org/debian stretch/main amd64 systemd-sysv amd64 232-25+deb9u4 [81.3 kB] Get:34 http://ftp.fr.debian.org/debian stretch/main amd64 libpam-systemd amd64 232-25+deb9u4 [188 kB] Get:35 http://ftp.fr.debian.org/debian stretch/main amd64 libsystemd0 amd64 232-25+deb9u4 [280 kB] Get:36 http://ftp.fr.debian.org/debian stretch/main amd64 systemd amd64 232-25+deb9u4 [2,468 kB] Get:37 http://ftp.fr.debian.org/debian stretch/main amd64 udev amd64 232-25+deb9u4 [1,115 kB] Get:38 http://ftp.fr.debian.org/debian stretch/main amd64 libudev1 amd64 232-25+deb9u4 [125 kB] Get:39 http://ftp.fr.debian.org/debian stretch/main amd64 libprocps6 amd64 2:3.3.12-3+deb9u1 [58.5 kB] Get:40 http://ftp.fr.debian.org/debian stretch/main amd64 procps amd64 2:3.3.12-3+deb9u1 [250 kB] Get:41 http://ftp.fr.debian.org/debian stretch/main amd64 libgcrypt20 amd64 1.7.6-2+deb9u3 [524 kB] Get:42 http://download.proxmox.com/debian/pve stretch/pve-no-subscription amd64 pve-edk2-firmware all 1.20180612-1 [896 kB] Get:43 http://ftp.fr.debian.org/debian stretch/main amd64 multiarch-support amd64 2.24-11+deb9u3 [200 kB] Get:44 http://ftp.fr.debian.org/debian stretch/main amd64 gpgv amd64 2.1.18-8~deb9u2 [480 kB] Get:45 http://download.proxmox.com/debian/pve stretch/pve-no-subscription amd64 libzpool2linux amd64 0.7.9-pve1~bpo9 [562 kB] Get:46 http://ftp.fr.debian.org/debian stretch/main amd64 tzdata all 2018e-0+deb9u1 [267 kB] Get:47 http://download.proxmox.com/debian/pve stretch/pve-no-subscription amd64 libzfs2linux amd64 0.7.9-pve1~bpo9 [139 kB] Get:48 http://download.proxmox.com/debian/pve stretch/pve-no-subscription amd64 pve-firmware all 2.0-5 [36.3 MB] Get:49 http://ftp.fr.debian.org/debian stretch/main amd64 gnupg amd64 2.1.18-8~deb9u2 [1,125 kB] Get:50 http://ftp.fr.debian.org/debian stretch/main amd64 gnupg-agent amd64 2.1.18-8~deb9u2 [553 kB] Get:51 http://ftp.fr.debian.org/debian stretch/main amd64 libxapian30 amd64 1.4.3-2+deb9u1 [1,067 kB] Get:52 http://ftp.fr.debian.org/debian stretch/main amd64 file amd64 1:5.30-1+deb9u2 [64.1 kB] Get:53 http://ftp.fr.debian.org/debian stretch/main amd64 libmagic1 amd64 1:5.30-1+deb9u2 [111 kB] Get:54 http://ftp.fr.debian.org/debian stretch/main amd64 libmagic-mgc amd64 1:5.30-1+deb9u2 [222 kB] Get:55 http://ftp.fr.debian.org/debian stretch/main amd64 libc-l10n all 2.24-11+deb9u3 [820 kB] Get:56 http://ftp.fr.debian.org/debian stretch/main amd64 libgnutlsxx28 amd64 3.5.8-5+deb9u3 [13.0 kB] Get:57 http://ftp.fr.debian.org/debian stretch/main amd64 libgnutls-openssl27 amd64 3.5.8-5+deb9u3 [184 kB] Get:58 http://ftp.fr.debian.org/debian stretch/main amd64 libgnutls30 amd64 3.5.8-5+deb9u3 [895 kB] Get:59 http://ftp.fr.debian.org/debian stretch/main amd64 libldap-common all 2.4.44+dfsg-5+deb9u2 [85.5 kB] Get:60 http://ftp.fr.debian.org/debian stretch/main amd64 libldap-2.4-2 amd64 2.4.44+dfsg-5+deb9u2 [219 kB] Get:61 http://ftp.fr.debian.org/debian stretch/main amd64 locales all 2.24-11+deb9u3 [3,287 kB] Get:62 http://ftp.fr.debian.org/debian stretch/main amd64 reportbug all 7.1.7+deb9u2 [128 kB] Get:63 http://ftp.fr.debian.org/debian stretch/main amd64 python3-reportbug all 7.1.7+deb9u2 [130 kB] Get:64 http://ftp.fr.debian.org/debian stretch/main amd64 ca-certificates all 20161130+nmu1+deb9u1 [182 kB] Get:65 http://ftp.fr.debian.org/debian stretch/main amd64 libtcmalloc-minimal4 amd64 2.5-2.2 [121 kB] Get:66 http://ftp.fr.debian.org/debian stretch/main amd64 libunwind8 amd64 1.1-4.1 [48.7 kB] Get:67 http://ftp.fr.debian.org/debian stretch/main amd64 libgoogle-perftools4 amd64 2.5-2.2 [224 kB] Get:68 http://ftp.fr.debian.org/debian stretch/main amd64 ceph-fuse amd64 10.2.5-7.2 [2,824 kB] Get:69 http://ftp.fr.debian.org/debian stretch/main amd64 libcurl3-gnutls amd64 7.52.1-5+deb9u6 [290 kB] Get:70 http://ftp.fr.debian.org/debian stretch/main amd64 patch amd64 2.7.5-1+deb9u1 [112 kB] Get:71 http://download.proxmox.com/debian/pve stretch/pve-no-subscription amd64 pve-kernel-4.15.18-1-pve amd64 4.15.18-17 [52.5 MB] Get:72 http://download.proxmox.com/debian/pve stretch/pve-no-subscription amd64 pve-kernel-4.15 all 5.2-4 [2,336 B] Get:73 http://download.proxmox.com/debian/pve stretch/pve-no-subscription amd64 spl amd64 0.7.9-pve1~bpo9 [15.5 kB] Get:74 http://download.proxmox.com/debian/pve stretch/pve-no-subscription amd64 zfsutils-linux amd64 0.7.9-pve1~bpo9 [286 kB] Get:75 http://download.proxmox.com/debian/pve stretch/pve-no-subscription amd64 zfs-initramfs all 0.7.9-pve1~bpo9 [26.6 kB] Fetched 146 MB in 2min 39s (916 kB/s) Reading changelogs... Done Extracting templates from packages: 100% Preconfiguring packages ... (Reading database ... 40438 files and directories currently installed.) Preparing to unpack .../base-files_9.9+deb9u5_amd64.deb ... Unpacking base-files (9.9+deb9u5) over (9.9+deb9u4) ... Setting up base-files (9.9+deb9u5) ... Installing new version of config file /etc/debian_version ... (Reading database ... 40438 files and directories currently installed.) Preparing to unpack .../dpkg_1.18.25_amd64.deb ... Unpacking dpkg (1.18.25) over (1.18.24) ... Setting up dpkg (1.18.25) ... (Reading database ... 40438 files and directories currently installed.) Preparing to unpack .../libperl5.24_5.24.1-3+deb9u4_amd64.deb ... Unpacking libperl5.24:amd64 (5.24.1-3+deb9u4) over (5.24.1-3+deb9u3) ... Preparing to unpack .../perl_5.24.1-3+deb9u4_amd64.deb ... Unpacking perl (5.24.1-3+deb9u4) over (5.24.1-3+deb9u3) ... Preparing to unpack .../perl-base_5.24.1-3+deb9u4_amd64.deb ... Unpacking perl-base (5.24.1-3+deb9u4) over (5.24.1-3+deb9u3) ... Setting up perl-base (5.24.1-3+deb9u4) ... (Reading database ... 40438 files and directories currently installed.) Preparing to unpack .../perl-modules-5.24_5.24.1-3+deb9u4_all.deb ... Unpacking perl-modules-5.24 (5.24.1-3+deb9u4) over (5.24.1-3+deb9u3) ... Preparing to unpack .../libc6-dev_2.24-11+deb9u3_amd64.deb ... Unpacking libc6-dev:amd64 (2.24-11+deb9u3) over (2.24-11+deb9u1) ... Preparing to unpack .../libc-dev-bin_2.24-11+deb9u3_amd64.deb ... Unpacking libc-dev-bin (2.24-11+deb9u3) over (2.24-11+deb9u1) ... Preparing to unpack .../linux-libc-dev_4.9.110-3+deb9u1_amd64.deb ... Unpacking linux-libc-dev:amd64 (4.9.110-3+deb9u1) over (4.9.88-1+deb9u1) ... Preparing to unpack .../libc6_2.24-11+deb9u3_amd64.deb ... Unpacking libc6:amd64 (2.24-11+deb9u3) over (2.24-11+deb9u1) ... Setting up libc6:amd64 (2.24-11+deb9u3) ... (Reading database ... 40438 files and directories currently installed.) Preparing to unpack .../libc-bin_2.24-11+deb9u3_amd64.deb ... Unpacking libc-bin (2.24-11+deb9u3) over (2.24-11+deb9u1) ... Setting up libc-bin (2.24-11+deb9u3) ... (Reading database ... 40438 files and directories currently installed.) Preparing to unpack .../systemd-sysv_232-25+deb9u4_amd64.deb ... Unpacking systemd-sysv (232-25+deb9u4) over (232-25+deb9u2) ... Preparing to unpack .../libpam-systemd_232-25+deb9u4_amd64.deb ... Unpacking libpam-systemd:amd64 (232-25+deb9u4) over (232-25+deb9u2) ... Preparing to unpack .../libsystemd0_232-25+deb9u4_amd64.deb ... Unpacking libsystemd0:amd64 (232-25+deb9u4) over (232-25+deb9u2) ... Setting up libsystemd0:amd64 (232-25+deb9u4) ... (Reading database ... 40438 files and directories currently installed.) Preparing to unpack .../systemd_232-25+deb9u4_amd64.deb ... Unpacking systemd (232-25+deb9u4) over (232-25+deb9u2) ... Preparing to unpack .../udev_232-25+deb9u4_amd64.deb ... Unpacking udev (232-25+deb9u4) over (232-25+deb9u2) ... Preparing to unpack .../libudev1_232-25+deb9u4_amd64.deb ... Unpacking libudev1:amd64 (232-25+deb9u4) over (232-25+deb9u2) ... Setting up libudev1:amd64 (232-25+deb9u4) ... (Reading database ... 40438 files and directories currently installed.) Preparing to unpack .../libprocps6_2%3a3.3.12-3+deb9u1_amd64.deb ... Unpacking libprocps6:amd64 (2:3.3.12-3+deb9u1) over (2:3.3.12-3) ... Preparing to unpack .../procps_2%3a3.3.12-3+deb9u1_amd64.deb ... Unpacking procps (2:3.3.12-3+deb9u1) over (2:3.3.12-3) ... Preparing to unpack .../libgcrypt20_1.7.6-2+deb9u3_amd64.deb ... Unpacking libgcrypt20:amd64 (1.7.6-2+deb9u3) over (1.7.6-2+deb9u2) ... Setting up libgcrypt20:amd64 (1.7.6-2+deb9u3) ... (Reading database ... 40438 files and directories currently installed.) Preparing to unpack .../multiarch-support_2.24-11+deb9u3_amd64.deb ... Unpacking multiarch-support (2.24-11+deb9u3) over (2.24-11+deb9u1) ... Setting up multiarch-support (2.24-11+deb9u3) ... (Reading database ... 40438 files and directories currently installed.) Preparing to unpack .../gpgv_2.1.18-8~deb9u2_amd64.deb ... Unpacking gpgv (2.1.18-8~deb9u2) over (2.1.18-8~deb9u1) ... Setting up gpgv (2.1.18-8~deb9u2) ... (Reading database ... 40438 files and directories currently installed.) Preparing to unpack .../00-tzdata_2018e-0+deb9u1_all.deb ... Unpacking tzdata (2018e-0+deb9u1) over (2018c-0+deb9u1) ... Preparing to unpack .../01-gnupg_2.1.18-8~deb9u2_amd64.deb ... Unpacking gnupg (2.1.18-8~deb9u2) over (2.1.18-8~deb9u1) ... Preparing to unpack .../02-gnupg-agent_2.1.18-8~deb9u2_amd64.deb ... Unpacking gnupg-agent (2.1.18-8~deb9u2) over (2.1.18-8~deb9u1) ... Preparing to unpack .../03-iproute2_4.15.0-5_amd64.deb ... Unpacking iproute2 (4.15.0-5) over (4.13.0-3) ... Preparing to unpack .../04-libxapian30_1.4.3-2+deb9u1_amd64.deb ... Unpacking libxapian30:amd64 (1.4.3-2+deb9u1) over (1.4.3-2) ... Preparing to unpack .../05-file_1%3a5.30-1+deb9u2_amd64.deb ... Unpacking file (1:5.30-1+deb9u2) over (1:5.30-1+deb9u1) ... Preparing to unpack .../06-libmagic1_1%3a5.30-1+deb9u2_amd64.deb ... Unpacking libmagic1:amd64 (1:5.30-1+deb9u2) over (1:5.30-1+deb9u1) ... Preparing to unpack .../07-libmagic-mgc_1%3a5.30-1+deb9u2_amd64.deb ... Unpacking libmagic-mgc (1:5.30-1+deb9u2) over (1:5.30-1+deb9u1) ... Preparing to unpack .../08-libc-l10n_2.24-11+deb9u3_all.deb ... Unpacking libc-l10n (2.24-11+deb9u3) over (2.24-11+deb9u1) ... Preparing to unpack .../09-libgnutlsxx28_3.5.8-5+deb9u3_amd64.deb ... Unpacking libgnutlsxx28:amd64 (3.5.8-5+deb9u3) over (3.5.8-5+deb9u1) ... Preparing to unpack .../10-libgnutls-openssl27_3.5.8-5+deb9u3_amd64.deb ... Unpacking libgnutls-openssl27:amd64 (3.5.8-5+deb9u3) over (3.5.8-5+deb9u1) ... Preparing to unpack .../11-libgnutls30_3.5.8-5+deb9u3_amd64.deb ... Unpacking libgnutls30:amd64 (3.5.8-5+deb9u3) over (3.5.8-5+deb9u1) ... Preparing to unpack .../12-libldap-common_2.4.44+dfsg-5+deb9u2_all.deb ... Unpacking libldap-common (2.4.44+dfsg-5+deb9u2) over (2.4.44+dfsg-5+deb9u1) ... Preparing to unpack .../13-libldap-2.4-2_2.4.44+dfsg-5+deb9u2_amd64.deb ... Unpacking libldap-2.4-2:amd64 (2.4.44+dfsg-5+deb9u2) over (2.4.44+dfsg-5+deb9u1) ... Preparing to unpack .../14-locales_2.24-11+deb9u3_all.deb ... Unpacking locales (2.24-11+deb9u3) over (2.24-11+deb9u1) ... Preparing to unpack .../15-reportbug_7.1.7+deb9u2_all.deb ... Unpacking reportbug (7.1.7+deb9u2) over (7.1.7+deb9u1) ... Preparing to unpack .../16-python3-reportbug_7.1.7+deb9u2_all.deb ... Unpacking python3-reportbug (7.1.7+deb9u2) over (7.1.7+deb9u1) ... Preparing to unpack .../17-ca-certificates_20161130+nmu1+deb9u1_all.deb ... Unpacking ca-certificates (20161130+nmu1+deb9u1) over (20161130+nmu1) ... Preparing to unpack .../18-fuse_2.9.7-1+deb9u1_amd64.deb ... Unpacking fuse (2.9.7-1+deb9u1) over (2.9.7-1) ... Preparing to unpack .../19-libfuse2_2.9.7-1+deb9u1_amd64.deb ... Unpacking libfuse2:amd64 (2.9.7-1+deb9u1) over (2.9.7-1) ... Selecting previously unselected package libtcmalloc-minimal4. Preparing to unpack .../20-libtcmalloc-minimal4_2.5-2.2_amd64.deb ... Unpacking libtcmalloc-minimal4 (2.5-2.2) ... Selecting previously unselected package libunwind8. Preparing to unpack .../21-libunwind8_1.1-4.1_amd64.deb ... Unpacking libunwind8 (1.1-4.1) ... Selecting previously unselected package libgoogle-perftools4. Preparing to unpack .../22-libgoogle-perftools4_2.5-2.2_amd64.deb ... Unpacking libgoogle-perftools4 (2.5-2.2) ... Selecting previously unselected package ceph-fuse. Preparing to unpack .../23-ceph-fuse_10.2.5-7.2_amd64.deb ... Unpacking ceph-fuse (10.2.5-7.2) ... Preparing to unpack .../24-libcups2_2.2.1-8+deb9u2_amd64.deb ... Unpacking libcups2:amd64 (2.2.1-8+deb9u2) over (2.2.1-8+deb9u1) ... Preparing to unpack .../25-libcurl3-gnutls_7.52.1-5+deb9u6_amd64.deb ... Unpacking libcurl3-gnutls:amd64 (7.52.1-5+deb9u6) over (7.52.1-5+deb9u5) ... Preparing to unpack .../26-libuutil1linux_0.7.9-pve1~bpo9_amd64.deb ... Unpacking libuutil1linux (0.7.9-pve1~bpo9) over (0.7.8-pve1~bpo9) ... Preparing to unpack .../27-libnvpair1linux_0.7.9-pve1~bpo9_amd64.deb ... Unpacking libnvpair1linux (0.7.9-pve1~bpo9) over (0.7.8-pve1~bpo9) ... Preparing to unpack .../28-libpve-apiclient-perl_2.0-5_all.deb ... Unpacking libpve-apiclient-perl (2.0-5) over (2.0-4) ... Preparing to unpack .../29-libpve-http-server-perl_2.0-9_all.deb ... Unpacking libpve-http-server-perl (2.0-9) over (2.0-8) ... Preparing to unpack .../30-libpve-storage-perl_5.0-24_all.deb ... Unpacking libpve-storage-perl (5.0-24) over (5.0-23) ... Preparing to unpack .../31-novnc-pve_1.0.0-2_amd64.deb ... Unpacking novnc-pve (1.0.0-2) over (0.6-4) ... Preparing to unpack .../32-proxmox-widget-toolkit_1.0-19_all.deb ... Unpacking proxmox-widget-toolkit (1.0-19) over (1.0-18) ... Preparing to unpack .../33-pve-cluster_5.0-29_amd64.deb ... Unpacking pve-cluster (5.0-29) over (5.0-27) ... Preparing to unpack .../34-libpve-guest-common-perl_2.0-17_all.deb ... Unpacking libpve-guest-common-perl (2.0-17) over (2.0-16) ... Preparing to unpack .../35-pve-manager_5.2-6_amd64.deb ... Unpacking pve-manager (5.2-6) over (5.2-1) ... Preparing to unpack .../36-qemu-server_5.0-30_amd64.deb ... Unpacking qemu-server (5.0-30) over (5.0-26) ... Preparing to unpack .../37-libpve-common-perl_5.0-37_all.deb ... Unpacking libpve-common-perl (5.0-37) over (5.0-31) ... Preparing to unpack .../38-pve-container_2.0-24_all.deb ... Unpacking pve-container (2.0-24) over (2.0-23) ... Preparing to unpack .../39-pve-docs_5.2-5_all.deb ... Unpacking pve-docs (5.2-5) over (5.2-3) ... Preparing to unpack .../40-pve-firewall_3.0-13_amd64.deb ... Unpacking pve-firewall (3.0-13) over (3.0-8) ... Preparing to unpack .../41-pve-i18n_1.0-6_all.deb ... Unpacking pve-i18n (1.0-6) over (1.0-5) ... Preparing to unpack .../42-pve-qemu-kvm_2.11.2-1_amd64.deb ... Unpacking pve-qemu-kvm (2.11.2-1) over (2.11.1-5) ... Preparing to unpack .../43-pve-edk2-firmware_1.20180612-1_all.deb ... Unpacking pve-edk2-firmware (1.20180612-1) over (1.20180316-1) ... Preparing to unpack .../44-libzpool2linux_0.7.9-pve1~bpo9_amd64.deb ... Unpacking libzpool2linux (0.7.9-pve1~bpo9) over (0.7.8-pve1~bpo9) ... Preparing to unpack .../45-libzfs2linux_0.7.9-pve1~bpo9_amd64.deb ... Unpacking libzfs2linux (0.7.9-pve1~bpo9) over (0.7.8-pve1~bpo9) ... Preparing to unpack .../46-patch_2.7.5-1+deb9u1_amd64.deb ... Unpacking patch (2.7.5-1+deb9u1) over (2.7.5-1+b2) ... Preparing to unpack .../47-pve-firmware_2.0-5_all.deb ... Unpacking pve-firmware (2.0-5) over (2.0-4) ... Selecting previously unselected package pve-kernel-4.15.18-1-pve. Preparing to unpack .../48-pve-kernel-4.15.18-1-pve_4.15.18-17_amd64.deb ... Unpacking pve-kernel-4.15.18-1-pve (4.15.18-17) ... Preparing to unpack .../49-pve-kernel-4.15_5.2-4_all.deb ... Unpacking pve-kernel-4.15 (5.2-4) over (5.2-1) ... Preparing to unpack .../50-spl_0.7.9-pve1~bpo9_amd64.deb ... Unpacking spl (0.7.9-pve1~bpo9) over (0.7.8-pve1~bpo9) ... Preparing to unpack .../51-zfsutils-linux_0.7.9-pve1~bpo9_amd64.deb ... Unpacking zfsutils-linux (0.7.9-pve1~bpo9) over (0.7.8-pve1~bpo9) ... Preparing to unpack .../52-zfs-initramfs_0.7.9-pve1~bpo9_all.deb ... Unpacking zfs-initramfs (0.7.9-pve1~bpo9) over (0.7.8-pve1~bpo9) ... Setting up proxmox-widget-toolkit (1.0-19) ... Setting up perl-modules-5.24 (5.24.1-3+deb9u4) ... Setting up libperl5.24:amd64 (5.24.1-3+deb9u4) ... Setting up libxapian30:amd64 (1.4.3-2+deb9u1) ... Processing triggers for mime-support (3.60) ... Setting up libldap-common (2.4.44+dfsg-5+deb9u2) ... Setting up libuutil1linux (0.7.9-pve1~bpo9) ... Setting up tzdata (2018e-0+deb9u1) ... Current default time zone: 'Europe/Paris' Local time is now: Sun Aug 12 21:52:52 CEST 2018. Universal Time is now: Sun Aug 12 19:52:52 UTC 2018. Run 'dpkg-reconfigure tzdata' if you wish to change it. Setting up libfuse2:amd64 (2.9.7-1+deb9u1) ... Setting up linux-libc-dev:amd64 (4.9.110-3+deb9u1) ... Setting up libgnutls30:amd64 (3.5.8-5+deb9u3) ... Processing triggers for initramfs-tools (0.130) ... update-initramfs: Generating /boot/initrd.img-4.15.17-1-pve Setting up iproute2 (4.15.0-5) ... Setting up libprocps6:amd64 (2:3.3.12-3+deb9u1) ... Setting up pve-i18n (1.0-6) ... Setting up libmagic-mgc (1:5.30-1+deb9u2) ... Setting up libnvpair1linux (0.7.9-pve1~bpo9) ... Setting up libmagic1:amd64 (1:5.30-1+deb9u2) ... Setting up procps (2:3.3.12-3+deb9u1) ... insserv: Service mountkernfs has to be enabled to start service procps Setting up perl (5.24.1-3+deb9u4) ... Setting up pve-docs (5.2-5) ... Setting up libtcmalloc-minimal4 (2.5-2.2) ... Setting up patch (2.7.5-1+deb9u1) ... Setting up libgnutlsxx28:amd64 (3.5.8-5+deb9u3) ... Setting up libunwind8 (1.1-4.1) ... Processing triggers for libc-bin (2.24-11+deb9u3) ... Setting up udev (232-25+deb9u4) ... addgroup: The group `input' already exists as a system group. Exiting. update-initramfs: deferring update (trigger activated) insserv: Service mountkernfs has to be enabled to start service udev Setting up libldap-2.4-2:amd64 (2.4.44+dfsg-5+deb9u2) ... Setting up novnc-pve (1.0.0-2) ... Setting up spl (0.7.9-pve1~bpo9) ... Setting up libc-l10n (2.24-11+deb9u3) ... Setting up libgnutls-openssl27:amd64 (3.5.8-5+deb9u3) ... Setting up systemd (232-25+deb9u4) ... addgroup: The group `systemd-journal' already exists as a system group. Exiting. Setting up pve-kernel-4.15.18-1-pve (4.15.18-17) ... Examining /etc/kernel/postinst.d. run-parts: executing /etc/kernel/postinst.d/apt-auto-removal 4.15.18-1-pve /boot/vmlinuz-4.15.18-1-pve run-parts: executing /etc/kernel/postinst.d/initramfs-tools 4.15.18-1-pve /boot/vmlinuz-4.15.18-1-pve update-initramfs: Generating /boot/initrd.img-4.15.18-1-pve run-parts: executing /etc/kernel/postinst.d/zz-update-grub 4.15.18-1-pve /boot/vmlinuz-4.15.18-1-pve Generating grub configuration file ... Found linux image: /boot/vmlinuz-4.15.18-1-pve Found initrd image: /boot/initrd.img-4.15.18-1-pve Found linux image: /boot/vmlinuz-4.15.17-1-pve Found initrd image: /boot/initrd.img-4.15.17-1-pve Found memtest86+ image: /boot/memtest86+.bin Found memtest86+ multiboot image: /boot/memtest86+_multiboot.bin done Processing triggers for man-db (2.7.6.1-2) ... Setting up libc-dev-bin (2.24-11+deb9u3) ... Setting up pve-firmware (2.0-5) ... Processing triggers for dbus (1.10.26-0+deb9u1) ... Setting up gnupg-agent (2.1.18-8~deb9u2) ... Setting up libpve-apiclient-perl (2.0-5) ... Setting up ca-certificates (20161130+nmu1+deb9u1) ... Updating certificates in /etc/ssl/certs... 20 added, 35 removed; done. Setting up pve-kernel-4.15 (5.2-4) ... Setting up libc6-dev:amd64 (2.24-11+deb9u3) ... Setting up locales (2.24-11+deb9u3) ... Generating locales (this might take a while)... en_US.UTF-8... done Generation complete. Setting up fuse (2.9.7-1+deb9u1) ... update-initramfs: deferring update (trigger activated) Setting up pve-edk2-firmware (1.20180612-1) ... Setting up libcups2:amd64 (2.2.1-8+deb9u2) ... Setting up libzpool2linux (0.7.9-pve1~bpo9) ... Setting up libpve-common-perl (5.0-37) ... Setting up libcurl3-gnutls:amd64 (7.52.1-5+deb9u6) ... Setting up pve-qemu-kvm (2.11.2-1) ... Setting up systemd-sysv (232-25+deb9u4) ... Setting up gnupg (2.1.18-8~deb9u2) ... Setting up file (1:5.30-1+deb9u2) ... Setting up python3-reportbug (7.1.7+deb9u2) ... Setting up libgoogle-perftools4 (2.5-2.2) ... Setting up libzfs2linux (0.7.9-pve1~bpo9) ... Setting up pve-cluster (5.0-29) ... Setting up pve-firewall (3.0-13) ... Setting up libpam-systemd:amd64 (232-25+deb9u4) ... Setting up libpve-http-server-perl (2.0-9) ... Setting up ceph-fuse (10.2.5-7.2) ... Setting up reportbug (7.1.7+deb9u2) ... Setting up zfsutils-linux (0.7.9-pve1~bpo9) ... zfs-import-scan.service is a disabled or a static unit, not starting it. Setting up zfs-initramfs (0.7.9-pve1~bpo9) ... Setting up libpve-storage-perl (5.0-24) ... Setting up libpve-guest-common-perl (2.0-17) ... Setting up qemu-server (5.0-30) ... Setting up pve-container (2.0-24) ... Processing triggers for pve-ha-manager (2.0-5) ... Setting up pve-manager (5.2-6) ... Processing triggers for initramfs-tools (0.130) ... update-initramfs: Generating /boot/initrd.img-4.15.18-1-pve Processing triggers for libc-bin (2.24-11+deb9u3) ... Processing triggers for ca-certificates (20161130+nmu1+deb9u1) ... Updating certificates in /etc/ssl/certs... 0 added, 0 removed; done. Running hooks in /etc/ca-certificates/update.d... done. Processing triggers for systemd (232-25+deb9u4) ...
Interface web de gestion
Se connecter à l'interface de gestion des hyperviseurs, une fois connecté sélectionner l'hyperviseur (dans notre cas 'px2'), puis cliquer sur “Updates”.
La liste des paquets nécessitant une mise à jour s'affiche.
Si ce n'est pas le cas:
- soit il n'y a pas de mise à jour disponible
- soit la liste des dépôts n'a pas été rafraichie, cliquer alors sur le bouton “Refresh” comme ci-dessous.
La fenêtre de mise à jour des dépôts vous indique l'état de l'opération. Une fois terminé, vous pouvez fermer la fenêtre.
Pour obtenir des informations sur une mise à jour, cliquez dessus puis sur le bouton “Changelog”:
Pour lancer les mises à jour, cliquer sur le bouton “Upgrade”. Plusieurs consoles sont disponibles:
- noVNC (console par défaut)
- SPICE
- xterm.js
Une fois lancé, il vous est toujours possible de faire les mises à jour ou d'annuler.
Une fois les mises à jour installées, vous pouvez vous déconnecter de la console et fermer la fenêtre:
La console fermée, il ne devrait plus y avoir de mises à jour disponibles, vous pouvez re-cliquer sur le bouton “Refresh” pour vous en assurer.
Vérifier la résolution DNS
Vérifier que la résolution DNS de chaque machine est fonctionnelle:
root@px1:~# nslookup px1 Server: 192.168.1.254 Address: 192.168.1.254#53 Name: px1.e-mcr.net Address: 192.168.1.110 root@px1:~# nslookup px2 Server: 192.168.1.254 Address: 192.168.1.254#53 Name: px2.e-mcr.net Address: 192.168.1.111 root@px1:~# nslookup px3 Server: 192.168.1.254 Address: 192.168.1.254#53 Name: px3.e-mcr.net Address: 192.168.1.112
Dans le cas contraire assurez-vous que les entrées nécessaires soient présentes dans le fichier /etc/hosts
root@px1:~# nano /etc/hosts 127.0.0.1 localhost.localdomain localhost 192.168.1.110 px1.e-mcr.net px1 pvelocalhost 192.168.1.111 px2.e-mcr.net px2 192.168.1.112 px3.e-mcr.net px3 # The following lines are desirable for IPv6 capable hosts ::1 ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters ff02::3 ip6-allhosts
Création du cluster
Pour notre installation, le choix a été fait de déclarer les noeuds dans le serveur DNS.
Attention:
On part du principe que l'installation a été réalisée avec toutes les mises à jour disponibles, que les pré-requis sont respectés et que la résolution DNS fonctionne.
Initialisation du cluster
Ligne de commande
Uniquement sur un noeud (peu importe lequel, mais un seul), la commande suivante initialisera le cluster avec, pour le moment, un noeud (px1 dans cet exemple):
pvecm create <nom-du-cluster>
root@px1:~# pvecm create cluster-test Corosync Cluster Engine Authentication key generator. Gathering 1024 bits for key from /dev/urandom. Writing corosync key to /etc/corosync/authkey. Writing corosync config to /etc/pve/corosync.conf Restart corosync and cluster filesystem
Le cluster est initialisé, il ne reste plus qu’à ajouter les nœuds qui le composeront.
Interface web de gestion
Dans la vue “Server”, puis sélectionnez “Datacenter”, cliquez ensuite sur “Create cluster”:
Dans la nouvelle fenêtre qui vient de s'ouvrir, entrez le nom du cluster, puis cliquez sur “Create”:
Le contenu de la fenêtre se changera pour afficher l'état de la tâche de création du cluster.
Une fois “Task OK” affiché, vous pouvez fermer la fenêtre.
La création du cluster étant terminée, vous aurez les informations concernant votre cluster avec un seul noeud.
Il ne reste plus qu'à ajouter les noeuds suivants.
Ajout de noeud a un cluster
Ligne de commande
Pour ajouter un noeud au cluster (l'IP où le nom du noeud peuvent être utilisés):
pvecm add <nom-du-cluster> pvecm add <ip-du-cluster>
## Ajout du second noeud au cluster ## root@px2:~# pvecm add px1 The authenticity of host 'px1 (192.168.1.111)' can't be established. ECDSA key fingerprint is SHA256:K4CZKp6tcIMeTI804tOUVwvB1DcZRYwbNu6eU7XI/Us. Are you sure you want to continue connecting (yes/no)? yes root@px1's password: copy corosync auth key stopping pve-cluster service backup old database waiting for quorum...OK generating node certificates merge known_hosts file restart services successfully added node 'px2' to cluster. ## Ajout du troisième noeud au cluster ## root@px3:~# pvecm add px1 The authenticity of host 'px1 (192.168.1.112' can't be established. ECDSA key fingerprint is SHA256:K4CZKp6tcIMeTI804tOUVwvB1DcZRYwbNu6eU7XI/Us. Are you sure you want to continue connecting (yes/no)? yes root@px1's password: trying to aquire cfs lock 'file-corosync_conf' ... OK copy corosync auth key stopping pve-cluster service backup old database waiting for quorum...OK generating node certificates merge known_hosts file restart services successfully added node 'px3' to cluster.
A la fin du processus d'ajout des noeuds, votre cluster est opérationnel (au moins égal à 3 membres).
Interface web de gestion
Dans la vue “Server”, sélectionner “Datacenter”, puis “cluster” et enfin “Join Cluster”:
Dans la nouvelle fenêtre qui vient de s'ouvrir, il faut fournir deux informations primordiales.
Pour rejoindre un cluster existant, il faut remplir le champ “Information” provenant du cluster que l'on souhaite rejoindre et le mot de passe root du noeud.
Pour obtenir les informations du cluster, aller sur l'un des noeuds, puis sélectionner “Datacenter”, puis “cluster” et enfin “Join Information”.
Vous obtiendrez ainsi les informations pour rejoindre ce cluster.
Copier le contenu du champ “Information”:
Puis coller le contenu dans la fenêtre précédente (le noeud que l'on souhaite ajouter au cluster).
Automatiquement, les champs nécessaires seront renseignés, vous n'avez plus qu'à saisir le mot de passe root:
Une fois tous les champs saisis, cliquer sur “Join”:
Une nouvelle fenêtre apparaîtra avec l'avancement de la tâche d'ajout du noeud au cluster.
Une fois terminé, un message vous demandera de recharger la page du navigateur.
Une fois l'interface web de gestion rechargé, vous verrez le nouveau noeud que vous venez de rajouter ainsi que le premier noeud de votre cluster et toutes les ressources associées.
Procéder de la même façon pour ajouter l'ensemble des noeuds qui composeront votre cluster.
A la fin du processus d'ajout des noeuds, votre cluster est opérationnel (au moins égal à 3 membres).
Information sur l’état du cluster
Ligne de commande
Note:
pvecm status : Vous donnera les informations sur le Quorum et le nombre de nœuds présents.
pvecm nodes : Vous donnera seulement les informations sur les nœuds qui composent le cluster.
## Etat du cluster ## root@px3:~# pvecm status Quorum information ------------------ Date: Mon Oct 9 23:27:55 2017 Quorum provider: corosync_votequorum Nodes: 3 Node ID: 0x00000003 Ring ID: 1/12 Quorate: Yes Votequorum information ---------------------- Expected votes: 3 Highest expected: 3 Total votes: 3 Quorum: 2 Flags: Quorate Membership information ---------------------- Nodeid Votes Name 0x00000001 1 192.168.1.110 0x00000002 1 192.168.1.111 0x00000003 1 192.168.1.112 (local) ## Noeuds présents dans le cluster ## root@px3:~# pvecm nodes Membership information ---------------------- Nodeid Votes Name 1 1 px1 2 1 px2 3 1 px3 (local)
Interface web de gestion
Plusieurs affichages sont disponibles pour vous donner des informations sur l'état du cluster et des ressources présentes sur celui-ci.
Dans la vue “Server View”, puis “Datacenter”:
Dans l'entrée “Search”, vous retrouverez l'ensemble de vos noeuds et volumes pour le stockage des images disque, ainsi que vos VMs/Conteneurs lorsqu'il y en aura (dans notre cas, nous n'en avons pas encore).
Dans l'entrée “Summary”, vous aurez un état de santé global de votre cluster, le nombre de VMs/Conteneurs, les ressources consommées en temps réel et les noeuds qui le composent.
Dans l'entrée “Cluster”, vous aurez la liste des noeuds qui composent votre cluster et son état de façon plus sommaire.
Qu'est-ce que le Quorum ?
Le quorum est une technique pour fournir un état cohérent parmi tous les noeuds d'un cluster.
Il s'agit du nombre minimum de votes qu'une transaction distribuée doit obtenir pour pouvoir effectuer une opération dans un système distribué.
En cas de partitionnement du réseau, les modifications d'état nécessitent la majorité des noeuds en ligne.
C'est pourquoi il faut un nombre minimal de 3 noeuds, pour garantir une majorité.
Note:
Proxmox attribue un vote unique à chaque noeud par défaut.
Important:
Le cluster passe en mode lecture seule s'il perd le quorum.
En cas de perte d'un noeud où lors de la suppression d'un noeud et que le Quorum est perdu, on peux le forcer en exécutant sur l'un des noeuds du cluster :
pvecm expected 1
Attention: Cette commande est une solution de contournement qui doit être utilisée de façon temporaire !!!
Stockage pour les VMs
Stockage Disponible
Le modèle de stockage Proxmox est très flexible.
Les images disque des machines virtuelles peuvent être stockées sur un ou plusieurs volumes de stockages locaux ou sur des stockages partagés tel que NFS ou iSCSI (NAS, SAN).
Il n'y a pas de limites et vous pouvez configurer autant de pools de stockage que vous le souhaitez.
A Savoir:
L'un des principaux avantages du stockage des images disque des VMs/Conteneurs sur le stockage partagé est la possibilité de migrer en direct les machines en cours d'exécution sans aucun arrêt, car tous les noeuds du cluster ont un accès direct aux images disque des VMs/Conteneurs.
Ainsi, il n'est pas nécessaire de copier les données et de ce fait, la migration en direct est très rapide dans ce cas (quelques secondes contres quelques minutes/heures suivant la taille des images disque).
A ce jour, Proxmox gère les types de stockage suivants:
- ZFS (local)
- Directory
- NFS
- CIFS
- GlusterFS
- LVM
- LVM-thin
- iSCSI/kernel
- iSCSI/libiscsi
- Ceph/RBD
- Sheepdog
- ZFS over iSCSI
Stockage Par défaut
Par défaut, Proxmox utilise un PV et un VG nommé pve.
Les LVs crées sont :
- data: pour le stockage des images disque.
- root: pour le système.
- swap: pour la partition d'échange mémoire.
Dans le cas d'un disque de 50Go avec 4Go de mémoire:
swap: La valeur par défaut est la taille de la mémoire installée, minimum 4 Go et maximum 8 Go.
La valeur résultante ne peut pas être supérieure à (taille du disque / 8).
Pour 50Go de disque, elle sera égale à 6,25Go si nous avons plus de 6Go de mémoire, sinon nous aurons 4Go.
root: La taille du volume racine est (taille du disque / 4). Pour 50Go de disque, elle sera égale à 12,5Go.
data: La taille pour le stockage des images disque sera égale à:
taille de la data = ( (taille du disque) - (taille de root) - (taille de la swap) - (minfree=(taille du disque / 8)) )
Pour 50Go, nous aurons donc: 27,25Go = ( 50Go - 12,5Go - 4Go - 6,25Go)
root@px1:~# pvs --units G PV VG Fmt Attr PSize PFree /dev/sda3 pve lvm2 a-- 53.41G 6.58G root@px1:~# vgs --units G VG #PV #LV #SN Attr VSize VFree pve 1 3 0 wz--n- 53.41G 6.58G root@px1:~# lvs --units G LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert data pve twi-a-tz-- 27.24G 0.00 0.02 root pve -wi-ao---- 13.15G swap pve -wi-ao---- 4.29G
Lors de l'installation, deux types de stockage sont utilisés par défaut lors d'une nouvelle installation, “Directory” et “LVM-THIN”.
Ceux-ci sont paramétrés pour stocker différents types de données, qui même après une installation par défaut peuvent être modifiées.
Directory: Il s'agit d'un stockage local dans le LV root et disponible dans le chemin /var/lib/vz. Celui-ci contient une structure de répertoire prédéfini permettant le stockage:
- Des backups
- Des images ISO
- Des template de Conteneurs
root@px1:/var/lib/vz# ls -la * dump: total 271280 drwxr-xr-x 2 root root 4096 Aug 25 21:44 . drwxr-xr-x 5 root root 4096 Aug 10 19:29 .. -rw-r--r-- 1 root root 524 Aug 25 21:44 vzdump-lxc-100-2018_08_25-21_43_59.log -rw-r--r-- 1 root root 277775580 Aug 25 21:44 vzdump-lxc-100-2018_08_25-21_43_59.tar.lzo images: total 8 drwxr-xr-x 2 root root 4096 May 14 14:04 . drwxr-xr-x 5 root root 4096 Aug 10 19:29 .. template: total 20 drwxr-xr-x 5 root root 4096 Aug 10 19:25 . drwxr-xr-x 5 root root 4096 Aug 10 19:29 .. drwxr-xr-x 2 root root 4096 Aug 25 21:38 cache drwxr-xr-x 2 root root 4096 Aug 25 21:41 iso drwxr-xr-x 2 root root 4096 May 14 14:04 qemu root@px1:/var/lib/vz# cd template/ root@px1:/var/lib/vz/template# ls -la * cache: total 193440 drwxr-xr-x 2 root root 4096 Aug 25 21:38 . drwxr-xr-x 5 root root 4096 Aug 10 19:25 .. -rw-r--r-- 1 root root 198072228 Dec 12 2017 debian-9.0-standard_9.3-1_amd64.tar.gz iso: total 297992 drwxr-xr-x 2 root root 4096 Aug 25 21:41 . drwxr-xr-x 5 root root 4096 Aug 10 19:25 .. -rw------- 1 root root 305135616 Aug 25 21:41 debian-9.5.0-amd64-netinst.iso qemu: total 8 drwxr-xr-x 2 root root 4096 May 14 14:04 . drwxr-xr-x 5 root root 4096 Aug 10 19:25 ..
LVM-THIN: Il s'agit d'un stockage local par block dans le LV data, son contenu ne sera donc pas disponible dans un répertoire.
Celui-ci permet le stockage:
- Des images disques des VMs
- Des images disques des Conteneurs
Ces images disques, lorsqu'il y en a de créées sont vues comme des LVs par le système.
root@px1:~# pvs PV VG Fmt Attr PSize PFree /dev/sda3 pve lvm2 a-- 49.75g 6.12g root@px1:~# vgs VG #PV #LV #SN Attr VSize VFree pve 1 5 0 wz--n- 49.75g 6.12g root@px1:~# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert data pve twi-aotz-- 25.37g 2.89 0.05 root pve -wi-ao---- 12.25g swap pve -wi-ao---- 4.00g vm-100-disk-1 pve Vwi-a-tz-- 8.00g data 9.18 vm-101-disk-1 pve Vwi-a-tz-- 10.00g data 0.00 root@px1:~# lvdisplay ... --- Logical volume --- LV Name data VG Name pve LV UUID ke10go-u1wr-zoBM-uizH-kgN2-WjLJ-H1jccq LV Write Access read/write LV Creation host, time proxmox, 2018-08-10 19:24:29 +0200 LV Pool metadata data_tmeta LV Pool data data_tdata LV Status available # open 3 LV Size 25.37 GiB Allocated pool data 2.89% Allocated metadata 0.05% Current LE 6495 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:4 --- Logical volume --- LV Path /dev/pve/vm-100-disk-1 LV Name vm-100-disk-1 VG Name pve LV UUID d13bdJ-JzJp-hK5t-7lRa-4vSP-UUVR-n3iyAK LV Write Access read/write LV Creation host, time px1, 2018-08-25 21:41:05 +0200 LV Pool name data LV Status available # open 0 LV Size 8.00 GiB Mapped size 9.18% Current LE 2048 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:6 --- Logical volume --- LV Path /dev/pve/vm-101-disk-1 LV Name vm-101-disk-1 VG Name pve LV UUID 8qA6eA-NIHH-NnNN-WIte-RlSm-nwEF-DrhzZG LV Write Access read/write LV Creation host, time px1, 2018-08-25 21:43:34 +0200 LV Pool name data LV Status available # open 0 LV Size 10.00 GiB Mapped size 0.00% Current LE 2560 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:7
Attention:
Il s'agit là d'une configuration par défaut, on peut bien-sûr faire autrement.
Par exemple le stockage “Directory” permet tout à fait de stocker des images disque ! Néanmoins, celui-ci ne permettra pas de faire des snapshots de ces mêmes images disque.
Il est possible également de rajouter d'autres types de stockage (permettant ou non de faire des snapshots) et d'avoir deux ou plusiseurs unités de stockage permettant d'héberger des images disques, des backups etc…


















