11291
Commentaire: converted to 1.6 markup
|
15510
|
Texte supprimé. | Texte ajouté. |
Ligne 1: | Ligne 1: |
BackupPC est le logiciel de sauvegarde recommandé à l'AUF. Cette page décrit la mise en place d'un système de sauvegarde en utilisant Backuppc <<TableOfContents(1)>> http://backuppc.sourceforge.net/ = Configuration = == Côté serveur == installation: aptitude install backuppc Questions debconf (Probablement samba-common.) Q1 : « Samba Server » me demande « Groupe de travail et nom de domaine ? ». Je laisse vide. Q2 : Il me demande aussi si je veux chiffrer les mots de passe : Je laisse le « oui » par défaut. Q3 : « Modifier smb.conf pour utiliser les paramètres WINS fournis par DHCP ? ». Je laisse le « non » par défaut Q : « Ajouter un alias pour /backuppc/ dans votre configuration d’apache ? ». Oui (choix par défaut). J’utilise apache2 qui est déjà installé. En fait, il ajoute la ligne {{{ Include /etc/backuppc/apache.conf }}} dans /etc/apache2/httpd.conf. NB : « Création de l’utilisateur par défaut pour l’administration Web » (il s’agit de backuppc). Remarques : {{{ Vous pouvez changer le mot de passe de cet utilisateur avec la commande « htpasswd /etc/backuppc/htpasswd backuppc ». }}} Vous pouvez alors accéder à l'interface d'administration de backuppc sur http://votre.serveur/backuppc La configuration est simple, et porte essentiellement sur 2 fichiers situés dans /etc/backuppc: config.pl : Paramètres du serveur, et hosts : liste des machines à sauvegarde Chez moi ca donne ceci: A noter que je n'ai pas touché au config.pl global (/etc/backuppc/config.pl), qui est bon (du moins qui marche) par défaut. {{{ $cat hosts # #======================================================================== # # The first non-comment non-empty line gives the field names and should # not be edited!! # host dhcp user moreUsers # <--- do not edit this line #farside 0 craig jill,jeff # <--- example static IP host entry #larson 1 bill # <--- example DHCP host entry localhost 0 backuppc 192.168.100.2 0 backuppc root,fossouo portable-xf.vpn-yaounde 0 xf #portable XF admin-rezo.vpn-yaounde 0 fossouo #desktop XF resp-formation.vpn-yaounde 0 administrateur #desktop WK resp-cai.vpn-yaounde 0 administrateur #desktop RKF resp-cnf.vpn-yaounde 0 administrateur #desktop AK directeur.vpn-yaounde 0 administrateur #desktop LSM sec-dir.vpn-yaounde 0 administrateur #desktop OM sec-admin.vpn-yaounde 0 administrateur #desktop SD bourse.vpn-yaounde 0 administrateur #desktop SRME comptable.vpn-yaounde 0 administrateur #desktop CFS admin-bureau.vpn-yaounde 0 administrateur #desktop BB }}} Le serveur Backuppc va alors créer des repertoires pour la sauvegarde de chaque pc dans /var/lib/backuppc/pc {{{ $ls -l /var/lib/backuppc/pc drwxr-x--- 3 backuppc backuppc 4096 2006-11-27 06:32 192.168.100.2 drwxr-x--- 6 backuppc backuppc 4096 2006-11-27 06:00 admin-bureau.vpn-yaounde drwxr-x--- 2 backuppc backuppc 4096 2006-11-27 11:00 admin-rezo.vpn-yaounde drwxr-x--- 2 backuppc backuppc 4096 2006-11-27 15:00 bourse.vpn-yaounde drwxr-x--- 2 backuppc backuppc 4096 2006-11-24 16:00 comptable.vpn-yaounde drwxr-x--- 6 backuppc backuppc 4096 2006-11-27 15:00 directeur.vpn-yaounde drwxr-x--- 11 backuppc backuppc 4096 2006-11-27 06:00 localhost drwxr-x--- 2 backuppc backuppc 4096 2006-11-22 16:01 portable-xf.vpn-yaounde drwxr-x--- 2 backuppc backuppc 4096 2006-11-09 10:00 resp-cai.vpn-yaounde drwxr-x--- 2 backuppc backuppc 4096 2006-11-27 06:00 resp-cnf.vpn-yaounde drwxr-x--- 2 backuppc backuppc 4096 2006-11-27 15:00 resp-formation.vpn-yaounde drwxr-x--- 5 backuppc backuppc 4096 2006-11-27 15:00 sec-admin.vpn-yaounde drwxr-x--- 3 backuppc backuppc 4096 2006-11-27 12:32 sec-dir.vpn-yaounde }}} Dès lors, il est possible de personnaliser la configuration de chaque poste, en créant dans le repertoire concerné un fichier "config.pl" personnalisé. Un exemple de configuration pour un poste Windows avec le service rsync: {{{ $cat /var/lib/backuppc/pc/directeur.vpn-yaounde/config.pl #============================================================= -*-perl-*- # # Configuration file for Windows hosts. # Note the slashes instead of backslashes # ########################################################################### # What to backup and when to do it ########################################################################### #Tableau des répertoires à sauvegarder #Tableau des répertoires exclus de la sauvegarde $Conf{BackupFilesExclude} = ['/Documents and Settings/mbow/Local Settings/Temp', '/WINDOWS', '/WINNT', '/Program Files', 'QUARANTINE']; ########################################################################### # General per-PC configuration settings ########################################################################### #Nom NetBios de la machine #$Conf{ClientNameAlias} = 'netbiosname'; #Méthode de sauvegarde utilisée $Conf{XferMethod} = "rsyncd"; #Niveau de verbosité des fichiers de log $Conf{XferLogLevel} = 1; #Nom des partages à sauvegarder $Conf{RsyncShareName} = ['eDrive', 'cDrive', 'dDrive']; #Nom de l'utilisateur réseau $Conf{RsyncdUserName} = "administrateur"; #Mot de passe de l'utilisateur réseau $Conf{RsyncdPasswd} = "mot_de_passe_admin"; #Méthode de compression de la sauvegarde $Conf{ArchiveComp} = 'bzip2'; }}} Un exemple de conf pour un client linux ;) (ArnaudAmelina) $cat /var/lib/backuppc/pc/fw.tg.refer.org/config.pl {{{ $Conf{XferMethod} = 'rsync'; $Conf{RsyncShareName} = ['/', '/etc', '/var/lib', '/boot/grub', '/root', '/user/local' ]; $Conf{BackupFilesExclude} = [ '/proc', '/home', '/temp', '/tmp', '/usr' ]; }}} == Optimisation == Minimiser les accès disques en montant la partition de sauvegarde sans marquer les horodatages (backuppc n’en a pas besoin). Rappel : l’option default (man mount) dans fstab tient pour rw, suid, dev, exec, auto, nouser, et async. Je modifie donc dans mon /etc/fstab : /dev/hdb3 /backup ext3 rw,nosuid,nodev,noexec,auto,nouser,async,noatime 0 2 /!\ En cas de messages d'erreurs signalant qu'il ne reste plus d'espace disque alors que la commande df indique qu'il reste de la place, il faut verifier le nombre d'i-node disponibles ! Pour cela utiliser la commande df -i. (ArnaudAmelina) == Messages en français == Dans /etc/backuppc/config.pl, je mets : # Currently the Language setting applies to the CGI interface and email # messages sent to users. Log files and other text are still in English. # $Conf{Language} = 'fr'; == Côté client (Windows) == Télécharger et installer le paquet cygwin-rsyncd-2.6.8_0.zip disponible à l'adresse http://sourceforge.net/project/showfiles.php?group_id=34854&package_id=88133 - Suivre le README.txt pour configurer rsync comme service sous Windows (2000 ou XP) PS: Sous Windows XP, il faut en plus désactiver le partage de fichiers (activé par défaut???) en allant dans "Outils->Options des dossiers->Affichage... PS2: Si le parefeu est activé sur XP, il faut qu'on modifie afin de laisser passer le programme rsyncd. Sinon on aura des problèmes de connexions et aussi il faut que l'ordinateur accepte les ICMPs (sinon le serveur backuppc ne pourra pas connecter vers le poste client). (merci ShafeekSumser) http://lexa.mckenna.edu/sshwindows/ : Install d'OpenSSH simple et léger, tourne en service. http://pigtail.net/LRP/printsrv/cygwin-sshd.html : HowTo pour l'install de Cygwin + SSH. == Côté client (Linux) == - installer rsync et ssh (aptitude install rsync ssh) - faire tourner rsync sur le client (rsync --daemon) - copier la clé publique '''de l'utilisateur backuppc''' du serveur de backup vers le client: {{{ backup# sudo -u backuppc ssh-keygen -t dsa #accepter les choix par défaut, ne pas mettre de "passphrase", la clé privée sera en clair backup# ssh-copy-id -i ~backuppc/.ssh/id_dsa.pub root@machine_cliente backup# sudo -u backuppc ssh root@machine_cliente #pour repondre yes à la question et vérifier que l'utilisateur backuppc peut se logger sans mot de passe }}} on peut aussi faire un script pour chaque machine cliente (logiquement, chaque serveur à sauvegarder) comme : {{{ for client in $(grep -v "^#" /etc/backuppc/hosts | grep -v "host" | cut -d " " -f1); do ssh-copy-id -i ~backuppc/.ssh/id_dsa.pub root@$client; sudo -u backuppc ssh root@$client; done; }}} - Sur le serveur de backup, tenter un login ssh sur le client à partir du compte backuppc... Si le login reussit sans que vous ayez besoin d'entrer un mot de passe c'est ok sinon revoir la config. Voir éventuellement les explications sur [[SSH]]. {{{ #su backuppc $ssh root@machine_cliente }}} <!> '''Important''' sans quoi, on se retrouve avec une erreur 'Got fatal error during xfer (fileListReceive failed)' après la sauvegarde <!> Il faut que le nom du serveur soit le même que celui du fichier 'host' (ne pas mélanger nfs d'un côté et nfs.bj.auf.org de l'autre par exemple, sinon ssh attendra un 'yes' qui ne viendra pas...) -configurer config.pl sur le serveur pour indiquer les repertoire à sauvegarder (/etc? /home?) == Quelques liens == http://www.jarunee.org/installation-serveur/x35.html http://www.klipz.fr/tutoriel_backuppc.html http://x-tnd.be/tutoriels.php5?cat=divers&art=backuppc http://lehobey-rennes.dyndns.org/dokuwiki/doku.php?id=doc:backuppc:backuppc = Restauration = Plusieurs type de restauration == Restauration totale, aprés crash d'un disque système, par exemple == ''à rédiger'' - installer les disques physiques - booter sur un livecd (ubuntu, par exemple) - installer ssh - partionner/formater le nouveau disque - le monter sur le système live - installer ssh - clef ssh backup sur le serveur - si serveur à restaurer == dns du backup, ajouter une entree dans le /etc/host sur serveur de backup - clic - wait (bière, thé, coca, suivant les goûts) - enjoy == Restauration de données utilisateurs == ''à rédiger'' - plusieurs cas (lesquels ?) == Discussions == * Il est conseillé d'utiliser un système de fichier ReiserFS ou XFS (c'est à dire basés sur des b-tree, plutôt que Ext3.) pour des raisons de performance. En effet, les performances de Ext3 diminuent avec le nombre de fichiers. -- ArnaudAmelina * Ce n'est plus d'actualité : la version de ext3 livrée avec les noyaux présents dans [[Debian]] "Etch" 4.0 possède l'option `dir_index` qui utilise les B-tree + hash. Elle est mise par défaut lors de la création d'un nouveau système de fichier. On peut vérifier sa présence avec `tune2fs -l /dev/XXX | grep features`. -- ProgFou * et c'est surtout que le developpement/suivi/avenir de reiserfs est '''mort''' == Divers == * Message sur le serveur Backuppc: '''File::RsyncP module doesn't exist''' . --> aptitude install libfile-rsyncp-perl |
||<tablestyle="float:right; font-size: 0.9em; width:40%; background: #f0f0f0; margin: 0 0 1em 1em;" style="padding:0.5em;"><<TableOfContents>>|| BackupPC est le logiciel de sauvegarde adopté par l'AUF. ||<#fcca0c> '''CETTE PAGE EST À REFAIRE''' || Les procédures à écrire (liste non exhaustive) : * Installation de BackupPC sur Debian à l'AUF * Sauvegarde d'un serveur * Restauration d'un serveur * Particularités pour les serveurs virtuels (OpenVZ) * Sauvegarde d'un poste fixe * Sauvegarde d'un poste portable * Sauvegarde des sauvegardes, et restauration d'un serveur de sauvegarde * Sauvegarde de MySQL consistante à travers ses changements de version (=> dump quotidien avec `mysqlhotcopy`, toujours dans le même fichier, pas de rotation, c'est BackupPC qui s'occupera de l'historique) ||<#fcca0c> '''Petit coup de pouce de la part de Roger''' || ||<#fcca0c> '''JC, j'ai fini les modifs, la balle est dans ton camp ;-) ''' || = INSTALLATION DE BACKUPPC = '''BackupPC''' est un logiciel très intéressant, très facile à installer, et à gérer et qui permet bien sûr de faire de bonnes sauvegardes de nos PCs. Aujourd'hui, le backup de nos machines notamment serveur de données est aussi (sinon même plus) important que la « sécurité » de ces machines. (Par exemple, si votre disque dur plante, vous avez beau avoir le meilleur firewall du monde, le meilleur IDS de la planète, vous êtes _ _ _). Et BackupPC est un logiciel qui joue bien se rôle ; avec son interface WEB, et ces nombreuses méthodes de sauvegardes, il arrive à me satisfaire complètement. (Il faut reconnaître aussi que je suis pas un gars bien compliqué.) Démarrons donc notre installation : == 1- Installation : == Installation du serveur de base Debian Etch ou tout ce que vous voulez. Paquets à rajouter : '''apticron''' : pour les annonces de mises à jour '''beep''' : pour pouvoir faire du bruit en cas de problème et alerter les gens '''git''' : pour la gestion de changement de configurations '''logcheck''' : checker les logs à la recherche de choses bizares '''ntp''' : pour synchroniser l'heure '''partimage''' : copie de partition, me permet de faire du backup de backup '''rsync''' et '''libfile-rsyncp-perl''' +++: requis par notre méthode de sauvegarde des PCs (rsync) '''snmpd''' : Surtout pour monitorer la partition qui sert de bakup '''sshd''' +++: faire du SSH '''sudo''' : pour faire du sudoers '''tcpdump''' : faire de l'analyse de trafic quand c'est bizare '''backuppc''' +++ : Rôle de la machine. Les paquets marqués +++ sont obligatoires pour cette installation. Sous Debian, les install de tous ces trucs se font avec : aptitude install <paquet> Sous Redhat et autres Fedora et CentOS, essayer avec : yum install <paquet> // Pas testé Donc installation très facile, très très facile. == 2- Config de ce sympathique BackupPC : == Toute la config se trouve dans le répertoire '''/etc/backuppc/'''. Il faut donc commencer par s'y positionner. ''# cd /etc/backuppc/'' La config même sophistiquée n'est pas du tout compliquée, malgré la longueur du fichier principal de configuration. Et en général, les options par défaut sont tout à fait valides et marchent bien. Donc, faisons un peu de customisation en ouvrant le fichier '''/etc/backuppc/config.pl''' Changeons ces options : {{{ $Conf{WakeupSchedule} = [1..24]; // Réveil toutes les heures de la journée $Conf{MaxOldLogFiles} = 28; // L'âge max des logs $Conf{DfMaxUsagePct} = 92; // à 92% de saturation de disque: ==> envoi de rapport, plus de backup régulier $Conf{BackupPCUser} = 'backuppc'; $Conf{FullPeriod} = 13.97; // Full backup toutes les 2 semaines (par PC bien sûr) $Conf{IncrPeriod} = 0.97; // Incrémental backup tous les jours $Conf{FullKeepCnt} = 6; // 6 backup complets, or 1 backup complet toutes les 2 semaines , donc $Conf{FullAgeMax} = 93; // Age maxi des backup-complet = 93 jours, donc plus de 3 mois $Conf{FullKeepCntMin} = 1; // Garder au minimum un backup-complet, même s'il est plus vieux que 93 jours. $Conf{IncrKeepCnt} = 15; // On garde 15 sauvegardes incrémentales, ce qui nous fait 15 jours $Conf{IncrAgeMax} = 30; // 30 jours max pour l'âge de celles-ci $Conf{IncrKeepCntMin} = 3; // On garde 3 sauvegardes incrémentales quelques soient leur âge. $Conf{BlackoutPeriods} = [ { hourBegin => 7.5, hourEnd => 18.5, weekDays => [1, 2, 3, 4, 5], }, ]; // En gros, la période où il faut pas faire trop de backup si les machines ne répondent pas bien aux pings. Le logiciel fait des pings périodiques et garde des statistiques. Il sait donc quand une machine et/ou le réseau vers la machine est un peu saturé. $Conf{XferMethod} = 'rsync'; // La méthode de sauvegarde par défaut (il y'a aussi tar, rsyncd, smb) $Conf{PingMaxMsec} = 999; // Délai max pour un ping, avant de considérer que le PC n'est pas joignable et donc ne peut se faire backuper. $Conf{Language} = 'fr' // l'interface Web et les messages en français $Conf{EMailUserDestDomain} = '@testeur.sn' // Mettre le vrai domaine }}} Voilà ! FIN de la config de BackupPC qu'il faut juste relancer : {{{ # invoke-rc.d backuppc restart // Sous debian et compagnies # service backuppc restart // Sous fedora et consorts }}} == 3- Supplément BackuPC (Interface Web) : == Inclure la config web de BackupPC dans notre Apache en rajoutant une ligne de '''Include''' dans la config de Apache : '''''Include /etc/backuppc/apache.conf ''''' Ligne que j'ai rajoutée dans /etc/apache2/apache.conf Puis, réactualiser apache : {{{ # apache2ctl graceful // Sous debian # apachectl graceful // Sous redhat }}} Ensuite, modifiez le mot de passe de l'utilisateur backuppc de l'interface web : {{{ # htpasswd -b /etc/backuppc/htpasswd backuppc <nouveaumotdepasse> }}} Ensuite, on arrive à se connecter à l'interface Web de BackupPC avec l'utilisateur backuppc et le <nouveaumotdepasse> saisi avec htpasswd. == 4- Ajout des PCs à backuper : == D'abord, générer une clé SSH pour l'utilisateur système backuppc. En effet, il y'a un utilisateur du système, '''backuppc''' qui est créé lors de l'installation de BackupPC et c'est '''backuppc''' qui exécute le programme BackupPC. {{{ # su – backuppc // Se connecter en tant que backuppc # ssh-keygen // Générer la clé SSH pour backuppc : la clé se trouve par défaut dans le répertoire /var/lib/backuppc/.ssh/ }}} Une fois que la clé est générée, on peut commencer à enregistrer des machines cibles à backuper. Pour ajouter une machine, on édite le fichier '''/etc/backuppc/hosts''' : puis on rajoute un hôte par ligne en respectant la syntaxe du fichier. Exemples: {{{ <nomdemachinecible|adresseIPcible> 0 backuppc [<autreutilisateur>] roger-pc 0 backuppc 12.123.2.1 0 backuppc thomas }}} Puis, recharger la config de backuppc : '''''# invoke-rc.d backuppc reload''''' Nos nouveaux PCs sont donc pris en charge. Il faut se rendre ensuite sur l'interface Web de backuppc : http://<IPServeurBackupPC>/backuppc Dans la liste déroulante de gauche, on voit bien apparaître les machines nouvellement rajoutées. On sélectionne une machine, puis on lance une sauvegarde complète pour celle-ci en cliquant sur le bouton « Démarrer la sauvegarde complète ». Evidemment, cela ne marche pas, mais cela a pour effet de créer la structure arborescente pour ce PC dans '''/var/lib/backuppc/pc/'''. Donc en gros, on notera la présence du répertoire '''/var/lib/backuppc/pc/<nomdemachinecible>/'''. On peut ensuite ajouter dans ce répertoire un fichier '''config.pl''' pour customiser un peu la sauvegarde pour cette machine : par exemple, en changeant la méthode de sauvegarde, ou en précisant des répertoires à exclure ou à rajouter dans la sauvegarde, des fichiers ou types de fichiers à exclure, ... Ensuite, copier la clé SSH de '''backuppc''' sur le root de la machine cible : {{{ # ssh-copy-id -i /var/lib/backuppc/.ssh/id-rsa.pub root@<nomdemachinecible> }}} Puis en tant que utilisateur backuppc, essayer de se connecter à la cible. {{{ (# su – backuppc ) # ssh -l root <nomdemachinecible> // Normalement, ça doit se connecter sans demander de mot de passe, et ça permet aussi de recevoir le fingerprint de la machine. }}} Attention : il faut donc qu'il y'ait du SSH installé sur la machine cible, ainsi que rsync si la méthode utilisée pour le backup est rsync. Ensuite, on repart sur l'interface Web, puis on relance le backup de la cible qui devrait normalement marcher. == 5- Restauration avec BackupPC : == C'est bien de sauvegarder, mais il faut aussi savoir restaurer. Sinon, ça ne sert à rien de sauvegarder. Ce qui est bien avec BackupPC, c'est que tout est facile, et je me demande bien pourquoi j'écris ce document. Mais bon, puisqu'on l'a commencé ... Pour restaurer (également très facile), il suffit d'aller sur l'interface Web, de choisir le PC à restaurer, puis la sauvegarde qu'on veut (en fonction de la date de sauvegarde), puis le répertoire, et enfin le fichier à restaurer (peut être un répertoire aussi). On sélectionne, puis on click sur « Restaurer ... », on choisit la méthode de restauration, et on restaure tout simplement comme de l'eau à boire. '''''__FIN de BackupPC''''' = Complément : BACKUP de BackupPC = On ne peut pas faire de backup, sans faire de backup de ce backup. Sinon, ça ne servirait à rien, le jour où le serveur de backup tombe en panne, ou brûle à cause du jardinier de Jérôme par exemple, ou tombe dans de l'eau... Bref ! On fait donc un backup de backup, voire même un backup de backup de backup... Avec notre serveur de backup, nos backups se trouvent dans '''/var/lib/backuppc/''', c'est donc se répertoire qu'il faut sauvegarder. Plusieurs techniques existent, mais en gros, ce qu'il faut retenir, c'est qu'il est juste un peu intelligent de ne pas avoir le backup du backup pas dans le même local que le backup. Après on peut faire tout ce qu'on veut pour réaliser ce "papa de backup" ; par exemple, en mettant un autre serveur dans un autre local qui vient copier les données régulièrement, ou bien faire des sauvegardes périodiques sur disques durs externes qu'on cache ailleurs, ou même combiner les deux méthodes, et avoir des bandes magnétiques aussi... Bon, nous ce qu'on choisit, c'est la plus simple, parce que déjà, on est quand même au niveau de backup de backup, sinon ça commence à devenir trop sophistiqué. (Je commence à dire des bétises là : OBJECTION!) Alors, pour sauvegarder le BackupPC sur un disque dur externe, on fait tout simplement de la copie de partition avec partimage. '''''# partimage <options> /<partition> /<disquedurexterne>/<fichierimage>''''' En gros, y'a que ça. '''__Détails : Avec un disque dur extrene USB de 700 Go reconnu en tant que /dev/sdc : (toutes les commandes) ''' {{{ # fdisk /dev/sdc // avec ça, je vais créer une partition /dev/sdc1 # pvcreate /dev/sdc1 // Créer un PV # vgcreate usb0 /dev/sdc1 // Création du VG usb0 # lvcreate -L 698G -n backup usb0 // Création du LV backup dans le VG usb0 }}} On a donc une partition LVM /dev/usb0/backup sur notre disque dur externe. {{{ # mkfs.ext3 /dev/usb0/backup // On formate la nouvelle partition en ext3. On pourrait le faire aussi en ext2. Bon non, on garde ext3, y'a de la journalisation, ça pourrait être utile. # mkdir /sauvegarde // On crée un répertoire # mount -t ext3 /dev/usb0/backup /sauvegarde // On la monte, cette partition du disque externe }}} Supposons donc que notre '''/var/lib/backuppc''' est en fait le point de montage de '''/dev/sata0/backup'''. {{{ # lvcreate --snapshot --size 10G --name backupsave /dev/sata0/backup // C'est là que c'est très intéressant. Partimage ne peut pas utiliser une partition montée et donc en cours d'utilisation. }}} Heureusement que LVM permet de prendre une vue (snapshot) d'une partition à un instant t donné, et c'est cette vue qui sera sauvegardée. '''lvcreate''' crée un snapshot (snapshot, genre une photo de la partition), size = 10G précise que les changements opérés sur la partition seront sauvegardées dans un espace de 10Go. En effet, snapshot, ne copie pas vraiment les données de la partition dans un autre espace disque, il crée juste un endroit où il garde les traces des modifications opérées sur la partition. Toute modification faite sur la partition réelle est enregistrée, ce qui permet de voir la partition dans son état au moment de la création du snapshot (et donc d'avoir notre snapshot). (C'est plus malin quand même). Ensuite, on crée un répertoire pour monter et démonter notre gentil snapshot. C'est bête mais, c'est comme ça ; sans ça, partimage qui vient juste après ne veut pas marcher. {{{ # mkdir /tmp/quedale # mount /dev/sata0/backupsave /tmp/quedale && umount /dev/sata0/backupsave }}} Démarrons maintenant notre sauvegarde de sauvegarde avec partimage : {{{ # partimage [options] save /dev/sata0/backupsave /sauvegarde/image Où [options] égal : -b -B '=' : pour avoir le mode batch et non interactif avec l'interface bidon là !! -z0 : pas de compression (peut être z1 ou z2 ==> compression) -o (--overwrite) : Effacer les sauvegardes précédentes -d (--nodescr) : Pas de demande de description pour aucune image -M (--nonmbr) : Pas de backup de MBR -c (--nocheck) : Pas de check de partition avant de commencer à travailler }}} Notre backup de backup est donc faite et se trouve sur le disque dur externe USB. On peut donc démonter la partition, rendre le lvm inactif et retirer le disque pour le conserver ailleurs loin du serveur. {{{ # umount /sauvegarde # vgchange -an /dev/usb0 }}} Restauration du backup de backup : Brancher le disque dur USB Monter la partition du disque : {{{ # vgchange -ay /dev/usb0 # mount /dev/usb0/backup /sauvegarde Puis restaurer : # partimage [options] restore /dev/<autrepartition> /sauvegarde/image ou bien : # partimage [options] restore /dev/sata0/backup /sauvegarde/image // restauration directe de la partition de backuppc }}} Ensuite, on monte la partition /dev/<autrepartition> et on retrouve nos backups de PCs. '''''__FIN de FIN de Backup de backup''''' [Bon ! Maintenant, il faut faire des scripts de sauvegardes automatiques si cela vous intéresse, et faire un peu de crontab. C'est plus intéressant en tout cas. Encore plus interessant, utiliser udev pour lancer des scripts quand les disques se branchent. Peut être utile de tester les disques au moment où on les branche. Comme ça, en cas de problème, on cherche à résoudre avant que le programme de backup de backup (avec partimage) se lance.] __Sources : http://backuppc.sourceforge.net/faq/BackupPC.html ++++ http://wiki.auf.org/wikiteki/ZAO/Dakar/Configuration/Backup ++++ ;-) Merci à Jérôme. Toutes ces idées sont de lui. http://www.klipz.fr/tutoriel_backuppc.html +++ http://doc.ubuntu-fr.org/backuppc -- |
Ligne 266: | Ligne 312: |
CatégorieLogiciel [[CatégorieRecommandationDRI]] | CatégorieLogiciel [[CatégorieRecommandationsARI]] |
BackupPC est le logiciel de sauvegarde adopté par l'AUF.
CETTE PAGE EST À REFAIRE
Les procédures à écrire (liste non exhaustive) :
- Installation de BackupPC sur Debian à l'AUF
- Sauvegarde d'un serveur
- Restauration d'un serveur
- Particularités pour les serveurs virtuels (OpenVZ)
- Sauvegarde d'un poste fixe
- Sauvegarde d'un poste portable
- Sauvegarde des sauvegardes, et restauration d'un serveur de sauvegarde
Sauvegarde de MySQL consistante à travers ses changements de version (=> dump quotidien avec mysqlhotcopy, toujours dans le même fichier, pas de rotation, c'est BackupPC qui s'occupera de l'historique)
Petit coup de pouce de la part de Roger
JC, j'ai fini les modifs, la balle est dans ton camp
INSTALLATION DE BACKUPPC
BackupPC est un logiciel très intéressant, très facile à installer, et à gérer et qui permet bien sûr de faire de bonnes sauvegardes de nos PCs. Aujourd'hui, le backup de nos machines notamment serveur de données est aussi (sinon même plus) important que la « sécurité » de ces machines. (Par exemple, si votre disque dur plante, vous avez beau avoir le meilleur firewall du monde, le meilleur IDS de la planète, vous êtes _ _ _). Et BackupPC est un logiciel qui joue bien se rôle ; avec son interface WEB, et ces nombreuses méthodes de sauvegardes, il arrive à me satisfaire complètement. (Il faut reconnaître aussi que je suis pas un gars bien compliqué.)
Démarrons donc notre installation :
1- Installation :
Installation du serveur de base Debian Etch ou tout ce que vous voulez. Paquets à rajouter :
apticron : pour les annonces de mises à jour
beep : pour pouvoir faire du bruit en cas de problème et alerter les gens
git : pour la gestion de changement de configurations
logcheck : checker les logs à la recherche de choses bizares
ntp : pour synchroniser l'heure
partimage : copie de partition, me permet de faire du backup de backup
rsync et libfile-rsyncp-perl +++: requis par notre méthode de sauvegarde des PCs (rsync)
snmpd : Surtout pour monitorer la partition qui sert de bakup
sshd +++: faire du SSH
sudo : pour faire du sudoers
tcpdump : faire de l'analyse de trafic quand c'est bizare
backuppc +++ : Rôle de la machine.
Les paquets marqués +++ sont obligatoires pour cette installation.
Sous Debian, les install de tous ces trucs se font avec : aptitude install <paquet>
Sous Redhat et autres Fedora et CentOS, essayer avec : yum install <paquet> // Pas testé
Donc installation très facile, très très facile.
2- Config de ce sympathique BackupPC :
Toute la config se trouve dans le répertoire /etc/backuppc/. Il faut donc commencer par s'y positionner. # cd /etc/backuppc/
La config même sophistiquée n'est pas du tout compliquée, malgré la longueur du fichier principal de configuration. Et en général, les options par défaut sont tout à fait valides et marchent bien.
Donc, faisons un peu de customisation en ouvrant le fichier /etc/backuppc/config.pl
Changeons ces options :
$Conf{WakeupSchedule} = [1..24]; // Réveil toutes les heures de la journée $Conf{MaxOldLogFiles} = 28; // L'âge max des logs $Conf{DfMaxUsagePct} = 92; // à 92% de saturation de disque: ==> envoi de rapport, plus de backup régulier $Conf{BackupPCUser} = 'backuppc'; $Conf{FullPeriod} = 13.97; // Full backup toutes les 2 semaines (par PC bien sûr) $Conf{IncrPeriod} = 0.97; // Incrémental backup tous les jours $Conf{FullKeepCnt} = 6; // 6 backup complets, or 1 backup complet toutes les 2 semaines , donc $Conf{FullAgeMax} = 93; // Age maxi des backup-complet = 93 jours, donc plus de 3 mois $Conf{FullKeepCntMin} = 1; // Garder au minimum un backup-complet, même s'il est plus vieux que 93 jours. $Conf{IncrKeepCnt} = 15; // On garde 15 sauvegardes incrémentales, ce qui nous fait 15 jours $Conf{IncrAgeMax} = 30; // 30 jours max pour l'âge de celles-ci $Conf{IncrKeepCntMin} = 3; // On garde 3 sauvegardes incrémentales quelques soient leur âge. $Conf{BlackoutPeriods} = [ { hourBegin => 7.5, hourEnd => 18.5, weekDays => [1, 2, 3, 4, 5], }, ]; // En gros, la période où il faut pas faire trop de backup si les machines ne répondent pas bien aux pings. Le logiciel fait des pings périodiques et garde des statistiques. Il sait donc quand une machine et/ou le réseau vers la machine est un peu saturé. $Conf{XferMethod} = 'rsync'; // La méthode de sauvegarde par défaut (il y'a aussi tar, rsyncd, smb) $Conf{PingMaxMsec} = 999; // Délai max pour un ping, avant de considérer que le PC n'est pas joignable et donc ne peut se faire backuper. $Conf{Language} = 'fr' // l'interface Web et les messages en français $Conf{EMailUserDestDomain} = '@testeur.sn' // Mettre le vrai domaine
Voilà ! FIN de la config de BackupPC qu'il faut juste relancer :
# invoke-rc.d backuppc restart // Sous debian et compagnies # service backuppc restart // Sous fedora et consorts
3- Supplément BackuPC (Interface Web) :
Inclure la config web de BackupPC dans notre Apache en rajoutant une ligne de Include dans la config de Apache :
Include /etc/backuppc/apache.conf
Ligne que j'ai rajoutée dans /etc/apache2/apache.conf
Puis, réactualiser apache :
# apache2ctl graceful // Sous debian # apachectl graceful // Sous redhat
Ensuite, modifiez le mot de passe de l'utilisateur backuppc de l'interface web :
# htpasswd -b /etc/backuppc/htpasswd backuppc <nouveaumotdepasse>
Ensuite, on arrive à se connecter à l'interface Web de BackupPC avec l'utilisateur backuppc et le <nouveaumotdepasse> saisi avec htpasswd.
4- Ajout des PCs à backuper :
D'abord, générer une clé SSH pour l'utilisateur système backuppc. En effet, il y'a un utilisateur du système, backuppc qui est créé lors de l'installation de BackupPC et c'est backuppc qui exécute le programme BackupPC.
# su – backuppc // Se connecter en tant que backuppc # ssh-keygen // Générer la clé SSH pour backuppc : la clé se trouve par défaut dans le répertoire /var/lib/backuppc/.ssh/
Une fois que la clé est générée, on peut commencer à enregistrer des machines cibles à backuper.
Pour ajouter une machine, on édite le fichier /etc/backuppc/hosts : puis on rajoute un hôte par ligne en respectant la syntaxe du fichier.
Exemples:
<nomdemachinecible|adresseIPcible> 0 backuppc [<autreutilisateur>] roger-pc 0 backuppc 12.123.2.1 0 backuppc thomas
Puis, recharger la config de backuppc : # invoke-rc.d backuppc reload
Nos nouveaux PCs sont donc pris en charge. Il faut se rendre ensuite sur l'interface Web de backuppc : http://<IPServeurBackupPC>/backuppc
Dans la liste déroulante de gauche, on voit bien apparaître les machines nouvellement rajoutées. On sélectionne une machine, puis on lance une sauvegarde complète pour celle-ci en cliquant sur le bouton « Démarrer la sauvegarde complète ». Evidemment, cela ne marche pas, mais cela a pour effet de créer la structure arborescente pour ce PC dans /var/lib/backuppc/pc/. Donc en gros, on notera la présence du répertoire /var/lib/backuppc/pc/<nomdemachinecible>/.
On peut ensuite ajouter dans ce répertoire un fichier config.pl pour customiser un peu la sauvegarde pour cette machine : par exemple, en changeant la méthode de sauvegarde, ou en précisant des répertoires à exclure ou à rajouter dans la sauvegarde, des fichiers ou types de fichiers à exclure, ...
Ensuite, copier la clé SSH de backuppc sur le root de la machine cible :
# ssh-copy-id -i /var/lib/backuppc/.ssh/id-rsa.pub root@<nomdemachinecible>
Puis en tant que utilisateur backuppc, essayer de se connecter à la cible.
(# su – backuppc ) # ssh -l root <nomdemachinecible> // Normalement, ça doit se connecter sans demander de mot de passe, et ça permet aussi de recevoir le fingerprint de la machine.
Attention : il faut donc qu'il y'ait du SSH installé sur la machine cible, ainsi que rsync si la méthode utilisée pour le backup est rsync.
Ensuite, on repart sur l'interface Web, puis on relance le backup de la cible qui devrait normalement marcher.
5- Restauration avec BackupPC :
C'est bien de sauvegarder, mais il faut aussi savoir restaurer. Sinon, ça ne sert à rien de sauvegarder.
Ce qui est bien avec BackupPC, c'est que tout est facile, et je me demande bien pourquoi j'écris ce document. Mais bon, puisqu'on l'a commencé ...
Pour restaurer (également très facile), il suffit d'aller sur l'interface Web, de choisir le PC à restaurer, puis la sauvegarde qu'on veut (en fonction de la date de sauvegarde), puis le répertoire, et enfin le fichier à restaurer (peut être un répertoire aussi). On sélectionne, puis on click sur « Restaurer ... », on choisit la méthode de restauration, et on restaure tout simplement comme de l'eau à boire.
FIN de BackupPC
Complément : BACKUP de BackupPC
On ne peut pas faire de backup, sans faire de backup de ce backup. Sinon, ça ne servirait à rien, le jour où le serveur de backup tombe en panne, ou brûle à cause du jardinier de Jérôme par exemple, ou tombe dans de l'eau... Bref ! On fait donc un backup de backup, voire même un backup de backup de backup...
Avec notre serveur de backup, nos backups se trouvent dans /var/lib/backuppc/, c'est donc se répertoire qu'il faut sauvegarder.
Plusieurs techniques existent, mais en gros, ce qu'il faut retenir, c'est qu'il est juste un peu intelligent de ne pas avoir le backup du backup pas dans le même local que le backup. Après on peut faire tout ce qu'on veut pour réaliser ce "papa de backup" ; par exemple, en mettant un autre serveur dans un autre local qui vient copier les données régulièrement, ou bien faire des sauvegardes périodiques sur disques durs externes qu'on cache ailleurs, ou même combiner les deux méthodes, et avoir des bandes magnétiques aussi... Bon, nous ce qu'on choisit, c'est la plus simple, parce que déjà, on est quand même au niveau de backup de backup, sinon ça commence à devenir trop sophistiqué. (Je commence à dire des bétises là : OBJECTION!)
Alors, pour sauvegarder le BackupPC sur un disque dur externe, on fait tout simplement de la copie de partition avec partimage.
# partimage <options> /<partition> /<disquedurexterne>/<fichierimage>
En gros, y'a que ça.
Détails : Avec un disque dur extrene USB de 700 Go reconnu en tant que /dev/sdc : (toutes les commandes)
# fdisk /dev/sdc // avec ça, je vais créer une partition /dev/sdc1 # pvcreate /dev/sdc1 // Créer un PV # vgcreate usb0 /dev/sdc1 // Création du VG usb0 # lvcreate -L 698G -n backup usb0 // Création du LV backup dans le VG usb0
On a donc une partition LVM /dev/usb0/backup sur notre disque dur externe.
# mkfs.ext3 /dev/usb0/backup // On formate la nouvelle partition en ext3. On pourrait le faire aussi en ext2. Bon non, on garde ext3, y'a de la journalisation, ça pourrait être utile. # mkdir /sauvegarde // On crée un répertoire # mount -t ext3 /dev/usb0/backup /sauvegarde // On la monte, cette partition du disque externe
Supposons donc que notre /var/lib/backuppc est en fait le point de montage de /dev/sata0/backup.
# lvcreate --snapshot --size 10G --name backupsave /dev/sata0/backup // C'est là que c'est très intéressant. Partimage ne peut pas utiliser une partition montée et donc en cours d'utilisation.
Heureusement que LVM permet de prendre une vue (snapshot) d'une partition à un instant t donné, et c'est cette vue qui sera sauvegardée. lvcreate crée un snapshot (snapshot, genre une photo de la partition), size = 10G précise que les changements opérés sur la partition seront sauvegardées dans un espace de 10Go. En effet, snapshot, ne copie pas vraiment les données de la partition dans un autre espace disque, il crée juste un endroit où il garde les traces des modifications opérées sur la partition. Toute modification faite sur la partition réelle est enregistrée, ce qui permet de voir la partition dans son état au moment de la création du snapshot (et donc d'avoir notre snapshot). (C'est plus malin quand même).
Ensuite, on crée un répertoire pour monter et démonter notre gentil snapshot. C'est bête mais, c'est comme ça ; sans ça, partimage qui vient juste après ne veut pas marcher.
# mkdir /tmp/quedale # mount /dev/sata0/backupsave /tmp/quedale && umount /dev/sata0/backupsave
Démarrons maintenant notre sauvegarde de sauvegarde avec partimage :
# partimage [options] save /dev/sata0/backupsave /sauvegarde/image Où [options] égal : -b -B '=' : pour avoir le mode batch et non interactif avec l'interface bidon là !! -z0 : pas de compression (peut être z1 ou z2 ==> compression) -o (--overwrite) : Effacer les sauvegardes précédentes -d (--nodescr) : Pas de demande de description pour aucune image -M (--nonmbr) : Pas de backup de MBR -c (--nocheck) : Pas de check de partition avant de commencer à travailler
Notre backup de backup est donc faite et se trouve sur le disque dur externe USB. On peut donc démonter la partition, rendre le lvm inactif et retirer le disque pour le conserver ailleurs loin du serveur.
# umount /sauvegarde # vgchange -an /dev/usb0
Restauration du backup de backup :
Brancher le disque dur USB Monter la partition du disque :
# vgchange -ay /dev/usb0 # mount /dev/usb0/backup /sauvegarde Puis restaurer : # partimage [options] restore /dev/<autrepartition> /sauvegarde/image ou bien : # partimage [options] restore /dev/sata0/backup /sauvegarde/image // restauration directe de la partition de backuppc
Ensuite, on monte la partition /dev/<autrepartition> et on retrouve nos backups de PCs.
FIN de FIN de Backup de backup
[Bon ! Maintenant, il faut faire des scripts de sauvegardes automatiques si cela vous intéresse, et faire un peu de crontab. C'est plus intéressant en tout cas. Encore plus interessant, utiliser udev pour lancer des scripts quand les disques se branchent. Peut être utile de tester les disques au moment où on les branche. Comme ça, en cas de problème, on cherche à résoudre avant que le programme de backup de backup (avec partimage) se lance.]
Sources :
http://backuppc.sourceforge.net/faq/BackupPC.html ++++
http://wiki.auf.org/wikiteki/ZAO/Dakar/Configuration/Backup ++++ Merci à Jérôme. Toutes ces idées sont de lui.
http://www.klipz.fr/tutoriel_backuppc.html +++
http://doc.ubuntu-fr.org/backuppc --