Installation d'Ubuntu en raid 1 logiciel + script sauvegarde
Pour écrire ce billet, je me suis très largement inspiré d'un tutoriel sur la doc ubuntu.
Je suis appelé par l'intermédiaire de mon travail à ré-installer un PC serveur de fichiers pour un client qui a eu un problème de disque dur. Ce client n'a pas voulu de serveur windows, il avait jusqu'à maintenant un serveur mandrake 10.1. Je lui ai réinstallé un serveur Ubuntu comme ceci : 2 disques dur en miroir pour le système et les données et 1 disque dur pour du stockage / backup.
Qu'est ce qu'un miroir ? Les deux premiers disques dur qui sont exactement identiques (marque, taille) ont un contenu vigoureusement identique également. Cela signifie que si un des disques dur rend l'âme, l'ordinateur pourra toujours redémarrer normalement sur l'autre disque dursans aucune incidence. Les utilisateurs n'y verront rien puisqu'ils n'auront perdu aucune donnée.
Il existe plusieurs type de raid, par exemple le raid 5 (agrégé par bandes à parité répartie) nécessite au minimum 3 disques durs et permet d'augmenter les temps d'accès en lecture. Le raid 0 permet d'utiliser de regouper deux partitions ou deux disques dur afin d'en augmenter l'espace disponible. Tout est bien expliqué sur l'encyclopédie libre.
Pour installer Ubuntu en raid 1 logiciel, je me suis muni du cédé alternatif d'Ubuntu gutsy.
J'ai partionné les deux disques comme ceci :
scsi1 sda 80Go
n°1 primaire 2.0 Go swap (mémoire virtuelle)
n°2 primaire 76.0 Go raid (et non ext3)
scsi2 sdb 80Go
n°1 primaire 2.0 Go swap (mémoire virtuelle)
n°2 primaire 76.0 Go raid (et non ext3)
Ceci étant fait, à l'aide de la barre de défilement verticale remonter et sélectionner le menu « Configurer le RAID logiciel ». J'ai choisi comme type de périphérique multidisque raid1 mais il y a aussi raid0 et raid5 de disponible.
J'ai ensuité naturellement coché deux les partitions disponibles : sda2 et sdb2. Ce sont bien elles qui vont être en miroir.
Une nouvelle ligne apparait alors à l'écran : Périphérique raid n°0 76.0 Go périphérique raid logiciel.
C'est cette ligne là qu'il faut sélectionner pour changer le système de fichier, on va choisir "ext3"
Le partitionnement étant alors terminé, l'installation se déroule ensuite tout à fait normalement...
Après le redémarrage, il y a une modification complémentaire à faire :
Vous pourrez même simuler des pannes pour vérifier le bon fonctionnement...
En bonus, voici un script de sauvegarde des données que l'on peut lancer manuellement (ou lancer dans le cron automatiquement via la commande : crontab -e)
_______________________________________________________________________________________
#!/bin/bash
JOUR=`date +%a`
MOIS=`date +%m`
CHEMIN="/tmp/" # Chemin de la sauvegarde
if [ -z "$2" ]
then
#Ajouter à cette variables les rép à sauver (Attention pour un répertoire finir par un '/')
DIRS="/home/mike/"
else
DIRS = $2
fi
if [ -e "$CHEMIN/result_backup.txt" ]
then
rm $CHEMIN/result_backup.txt
fi
##################### Aide ##################
if [ $1 = "-help" -o $1 = "-h" ]
then
echo "------Utilisation du script------"
echo "Executer une sauvegarde complète ----> "./save.sh full" "
echo "Executer une sauvegarde incrémentielle journalière ----> "./save.sh journal" "
echo "Executer une sauvegarde incrémentielle hebdomadaire ----> "./save.sh hebdo" "
echo "Executer une sauvegarde incrémentielle mensuelle ----> ".save.sh mensuel" "
echo "Il vous est possible de modifier le répertoire par défaut des sauvegardes et de la personne qui recevra le mail de fin de sauvegarde, ainsi que les répertoires sauver en éditant le script."
echo "---------------------------------"
exit
fi
########### Vérification de l'existance du répertoire de sauvegarde########"
if [ ! -e "$CHEMIN" ]
then
echo "!!!Le répertoire "$CHEMIN" de sauvegarde n'existe pas!!!"
echo "Création du répertoire? (o/n)"
read rep
if [ "$rep" = "o" -o "$rep" = "O" ]
then
mkdir $CHEMIN
echo "Répertoire "$CHEMIN" créer"
echo "Exécution de la sauvegarde"
elif [ "$rep" = "n" -o "$rep" = "N" ]
then
echo "Sortie du script"
exit
else
echo "Veuillez répondre par "o" ou "n" "
./save.sh $1
fi
fi
###### Logs ######
echo "===== Rapport de sauvegarde =====" > $CHEMIN/result_backup.txt
#################### Sauvegarde complète #####################
if [ "$1" = "full" ]
then
tar cpzvf $CHEMIN/backup_complet.tgz $DIRS --exclude="$CHEMIN/*" --exclude="/proc/*" >> "$CHEMIN/result_backup.txt"
echo "===================" >> "$CHEMIN/result_backup.txt"
echo "Sauvegarde complete terminee" >> "$CHEMIN/result_backup.txt"
MEL="1"
########################## Sauvegarde journalière incrementielle #################
elif [ "$1" = "journal" ]
then
nice find $DIRS -mtime -1 ! -type d -print > "$CHEMIN/listejournal1"
nice tar -Apvz -T "$CHEMIN/listejournal1" -f "$CHEMIN/journalier.tgz"
echo "===================" >> "$CHEMIN/result_backup.txt"
echo "Sauvegarde journaliere terminee" >> "$CHEMIN/result_backup.txt"
MEL="1"
######################## Sauvegarde hebdomadaire incrementielle ###########
elif [ "$1" = "hebdo" ]
then
nice find $DIRS -mtime -7 ! -type d -print > "$CHEMIN/listehebdo7"
nice tar -Apvz -T "$CHEMIN/listehebdo7" -f "$CHEMIN/hebdo.tgz"
echo "===================" >> "$CHEMIN/result_backup.txt"
echo "Sauvegarde hebdomadaire terminee" >> "$CHEMIN/result_backup.txt"
MEL="1"
#################### Sauvegarde mensuelle incrementielle ##############
elif [ "$1" = "mensuel" ]
then
nice find $DIRS -mtime -31 ! -type d -print > "$CHEMIN/listemensuel31"
nice tar -Apvz -T "$CHEMIN/listemensuel31" -f "$CHEMIN/mensuel.tgz"
echo "===================" >> "$CHEMIN/result_backup.txt"
echo "Sauvegarde mensuelle terminee" >> "$CHEMIN/result_backup.txt"
MEL="1"
################# Erreur #######################"
else
echo "Erreur de paramètre - Taper "./save.sh -help" pour plus d'informations"
fi
_______________________________________________________________________________________
Sinon backuppc semble un outil de sauvegarde très pratique et puissant (qui se paramètre via le navigateur web)
A+
Mike.

Je suis appelé par l'intermédiaire de mon travail à ré-installer un PC serveur de fichiers pour un client qui a eu un problème de disque dur. Ce client n'a pas voulu de serveur windows, il avait jusqu'à maintenant un serveur mandrake 10.1. Je lui ai réinstallé un serveur Ubuntu comme ceci : 2 disques dur en miroir pour le système et les données et 1 disque dur pour du stockage / backup.
Qu'est ce qu'un miroir ? Les deux premiers disques dur qui sont exactement identiques (marque, taille) ont un contenu vigoureusement identique également. Cela signifie que si un des disques dur rend l'âme, l'ordinateur pourra toujours redémarrer normalement sur l'autre disque dursans aucune incidence. Les utilisateurs n'y verront rien puisqu'ils n'auront perdu aucune donnée.
Il existe plusieurs type de raid, par exemple le raid 5 (agrégé par bandes à parité répartie) nécessite au minimum 3 disques durs et permet d'augmenter les temps d'accès en lecture. Le raid 0 permet d'utiliser de regouper deux partitions ou deux disques dur afin d'en augmenter l'espace disponible. Tout est bien expliqué sur l'encyclopédie libre.
Pour installer Ubuntu en raid 1 logiciel, je me suis muni du cédé alternatif d'Ubuntu gutsy.
J'ai partionné les deux disques comme ceci :
scsi1 sda 80Go
n°1 primaire 2.0 Go swap (mémoire virtuelle)
n°2 primaire 76.0 Go raid (et non ext3)
scsi2 sdb 80Go
n°1 primaire 2.0 Go swap (mémoire virtuelle)
n°2 primaire 76.0 Go raid (et non ext3)
Ceci étant fait, à l'aide de la barre de défilement verticale remonter et sélectionner le menu « Configurer le RAID logiciel ». J'ai choisi comme type de périphérique multidisque raid1 mais il y a aussi raid0 et raid5 de disponible.
J'ai ensuité naturellement coché deux les partitions disponibles : sda2 et sdb2. Ce sont bien elles qui vont être en miroir.
Une nouvelle ligne apparait alors à l'écran : Périphérique raid n°0 76.0 Go périphérique raid logiciel.
C'est cette ligne là qu'il faut sélectionner pour changer le système de fichier, on va choisir "ext3"
Le partitionnement étant alors terminé, l'installation se déroule ensuite tout à fait normalement...
Après le redémarrage, il y a une modification complémentaire à faire :
Editer le fichier « /boot/config-2.6.22-14-generic » (à l'aide de la commande sudo gedit /boot/config...) et modifier le fichier comme ceci :
CONFIG_BLK_DEV_MD=y; CONFIG_MD_RAID1=y; CONFIG_MD_RAID456=y; CONFIG_MD_FAULTY=y;Sauvegarder et quitter l'éditeur. Voilà, c'est fini !
Vous pourrez même simuler des pannes pour vérifier le bon fonctionnement...
En bonus, voici un script de sauvegarde des données que l'on peut lancer manuellement (ou lancer dans le cron automatiquement via la commande : crontab -e)
_______________________________________________________________________________________
#!/bin/bash
JOUR=`date +%a`
MOIS=`date +%m`
CHEMIN="/tmp/" # Chemin de la sauvegarde
if [ -z "$2" ]
then
#Ajouter à cette variables les rép à sauver (Attention pour un répertoire finir par un '/')
DIRS="/home/mike/"
else
DIRS = $2
fi
if [ -e "$CHEMIN/result_backup.txt" ]
then
rm $CHEMIN/result_backup.txt
fi
##################### Aide ##################
if [ $1 = "-help" -o $1 = "-h" ]
then
echo "------Utilisation du script------"
echo "Executer une sauvegarde complète ----> "./save.sh full" "
echo "Executer une sauvegarde incrémentielle journalière ----> "./save.sh journal" "
echo "Executer une sauvegarde incrémentielle hebdomadaire ----> "./save.sh hebdo" "
echo "Executer une sauvegarde incrémentielle mensuelle ----> ".save.sh mensuel" "
echo "Il vous est possible de modifier le répertoire par défaut des sauvegardes et de la personne qui recevra le mail de fin de sauvegarde, ainsi que les répertoires sauver en éditant le script."
echo "---------------------------------"
exit
fi
########### Vérification de l'existance du répertoire de sauvegarde########"
if [ ! -e "$CHEMIN" ]
then
echo "!!!Le répertoire "$CHEMIN" de sauvegarde n'existe pas!!!"
echo "Création du répertoire? (o/n)"
read rep
if [ "$rep" = "o" -o "$rep" = "O" ]
then
mkdir $CHEMIN
echo "Répertoire "$CHEMIN" créer"
echo "Exécution de la sauvegarde"
elif [ "$rep" = "n" -o "$rep" = "N" ]
then
echo "Sortie du script"
exit
else
echo "Veuillez répondre par "o" ou "n" "
./save.sh $1
fi
fi
###### Logs ######
echo "===== Rapport de sauvegarde =====" > $CHEMIN/result_backup.txt
#################### Sauvegarde complète #####################
if [ "$1" = "full" ]
then
tar cpzvf $CHEMIN/backup_complet.tgz $DIRS --exclude="$CHEMIN/*" --exclude="/proc/*" >> "$CHEMIN/result_backup.txt"
echo "===================" >> "$CHEMIN/result_backup.txt"
echo "Sauvegarde complete terminee" >> "$CHEMIN/result_backup.txt"
MEL="1"
########################## Sauvegarde journalière incrementielle #################
elif [ "$1" = "journal" ]
then
nice find $DIRS -mtime -1 ! -type d -print > "$CHEMIN/listejournal1"
nice tar -Apvz -T "$CHEMIN/listejournal1" -f "$CHEMIN/journalier.tgz"
echo "===================" >> "$CHEMIN/result_backup.txt"
echo "Sauvegarde journaliere terminee" >> "$CHEMIN/result_backup.txt"
MEL="1"
######################## Sauvegarde hebdomadaire incrementielle ###########
elif [ "$1" = "hebdo" ]
then
nice find $DIRS -mtime -7 ! -type d -print > "$CHEMIN/listehebdo7"
nice tar -Apvz -T "$CHEMIN/listehebdo7" -f "$CHEMIN/hebdo.tgz"
echo "===================" >> "$CHEMIN/result_backup.txt"
echo "Sauvegarde hebdomadaire terminee" >> "$CHEMIN/result_backup.txt"
MEL="1"
#################### Sauvegarde mensuelle incrementielle ##############
elif [ "$1" = "mensuel" ]
then
nice find $DIRS -mtime -31 ! -type d -print > "$CHEMIN/listemensuel31"
nice tar -Apvz -T "$CHEMIN/listemensuel31" -f "$CHEMIN/mensuel.tgz"
echo "===================" >> "$CHEMIN/result_backup.txt"
echo "Sauvegarde mensuelle terminee" >> "$CHEMIN/result_backup.txt"
MEL="1"
################# Erreur #######################"
else
echo "Erreur de paramètre - Taper "./save.sh -help" pour plus d'informations"
fi
_______________________________________________________________________________________
Sinon backuppc semble un outil de sauvegarde très pratique et puissant (qui se paramètre via le navigateur web)
A+
Mike.
Pour être informé des derniers articles, inscrivez vous :
Commenter cet article
M
M
M
/image%2F1460668%2F20250109%2Fob_68458b_logo-mike-3.png)