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