Outils pour utilisateurs

Outils du site


informatique:nas_hp_proliant:backup_raid

Backup raid

Sauvegarde locale

Objectif

Le raid 1 offre une solution haute disponibilité face à une panne matériel disque.
Pour consolider la sauvegarde face à une suppression (volontaire ou non) il est nécessaire d'ajouter un backup historisé des données.

Solution technique

La recopie des données est assurées par rsync.
La gestion de l'historisation est assurée avec la notion de copie hard link (cp -al). En effet mon disque de backup n'est pas suffisement gros pour assurer une recopie complète n fois.


Attention le hard link permet certe de gagner de la place et de s'affranchir d'une suppression au sein des différentes versions de backup .. mais pas d'une modification : l'inode est le même = le fichier reste le même!



Le plan de sauvegarde est donc le suivant, à chaque itération :


Avec ça les données commencent à être au chaud yes

Shell de backup

Shell lancé en crontab hebdomadaire :

0 3 * * 0 /mon_rep_de_scripts/rsync_Raid.sh>> /mon_rep_de_log/rsync_Raid.log 2>&1
rsync_Raid.sh
#!/bin/bash
echo "################################################################################################"
echo "################################################################################################"
echo "[$(date "+%Y-%m-%d %H:%M:%S")] - Debut Sauvegarde"
 
# Variables
START_TIME=`date +%s` # Pour le compte rendu
SOURCE="/mnt/Raid/"
DEST="/mnt/disque_samsung/BACKUP_RAID"
 
# Gestion des sauvegardes incrementales
echo "[$(date "+%Y-%m-%d %H:%M:%S")] - Gestion des increments"
rm -rf ${DEST}.4
mv ${DEST}.3 ${DEST}.4
mv ${DEST}.2 ${DEST}.3
mv ${DEST}.1 ${DEST}.2
cp -al ${DEST}.0 ${DEST}.1
 
# Lancement synchronisation des donnees source
echo "[$(date "+%Y-%m-%d %H:%M:%S")] - Sauvegarde des donnees sources"
RSYNC_OPTIONS="--verbose --progress --stats --archive --delete --one-file-system"
RSYNC_OPTIONS="${RSYNC_OPTIONS} --exclude=/Dropbox --exclude=/Freebox --exclude=/Videos"
# archive = recursive + links + perms + times + group + owner
# For a dry run : RSYNC_OPTIONS="${RSYNC_OPTIONS} --dry-run"
rsync ${RSYNC_OPTIONS} ${SOURCE} ${DEST}.0
 
# Compte rendu
echo "[$(date "+%Y-%m-%d %H:%M:%S")] - Compte rendu de la sauvegarde"
END_TIME=`date +%s`
ELAPSED=`expr $END_TIME - $START_TIME`
remainder="$(expr $ELAPSED % 3600)"
hours="$(expr $(expr $ELAPSED - $remainder) / 3600)"
seconds="$(expr $remainder % 60)"
minutes="$(expr $(expr $remainder - $seconds) / 60)"
echo "Fin du traitement : " `date` " Durée $hours H $minutes min $seconds sec"
echo "################################################################################################"
echo "################################################################################################"

Sauvegarde distante

Objectif

On a du RAID 1 pour la panne materiel et la haute dispo, une sauvegarde incrementale pour les erreurs de manip .. mais pour le vol ou l'incendie c'est un autre site physique de sauvegarde qu'il nous faut. Pourquoi? Parce qu'on peut.

Solution technique

Profitant d'un lien fibre à la maison ainsi que dans la famille et d'un disque MybookWorld rooté, la sauvegarde distante se base sur le script précédent en utilisant un rsync par dessus ssh :



Le script est à dupliquer et à modifier tel que :

rsync -e "ssh -pmon_port_d_ecoute -i ma_clef_rsa" ${RSYNC_OPTIONS} ${SOURCE} user@ip_distante:${DEST}

Un crontab dans la foulée est on est habillé pour l'hiver smiley

informatique/nas_hp_proliant/backup_raid.txt · Dernière modification : 2021/04/20 19:25 de florian