Retourner au contenu. Retourner à la navigation

 

Module 3

by civ @ 13/09/2006

Chapitre 05 - Sauvegarde

Mise en place d'une solution de sauvegarde avec Amanda.

1. Introduction

Les ordinateurs ne sont pas à l'abri d'une perte de données. Qu'elle soit engendrée par un problème matériel ou une erreur humaine. Il existe plusieurs systèmes permettant de pourvoir revenir à un état antérieur à la perte. Le principe est simple : faire des copies des données.

Amanda est un utilitaire qui permet de faire des sauvegardes via le réseau.

Grâce à Amanda, nous allons pouvoir sauvegarder des données sur plusieurs ordinateurs et de plusieurs façons différentes. Soit une sauvegarde total des données, appelé niveau 0, soit une sauvegarde incrémentale, appelé niveau 1.

1.1 La sauvegarde incrémentale

Sauvegarder toutes les données de plusieurs serveurs sensibles en même temps est pratiquement impossible et il faudrait une très grande capacité de stockage et ceci prendrai enormement de temps.

Il y a réellement peu de changement sur la totalité des données, la première fois, nous allons sauvegarder la totalité des données (niveau 0), ensuite on sauvegardera uniquement les données qui ont été modifiées (niveau 1). Cette technique permet d'économiser du temps et de la place.

2. Serveur

2.1 Installation

Nous allons installer Amanda à partir des sources. Premièrement télécharger la dernière version depuis le site officiel : http://www.amanda.org

Si vous utiliser un firewall, vous pouvez spécifier les ports utiliés pour le transfert. Par contre la requette pour lancer le transfert se fera toujours sur le port 10080

Nous allons créer un utilisateur Amanda qui servira à lancer le programme. Cet utilisateur devra etre ajouter au groupe "disk" pour avoir les droits en ecriture sur les medias de sauvegarde. Nous créons un utilisateur spécial pour des raisons de sécurité. Il est toujours préférable de ne pas lancer un service en temps que root

bash-2.05b$ groupadd amanda
bash-2.05b$ useradd -g amanda -G disk amanda
bash-2.05b$ tar zxvf amanda-x.y.z.tar.gz
bash-2.05b$ cd amanda-x.y.z
bash-2.05b$ ./configure \
> --with-user=amanda \
> --with-group=amanda \
> --with-config=/etc/amanda \
> --with-gnutar=`which tar` \
> --with-amandahosts
> ----with-portrange=50000,50100 \
bash-2.05b$ make
bash-2.05b$ make check
bash-2.05b$ make install

2.2 Fichiers de configuration

Tout d'abords, il faut bien choisir le serveur de sauvegarde. Amanda demande beaucoup de charge CPU car il compresse les fichiers. Il faut aussi prévoir une grande activité au niveau du media de sauvegarde et de la connexion réseaux.

Il est possible de créer plusieurs configurations. Ceci permet de mettre en place plusieurs politiques de sauvegarde. Chaque configuration a son propre répertoire qui contient 2 fichiers : amanda.conf et disklist.

Exemple : les fichiers de configuration pour "serveur" seront à placer dans "/etc/amanda/serveur/"

2.2.1 amanda.conf

# Fichier de configuration pour amanda

org serveur # nom de la configuration
mailto root # compte qui recoit le rapport envoyer par mail
dumpcycle 10 # nombre jour entre chaque sauvegarde complete
tapedev /dev/sda1 # chemain vers le media de sauvegarde
dumpuser qmanda # utilisateur qui va lancer la sauvegarde
inparallel 10 # nombre maximum de sauvegarde en simultané
netusage 300 # Bande passante maximale allouée à la sauvegarde en Ko

define dumptype serveur-dump {
# type de dump utilisé par le fichier disklist
comment "un commentaire pour le rapport"
compress none # compresse ou non les données.
# none : ne compresse pas
# client fast : compresse rapidement sur le client
# client best : compresse fortement sur le client
# server fast : compresse rapidement sur le serveur
# server best : compresse fortement sur le serveur
dumpcycle 10 # nombre jour entre chaque sauvegarde complete

program "GNUTAR" # fait une archive
strategy standard # Strategie a appliquer
# standard : straygie normal
# nofull : ne fera que des sauvergardes incrémentiels
# noinc : ne fera que des sauvegardes completes
# skip : ne fera aucune sauvegarde
}

2.2.2 distlist

Le fichier distlist contient les machines qu'il faut sauvegarder.

Il est composé du nom de la machine (FQDN si possible), la racine de la sauvegarde et le type de sauvegarde (voir "define dumptype ci-dessus").

# machine		chemain	type de sauvegarde
web-server /www serveur-dump

2.2.3 amandahosts

Le fichier "/home/amanda/.amandahosts" ou "/etc/amanda/amandahosts" suivant les versions, contient le couple nom de machines cliente et utilisateur pouvant se connecter au serveur pour faire une restauration. Ce fichier est unique, il sera utilisé par toute les configurations.

#machine		utilisateur
web-server root

2.2.4 /home/dumps

Ce dossier va être utile au cas où notre disque de sauvegarde soit plein. Amanda y stockera les donneés en attendant que le disque soit changé.

bash-2.05b$ mkdir /home/dumps
bash-2.05b$ chown amanda:amanda /home/dumps
bash-2.05b$ chmod 660 /home/dumps/

Dans le cas où votre disque est plein et que Amanda utilise se dossier. La commande qui permet de transferer le contenu du dossier vers le nouveau disque de sauvergarde est :

bash-2.05b$ amflush -c serveur

"serveur" étant le nom de notre configuration

2.3 Lancer Amanda

Pour lancer Amanda, nous allons utilisé Xinetd. Xinetd est super démon, on l'utilise pour gérer les connexions réseaux.

Premièrement il faut éditer "/etc/xinetd.conf"

service amanda
{
protocol = udp
socket_type = dgram
wait = yes
user = amanda
group = amanda
groups = yes
server = /usr/local/libexec/amandad
}

service amandaidx
{
protocol = tcp
socket_type = stream
wait = no
user = amanda
group = amanda
groups = yes
server = /usr/local/libexec/amindexd
}

service amidxtape
{
protocol = tcp
socket_type = stream
wait = no
user = amanda
group = amanda
groups = yes
server = /usr/local/libexec/amidxtaped
}

Xinetd a besoin connaître quel port il doit écouter et vers quel programme renvoyer la requête.

Pour cela il faut renseigner le fichier "/etc/services"

amanda          10080/udp
kamanda 10081/udp
kamanda 10081/tcp
amandaidx 10082/tcp
amidxtape 10083/tcp

Ensuite il faut relancer Xinetd avec la commande

bash-2.05b$ killall -HUP xinetd

3. Client

3.1 Installation

Même procedure que pour le serveur, nous créons un utilisateur amanda et nous installons Amanda. Vous pouvez remarquer que nous passons l'option "-without-server" au script configure afin d'installer une version plus minimale.

bash-2.05b$ groupadd amanda
bash-2.05b$ useradd -g amanda -G disk -s /bin/false amanda
bash-2.05b$ tar zxvf amanda-x.y.z.tar.gz
bash-2.05b$ cd amanda-x.y.z
bash-2.05b$ ./configure \
> --with-user=amanda \
> --with-group=amanda \
> --with-config=/etc/amanda \
> --with-gnutar=`which tar` \
> --with-amandahosts \
> ----with-portrange=50000,50100 \
> --without-server
bash-2.05b$ make
bash-2.05b$ make check
bash-2.05b$ make install

3.2 Configuration de amandahosts

Tout comme pour la partie serveur, nous allons enter dans le fichier amandahosts le nom du serveur et de l'utilisateur qui sera autoriser à se connecter au client pour faire une sauvegarde.

# machine 		utilisateur
backup-server Amanda

3.3 Lancer Amanda

Amanda va etre lancé via Xinetd. Pour cela il faut modifier les fichiers xinetd.conf et services comme pour le serveur.

# Fichier xinetd.conf
service amanda
{
protocol = udp
socket_type = dgram
wait = yes
user = amanda
group = amanda
groups = yes
server = /usr/local/libexec/amandad
}
# Fichier /etc/services
amanda 10080/udp
kamanda 10081/udp
kamanda 10081/tcp
amandaidx 10082/tcp
amidxtape 10083/tcp

Ensuite il faut relancer xinetd avec la commande

bash-2.05b$ killall -HUP xinetd

4. Demarrer une sauvegarde

4.1 Verification

A chaque nouveau disque, il faudra lui donner un nom. Ce nom servira pour retouver facilement sur quel disque se trouve quelle sauvegarde.

bash-2.05b$ su amanda -c "amlabel serveur Serveur-001"

Ensuite nous allons tester notre configuration. Ce test doit etre effectué à chaque fois que l'on ajoute un client à une configuration.

bash-2.05b$ su amanda -c "amcheck serveur"

4.2 Programmer les sauvegardes

Nous allons editer la crontab de l'utilisateur amanda, afin de lancer une sauvegarde une fois par jour a 2:05 AM.

Pour plus d'information sur cron, se référer au cours donné en P1 disponible sur le site du laboratoire : http://www.labo-linux.org

bash-2.05b$ su amanda -c "crontab -e"
05 02 * * * /usr/local/sbin/amdump serveur
bash-2.05b$ su amanda -c "crontab -l"

5. Faire une restoration

La restoration devra se faire depuis une machine cliente

Nous allons faire un exemple. Imaginons que nous voulions restorer le fichier "/www/labo-linux.org/index.php" et le dossier "/www/labo-linux.org/images/"

Premièrement il faut se placer dans le dossier racine de la sauvegarde soit "/www"

bash-2.05b$ cd /www

Ensuite on lance la commande amrecover avec le nom de la sauvegarde

bash-2.05b$ amrecover -c serveur

Une fois connecté, on va renseigner le nom du client, la date de la sauvegarde et la racine de la sauvergarde

sethost web-server
setdate 2004-08-23
setdisk /www

Puis garce à la commande "add", nous allons spécifier le fichier et le dossier à restorer

cd /www/labo-linux.org
add index.php
add images/

La commande "extract restorera les fichiers et dossiers sélectionnés.

extract


1 2 3 4 5
Par civ Dernière modification 22/03/2007 15:53
Navigation
Actualités
03/12/2008 Songbird 1.0
20/10/2008 Société Générale se met au vert
15/09/2008 Sortie de la version VLC 0.9.2
23/06/2008 Opération du libre à Nantes !
23/06/2008 OpenSuse 11
Plus d'actualités...
Articles
22/05/2008 Première approche de Qmail
19/05/2008 Test de la distribution Elive 1.0 Gem
14/05/2008 GNUPG introduction à la cryptographie et utilisation de GnuPG
21/02/2008 GNU / Screen
03/09/2007 The Linux File System Encryption API
More articles
Tips
28/04/2008 Mozilla Firefox : Google Talk et Facebook Chat
22/04/2008 Sed : Rechercher du texte entre deux chaines de caractères
04/04/2008 Gérer son(ses) écran(s) avec xrandr
26/03/2008 Tips sur l'historique de vos commandes
13/02/2008 Linux-Unix Cheat Sheets
More tips
Codes
09/04/2008 Chapitre 13 - Administration DNS et DHCP
09/04/2008 Chapitre 06 - Service web avec Apache
04/04/2008 Chapitre 09 - PureFTPd
04/04/2008 Chapitre 06 - Scripting Bash
01/04/2008 Chapitre 20 - Haute Disponibilité
More codes
Courses
13/09/2006 Module 3
23/02/2006 Module 2
23/02/2006 Module 1
More courses
Formation Linux

Supinfo Training Center has the first Linux Certification. The training is 13 days and allow you to pass the LPI 101 and 102.

more info
 
 
Vous êtes ici :
Cours Module 3 Chapitre 05 - Sauvegarde