MODOP – rsnapshot et Lustre FS – High Stockage Availability

1°) Pool de Machine de l’infrastructure Backup

Serveur MGS : Management Server

  • Machine node-mgs
    • IP :172.16.186.10
    • Disque Système : /dev/sda (Datastore2) de 8Go
    • Disque mgt : /dev/sdb (Datastore2) de 10Go
    • Disque mgt : /dev/sdc (Datastore3) de 10Go
    • RAM 2Go
    • vCPU : 2

Server MDS : MetaData Server

  • Machine node-mds
    • IP :172.16.186.12
    • Disque Système : /dev/sda (Datastore2) de 8Go
    • Disque mdt : /dev/sdb (Datastore2) de 10Go
    • RAM 2Go
    • vCPU : 2

Server OSS : Object storage Server

  • Machine node-oss01
    • IP :172.16.186.13
    • Disque Système : /dev/sda (Datastore2) de 8Go
    • Disque ost : /dev/sdb (Datastore2) de 10Go
    • Disque ost : /dev/sdc (Datastore3) de 10Go
    • RAM 2Go
    • vCPU : 2

  • Machine node-oss02
    • IP :172.16.186.14
    • Disque Système : /dev/sda (Datastore3) de 8Go
    • Disque ost : /dev/sdb (Datastore2) de 10Go
    • Disque ost : /dev/sdc (Datastore3) de 10Go
    • RAM 2Go
    • vCPU : 2

  • Machine node-oss03
    • IP :172.16.186.15
    • Disque Système : /dev/sda (Datastore2) de 8Go
    • Disque ost : /dev/sdb (Datastore2) de 10Go
    • Disque ost : /dev/sdc (Datastore3) de 10Go
    • RAM 2Go
    • vCPU : 2

  • Machine node-oss04
    • IP :172.16.186.16
    • Disque Système : /dev/sda (Datastore3) de 8Go
    • Disque ost : /dev/sdb (Datastore2) de 10Go
    • Disque ost : /dev/sdc (Datastore3) de 10Go
    • RAM 2Go
    • vCPU : 2

  • Machine node-oss05
    • IP :172.16.186.17
    • Disque Système : /dev/sda (Datastore2) de 8Go
    • Disque ost : /dev/sdb (Datastore2) de 10Go
    • Disque ost : /dev/sdc (Datastore3) de 10Go
    • RAM 2Go
    • vCPU : 2

  • Machine node-oss06
    • IP :172.16.186.18
    • Disque Système : /dev/sda (Datastore3) de 8Go
    • Disque ost : /dev/sdb (Datastore2) de 10Go
    • Disque ost : /dev/sdc (Datastore3) de 10Go
    • RAM 2Go
    • vCPU : 2

2°) Inscription des Machines au DNS

Editer votre zone de DNS et ajouter les machines du Cluster LustreFS

; Cluster LustreFR
node-mgs IN A 172.16.186.10
node-mds IN A 172.16.186.12
node-oss01 IN A 172.16.186.13
node-oss02 IN A 172.16.186.14
node-oss03 IN A 172.16.186.15
node-oss04 IN A 172.16.186.16
node-oss05 IN A 172.16.186.17
node-oss06 IN A 172.16.186.18

Pour le reverse

; Cluster lustreFS
10 IN PTR node-mgs.house.cpb.
12 IN PTR node-mds.house.cpb.
13 IN PTR node-oss01.house.cpb.
14 IN PTR node-oss02.house.cpb.
15 IN PTR node-oss03.house.cpb.
16 IN PTR node-oss04.house.cpb.
17 IN PTR node-oss05.house.cpb.
18 IN PTR node-oss06.house.cpb.

Les deux machines seront installées en version minimal sous Centos7.9

3°) Installation Machine node-mgs

Mise à jour
[root@node-mgs ~]# yum -y update
[root@node-mgs ~]# yum install epel-release

Installer NTP

[root@node-mgs ~]# yum -y install chrony
[root@node-mgs ~]# systemctl start chronyd
[root@node-mgs ~]# systemctl enable chronyd
[root@node-mgs ~]# timedatectl set-timezone Europe/Paris

Désactiver SELinux

[root@node-mgs ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
[root@node-mgs ~]# cat /etc/selinux/config
SELINUX=disabled
[root@node-mgs ~]# setenforce 0

Ajout des Repository Lustre

[root@node-mgs ~]# vi /etc/yum.repos.d/lustre.repo
[lustre-server]
name=CentOS- - Lustre
#baseurl=https://downloads.hpdd.intel.com/public/lustre/latest-feature-release/el7/server/
baseurl=https://downloads.whamcloud.com/public/lustre/latest-release/el7.9.2009/server
gpgcheck=0

[e2fsprogs]
name=CentOS- - Ldiskfs
#baseurl=https://downloads.hpdd.intel.com/public/e2fsprogs/latest/el7/
baseurl=https://downloads.whamcloud.com/public/e2fsprogs/latest/el7/
gpgcheck=0

[lustre-client]
name=CentOS- - Lustre
#baseurl=https://downloads.hpdd.intel.com/public/lustre/latest-feature-release/el7/client/
baseurl=https://downloads.whamcloud.com/public/lustre/latest-release/el7.9.2009/client
gpgcheck=0

Installation Lustre et Kernel

[root@node-mgs ~]# yum upgrade -y e2fsprogs
[root@node-mgs ~]# yum install -y lustre-tests

Création d’un Network

[root@node-mgs ~]# ip a

[root@node-mgs ~]# echo "options lnet networks=tcp0(eth0)" > /etc/modprobe.d/lnet.conf

Chargement des Modules on Boot

[root@node-mgs]# echo "/sbin/modprobe lnet" >> /etc/rc.local
[root@node-mgs]# echo "/sbin/modprobe lustre" >> /etc/rc.local
[root@node-mgs]# chmod +x /etc/rc.d/rc.local
[root@node-mgs]# reboot

[root@node-mgs ~]# ls -al /dev/lnet

[root@node-mgs ~]# /sbin/lsmod | /bin/grep lustre

Installation Kernel-dev (Option)

[root@node-mgs ~]# yum install wget
[root@node-mgs ~]# wget https://downloads.whamcloud.com/public/lustre/latest-release/el7.9.2009/server/RPMS/x86_64/kernel-devel-3.10.0-1160.25.1.el7_lustre.x86_64.rpm
[root@node-mgs ~]# rpm -Uvh kernel-devel-3.10.0-1160.25.1.el7_lustre.x86_64.rpm
[root@node-mgs ~]# rm -rf kernel-devel-3.10.0-1160.25.1.el7_lustre.x86_64.rpm

Création Disque management /mgt

[root@node-mgs ~]# fdisk -l /dev/sdb

[root@node-mgs01 ~]# mkfs.lustre --mgs /dev/sdb

[root@node-mgs ~]# mkdir /mgt
[root@node-mgs ~]# mount.lustre /dev/sdb /mgt
[root@node-mgs ~]# df -H

Mount au démarrage

[root@node-mgs01 ~]# echo "mount.lustre /dev/sdb /mgt" >> /etc/rc.local
[root@node-mgs01 ~]# chmod +x /etc/rc.d/rc.local

Rules Firewall

[root@node-mgs01 ~]# firewall-cmd --add-port=988/tcp --permanent --zone=public
[root@node-mgs01 ~]# firewall-cmd --add-port={123,323}/udp --permanent --zone=public
[root@node-mgs01 ~]# firewall-cmd --reload

4°) Installation d’une machine node-mds

Mise à jour

[root@node-mds ~]# yum -y update
[root@node-mds ~]# yum install -y epel-release

Installer NTP

[root@node-mds ~]# yum -y install chrony
[root@node-mds ~]# systemctl start chronyd
[root@node-mds ~]# systemctl enable chronyd
[root@node-mds ~]# timedatectl set-timezone Europe/Paris

Désactiver SELinux

[root@node-mds ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
[root@node-mds ~]# reboot

Ajout repository Lustre

[root@node-mds ~]# scp root@node-mgs:/etc/yum.repos.d/lustre.repo /etc/yum.repos.d/lustre.repo

Installation Lustre et Kernel

[root@node-mds ~]# yum install -y e2fsprogs
[root@node-mds ~]# yum install lustre-tests -y

Création d’un Network

[root@node-mds ~]# echo "options lnet networks=tcp0(eth0)" > /etc/modprobe.d/lnet.conf

Chargement des Modules on Boot

[root@node-mds]# echo "/sbin/modprobe lnet" >> /etc/rc.local
[root@node-mds]# echo "/sbin/modprobe lustre" >> /etc/rc.local
[root@node-mds]# chmod +x /etc/rc.d/rc.local
[root@node-mds]# reboot

Installation Kernel-dev (Option)

[root@node-mds ~]# yum -y install wget
[root@node-mds ~]# wget https://downloads.whamcloud.com/public/lustre/latest-release/el7.9.2009/server/RPMS/x86_64/kernel-devel-3.10.0-1160.25.1.el7_lustre.x86_64.rpm
[root@node-mds ~]# rpm -Uvh kernel-devel-3.10.0-1160.25.1.el7_lustre.x86_64.rpm
[root@node-mds ~]# rm -rf kernel-devel-3.10.0-1160.25.1.el7_lustre.x86_64.rpm

Création disque sur MDT (MDS)

[root@node-mds ~]# fdisk -l

[root@node-mds ~]# mkfs.lustre --fsname=lustrefs --mgsnode=node-mgs@tcp0 --mdt --index=0 /dev/sdb

[root@node-mds ~]# mkdir /mdt
[root@node-mds ~]# mount.lustre /dev/sdb /mdt

Mount au démarrage

[root@node-mds ~]# echo "mount.lustre /dev/sdb /mdt" >> /etc/rc.local
[root@node-mds ~]# chmod +x /etc/rc.d/rc.local

Rules Firewall

[root@node-mds ~]# firewall-cmd --add-port=988/tcp --permanent --zone=public
[root@node-mds ~]# firewall-cmd --add-port={123,323}/udp --permanent --zone=public
[root@node-mds ~]# firewall-cmd --reload

5°) Installation Commune pour les machines node-ossx

Mise à jour (6 nodes OSS)

[root@node-oss01 ~]# yum -y update
[root@node-oss01 ~]# yum install epel-release

Installer NTP (6 nodes OSS)

[root@node-oss01 ~]# yum -y install chrony
[root@node-oss01 ~]# systemctl start chronyd
[root@node-oss01 ~]# systemctl enable chronyd
[root@node-oss01 ~]# timedatectl set-timezone Europe/Paris

Désactiver SELinux (6 nodes OSS)

[root@node-oss01 ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
[root@node-oss01 ~]# reboot

Ajout repository Lustre (6 nodes OSS)

[root@node-oss01 ~]# scp root@node-mgs:/etc/yum.repos.d/lustre.repo /etc/yum.repos.d/lustre.repo

Installation Lustre et Kernel (6 nodes OSS)

[root@node-oss01 ~]# yum install -y e2fsprogs
[root@node-oss01 ~]# yum install lustre-tests -y

Création d’un Network (6 nodes OSS)

[root@node-mds ~]# echo "options lnet networks=tcp0(eth0)" > /etc/modprobe.d/lnet.conf

Chargement des Modules on Boot (6 nodes OSS)

[root@node-mds]# echo "/sbin/modprobe lnet" >> /etc/rc.local
[root@node-mds]# echo "/sbin/modprobe lustre" >> /etc/rc.local
[root@node-mds]# chmod +x /etc/rc.d/rc.local
[root@node-mds]# reboot

Installation Kernel-dev (Option) (6 nodes OSS)

[root@node-mds ~]# yum -y install wget
[root@node-mds ~]# wget https://downloads.whamcloud.com/public/lustre/latest-release/el7.9.2009/server/RPMS/x86_64/kernel-devel-3.10.0-1160.25.1.el7_lustre.x86_64.rpm
[root@node-mds ~]# rpm -Uvh kernel-devel-3.10.0-1160.25.1.el7_lustre.x86_64.rpm
[root@node-mds ~]# rm -rf kernel-devel-3.10.0-1160.25.1.el7_lustre.x86_64.rpm

Rules Firewall

[root@node-mgs01 ~]# firewall-cmd --add-port=988/tcp --permanent --zone=public
[root@node-mgs01 ~]# firewall-cmd --add-port={123,323}/udp --permanent --zone=public
[root@node-mgs01 ~]# firewall-cmd --reload

5.1 °) Installation Disques node-oss01

[root@node-oss01 ~]# fdisk -l

[root@node-oss01 ~]# mkfs.lustre --ost --fsname=lustrefs --mgsnode=node-mgs@tcp0 --index=1 /dev/sdb

[root@node-oss01 ~]# mkfs.lustre --ost --fsname=lustrefs --mgsnode=node-mgs@tcp0 --index=2 /dev/sdc

[root@node-oss01 ~]# mkdir {/ost1,/ost2}
[root@node-oss01 ~]# mount.lustre /dev/sdb /ost1
[root@node-oss01 ~]# mount.lustre /dev/sdc /ost2

Mount au démarrage

[root@node-oss01 ~]# echo "mount.lustre /dev/sdb /ost1" >> /etc/rc.local
[root@node-oss01 ~]# echo "mount.lustre /dev/sdc /ost2" >> /etc/rc.local
[root@node-oss01 ~]# chmod +x /etc/rc.d/rc.local

5.2°) Installation Disques node-oss02

[root@node-oss02 ~]# mkfs.lustre --ost --fsname=lustrefs --mgsnode=node-mgs@tcp0 --index=3 /dev/sdb

[root@node-oss02 ~]# mkfs.lustre --ost --fsname=lustrefs --mgsnode=node-mgs@tcp0 --index=4 /dev/sdc

[root@node-oss02 ~]# mkdir {/ost3,/ost4}
[root@node-oss02 ~]# mount.lustre /dev/sdb /ost3
[root@node-oss02 ~]# mount.lustre /dev/sdc /ost4

Mount au démarrage

[root@node-oss02 ~]# echo "mount.lustre /dev/sdb /ost3" >> /etc/rc.local
[root@node-oss02 ~]# echo "mount.lustre /dev/sdc /ost4" >> /etc/rc.local
[root@node-oss02 ~]# chmod +x /etc/rc.d/rc.local

5.3°) Installation Disques node-oss03

[root@node-oss03 ~]# mkfs.lustre --ost --fsname=lustrefs --mgsnode=node-mgs@tcp0 --index=5 /dev/sdb
[root@node-oss03 ~]# mkfs.lustre --ost --fsname=lustrefs --mgsnode=node-mgs@tcp0 --index=6 /dev/sdc

[root@node-oss03 ~]# mkdir {/ost5,/ost6}
[root@node-oss03 ~]# mount.lustre /dev/sdb /ost5
[root@node-oss03 ~]# mount.lustre /dev/sdc /ost6

Mount au démarrage

[root@node-oss03 ~]# echo "mount.lustre /dev/sdb /ost5" >> /etc/rc.local
[root@node-oss03 ~]# echo "mount.lustre /dev/sdc /ost6" >> /etc/rc.local
[root@node-oss03 ~]# chmod +x /etc/rc.d/rc.local

5.4°) Installation Disques node-oss04

[root@node-oss04 ~]# mkfs.lustre --ost --fsname=lustrefs --mgsnode=node-mgs@tcp0 --index=7 /dev/sdb
[root@node-oss04 ~]# mkfs.lustre --ost --fsname=lustrefs --mgsnode=node-mgs@tcp0 --index=8 /dev/sdc

[root@node-oss04 ~]# mkdir {/ost7,/ost8}
[root@node-oss04 ~]# mount.lustre /dev/sdb /ost7
[root@node-oss04 ~]# mount.lustre /dev/sdc /ost8

Mount au démarrage

[root@node-oss04 ~]# echo "mount.lustre /dev/sdb /ost7" >> /etc/rc.local
[root@node-oss04 ~]# echo "mount.lustre /dev/sdc /ost8" >> /etc/rc.local
[root@node-oss04 ~]# chmod +x /etc/rc.d/rc.local

5.5°) Installation Disques node-oss05

[root@node-oss05 ~]# mkfs.lustre --ost --fsname=lustrefs --mgsnode=node-mgs@tcp0 --index=9 /dev/sdb
[root@node-oss05 ~]# mkfs.lustre --ost --fsname=lustrefs --mgsnode=node-mgs@tcp0 --index=10 /dev/sdc

[root@node-oss05 ~]# mkdir {/ost9,/ost10}
[root@node-oss05 ~]# mount.lustre /dev/sdb /ost9
[root@node-oss05 ~]# mount.lustre /dev/sdc /ost10

Mount au démarrage

[root@node-oss05 ~]# echo "mount.lustre /dev/sdb /ost9" >> /etc/rc.local
[root@node-oss05 ~]# echo "mount.lustre /dev/sdc /ost10" >> /etc/rc.local
[root@node-oss05 ~]# chmod +x /etc/rc.d/rc.local

5.6°) Installation Disques node-oss06

[root@node-oss06 ~]# mkfs.lustre --ost --fsname=lustrefs --mgsnode=node-mgs@tcp0 --index=11 /dev/sdb
[root@node-oss06 ~]# mkfs.lustre --ost --fsname=lustrefs --mgsnode=node-mgs@tcp0 --index=12 /dev/sdc

[root@node-oss06 ~]# mkdir {/ost11,/ost12}
[root@node-oss06 ~]# mount.lustre /dev/sdb /ost11
[root@node-oss06 ~]# mount.lustre /dev/sdc /ost12

Mount au démarrage

[root@node-oss06 ~]# echo "mount.lustre /dev/sdb /ost11" >> /etc/rc.local
[root@node-oss06 ~]# echo "mount.lustre /dev/sdc /ost12" >> /etc/rc.local
[root@node-oss06 ~]# chmod +x /etc/rc.d/rc.local

6°) Installation Serveur rsnapshot

  • Machine server-rsnapshot
    • IP :172.16.186.19
    • Disque Système : /dev/sda (Datastore3) de 8Go
    • Disque Backup : /backup (node-mgs@tcp0:/lustrefs)
    • RAM 2Go
    • vCPU : 2

Mise à jour DNS

Editer votre zone de DNS et ajouter les machines du Cluster LustreFS

; Cluster LustreFR
server-rsnapshot IN A 172.16.186.19
clienr-rsnapshot IN A 172.16.186.20

Pour le reverse

; Cluster lustreFS
19 IN PTR server-rsnapshot.house.cpb.
20 IN PTR client-rsnapshot.house.cpb.

Mise à jour

[root@server-rsnapshot ~]# yum -y update
[root@server-rsnapshot ~]# yum -y install epel-release

Installer NTP

[root@server-rsnapshot ~]# yum -y install chrony
[root@server-rsnapshot ~]# systemctl start chronyd
[root@server-rsnapshot ~]# systemctl enable chronyd
[root@server-rsnapshot ~]# timedatectl set-timezone Europe/Paris

Désactiver SELinux

[root@server-rsnapshot ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
[root@server-rsnapshot ~]# cat /etc/selinux/config
SELINUX=disabled
[root@server-rsnapshot ~]# reboot

Ajout repository Lustre

[root@server-rsnapshot ~]# scp root@node-mgs:/etc/yum.repos.d/lustre.repo /etc/yum.repos.d/lustre.repo

Installation Lustre client

[root@server-rsnapshot ~]# yum install -y e2fsprogs
[root@server-rsnapshot ~]# yum install -y kmod-lustre-client lustre-client

Création d’un Network

[root@server-rsnapshot ~]# echo "options lnet networks=tcp0(eth0)" > /etc/modprobe.d/lnet.conf

Chargement des Modules on Boot

[root@server-rsnapshot ~]# echo "/sbin/modprobe lnet" >> /etc/rc.local
[root@server-rsnapshot ~]# echo "/sbin/modprobe lustre" >> /etc/rc.local
[root@server-rsnapshot ~]# chmod +x /etc/rc.d/rc.local
[root@server-rsnapshot ~]# reboot

Mount le Disque Backup

[root@server-rsnapshot ~]# mkdir /backup
[root@server-rsnapshot ~]# mount -t lustre node-mgs@tcp0:/lustrefs /backup

Check Disque sur le server rsnapshot

[root@server-rsnapshot ~]# df -H

On se retrouve bien avec 6x20Go de dique OST

  • 6x10Go de disque OST /dev/sdb
  • 6x10Go de disque OST /dev/sdc

Check File Système

[root@server-rsnapshot ~]# lfs df -h

Check servers

[root@server-rsnapshot ~]# lfs check servers

Installation service rsnaphot

[root@server-rsnapshot ~]# yum install -y rsnapshot

Ajout clef SSH sur le client à backup (client-rsnapshot)

[root@server-rsnapshot ~]# ssh-keygen

[root@server-rsnapshot ~]# ssh-copy-id root@client-rsnapshot

Configurer rsnapshot

[root@server-rsnapshot ~]# cp /etc/rsnapshot.conf{,-old}
[root@server-rsnapshot ~]# vi /etc/rsnapshot.conf
###########################
# SNAPSHOT ROOT DIRECTORY #
###########################
snapshot_root /backup/.snapshots/

#################################
# EXTERNAL PROGRAM DEPENDENCIES #
#################################
cmd_cp /usr/bin/cp
cmd_rm /usr/bin/rm
cmd_rsync /usr/bin/rsync
cmd_ssh /usr/bin/ssh
cmd_logger /usr/bin/logger
cmd_du /usr/bin/du
cmd_rsnapshot_diff /usr/bin/rsnapshot-diff

#########################################
# BACKUP LEVELS / INTERVALS #
# Must be unique and in ascending order #
# e.g. alpha, beta, gamma, etc. #
#########################################
#retain alpha 6
#retain beta 7
#retain gamma 4
#retain delta 3
interval hourly 6
interval daily 7
interval weekly 4
interval monthly 3

############################################
# GLOBAL OPTIONS #
# All are optional, with sensible defaults #
############################################
verbose 2
loglevel 3
logfile /var/log/rsnapshot

###############################
### BACKUP POINTS / SCRIPTS ###
###############################
#### client-rsnapshot

backup root@client-rsnapshot:/etc client-rsnapshot
backup root@client-rsnapshot:/home client-rsnapshot
[root@server-rsnapshot ~]# rsnapshot configtest

Installer rsync sur le client

[root@client-rsnapshot ~]# yum install rsync

Lancement Backup du client  (Serveur Rsnapshot)

[root@server-rsnapshot ~]# /usr/bin/rsnapshot hourly

Check du backup (Serveur Rsnapshot)

[root@server-rsnapshot ~]# cat /var/log/rsnapshot

Le backup se réalise bien sur le Cluster Lustre et sur l’agrégat de disque 120Go.

Ajouter les jobs pour déclencher le service de sauvegarde (Serveur Rsnapshot)

[root@server-rsnapshot ~]# crontab -e
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user command to be executed
#
# Lancement d'un snapshot horaire tous les 4H
 0 */4 * * * /usr/bin/rsnapshot hourly

# Lancement d'un snapshot journalier à 23h50
 50 23 * * * /usr/bin/rsnapshot daily

# Lancement d'un snapshot hebdomadaire à 23h00
 00 23 * * 6 /usr/bin/rsnapshot weekly

# Lancement d'un snapshot mensuel à 23H10
 10 23 1 * * /usr/bin/rsnapshot monthly

Test de sauvegarde d’un fichier ISO sur le client

Sur le Client

[root@client-rsnapshot home]# cd /home
[root@client-rsnapshot home]# yum install wget -y
[root@  home]# wget https://download.rockylinux.org/pub/rocky/8/isos/x86_64/Rocky-8.5-x86_64-minimal.iso

Sur le serveur

[root@server-rsnapshot home]# /usr/bin/rsnapshot hourly
[root@server-rsnapshot home]# tail -f /var/log/rsnapshot

[root@server-rsnapshot ~]# df -H

[root@server-rsnapshot ~]# ls -al /backup/.snapshots/hourly.0/client-rsnapshot/home/

[root@server-rsnapshot ~]# ls -al /backup/.snapshots/

Views: 11

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *