Affa Sauvegarde automatisée sur disque déporté pour SME 7 server

Transcription

Affa Sauvegarde automatisée sur disque déporté pour SME 7 server
Affa
Sauvegarde automatisée sur disque déporté
pour SME 7 server
Traducteur : Joseph BERAUD (jibe, jibe74)
Document d'origine :
Affa : Documentation officielle du wiki de contribs.org.
Autres sources et liens utiles :
CONTRIBS : le site officiel de SME-Server, qui comporte un forum francophone.
SMEserver.fr : Le site de Grand-Pa, LA référence francophone de SME-server.
FreeEOS : Une distribution made in France issue de SME-server, comportant entre autres de nombreuses
applications web pré-installées.
Ixus : Un excellent forum dédié à la sécurité informatique, dont une large section est consacrée à SMEserver et à Ipcop.
Comparatif Affa-BackupPC : Un tableau comparatif de deux solutions de sauvegardes automatisées pour
SME-server.
Mise a jour : Octobre 2007
Attention : compte tenu du peu de temps dont je dispose, je ne peux garantir que cette traduction soit
maintenue à jour par rapport à l'original.
Le présent document est une simple traduction française de la documentation officielle, disponible sur le
wiki de contribs.org. On se reportera à celle-ci pour s'assurer des mises à jour, corrections et compléments
qui pourraient ne pas avoir été reportés ici. Cette traduction est livrée telle quelle, sans garanties d'aucune
sorte, et le traducteur ne saurait être tenu pour responsable de quelque conséquence que ce soit découlant
de la lecture et de l'utilisation de cette traduction.
Toute remarque ou suggestion concernant cette traduction sera la bienvenue.
Tous les noms et marques de commerce sont la propriété de leurs titulaires respectifs.
Table des matières
1. Développeur
2. Description
2.1. Un coup d'oeil sur les caractéristiques
3. Téléchargement et installation
4. Exemple de démarrage rapide
5. Configuration
5.1. Propriétés de la configuration de tâches
5.2. Propriétés de la configuration par défaut
5.3. Désactivation globale
6. Utilisation et options de ligne de commande
7. Exemples de configuration
7.1. Standard
7.2. Serveur Affa local plus serveur Affa déporté
7.3. Sauvegarder une ibay individuellement
7.4. Deux serveurs de production qui se sauvegardent mutuellement
7.5. Utiliser Affa pour sauvegarder un NAS monté par NFS ou un disque USB local
7.5.1. Configuration du NAS
7.5.2. Alternative : configuration du disque USB
7.5.3. Configuration d'Affa
7.5.4. Limitations
7.5.5. Automount : montage automatique
8. Restauration
8.1. Restauration de fichiers ou répertoires individuels
8.2. Restauration totale
8.3. Migrer un serveur SME 7 sur un nouveau matériel en utilisant la fonction "rise" de Affa
9. FAQ
10. Informations complémentaires
10.1. Performance
10.2. Rapport de bugs
10.3. Changelog
10.4. Fichiers
10.5. RPM Source
10.6. Acronyme
1. Développeur
Michael Weinberger.
Affa a été créé le 5 Avril 2007.
2. Description
Le but principal de ce paquetage Affa est de transformer un serveur SME 7 en un serveur dédié de
sauvegardes en quelques minutes. Affa sauvegarde autant que vous le désirez de serveurs SME sur
n'importe quel autre serveur ayant sshd en service et rsync installé. Une fois qu'il est configuré, Affa
fonctionne sans surveillance et de manière fiable, envoyant des messages d'avertissement en cas d'erreur.
Toutes les archives sont des sauvegardes complètes, puisque Affa utilise la technique des hardlink. Une
nouvelle sauvegarde complète ne nécessite donc que l'espace disque pour les différences et les nécessités
du système de fichier pour les hardlinks et les répertoires (ce qui représente généralement 2-3%).
Affa est basé sur le programme rsync et supporte l'option --compress. Cela vous permet de lancer des
sauvegardes via internet ou VPN. Une configuration typique consiste en un ou plusieurs serveurs de
sauvegarde Affa placés en des lieux déportés, qui sauvegardent les serveurs de production via le VPN.
Une caractéristique spéciale est l'option "rise", qui vous permet de convertir votre serveur de sauvegarde
en serveur de production depuis une archive sauvegardée en cas de perte totale de votre serveur de
production. Cette conversion est exécutée en un temps très court, même avec une énorme quantité de
données. Cette possibilité de conversion utilise les hardlinks et de ce fait n'utilise pas d'espace disque
supplémentaire.
Affa est un outil en ligne de commande pour les administrateurs système et est conçu intentionnellement
sans interface graphique. De ce fait, il peut être géré efficacement depuis la console même via une
connexion internet lente.
2.1. Un coup d'oeil aux caractéristiques
Pour ceux qui hésiteraient entre Affa et BackupPC, j'ai établi un petit tableau comparatif entre Affa et
BackupPC.
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Réalise une sauvegarde complète à chaque lancement programmé
Mémorise un nombre configurable de sauvegardes automatisées, journalières, hebdomadaires,
mensuelles et annuelles
Utiliser rsync avec l'option de compression pour les connexions lentes permet des sauvegardes via
internet/VPN
Utilise la technique des hardlink pour réduire l'espace disque physique nécessaire seulement pour
les différences entre deux sauvegardes complètes
Les tâches de sauvegarde sont démarrées par le démon cron
Sauvegarde les répertoires et fichiers e-smith par défaut, lorsque la propriété SMEServer est mise
à 'yes'
Des répertoires et fichiers supplémentaires peuvent être inclus
Des répertoires et fichiers peuvent être exclus de la sauvegarde
Les serveurs Linux non SME peuvent être sauvegardés en mettant la propriété SMEServer à 'no' et
en utilisant une liste d'inclusion
Priorité configurable (nice level) pour les process rsync sur les serveurs backup et source
Possibilité de lancer des programmes personnels avant et après le lancement d'une tâche (par
exemple, lancement d'une sauvegarde sur bande)
Vérification de l'espace disque disponible après le lancement d'une tâche avec niveaux
d'avertissement strict, normal ou risqué
Vérification étendue des conditions d'échec
Envoi de messages d'échec à une liste configurable d'adresses email
Envoi d'un message d'avertissement si le serveur de backup n'a plus d'espace disque disponible
Installe un chien de garde optionnel sur le serveur source vérifiant la disponibilité du serveur de
backup
Le chien de garde envoie des avertissements, si une sauvegarde programmée n'a pas été lancée
Le chien de garde envoie un message journalier de rappel tant que l'erreur n'est pas corrigée
Possibilité d'afficher le status courant de toutes les tâches, montrant les heures de dernier et
prochain lancement, la taille et l'espace disque utilisé
Le status peut être envoyé par email journellement, hebdomadairement ou mensuellement.
Possibilit d'afficher toutes les archives existantes pour une tâche, montrant la date, le nombre de
fichiers et l'espace disque
Possibilité d'envoyer la clé publique au serveur source
Option pour convertir le serveur de sauvegardes en serveur de production. Pour SME 7 seulement.
La fonction de conversion ne déplace pas physiquement les données et est donc extrêmement
rapide et ne nécessite (presque) pas d'espace disque
La fonction de conversion peut être lancée à distance puisque les drivers ethernet du serveur de
sauvegarde sont conservés
Comparaison des RPMs installés entre les serveurs source et de sauvegarde. Envoie un
avertissement s'il n'y a pas correspondance.
Annulation de la conversion pour restauration du serveur de sauvegardes
Configurable par commandes style e-smith db, avec un enregistrement pour chaque tâche et un
enregistrement par défaut commun à toutes les tâches
Logs dans /var/log/affa avec option debug pour plus de détails
Les fichiers de log sont permutés hebdomadairement, avec 5 fichiers conservés
3. Téléchargement et installation
•
•
Téléchargez le paquetage smeserver-affa depuis un des mirroirs de contribs pour SME Server.
Téléchargez le paquetage perl-Filesys-DiskFree depuis DAG ou un des mirroirs. Pour SME 7 vous
•
avez besoin de perl-Filesys-DiskFree-0.06-1.2.el4.rf.noarch.rpm.
Installez les deux RPMs
Note: Les versions Affa ≤ 0.5.2 avaient besoin du paquetage perl-Filesys-DiskSpace. Si vous avez ce
paquetage installé et que vous utilisez maintenant Affa ≥ 0.6.0, vous pouvez le désinstaller sans problème.
4. Exemple de démarrage rapide
Vous avez un serveur de production SME 7 dont le nom est 'prodbox' et l'IP 10.200.48.1. Installez un
second SME 7 comme serveur de sauvegardes avec le nom 'affabox' et l'IP 10.200.48.2.
1. loggez-vous dans 'affabox' et installez les paquetages mentionnés ci-dessus.
2. copiez le script d'exemple de configuration
# cp /usr/lib/affa/jobconfig-sample.pl /root/prodbox-job.pl
3. Editez /root/prodbox-job.pl et mettez
my $jobname='prodbox';
et
'remoteHostNameâ¬Ü=>'10.200.48.1'
4. Enregistrez la configuration (cela crée les entrées de base de données et les tâches cron)
# /root/prodbox-job.pl
5. Générez les clés DSA et envoyez la clé publique à la 'prodbox'
# affa --send-key prodbox
6. Lancez la tâche à la main
# affa --run prodbox
5. Configuration
La configuration est stockée dans une base de données style e-smith. Utilisez la commande db pour
configurer Affa. Le nom de tâche est la clé d'enregistrement de type 'job'. Pour configurer un nouveau
travail avec le nom 'prodbox', entrez :
# db affa set prodbox job
Puis positionnez les propriétés
# db affa setprop prodbox remoteHostName 192.168.1.1
# db affa setprop prodbox TimeSchedule '0030,0730,1130,1330,1730,2030'
# db affa setprop prodbox Description 'My Production Server'
# db affa setprop prodbox status enable
et ainsi de suite...
Alternativement, vous pouvez utiliser un script comme décrit ci-dessus dans le chapitre 'Démarrage
rapide'.
Pour vérifier votre travail, tapez :
# db affa show prodbox
Pour finir, mettez en place les tâches cron :
# affa --make-cronjobs
5.1. Propriétés de configuration de tâches
Propriété
Valeur
Description
remoteHostName
FQHN ou IP
de l'hôte source
TimeSchedule
HHMM,HHMM,...
N'a pas besoin d'être ordonné. Au moins une heure
est obligatoire
Description
texte
scheduledKeep
dailyKeep
weeklyKeep
monthlyKeep
yearlyKeep
entier >= 1
Combien de sauvegardes horaires, quotidiennes,
hebdomadaires, mensuelles ou annuelles doivent
être conservées
SMEServer
yes ou no
Positionné à 'yes', les répertoires e-smith par défaut
sont automatiquement inclus et la propriété
RPMCheck=yes peut être utilisée
Include[0]
Include[1]
...
full path
Fichiers ou répertoires supplémentaires à inclure à
la sauvegarde
Exclude[0]
Exclude[1]
...
full path
Fichiers ou répertoires supplémentaires à exclure de
la sauvegarde
RPMCheck
yes ou no
Seulement applicable aux tâches qui sauvegardent
un serveur SME 7.
Compares les RPM de l'hôte source avec ceux de
l'hôte de sauvegarde affa. Envoie un message avec
une liste de différences s'il n'y a pas
correspondance. Cette vérification est utile, si vous
voulez avoir la possibilité de convertir le serveur de
sauvegarde en serveur de production.
DiskSpaceWarn
strict ou normal ou
lance une vérification de l'espace disque après
qu'une tâche soit terminée. Avec le niveau 'strict' un
risky ou none
message d'avertissement sera envoyé si l'espace
disponible est moins que la taille de la sauvegarde
qui vient de s'achever. Avec les niveaux
'normal'/'risky' le message est envoyé si moins de
50%/10% de la taille de la sauvegarde reste
disponible.
localNice
-19...+19
lance le process local rsync par nice.
remoteNice
-19...+19
lance le process rsync de la source par nice.
yes ou no
Seulement applicable aux tâches qui sauvegardent
un serveur SME 7.
Quand une tâche est lancée, affa installe un script
chien de garde sur la source dans /etc/cron.d/, qui
envoie un message d'avertissement si la prochaine
tâche programmée (prise dans la propriété
TimeSchedule + 10 minutes) n'a pas été lancée. Cela
garantit que vous serez prévenu même en cas de
panne du serveur affa. Le script chien de garde
envoie un message de rappel quotidien si l'erreur
persiste. La tâche lancée suivante remplace le script
chien de garde avec un nouveau temps de
déclenchement.
port du service
22 par défaut. Lorsque sshd sur le serveur source ou
votre firewall écoute sur un port non standard,
précisez le port ici.
Watchdog
sshPort
ConnectionCheckTimeout secondes
Avant que le process rsync démarre sur l'hôte
source distant, affa vérifie la connexion ssh et se
termine avec une erreur après le temps configuré, si
l'hôte ne répond pas.
rsyncTimeout
secondes
Rsync se termine si aucune donnée n'est transférée
pendant le temps configuré. Cela évite un gelage
permanent dans le cas d'une erreur sur le réseau.
rsyncCompress
yes ou no
Compresse les données transférées. Peut être utile
avec les connexions internet lentes. Cela augmente
la charge CPU sur les hôtes source et de
sauvegarde.
EmailAddresses
Liste séparée par des virgules des adresses email
où les messages seront envoyés.
[email protected],na
Note : Par défaut, Affa n'envoie de messages que
[email protected],...
pour les erreurs, jamais en cas de succès (voir la
propriété chattyOnSuccess).
chattyOnSuccess
entier >= 0
Quand positionné à une valeur >0, Affa envoie un
message pour les tâches terminées avec succès et
décrémente la valeur chattyOnSuccess. Lorsque la
valeur atteint 0, Affa revient à son comportement
par défaut et n'envoie plus de messages qu'en cas
d'erreur.
AutomountDevice
AutomountPoint
full path
Unité et point de montage de l'unité de sauvegarde
(ex. disque USB). L'unité est montée
automatiquement avant qu'une tâche soit lancées et
démontée après la fin de la tâche. Avec ces deux
propriétés vides, aucun montage automatique n'est
effectué.
AutomountOptions
chaine de caractères
Une chaine d'options passées à la commande de
montage automatique
full path
Programmes (locaux sur le serveur affa) à exécuter
avant/après qu'une tâche soit lancée. Le nom de la
tâche et le type (programmée, journalière etc.) sont
passés en arguments au programme. Le code de
sortie est de plus passé à la commande de
programme post-tâche. Voir /usr/lib/affa/ pour des
exemples de scripts perl.
RootDir
full path
Où stocker les archives de sauvegarde. N'utilisez
pas /home/e-smith ou /root puisqu'ils sont inclus
dans les répertoires à sauvegarder, ce qui
empêcherait la fonction de conversion de
fonctionner ! Répertoire conseillé : /var/affa
Debug
yes ou no
Positionné à 'yes', donne plus de détails dans le
fichier de log.
status
enabled ou disabled
Positionné à 'disable', aucune entrée cron ne sera
faite. Vous pouvez encore lancer les tâches à la
main.
rsync--inplace
yes ou no
Positionné à 'no', si la version rsync de la source ne
supporte pas cette option (comme rsync sur SME6)
yes ou no
Positionné à 'no' pour désactiver la recherche de clé
ssh de l'hôte. Utile lorsque plusieurs serveurs
derrière un firewall devraient être atteints via des
ports ssh transférés différents. Evite l'arrêt sur
'Offending key in...'. Par défaut positionné à 'yes'.
preJobCommand
postJobCommand
StrictHostKeyChecking
5.2. Propriétés de la configuration par défaut
Toutes les propriétées peuvent être positionnées par défaut dans l'enregistrement DefaultAffaConfig. C'est
pratique, lorsque vous configurez plusieurs tâches similaires.
Exemple : Vous voulez positionner la propriété 'localNice' à 19 pour toutes les tâches. Tapez
# db affa setprop DefaultAffaConfig localNice 19
et ne positionnez pas cette propriété pour les tâches. Les propriétés positionnées dans les tâches sont
prioritaires sur les propriétés par défaut.
La propriété spéciale 'sendStatus' ne s'applique que dans l'enregistrement DefaultAffaConfig. Elle contrÃ
´le le rapport d'état (status) envoyé par mail et peut prendre les valeurs 'none', 'daily', 'weekly' ou
'monthly'. Pour configurer un rapport hebdomadaire, tapez :
# db affa setprop DefaultAffaConfig sendStatus weekly
puis configurez cronjob :
# affa --make-cronjobs
5.3. Désactivation globale
Toutes les tâches peuvent être désactivées en positionnant l'enregistrement AffaGlobalDisable sur 'yes'.
# db affa set AffaGlobalDisable yes
# affa --make-cronjobs
Pour réactiver :
# db affa set AffaGlobalDisable no
# affa --make-cronjobs
6. Utilisation et options de ligne de commande
affa --run JOB
Lance une tâche. Normalement effectué par cronjob.
affa --make-cronjobs
Configure les tâches cron comme programmées dans les enregistrements de tâches.
affa --send-key JOB
Envoie la clé publique à l'hôte 'remoteHostName' comme configuré dans l'enregistrement de la tâche.
Génère la clé DSA si cela n'a pas déjà été fait.
affa --send-key --host=TARGETHOST [--port=PORT]
Envoie la clé publique à l'hôte cible. L'hôte cible est un FQHN ou une adresse IP. Donnez le port, si
sshd sur l'hôte cible écoute sur un autre que le port standard 22. Génère la clé DSA si cela n'a pas déjà
été fait.
Note : l'option --send-key seule fonctionne, si les clés publiques sont stockées
dans /root/.ssh/authorized_keys2 sur l'hôte distant. Cela est vrai pour SME Server.
affa --full-restore JOB [ARCHIVE]
Effectue une restauration totale depuis l'archive de sauvegarde [ARCHIVE] sur le serveur source distant
comme défini dans l'enregistrement JOB. Si [ARCHIVE] n'est pas donnée, l'archive 'scheduled.0' est
utilisée comme défaut. La restauration totale reconstruit le serveur comme il était au moment de la
sauvegarde. Après la restauration l'hôte source est rebooté.
affa --rise JOB [ARCHIVE]
Lance une restauration totale depuis l'archive de sauvegarde [ARCHIVE] sur le serveur Affa (!) comme
défini dans l'enregistrement JOB. Autrement dit, une fois terminée, le serveur de sauvegarde reboote
comme un clone du serveur source. Assurez-vous d'avoir arrêté le serveur source avant de rebooter le
serveur de sauvegardes, sinon l'interface réseau ne sera pas activée. Cela est important, lorsque vous
lancez --rise à distance. La fonction --rise ne fonctionne qu'avec les serveurs SME 7
affa --undo-rise
Cette fonction reconvertit en serveur de sauvegarde un serveur Affa préalablement converti en serveur de
production. Après reboot, toutes les tâches configurées fonctionneront à nouveau.
affa --list-archives [--csv] JOB
Affiche un tableau de toutes les archives de la tâche JOB existantes, avec la date, le nombre de fichiers, la
taille et l'espace disque utilisé. Voir le chapitre 'Restauration' pour un exemple de tableau. Avec --csv, le
tableau est généré selon un format séparé par des deux-points (:) lisible par les programmes.
affa --status [--csv]
Affiche un tableau de toutes les tâches actives (status enabled), avec l'heure de dernier et prochain
lancement, la taille, l'espace disque utilisé, et le nombre d'archives quotidiennes, hebdomadaires,
mensuelles et annuelles. Le dernier lancement (colonne 'Last') affiche 'failed' après 24h. Pour voir la date
et l'heure du dernier lancement de ces tâches, utilisez l'option --list-archives. La colonne 'Next' montre
l'heure à laquelle le prochain lancement aura lieu, si 'Enabled' est à 'yes'. La colonne 'Disk usage' montre
l'utilisation de la partition où se situe la 'RootDir' de la tâche. Si toutes les tâches ont la même 'RootDir',
la même utilisation du disque est donnée pour toutes les tâches. Si 'RootDir' est /var/affa, l'espace utilisé
sur la partition système du serveur SME est donné.
Affa version 0.5.0 on backup.mydomain.de (10.204.48.2)
+------------+---------+--------+-------+--------+------------+----------------+
| Job
| Enabled | Last
| Next |
Size | Disk usage | N of s,d,w,m,y |
+------------+---------+--------+-------+--------+------------+----------------+
| bookkeep
| yes
| 23:48 | 23:30 | 4.5GB | 616GB/47% | 2,7,4,2,0
|
| crm
| yes
| 11:20 | 13:20 |
47MB | 616GB/47% | 7,7,4,2,0
|
| fespdc
| yes
| 09:55 | 12:45 |
40GB | 616GB/47% | 6,7,4,2,0
|
| helpdesk
| yes
| failed | 13:40 |
70MB | 616GB/47% | 7,7,4,2,0
|
| imageserv | yes
| 23:01 | 23:00 |
19GB | 616GB/47% | 2,7,4,1,0
|
| intraweb
| yes
| 10:32 | 13:30 | 1.4GB | 616GB/47% | 7,7,4,2,0
|
| pdcaus2
| yes
| 23:01 | 12:15 | 5.4GB | 616GB/47% | 2,7,4,2,0
|
| persoff
| yes
| running (pid 17521)
| 616GB/47% | 2,7,4,2,0
|
| primmail
| yes
| 10:09 | 13:00 |
45GB | 616GB/47% | 7,7,4,2,0
|
| rayofhope | yes
| 22:32 | 22:30 |
20GB | 616GB/47% | 2,7,4,1,0
|
| sozserv
| yes
| 22:30 | 22:30 | 8.0GB | 616GB/47% | 2,7,4,2,0
|
+------------+---------+--------+-------+--------+------------+----------------+
| az32share | no
| | 02:20 | 234MB | 616GB/47% | 7,7,2,0,0
|
| azpdc
| no
| | 21:00 |
42GB | 616GB/47% | 2,7,1,0,0
|
+------------+---------+--------+-------+--------+------------+----------------+
Avec --cxv, le tableau est généré selon un format séparé par des deux-points (:) lisible par les
programmes.
affa --send-status
Envoie le tableau d'état à l'adresse email configurée dans l'enregistrement 'DefaultAffaConfig'. Cette
commande est utilisée par la tâche cron 'affa status'.
affa --mailtest JOB
Envoie un email de test aux adresses email configurées dans l'enregistrement de la tâche. Avec la
propriété 'Watchdog' à 'yes', un email de test est envoyé depuis le serveur distant aussi. Utilisé pour
vérifier que l'envoi des mails fonctionne.
Note : Par défaut, Affa n'envoie des messages qu'en cas d'erreur, jamais en cas de succès (voir la propriété
'chattyOnSuccess').
affa --cleanup JOB
Après que vous ayez diminué le temps de conservation (scheduledKeep), les archives avec un indice plus
élevé ne seront plus supprimées automatiquement et existeront toujours. Cette option trouve ces archives
et les supprime.
affa --rename-job JOB NEWNAME
Renomme la tâche JOB en NEWNAME, y compris tous les enregistrements de la base de données et les
répertoires d'archive.
affa --move-archive JOB NEWROOTDIR
Déplace le répertoire d'archive de JOB vers NEWROOTDIR et ajuste la p
ropriété RootDir. NEWROOTDIR doit être un chemin complet (full path) commençant par un slash.
Comme le déplacement d'un système de fichiers à un autre (par exemple d'un disque USB à un disque
local) n'est pas possible, Affa se sert dans ce cas d'une commande de copie et efface ensuite le répertoire
source.
affa --delete-job [--revoke-key] JOB
Efface irréversiblement une tâche, y compris toutes les archives, la configuration et les bases de données
attachées. En passant l'option '--revoke-key', la clé publique sur le serveur distant sera détruite.
affa --revoke-key JOB
affa --revoke-key --host=TARGETHOST [--port=PORT]
Détruit la clé DSA publique sur le serveur distant.
Note : L'option --revoke-key seule fonctionne, si les clés publiques sont stockées
dans /root/.ssh/authorized_keys2 sur le serveur distant. Cela est vrai pour SME server.
7. Exemples de configuration
7.1. Standard
Serveur Affa dédié pour sauvegarder tous les serveurs de production (noté "todo" dans la documentation
officielle)
7.2. Serveur Affa local plus serveur Affa déporté
La documentation originale renvoie simplement sur ce post du forum contribs.org.
7.3. Sauvegarder une ibay individuellement
Supposons que nous voulions sauvegarder les ibays 'staff1' et 'staff2' de notre serveur de production dont
l'adresse IP WAN est 82.123.1.1 sur un serveur Affa déporté via internet, toutes les nuits à 2h30.
1. On se logge sur le serveur Affa et on installe les paquetages comme décrit ci-dessus.
2. On copie l'exemple de configuration
# cp /usr/lib/affa/jobconfig-sample.pl /root/ibay-staff-job.pl
3. On édite /root/ibay-staff-job.pl pour y mettre :
my $jobname='ibay-staff';
et
'remoteHostNameâ¬Ü=>'82.123.1.1',
'TimeSchedule'=>'0230',
'SMEServer'=>'no',
'Include[0]'=>'/home/e-smith/files/ibays/staff1',
'Include[1]'=>'/home/e-smith/files/ibays/staff2',
4. On enregistre la configuration
# /root/ibay-staff-job.pl
5. On envoie la clé publique au serveur de production
# affa --send-key ibay-staff
6. On vérifie le lendemain matin :
# affa --list-archives ibay-staff
# affa --status
# ls /var/affa/ibay-staff
7.4. Deux serveurs de production qui se sauvegardent mutuellement
(noté "todo" dans la documentation officielle)
7.5. Utiliser Affa pour sauvegarder un NAS monté par NFS ou un disque USB local
On désire sauvegarder notre serveur SME 7 de production dont le nom d'hôte est 'prodbox' et l'IP
10.200.48.1 sur un système de fichiers monté plutôt que de configurer un serveur Affa dédié.
7.5.1. Configuration du NAS
On dispose d'un serveur FREENAS dont l'adresse IP est 10.200.48.2 en fonction et avec le service NFS
activé pour le réseau 10.200.48.0/22. L'espace RAID est monté sur /mnt/affashare.
1. On se logge sur 'prodbox' et on installe les paquetages NFS :
yum --enablerepo=base install nfs-utils
On n'a pas besoin dans ce cas de lancer un signal-event post-upgrade ni de rebooter.
2. On monte le partage NFS :
mkdir -p /mnt/affadevice
mount 10.200.48.2:/mnt/affashare /mnt/affadevice
7.5.2. Alternative : configuration du disque USB
1. On se logge sur 'prodbox'
2. On connecte le disque USB. On doit maintenant déterminer sur quel 'device' le noyau a placé le
lecteur. On regarde /var/log/messages et on cherche la ligne d'initialisation correspondante
(Initializing USB Mass Storage driver). Quelques lignes plus bas, on trouve le nom du device.
Supposons qu'il s'agisse de 'sdc'. Si ce n'est pas le cas, on remplacera dans les instructions ciaprès /dev/sdc par la valeur trouvée.
3. On crée une partition linux avec fdisk :
# fdisk /dev/sdc
On trouvera probablement une partition dos vfat, qu'on devra d'abord détruire. Supposons que
nous ayons créé une seule partition /dev/hdc1.
4. On formatte avec un système ext3 :
# mkfs.ext3 /dev/sdc1
5. On crée le point de montage :
# mkdir -p /mnt/affadevice
6. On ajoute notre disque USB dans /etc/fstab. On crée donc une nouvelle ligne avec :
/dev/sdc1 /mnt/affadevice ext3 defaults
7. On monte le disque :
# mount /mnt/affadevice
8. On fait une vérification croisée avec df :
# df
7.5.3. Configuration d'Affa
On veut lancer des sauvegardes à 11h30, 15h30, 19h30 et on veut garder les 3 dernières, 7 journalières, 5
hebdomadaires, 12 mensuelles et 1 annuelle.
1. On se logge sur 'prodbox' et on installe les paquetages Affa comme indiqué ci-dessus.
2. On copie l'exemple de configuration :
# cp /usr/lib/affa/jobconfig-sample.pl /root/prodbox-job.pl
3. On édite /root/prodbox-job.pl pour y mettre :
my $jobname='prodbox';
et
'remoteHostNameâ¬Ü=>'localhost',
'TimeSchedule'=>'1130,1530,1930',
'scheduledKeep'=>3,
'dailyKeep'=>7,
'weeklyKeep'=>5,
'monthlyKeep'=>12,
'yearlyKeep'=>1,
'RootDir=>'/mnt/affadevice',
On vérifie les autres propriétés et on les change si besoin.
4. On enregistre la configuration
# /root/prodbox-job.pl
5. On lance la tâche manuellement :
# affa --run prodbox
7.5.4. Limitations
Avec ce type de configuration, on ne peut pas utiliser la fonction 'rise' (conversion du serveur de
sauvegarde en serveur de production), puisqu'elle nécessite que l'archive soit sur le même système de
fichiers que le serveur. La fonction 'rise' utilise les hardlinks, qui ne fonctionnent pas entre systèmes de
fichiers différents.
7.5.5. Automount : montage automatique
Avoir les archives de sauvegarde sur le même système de fichiers est toujours un risque, qui peut être
minimisé en utilisant la fonction automount. Ainsi, le système de fichiers externe n'est monté que durant
le déroulement d'une tâche.
Dans l'exemple NAS, configurez :
'AutomountDevice=>'10.200.48.2:/mnt/affashare',
'AutomountPoint =>'mnt/affadevice',
et sautez l'étape 2
Dans l'exemple du disque USB, configurez :
'AutomountDevice=>'/dev/sdc1',
'AutomountPoint =>'mnt/affadevice',
et sautez les étapes 5 à 8.
Le point de montage sera automatiquement créé, s'il n'existe pas. Pour accéder au répertoire de l'archive,
vous devez le monter à la main.
8. Restauration
8.1. Restauration de fichiers ou répertoires individuels
Exemple 1
Nous sommes le 12 Juin à 11h30 quand l'utilisateur 'briedlin' vous demande de restaurer les messages de
sa boite 'orders' qu'il a malencontreusement vidée ce matin à 9h.
1. Vous devez d'abord regarder quelles sont les archives disponibles. Le nom de tâche de ce serveur
de sauvegardes est 'prodserv'.
# affa --list-archives prodserv
Affa version 0.5.0 on affa1.mydomain.de (10.204.48.2)
+-----------------------------------------------------------------------------+
| Job: prodserv
|
| Description: File- and Mailserver Frankfurt 2
|
| Directory: /var/affa/prodserv/
|
| Hostname: 10.204.48.1
|
+-----------------------+----------------+--------------+--------+------------+
| Date
| Archive
|
Files |
Size | Disk usage |
+-----------------------+----------------+--------------+--------+------------+
| Sun 2007 Apr 29 04:07 | monthly.0
|
428916 |
41GB | 554GB/42% |
+-----------------------+----------------+--------------+--------+------------+
| Sun 2007 May 13 04:08 | weekly.3
|
441911 |
43GB | 493GB/37% |
| Sun 2007 May 20 04:09 | weekly.2
|
453436 |
44GB | 522GB/40% |
| Sun 2007 May 27 04:10 | weekly.1
|
460610 |
45GB | 547GB/41% |
| Sun 2007 Jun 03 04:11 | weekly.0
|
464119 |
45GB | 603GB/46% |
+-----------------------+----------------+--------------+--------+------------+
| Mon 2007 Jun 04 07:05 | daily.6
|
464733 |
45GB | 599GB/45% |
| Wed 2007 Jun 06 04:15 | daily.5
|
463527 |
45GB | 617GB/47% |
| Thu 2007 Jun 07 04:15 | daily.4
|
464299 |
46GB | 629GB/48% |
| Fri 2007 Jun 08 04:11 | daily.3
|
464200 |
46GB | 617GB/47% |
| Sat 2007 Jun 09 04:12 | daily.2
|
463342 |
46GB | 617GB/47% |
| Sun 2007 Jun 10 04:12 | daily.1
|
462894 |
46GB | 614GB/47% |
| Mon 2007 Jun 11 04:11 | daily.0
|
460669 |
45GB | 619GB/47% |
+-----------------------+----------------+--------------+--------+------------+
| Mon 2007 Jun 11 13:11 | scheduled.6
|
454748 |
45GB | 621GB/47% |
| Mon 2007 Jun 11 16:16 | scheduled.5
|
454664 |
45GB | 621GB/47% |
| Mon 2007 Jun 11 19:10 | scheduled.4
|
454813 |
45GB | 622GB/47% |
| Mon 2007 Jun 11 23:08 | scheduled.3
|
455289 |
45GB | 618GB/47% |
| Tue 2007 Jun 12 04:12 | scheduled.2
|
455407 |
45GB | 616GB/47% |
| Tue 2007 Jun 12 07:05 | scheduled.1
|
455400 |
45GB | 616GB/47% |
| Tue 2007 Jun 12 10:09 | scheduled.0
|
453931 |
45GB | 616GB/47% |
+-----------------------+----------------+--------------+--------+------------+
2. Choisissez l'archive scheduled.1, qui a été créée moins de deux heures avant l'accident.
3. Maintenant, restaurez la mailbox 'orders' en utilisant la commande rsync :
# export RDIR=/home/e-smith/users/briedlin/Maildir/.orders/
Attention : n'oubliez pas le slash final !
# rsync -av /var/affa/prodserv/scheduled.1/$RDIR 10.204.48.1:$RDIR
Exemple 2
Un utilisateur a effacé le fichier orderform.pdf dans l'ibay 'docs' et vous demande de le restaurer.
1. Vous avez cherché et trouvé la dernière version de ce fichier dans l'archive weekly.1
2. Copiez-la depuis le serveur :
# export RFILE=/home/e-smith/files/ibays/docs/files/orderform.pdf
# rsync -av /var/affa/prodserv/weekly.1/$RFILE 10.204.48.1:$RFILE
8.2. Restauration totale
Pour lancer une restauration totale des utilisateurs et des données de configuration, lancez sur le serveur
Affa :
# affa --full-restore <JOB> [<ARCHIVE>]
Cela remet par rsync les données de la sauvegarde ARCHIVE sur le 'remoteHostname' défini dans la
configuration de la tâche JOB.
Exemple :
Vous avez sauvegardé votre serveur de production 'prodsrv' par la tâche 'prodbox'. Pour restaurer la
dernière sauvegarde, lancez :
# affa --full-restore prodbox
Pour restaurer une archive plus ancienne comme daily.2 lancez :
# affa --full-restore prodbox daily.2
Note importante : Une restauration complète reconstruit le serveur tel qu'il était lors de la sauvegarde.
Cela signifie que les fichiers créés ou les modifications de configuration effectuées après la sauvegarde
seront perdus. Une fois la restauration effectuée, le serveur restauré reboote automatiquement.
8.3. Migrer un serveur SME 7 sur un nouveau matériel en utilisant la fonction "rise"
de Affa
Reportez-vous à ce Howto.
9. FAQ
Puis-je utiliser Affa pour sauvegarder un serveur SME 6 ?
Pour sauvegarder un serveur SME 6, mettez la propriété 'rsync--inplace' à 'no' et installez le paquetage
perl-TimeDate sur la SME 6. Ce paquetage est requis par le script chien de garde lancé sur la SME 6.
Utilisez le RPM de DAG : perl-TimeDate-1.16-0.rh73.dag.noarch.rpm
La fonction RPMCheck n'est pas utilisable.
Puis-je utiliser Affa pour sauvegarder des machines Windows ?
Oui. Vous avez besoin que le démon ssh et rsync soient installés sur la machine Windows. Il a été
rapporté que Cygwin ne marche pas. Le process rsync tend à geler souvent. D'autres produits peuvent
fonctionner, mais il n'y a pas encore d'expérience à ce sujet. Alternativement, vous pouvez 'smbmount' les
disques Windows dans un répertoire de SME et configurer un job pour sauvegarder ce répertoire.
/bin/mount -t cifs //192.168.1.65/C$ /mnt/mywinpc/ -o username=Adminstrator,password=xxxxxx
Si le serveur Affa est local dans le domaine Windows, vous pouver aussi utiliser les propriétés
Automount d'Affa :
AutomountDevice=>'//192.168.1.65/C$' AutomountPoint=>'/mnt/mywinpc/' AutomountOptions=>'-t cifs
-o username=Adminstrator,password=xxxxxx'
Note : Vous pouvez vouloir mettre le nom d'utilisateur et le mot de passe dans un fichier, au lieu de les
avoir en clair dans la chaine AutomountOptions. Lisez 'man mount.cifs' pour plus d'informations.
Note : Affa ne peut pas préserver les ACLs Windows. Après restauration, vous devez remettre
manuellement le propriétaire et le groupe.
Comment puis-je déplacer une archive... ?
Comment puis-je déplacer une archive depuis mon serveur de production dans un bureau distant vers le
serveur Affa en utilisant un disque USB ? Je voudrais éviter de transférer la première sauvegarde
complète via internet.
Installer Affa sur votre serveur de production, connectez et montez le disque USB. Paramétrez une tâche
pour écrire l'archive sur le disque USB. Une fois la tâche effectuée, connectez votre disque USB à votre
serveur Affa et préparez une tâche de la même façon. Utilisez le script de configuration du répertoire
d'archives. Seule la propriété remoteHostName a besoin d'être modifiée. Ensuite, utilisez l'option --movearchive pour déplacer la sauvegarde sur le disque local. Si ce n'est pas déjà fait, envoyez la clé publique à
votre serveur de production. C'est fait !
Comment puis-je sauvegarder deux SME derrière un firewall ?
D'abord, vous devez configurer les transferts de port pour le service ssh sur votre firewall. Utilisez un port
non standard, par exemple 2200 au lieu de 20 (NdT : mieux vaut prendre un numéro plus "exotique", le
2200 comme le 2222 étant relativement classique ;-) ). Configurez une tâche sur votre serveur Affa pour
chacun de vos serveurs de production. Configurez la propriété de tâche sshPort=2200 pour le second
serveur.
10. Informations complémentaires
10.1. Performances
Il est difficile de prédire le temps nécessaire pour une sauvegarde. Cela dépend du nombre de fichiers, de
la taille totale, des changements de fichiers depuis le dernier lancement, de la vitesse du réseau et pas
seulement de la puissance du CPU, de la vitesse du disque et de la RAM des serveurs source et backup.
Le tableau suivant, donnant des valeurs mesurées, vous donnera une idée de ce à quoi vous pouvez vous
attendre :
Serveur de
backup
Données
transférées
Connexion Compression Temps
2x3.2GHz Dual
Core Xeon
4 GB RAM,
2x3.2GHz Xeon
1.4 GB,
RAID5, SME
2 GB RAM, 1.5
12,000
7.1
TB RAID6
fichiers
Intranet Web
Server +
MySQL
300 MB, 16
fichiers
Internet 2
Mbit
oui
2
minutes
2x3.2GHz Dual
Core Xeon
2x3.2GHz Xeon
43 GB,
4 GB RAM,
2 GB RAM, 1.5
410,000
RAID5
TB RAID6
fichiers
SME 7.1
Mailserver
140 MB, 2,700 Internet 2
fichiers
Mbit
oui
10
minutes
2x2GHz Dual
Core Xeon 5130
2x2GHz Dual
6 GB RAM, 1 125 GB,
Core Xeon 5130
TB RAID 5
98,000
6 GB RAM, 1
SME 7.1
fichiers
TB RAID 5
fichier- and
Mailserver
3,2 GB, 3,000
Gbit LAN
fichiers
non
25
minutes
2x2GHz Dual
Core Xeon 5130
2x2GHz Dual
6 GB RAM, 1 125 GB,
Core Xeon 5130
TB RAID 5
98,000
6 GB RAM, 874
SME 7.1
fichiers
GB RAID 5
fichier- and
Mailserver
3.5 GB, 2000
fichiers
Internet 2
Mbit
oui
17
minutes
12 GB, 4,000
fichiers
100Mbit
LAN
2x800MHz
Pentium 3
1 GB RAM, 300
GB RAID1
Serveur source
Données
source
2x2.8GHz
39 GB,
Xeon,
370,000
1GB RAM, 140 fichiers
GB RAID5
SME 7.1
fichier- and
non
52
minutes
Mailserver
1xP4 2.4GHz
256 MB RAM
SME 7.1
2xP4 1GHz
1 GB RAM
SME 6
7.4 GB,
134,790
fichiers
7.4 GB,
134,790
fichiers
100Mbit
LAN
non
35
minutes
Note: La dernière action d'une tâche est de supprimer la plus ancienne archive. Par exemple, s'il existe
l'archive nommée 'scheduled.11' et que vous avez configuré la propriété scheduledKeep à 12, elle doit
être détruite. Cela peut prendre un temps relativement long, qui augmente le temps total d'exécution de la
tâche.
10.2. Rapport de bugs
Affa est listé dans la section bugtracker de contribs. Merci d'y reporter tous bugs, demandes de nouvelles
fonctionnalités et documentation.
10.3. Changelog
Merci de vous reporter à la section correspondante du document original pour les modifications qui le
concernent. Sont reportées ici les modifications de la traduction.
30 Octobre 2007 : Première version de la traduction.
10.4. Fichiers
/etc/e-smith/events/actions/affa-make-cronjobs
/etc/e-smith/events/post-upgrade/S90affa-make-cronjobs
/etc/e-smith/templates/etc/cron.d/affa-status/00run
/etc/e-smith/templates/etc/cron.d/affa/00jobs
/etc/logrotate.d/affa
/sbin/e-smith/affa
/sbin/e-smith/affa-rpmlist.sh
/usr/lib/affa/jobconfig-sample.pl
/usr/lib/affa/postJobCommand-sample.pl
/usr/lib/affa/preJobCommand-sample.pl
/usr/lib/affa/watchdog.template
/usr/man/man1/affa.1.gz
10.5. RPM source
Affa SRPM
10.6. Acronyme
Automatische Festplatten Fernarchivierung