Overblog
Editer l'article Suivre ce blog Administration + Créer mon blog

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 :

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 :
M
cool merci! mais du coup sur les deux swap un seul est utile?
Répondre
M
Les deux disques d'un raid 1 ne doivent pas forcément être identiques, les deux systèmes de fichiers et donc partitions oui..si tu as un 80 go et un 120go tu peux "mirrorer" une partoche de 80 sur le premier et une de 80 sur le second, en gardant 40g sur le second pour /usr par exemple..
Répondre
M

Oui je ne suis pas rentré dans les détails, j'ai plutôt décris mon cas... c'est en effet l'intérêt d'un miroir logiciel par rapport au métériel. Même si maitenant certains raids matériel peuvent
même gérer des disques de capacités différentes (notamment le raid 5). On arrête pas le progrès....