Bonjour cher journal et cher lecteurs,
Ces mois passés et les prochains mois font l'objet d'une grande, lourde et complexe réflexion (et on rigole pas au fond) au sein de notre petit bureau. L'objet de cette réflexion est motivé par la refonte de notre infrastructure serveur. Pour simplifier nous passons de x serveurs physiques avec des volumes éparpillés un peu de partout à une structure centralisé au niveau du stockage.
Pour le moment les sauvegardes serveurs sont réalisées par un script shell maison (Backupeur) et la partie postes utilisateurs (Windows) est gérée par ntbackup (sans commentaire). Souhaitant faire évoluer tout ce petit monde je me suis orienté bien sûr vers les solutions OpenSource :
Pour Bacula, après avoir épluché en long, en travers, en tout ce que vous voulez je ne dirais qu'une chose : Mais c'est énorme ! Oui trop énorme pour notre petite infrastructure et extrêmement complexe à mettre en œuvre.
Pour BackupPC, très simple à installer (surtout avec CentOS et rpm), encore plus simple à configurer au niveau serveur. La partie poste utilisateur est très bien pensé puisque vous pouvez choisir entres différents modes de transferts (smb, rsync, rsyncd)... Et ça marche très bien même. Mais... il en fallait bien un, comment gérer le cas ou une personne peut se connecter à plusieurs postes.
Par exemple :
Toto est amené à ce connecter à plusieurs postes. Il possède son home (que se soit Windows ou Linux) qui est chargé à la connexion, dans le paramétrage de l'host sur le serveur BackupPC j'ai paramétré la gestion du transfert en rsyncd et j'ai créé un petit fichier de configuration qui va bien qui définit le home à sauvegarder. C'est à ce moment que ça devient plus compliqué :
Toto utilise son poste habituel mais pour une raison totalement inconnu aujourd'hui il en utilise un autre. Il se connecte et son home est chargé, la sauvegarde se lance à partir d'un autre host. Résultat ces fichiers sont dans deux répertoires host différents dans le dépôt.
je ne parle même pas du cas ou plusieurs utilisateurs peuvent se connecter à un même poste (à des moments différents)... Ça devient tordu...
Comment géré vous ce genre de cas et plus largement quelle solution avez-vous en place dans vos infrastructures ?
Merci d'avance à vous tous :)
# Hum
Posté par eolyte . Évalué à 7.
Soit ton problème est que les données de l'utilisateur ne sont pas centralisées, et tu attends que ce soit ta solution de sauvegarde qui gère cela. Si c'est le cas, désolé de te le dire, mais la sauvegarde ne devrait pas pallier à un défaut d'infrastructure, il faudrait peut-être penser à mettre en place un serveur de fichiers comme samba.
Soit ton problème est que les données de l'utilisateur seront sauvées deux fois. C'est effectivement ennuyeux, et bien que ça ne soit pas nickel chrome, tu peux laisser ça en l'état. En effet BackupPC ne stocke qu'une seule fois un même fichier, et fait des hardlinks dessus pour toutes les copies de ce fichier, donc à part consommer plus de réseau lors de la sauvegarde, et plus de cpu pour les tâches nocturnes de backupPC, ça ne te coûtera pas plus cher.
Hope it helps.
[^] # Re: Hum
Posté par gnumdk (site web personnel) . Évalué à 7.
>infrastructure serveur. Pour simplifier nous passons de x serveurs
>physiques avec des volumes éparpillés un peu de partout à une
>structure centralisé au niveau du stockage.
Ben, il semblerait que non...
Ou son problème est: "on comprend rien au profils itinérants et au redirection de dossiers" ...
J'arrive pas à comprendre si c'est le système de profil itinérant qu'il essaye de contourner...
[^] # Re: Hum
Posté par gnumdk (site web personnel) . Évalué à 2.
L'autre gros point noir est l'impossibilité de gérer la notion d'utilisateur au niveau poste utilisateur. Je m'explique, lorsque vous créé un host à sauvegarder vous devez indiquer son nom (netbios, dns...), un nom d'utilisateur. Au niveau arborescence de fichiers BackupPC créé un sous répertoire par host mais sans faire intervenir le nom d'utilisateur. Résultat si un poste est utilisateur par plusieurs personnes à chaque fois un nom d'utilisateur différent donc un home différent, je ne vois vraiment pas comment gérer ce cas. Au début j'ai pensé que cette limitation était présente que pour l'environnement Windows, mais même pour un Linux le problème reste le même.
On trouve ca sur son blog... En clair, il n'ont pas de serveur de fichier, tu avais vu juste ;)
Du coup, je vois quand même pas le probleme, il fait une sauvegarde de "C:\Users" ou de "/home" ...
[^] # Re: Hum
Posté par Philippe M (site web personnel) . Évalué à 1.
Born to Kill EndUser !
[^] # Re: Hum
Posté par Philippe M (site web personnel) . Évalué à 1.
Sur la nouvelle infra il est prévue que le répertoire "documents and settings" ou "home" soit stocké sur le NAS mais comment faire pour les autres données, c'est la mon gros problème.
Born to Kill EndUser !
[^] # Re: Hum
Posté par gnumdk (site web personnel) . Évalué à 2.
Et tu auras tout sur le serveur...
Pour les clients Linux, il faut bricoler un truc avec rsync, ca me semble la meilleur solution...
[^] # Re: Hum
Posté par Philippe M (site web personnel) . Évalué à 1.
Le profil itinérant est activé sur le contrôleur de domaine samba mais je ne fais pas transiter toute les informations du profil pour des raisons de trafic réseau et la raison principal est lié à une utilisation en local des mails outlook. La majorité des utilisateurs ont une boîte mail qui dépasse le giga et pour les plus extrêmes j'arrive à 30Go et ne me parler pas faire le ménage dans ces boîtes mails, les utilisateurs ne veulent pas en entendre parler. Surtout que pour Outlook il suffit de le lancer pour qu'il "modifie" les fichiers donc pour qu'il soit re-transférer lors de la fermeture de session de l'utilisateur.
Soit ton problème est que les données de l'utilisateur seront sauvées deux fois. C'est effectivement ennuyeux, et bien que ça ne soit pas nickel chrome, tu peux laisser ça en l'état. En effet BackupPC ne stocke qu'une seule fois un même fichier, et fait des hardlinks dessus pour toutes les copies de ce fichier, donc à part consommer plus de réseau lors de la sauvegarde, et plus de cpu pour les tâches nocturnes de backupPC, ça ne te coûtera pas plus cher.
C'est une très bonne nouvelle, mais sur quoi ce base BackupPC pour déterminer si le fichier est identique ? Le nom ? J'espère que non car ce n'est pas très fiable, il peut très bien arriver qu'un fichier provenant de différents profil/host soit identique mais que je le fichier ne contienne pas les même données.
Juste pour être certain. Lorsque je vais dans le dépôt de BackupPC (/var/lib/BakcupPC/) j'ai un répertoire par host, jusque la normal. Si je rentre dans un host j'ai les sauvegardes. Maintenant si je regarde le fichier de config rsyncd d'un host j'ai défini, en répertoire à sauvegarder j'ai :
[home]
path = c:/document and settings/toto/Mes documents
Premier problème, si tata vient à ce connecter, ces données ne seront pas sauvegardé puisque le fichier de config est paramétrer sur toto. Je pourrais remonter d'un niveau le répertoire à sauvegarder, donc à "document and settings" mais je ne trouve pas ça très élégant.
Revenons à toto, il se connecte sur le poste 01 qui est celui qu'il utilise habituellement, pour une raison inconnue il doit utiliser le poste 02, il ouvre sa session, son profil est chargé via le profil itinérant (sauf ces mails), il boss et la sauvegarde ce lance ou bien il la lance. Ces fichiers vont être stockés au niveau de BackupPC dans le host 02 et non 01 ce qui est logique puisqu'il est connecté depuis 02. Toto revient le lendemain à sont poste 01 et il se rend compte qu'il s'est trompé dans une modification et il souhaite revenir à la version précédente de son fichier. Dans quel host va il devoir aller chercher son fichier ? 01 ou 02 ?
Born to Kill EndUser !
[^] # Re: Hum
Posté par herodiade . Évalué à 2.
BackupPC fait un checksum cryptographique (md5 si ma mémoire est bonne) pour reconnaitre les fichiers identiques (ou pas) et dédupliquer.
Il ne se base évidement pas sur le nom (il lui serait sinon impossible de backuper des serveurs similaires au même endroit ;).
D'ailleurs, les arborescences de hardlinks (ce que tu vois dans "dans le dépôt de BackupPC (/var/lib/BakcupPC/) j'ai un répertoire par host") ne sont utilisés par le logiciel qu'à titre de métadonnées pour retrouver, justement, le nom d'un fichier ou le contenu d'un répertoire, parcourir facilement l'arborescence, etc. Les fichiers eux-même sont stockés dans le répertoire cpool/, non pas sous leur vrais noms, mais renommés selon leurs checksums md5 (par ex. /var/lib/backuppc/cpool/0/1/d/01d0016d1a30383ccd484a8913de6927).
Ainsi, deux fichiers (qu'ils aient un nom différéent ou pas) ayant le même checksum ne sont pas dupliqués : backuppc place le fichier une première fois dans le cpool/ en le nommant d'après son checksum md5 ; la fois suivante (backup suivant de la même machine lorsque le fichier n'a pas changé, ou autre machine ayant le même fichier identique) il constate que le fichier ayant ce checksum existe déjà dans cpool/, et ne l'écrase pas. Pour la présentation de l'arborescence, il fait des liens hards portant les "vrais" noms des fichiers et pointant sur les fichiers du répertoire cpool/.
Lorsque le fichier disparait d'un hote, backuppc n'efface que le lien hard ("le nom du fichier") correspondant. Un autre job, indépendant, passe régulièrement et repère les fichiers du cpool/ (ceux dont le nom est un md5) qui ne sont plus référencés par des hardlinks dans les répertoires contenant les arborescences des hotes (donc: qui ne sont plus utilisés nulle part), et il les effaces.
> je pourrais remonter d'un niveau le répertoire à sauvegarder, donc à "document and settings" mais je ne trouve pas ça très élégant.
Pourquoi pas élégant ?
Avec ce procédé, tu inclus aussi le nom de l'utilisateur dans le backup (enfin, dans le path des fichiers). Faute de quoi, il te serai très difficile de retrouver le outlook.pst de l'user toto (au milieu des outlook.pst des autres users) pour le restorer.
Cela te permet aussi de savoir très aisément "qui" (quel user) pèse combien dans tes backups, et d'éventuellement affiner les filtres de tris, etc.
> Dans quel host va il devoir aller chercher son fichier ? 01 ou 02 ?
L'interface web de backuppc permet de naviguer/browser les sauvegardes ordinateur par ordinateur, mais pas transversalement.
Il faut donc que l'utilisateur se souvienne de l'hote sur lequel il était connecté au moment du backup, ou qu'il parcoure l'arborescence des hotes auxquel il est susceptible de s'être connecté. Ou qu'il demande à l'admin de faire un "find /var/lib -name '*lefichier*'" pour lui indiquer l'hote intéressant au jour j. Cela étant, une interface web de recherche transversale ne serait pas très dur à développer... (ou une script référençant, sur ton serveur samba, qui se connecte depuis où à quelle date: c'est dans les logs, génerer une page web est très simple).
[^] # Re: Hum
Posté par Romeo . Évalué à 1.
[^] # Re: Hum
Posté par Philippe M (site web personnel) . Évalué à 1.
Il faut donc que l'utilisateur se souvienne de l'hote sur lequel il était connecté au moment du backup
C'est un gros problème, je connais très bien comment sont "mes" utilisateurs et je pense que c'est la même chose ailleurs. Je vois la conversation :
Utilisateur : Je voudrais récupérer un fichier
Moi : Oui c'est quoi le nom
Utilisateur : euuuuu... il commence par "duchmole"
Moi : Ouaiiiiiiii.... C'était hier ?
Utilisateur : non y a deux ou trois jours
Moi : ah il va falloir faire un choix, deux jours ou trois jours
Utilisateur : On récupère les deux et on les compares
Moi : Je les récupères et vous les comparés. Bon ok votre machine c'est laquelle
Utilisateur : c'est celle dans mon bureau voyons
Moi : Ok, je vous les envoies pas mail dans 5mn
Utilisateur : Ok
... [pendant ce temps à VeraCruse]...
Utilisateur (au téléphone) : C'est pas les bons fichiers
Moi : Ah, vous voulez que je remonte plus loin ?
Utilisateur : Non c'est sûr au plus j'ai bossé y a trois jours dessus
Moi : Ok :( Vous l'avez peut être modifié depuis un autre poste
Utilisateur : Ah oui c'est possible !
Moi : Ces deux ou trois jours vous avez bossé sur quel ordinateurs ?
Utilisateur : Ah ba je sais plus moi
Moi : Moi non plus
Résultat, je passe mon temps à chercher des fichiers éparpillés. C'est sûr qu'on restaure pas des fichiers tout les jours et puis y a pas 300 utilisateurs. Mais ce fonctionnement me parait totalement illogique. En plus de gérer le versionning de fichiers (ce qui est normal) on ajoute le versionning sur différent host. A l'heure de la centralisation de données et la réduction des coût... Sa m'étonne et puis niveau utilisation c'est pas le top.
Depuis que j'ai pris la gestion de ce parc j'ai dissocié utilisateur et ordinateur (avec les moyens du bord à l'époque). Je part du principe qu'une machine n'est pas attribué à un utilisateur, vis et versa.
Born to Kill EndUser !
[^] # Re: Hum
Posté par nextgens (site web personnel) . Évalué à 2.
http://subversion.tigris.org/
Avec tortoiseSVN si c'est dans un environment windows.
[^] # Re: Hum
Posté par Philippe M (site web personnel) . Évalué à 1.
Born to Kill EndUser !
[^] # Re: Hum
Posté par Gabin . Évalué à 2.
Ah bon? L'informaticien il le considèrait autrement?
[^] # Re: Hum
Posté par C2RIK . Évalué à 1.
[^] # Re: Hum
Posté par herodiade . Évalué à 1.
Les données importantes de l'utilisateur ne sont elles pas dans le profile stocké sur un serveur ? (si oui, peut-être le mieux serait de sauvegarder ce serveur ?).
Peut-être que rdiff-backup ([http://rdiff-backup.nongnu.org]) conviendrait mieux étant donné tes contraintes.
Il copie un répertoire (sur un desktop par ex.) vers un autre répertoire (sur un serveur par ex); le serveur est passif, ne se préocupe pas de savoir d'où (de quel hote) vient le fichier. Il n'a pas d'interface sympa qui permette aux utilisateurs non avertis de restorer eux-même les fichiers cependant.
# Je ne comprends pas ton problème
Posté par Charles_JUDITH . Évalué à 2.
Ce que je ne comprends pas, tu semble vouloir intégrer la sauvegarde de Toto sur chaque machine où il va se connecter ?
Ou sinon tu peux choisir le dossier cible de sauvegarde pour chaque hôte, exemple:
si toto se connecte sur machine1, dans backuppc tu rajoute la machine1, et tu sauvegarde /home/toto .
Si un autre user se connecte sur cette machine tu fait de même /home/user/
Aprés c'est vrai dans ton dossier de sauvegarde tu aura tes sauvegardes classés par hôtes, mais tu peux parcourir tes sauvegardes.
Peux tu nous donner un peu plus d'informations car je ne comprends pas trop ton problème.
# NFS
Posté par superna (site web personnel) . Évalué à 6.
En gros il y a un annuaire LDAP avec des Entrés NisMapEntries qui disent :
- /users/toto -> machine1:/home/toto
- /users/robert -> machine2:/home/robert
et
- user toto, home=/users/toto
- user robert, home=/users/robert
Et sur chaque machine, qui sont synchro avec le ldap et autofs et login avec ldap, on y accède avec :
- /users/toto -> qui monte tout seul machine1:/home/toto
- /users/robert -> qui monte tout seul machine2:/home/robert
Et encore plus au top, sur machine2, l'user robert va se loguer et au lien de monter "machine2:/home/robert", il va faire un "mount -bind" de /home/robert vers /users/robert !
Voila, ça marche qu'avec des machines Unix effectivement ... (et même Mac Os X ;-)
Pour Windows, je ne saurais quoi te dire.....
[^] # Re: NFS
Posté par superna (site web personnel) . Évalué à 2.
- LDAP et Autofs5 http://padraic2112.wordpress.com/2007/04/03/autofs-5-and-lda(...)
- LDAP et NSS/PAM : http://articles.mongueurs.net/magazines/linuxmag67.html
Aprés faut juste passer du temps à rendre l'annuaire cohérent...
[^] # Re: NFS
Posté par Charles_JUDITH . Évalué à 1.
Mais bon si l'user toto (qui se logge toujours sur la machine1) se logge sur la machine2, le chargement du profil sera un peu long à mon gout !!!
# Et unison ?
Posté par denisb . Évalué à 2.
première solution : pourquoi pas un domaine samba ? en redirigeant les User Shell Folders en dehors de profile, sur le home, cela marche très bien... à condition d'être connecté en permanence. Donc exit les portables !
Deuxième solution : unison [http://www.cis.upenn.edu/~bcpierce/unison/] La toute dernière version gère enfin l'unicode, et permet donc les synchros entre Windows et Linux sans soucis. C'est vraiment génial : la synchro est ultra efficace, sécurisée en ssh, et surtout cela marche à tous les coups, sans risque de perte de fichiers...
Avec un tel système les utilisateurs peuvent continuer à avoir leur données en local, elles seront synchronisées sur le serveur à la demande, et les synchros passent très bien sur une adsl, sans besoin de vpn, il suffit d'une connexion ssh. Dans ce cas le backup du serveur est suffisant, et backuppc est ideal.
Il faut un peu bricoler pour configurer correctement un client ssh sous windows avec les clés du serveur, mais une fois au point, c'est transparent pour l'utilisateur : il lance la synchro et c'est tout, au pire il doit choisir quoi faire si il y a des conflits de versions de fichiers, mais c'est plutôt simple. On peut utiliser soit la version GTK, soit en ligne de commande.
[^] # Re: Et unison ?
Posté par herodiade . Évalué à 1.
Par exemple: tu modifie un fichier, il est synchronisé partout. 15 jours après, tu veux récupérer la version d'avant. Zut. Ou bien: par prudence, pour éviter ce problème, tu ne synchronise qu'une fois de temps en temps. Et ton disque dur tombe en panne. Tu perd plusieurs jours de travail. Zut.
Le serveur pourrais certe avoir du LVM et faire des snapshots, mais il faudrait aussi bricoler de quoi permettre aux utilisateurs de consulter trouver le bon snapshot, le monter, le naviguer, récupérer son fichier simplement ; et gérer les saturation disques, et décider automatiquement quel snap/archive effacer ; décider de la durée de conservation et scripter de quoi l'appliquer ; alerter s'il y a un défaut ; alerter si une machine n'a pas été backupée depuis longtemps ; arbitrer les accès concurents pour éviter que tout backup en même temps et sature les i/o ou le réseau, ... ce que font déjà les logiciels de backup classiques. Bref à ce stade il faudrait réinventer la roue.
[^] # Re: Et unison ?
Posté par Pierre Tramo (site web personnel) . Évalué à 1.
Ça vient du monde crosoft, ça fait des années que c'est utilisé un peu partout. Et c'est possible à mettre en place avec samba: http://www.wlug.org.nz/SambaShadowCopyHowto
# Bacula: faut pas avoir peur
Posté par tipmeabout . Évalué à 2.
Je n'ai pas le temps de faire un tutoriel accessible pour Mme Michu, mais vu que je lis qu'il fait peur assez souvent, je vais essayer de m'y atteler au plus vite.
# Pour des machines "partagées", c'est prévu d'origine
Posté par bat13 . Évalué à 1.
pc1_user1 0 prenom1.user1
pc1_user2 0 prenom2.user2
Puis tu crées deux fichiers de config :
pc1-user1.pl et pc2-user2.pl qui contiennent les lignes :
pc1-user1.pl :
$Conf{ClientNameAlias} = 'pc1'
... (options spécifiques à cet utilisateur/machine, dont le/les répertoires à sauvegarder)
pc2-user2.pl :
$Conf{ClientNameAlias} = 'pc1'
... (options spécifiques à cet utilisateur/machine, dont le/les répertoires à sauvegarder)
Chacun ne verra que les fichiers qui lui appartiennent ...
[^] # Re: Pour des machines "partagées", c'est prévu d'origine
Posté par Philippe M (site web personnel) . Évalué à 1.
Born to Kill EndUser !
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.