REALISATION D’UN SYSTEME DE BACKUP DE VOS APPLICATIONS AVEC GLUSTERFS.

REALISATION D’UN SYSTEME DE BACKUP DE VOS APPLICATIONS AVEC GLUSTERFS.

Contexte et objectifs

Dans la mise en place d’une infrastructure informatique ou SI nous sommes sujets à despannes, a des down times et c’est pourquoi les dans la mise en place de cette infrastructure il faudrait penser à mettre en place un PRA (Plan de reprise d’activité) et d’un PCA (Plan de Continuité d’activité). Dans l’élaboration de ces derniers, la gestion de la sauvegarde des informations est un point primordial, car lorsque nous avons à disposition des informations, de la donnée, nous pouvons repartir de notre réseau/SI/infrastructure à partir de l’instant où nous avons été sujet à une panne. De ce fait, sauvegarder ces données et bien les sauvegarder requiert un système des plus adéquats et dans ce tutoriel nous vous présenterons la mise en place d’un système de sauvegarde de vos applications grâce à GLUSTERFS.

Présentation des différents composants :

Glusterfs : c’est un système de fichiers distribué, c’est à dire qu’il permet d’agréger du stockage réparti sur une grappe de machines dans un volume qu’il expose à des clients. Plusieurs clients peuvent monter un même volume et y accéder simultanément. Il permet d’avoir un stockage : extensible, hautement disponible, distribue.

Vagrant : c’est un logiciel libre et open source pour la création et la configuration des environnements de développement virtuels.

Linux : c’est une famille de systèmes d’exploitation open source de type Unix fondés sur le noyau Linux créée en 1991 par Linus Torvald

Kubernetes : c’est un système open source qui vise à fournir une plateforme permettant d’automatiser le déploiement, la montée en charge et la mise en œuvre de conteneurs d’application sur des grappes de serveurs.

Docker : c’est une technologie de conteneurisation qui permet la création et l’utilisation des conteneurs linux

Projet : Présentation du Projet

Dans la première partie de cet article, vous allez déployer un environnement constitué de
deux nœuds qui tourneront sur linux. La seconde partie, vous emploierez un cluster kubernetes single Node.
Les différentes étapes que nous allons suivre tout au long de notre projet :

  • Mise en place de l’environnement de travail
  • Configuration du serveur de backup GlusterFs
  • Vérification de fonctionnement
  • Cas pratique d’utilisation avec docker
  • Cas pratique d’utilisation avec Kubernetes
    Architecture de notre environnement de travail :

Environnement :

  • Location: on premise (VirtualBox, vagrant)
  • Systeme: Ubuntu 20.04 lts
  • Middleware/service: Docker, kubernetes
  • Software : Glusterfs

Version des Tools :

  • Vagrant : 2.3.4
  • VirtualBox : 6.1
  • Kubernetes : 1.27
  • Docker : 24.05
  • Ubuntu server : 20.04 lts

Une fois les différents outils rassembler nous pouvons ainsi passer à la mise en place de notre
environnement de travail.

Etape 1 : Il faut installer les différents outils et systèmes en utilisant les liens ci-dessous

  • Télécharger et installer VirtualBox :
    https://www.virtualbox.org/wiki/Download_Old_Builds_6_1
  • Télécharger et installer Vagrant : https://releases.hashicorp.com/vagrant/2.3.4/
  • Récupérer le script de provisionnement des nœuds :
    https://github.com/ulrich-sun/glusterfs.git

Les outils étant installer sur votre poste de travail, il faut lancer le fichier Vagrantfile qui va
créer nos différentes machines :

Une fois les différents serveurs créer il nous faut nous connecter sur chacun des serveurs pour
pouvoir effectuer les mises à jour :

Effectuer cette commande sur les autres serveurs (Glusterfs1 & Glusterfs2) Une fois les mises à jour effectuer, il faudrait récupérer le script d’installation et de configuration de Glusterfs : https://github.com/ulrich-sun/glusterfs.git

NB : Les différentes configuration qui suivent sont effectuer sur le serveur Glusterfs1 et
glusterfs 2

Preparation du stockage

  • LVM : Il est recommandé, car il nous permettra de bénéficier de la fonction de snapshot de GlusterFs, sinon c’est toute fois optionnelle.
    Nous allons visualiser les blocs de stockage disponible sur notre serveur : « lsblk » Nous aurons comme sortie la capture ci-dessous, notre blac de stockage cible est : « sdb ».

Une fois après avoir identifier notre bloc, il nous faut donc créer un volume qui aura pour base ce bloc, présenter précédemment. Pour ce faire il nous suffit de rentrer les commandes qui se trouvent sur la capture ci-dessous.

Une fois ce bloc utiliser il faudrait le rajouter a un groupe qui va nous permettre par la suite de mettre en place un processus de réplication :

  • Système de fichiers : il permet de gérer les fichiers et les répertoires, en attribuant des noms, en déterminant leur emplacement physique sur le périphérique de stockage, en suivant les autorisations d’accès pour les utilisateurs et les groupes, en maintenant des informations sur les attributs des fichiers (taille, date de modification, propriétés), et en gérant la fragmentation des données sur le périphérique de stockage.

Une fois que le choix de fichier est fait, il faut mettre en place un espace de stockage :

Création de la grappe : Pour créer une grappe nous allons dans un premier temps activer le service glusterfs sur nos différents serveurs

Une fois cette manipulation effectuer il nous faut par la suite rajouter les differents serveurs de sauvegardes a notre grappe (dans notre cas nous avons le glusterfs1 et le glusterf2) Comme tout système de gestion, il faudrait élire un nœud qui pourra jouer le rôle de manager (GLusterfs1 dans notre cas), nous nous connectons sur ce dernier puis nous rajoutons le serveur glusterfs2 a notre grappe

A ce stade nous avons déjà un système de backup opérationnel que nous pouvons monter au sein d’un serveur, mais nous ne voulons pas nous arrêter à ce stade car ici nous avons un seul point de défaillance et ainsi si votre serveur passe down, nous n’aurez plus de fichier sauvegarde. C’est pourquoi dans notre environnement, nous allons mettre en place un système de réplication des donnes qui permettra ainsi
d’avoir des informations sur nos différents serveurs de sauvegarde provenant d’une même source. (Container sur docker, Pod sur Kubernetes).

  • Création d’un volume : Lorsque nous créons un volume nous devons choisir le type de stockage que nous voulons mettre en place, il en existe trois types qui sont : distribué, répliqué et disperse. Dans notre cas nous allons mettre en place un stockage
    répliqué :
    Nous allons créer un volume nommé gv01 de type réplica 2, ainsi les données seront copiées de manière simultanée sur les deux serveurs, de telle sorte que si un serveur de sauvegarde tombe en panne qu’on est toujours accès à nos informations

Une fois cette configuration effectuer nous allons effectuer une petite vérification :

  • Montage du volume

Pour pouvoir utiliser cette grappe de serveur nous devons monter le volume sur un client qui
dans notre cas nous aurons un serveur docker et un disposant de kubernetes. Pour ce faire, connectons-nous à notre serveur docker :
“ mkdir -p /data/gv01
mount -t glusterfs -o defaults,noatime,_netdev glusterfs1:/gv01 /data/gv01 “

Etape 2 : Installation et configuration de Docker
Nous avons terminé la partie de la mise en place de l’environnement de stockage avec glusterfs et dans la suite nous devons pouvoir l’utiliser grâce a une plateforme de containerisation et une plateforme d’orchestration. Nous allons débuter avec l’installation et la configuration de Docker

Une fois l’installation terminer il nous faudrait avoir un utilisateur dédier à l’utilisation de la plateforme de containerisation Docker. Pour cela nous allons créer un utilisateur et le rajouter au groupe qui va bien.

Une fois cette étape valider il nous fait démarrer le service Docker et ainsi passer au déploiement de notre application. Pour démarrer le service nous entrons la commande suivante : systemctl start docker

Puis nous récupérons le fichier docker-compose de notre application : https://github.com/ulrich-sun/glusterfs.git
Notre fichier il ressemblera à celui-ci-dessous :

Une fois le code récupérer, il nous suffira d’entrer la commande : docker compose -f
wordpress-compose.yml up -d pour lancer notre stack WordPress.

Une fois le déploiement de notre stack nous pouvons vérifier qu’il est bien lancer et par la suite vérifier que les informations sont stockées dans le répertoire de destination correspondant

La stack est bien opérationnel, comme la capture ci-dessus.

Nous allons remarquer que nos différentes informations s’y trouvent.
NB : L’utilisateur utiliser dans ce cas est l’utilisateur root car il est le seul actuellement à avoir les droits nécessaires pour y avoir accès.
Maintenant nous allons vérifier également que le système de sauvegarde il est bien opérationnel en allant sur nos deux serveurs de backup (glusterfs1 et glusterfs2).

Vous allez remarquer que nous retrouvons les mêmes informations des volumes qui ont été montés sur le serveur docker, sur les serveurs de sauvegarde et à la même date de création.
Etape 3 : Installation et configuration de Kubernetes
Pour réaliser l’installation et la configuration de Kubernetes sur notre environnement nous
allons récupérer le script d’installation via ce lien : https://github.com/ulrich-sun/glusterfs.git
NB : Nous allons réaliser une installation single node all in one grâce à minikube

Notre installation est en cours d’exécution, il suffit de patienter quelques instants en fonction de votre débit internet et des caractéristiques de votre machine pour que l’installation soit complète
Vérifier que votre cluster kubernetes est fonctionnel :

Récupérer le manifest de déploiement : https://github.com/ulrich-sun/glusterfs.git

Une fois notre manifest récupérer nous pouvons lancer le déploiement de notre application sur kubernetes, et par la suite effectuer les différentes étapes de vérifications que celle de docker

Tag: Kubernetes, docker, glusterfs,
Categories: backup,

Ulrich NOUMSI
Cloud and DevOps Engineer, CKA