Elaboration d'un outil de sauvegarde/restauration de sytèmes Linux en réseau



Documents pareils
Administration UNIX. Le réseau

Retrospect 7.7 Addendum au Guide d'utilisation

Installation de Windows 2003 Serveur

FreeNAS Shere. Par THOREZ Nicolas

[Serveur de déploiement FOG]

Windows 8 Installation et configuration

DHCPD v3 Installation et configuration

Installation de Windows 2000 Serveur

LA SAUVEGARDE DES DONNEES SUR LES ORDINATEURS PERSONNELS

Microsoft Windows NT Server

LOGICIEL KIPICAM : Manuel d installation et d utilisation

Maintenir Debian GNU/Linux à jour

Dynamic Host Configuration Protocol

Projet : PcAnywhere et Le contrôle à distance.

TAGREROUT Seyf Allah TMRIM

But de cette présentation

MI03 TP. Objectifs du TP 1ère séance. 2ème séance. Construction d'un système linux embarqué complet

L exemple d un serveur Proxy sous Windows NT 4 SERVER MICROSOFT PROXY SERVER 2 Installation et configuration Auteur : Eliane Bouillaux SERIA5

MODULE : MAINTENANCE DES STATIONS AVEC OSCAR

INSTALLATION DEBIAN. Installation par le réseau

Installation et Réinstallation de Windows XP

Symantec Backup Exec 12.5 for Windows Servers. Guide d'installation rapide

NON URGENTE TEMPORAIRE DEFINITIVE OBJET : RÉCUPÉRATION DES DONNÉES CLIENT SUR DISQUE DUR DÉFECTUEUX OU INVALIDÉ

Guide de l'utilisateur de l'application mobile

Sauvegarde et restauration d'un système d'exploitation Clonezilla

SOMMAIRE. Chapitre 1 - principe 3 Téléphonique 4 PC/Configuration logicielle 4 PC/Configuration matérielle: 4 Pabx 4

PC Check & Tuning 2010 Optimisez et accélérez rapidement et simplement les performances de votre PC!

1. Comment accéder à mon panneau de configuration VPS?

Documentation utilisateur, manuel utilisateur MagicSafe Linux. Vous pouvez télécharger la dernière version de ce document à l adresse suivante :

WINDOWS 2000 SERVEUR

OpenMediaVault installation

Formateurs : Jackie DAÖN Franck DUBOIS Médiapôle de Guyancourt

Protocoles DHCP et DNS

Projet serveur OwnCloud

Installation du SLIS 4.1

STATISTICA Version 12 : Instructions d'installation

Microsoft OSQL OSQL ou l'outil de base pour gérer SQL Server

LANDPARK NETWORK IP LANDPARK NETWORK IP VOUS PERMET D'INVENTORIER FACILEMENT VOS POSTES EN RÉSEAU

Démarrage à partir du réseau

Tutoriel réalisé par luo. Version du 22/02/14

D. Déploiement par le réseau

Présentation du modèle OSI(Open Systems Interconnection)

laissez le service en démarrage automatique. Carte de performance WMI Manuel Désactivé Vous pouvez désactiver ce service.

PARAGON SYSTEM BACKUP 2010

Edutab. gestion centralisée de tablettes Android

Virtualisation de Windows dans Ubuntu Linux

PPE Contexte de travail GSB Activité Reconditionnement et Helpdesk

Installation d'un serveur DHCP sous Windows 2000 Serveur

Assistance à distance sous Windows

Symantec Backup Exec Remote Media Agent for Linux Servers

Administration Réseau sous Ubuntu SERVER Serveur DHCP

Service Informatique et Télématique (SITEL), Emile-Argand 11, 2009 Neuchâtel, Tél ,

Activité 1 : Création et Clonage d'une première machine virtuelle Linux OpenSuSE.

PROCÉDURE D'INSTALLATION

Architecture de la plateforme SBC

Manuel du logiciel PrestaTest.

VMWare. Vmware: machine virtuelle Un véritable pc avec : VmWare

WINDOWS NT 2000: Travaux Pratiques. -Boîtier partage d'imprimante- Michel Cabaré Janvier 2002 ver 1.0

Démontage d'un ordinateur

NOTE D'APPLICATION CONCERNANT LA MISE EN SERVICE DE MATERIELS SUR RESEAU IP


Description du logiciel Acronis Backup & Recovery 11.5

VRM Monitor. Aide en ligne

Serveur Acronis Backup & Recovery 10 pour Linux. Update 5. Guide d'installation

Manuel d installation Version Evolution réseau Ciel Compta Ciel Gestion commerciale Ciel Associations

Windows sur Kimsufi avec ESXi

Préparation à l installation d Active Directory

MIGRATION ANNEXE SAINT YVES. 1 : L existant. Pourquoi cette migration Schéma et adressage IP. 2 : Le projet. Schéma et adressage IP.

Principes de DHCP. Le mécanisme de délivrance d'une adresse IP à un client DHCP s'effectue en 4 étapes : COMMUTATEUR 1. DHCP DISCOVER 2.

Ce tutoriel ne fera pas de vous un expert sur le déploiement via WDS, mais il vous permettra de comprendre un peu les rouages de ce système.

Distinguer entre «Enregistrer» et «Sauvegarder»

Commandes Linux. Gestion des fichiers et des répertoires. Gestion des droits. Gestion des imprimantes. Formation Use-IT

Acronis Backup & Recovery 10 Advanced Server Virtual Edition. Guide de démarrage rapide

Installation personnalisée d'oracle 10g

La Solution Crypto et les accès distants

OSCAR Un outil gratuit libre d images disque

TAI049 Utiliser la virtualisation en assistance et en dépannage informatique TABLE DES MATIERES

Structure et fonctionnement d'un ordinateur : hardware

Mise à jour, sauvegarde et restauration de logiciels

ETI/Domo. Français. ETI-Domo Config FR

Tester Windows 8 sans l'installer avec Virtualbox

Installation 1K-Serveur

Windows 2000: W2K: Architecture. Introduction. W2K: amélioration du noyau. Gamme windows W2K pro: configuration.

Mise en place Active Directory, DNS Mise en place Active directory, DNS sous Windows Serveur 2008 R2

Tutorial Ophcrack. I) Ophcrack en API. (ou comment utiliser Ophcrack pour recouvrir un mot de passe sous Windows XP et Windows Vista)

WINDOWS SERVER 2003-R2

Attribution dynamique des adresses IP

NOTIONS DE RESEAUX INFORMATIQUES

Le protocole ARP (Address Resolution Protocol) Résolution d adresses et autoconfiguration. Les protocoles ARP, RARP, TFTP, BOOTP, DHCP

JetClouding Installation

Problématique. Techniques générales. Déploiement Windows. Déploiement Linux. Déploiement Mac OS X. Applications Windows. Applications Linux

Synology Serveur PXE network booting NAS. Mode d emploi : Serveur PXE network booting

Bac Professionnel Systèmes Electroniques Numériques

Serveur de sauvegarde à moindre coût

"! "#$ $ $ ""! %#& """! '& ( ")! )*+

VMWARE VSPHERE ESXI INSTALLATION

DOCUMENTATION VISUALISATION UNIT

Présentation du SC101

Windows Internet Name Service (WINS)

Transcription:

Bertrand JACQUIN ETNA 1ère année Numéro de candidat : 1008465 Promotion 2004-2005 Rapport d'activité présenté à l'épreuve professionnelle de soutenance au DEESINF année 2005 Examen FEDE Elaboration d'un outil de sauvegarde/restauration de sytèmes Linux en réseau Société Soredi Elaboration d'un outil de sauvegarde/restauration de systèmes Linux Page 1/38

Remerciements : Tout d'abord je voudrais remercier mon maitre de stage, Pierre Rolin, de m'avoir proposé ce stage et de m'avoir consacré du temps Je remercie tout le personnel de Soredi, Merci aux enseignants de l'etna pour la qualité des cours, Une attention particulière à ma famille, à mes amis. Elaboration d'un outil de sauvegarde/restauration de systèmes Linux Page 2/38

Sommaire : Remerciements 2 Introduction I - Recherche de solutions adéquante 6 I.1 - État de l'art des techniques de backups de système 6 I.2 - Cahier des charges 7 I.2.1 - Démarrer l'ordinateur en réseau 8 I.2.1.1 - DHCP 9 I.2.1.2 - TFTP 10 I.2.1.3 - PXELinux 10 I.2.1.4 - Les systèmes de fichiers en réseau 10 I.2.2 - Un système à démarrer 12 I.2.3 - Sauvegarde & restauration 13 II - Mise en œuvre 15 II.1 - Démarrage sur le réseau 15 II.1.1 - DHCP 15 II.1.2 - TFTP 16 II.1.3 - PXELinux 17 II.1.4 - La distribution 19 II.1.4.1 - Utilisation standard 19 II.1.4.2 - Utilisation par le réseau 20 II.1.4.2.1 - Première modification de l'initrd 22 II.1.4.2.2 - Création d'un noyau adapté 23 II.1.4.2.3 - Seconde modification de l'initrd 24 II.2 - Création de scripts 26 II.2.1 - Sauvegarde 26 II.2.2 - Restauration 27 II.3 - Spécialisation de la distribution 28 Conclusion Lexique 31 Table des illustration 33 Bibliographie/Webographie 34 Annexes 35 A : Fichier de configuration de DHCPd 36 B : Fichier de configuration de TFTPd 37 C: Fichier de configuration de PXELinux 38 Elaboration d'un outil de sauvegarde/restauration de systèmes Linux Page 3/38

Introduction : Dans le cadre de la validation de ma première année à l'etna, j'ai effectué un stage dans l'enceinte de Soredi France à St Quentin en Yveline. Le but étant de créer un outil de sauvegarde et de restauration de postes sous Linux. La mise en place d'une plate-forme Linux opérationnelle peut nécessiter de multiples essais, rares sont ceux qui sont concluant la première fois d'où la nécessité de cet outil de sauvegarde. Les outils proposant une telle solution sont très coûteux et complexes. De plus, ils ne répondent pas entièrement aux besoins d'une plateforme de test. Ce document présente les travaux ménés lors de ce stage. Nous verrons les différentes solutions qui permettent de répondre au problème. Puis pour finir, nous verrons la mise en œuvre de la meilleure solution et les problèmes résolus lors de cette mise en œuvre. Elaboration d'un outil de sauvegarde/restauration de systèmes Linux Page 4/38

Les entreprises sont de nos de jours, avec la progression d'internet, amenées à utiliser des serveurs pour les services de messagerie interne, de gestion, de comptabilité... Il est essentiel pour ces entreprises que leurs serveurs soient opérationnels. Les erreurs de manipulation et le piratage sont courants ce qui peut provoquer des pertes irrémédiables d'informations importantes. La perte de ces données peut mettre en péril l'économie d'une entreprise. Ainsi, de la nécessité de protection des données, a été créé le principe de sauvergarde. Il est alors possible aujourd'hui de faire la sauvegarde d'une base de données, de pages web et même d'un serveur complet. Si des sauvegardes sont opérées régulièrement, une restauration peut être effectuée en cas de problèmes. La sauvegarde d'un serveur complet (de tous les outils et du système d'exploitation installé) est appelé 'backup de data'. La sauvegarde totale d'un serveur est assez particulière. Pour des raisons de fiabilité, durant le temps de la sauvegarde, il faut stopper tous les services en cours d'exécution. C'est une opération indispensable pour les serveurs sensibles, comme ceux dont peuvent disposer des entreprises de ventes sur Internet, ou les Fournisseur d'accès Internet (FAI) : une erreur quelconque pourrait leur coûter très chère. Une étude de l'activité journalière d'un serveur doit être faite afin de déterminer le moment le plus opportun pour effectuer une sauvegarde. Ceci est valable également au sein de Soredi sur les plateformes de démonstration de services. Il peut arriver que, lors d'une démonstration, un ordinateur tombe en panne. Le temps étant précieux, il est plus rapide de restaurer une machine que de réparer la panne elle-même. L'objet de mon stage est de créer un outil qui permettant de réaliser de telles sauvegardes et restaurations pour des postes sous Linux. C'est à dire de figer la configuration d'un poste et en faire une sauvegarde sur un serveur de stockage distant. Il faut ensuite également pouvoir restaurer ces données à la demande et reprendre les activités telles qu'elles étaient à l'instant de la sauvegarde. Elaboration d'un outil de sauvegarde/restauration de systèmes Linux Page 5/38

I Recherches de solutions adéquates : I.1 État de l'art des techniques de backups de systèmes : La sauvegarde de système n'est pas un concept récent. Celui-ci date des premiers systèmes possédant de la mémoire et dont la stabilité n'était pas assurée. Les logiciels de sauvegarde les plus courants sont des outils permettant la sauvegarde de bases de données, de messageries, de pages web. Plus rares sont les outils permettant le backup de systèmes, sauvegarde particulière où la totalité des données (y compris le système d'exploitation) est copiée sur un système distant ou sur un média externe à la machine à sauvegarder. Ces outils sont en général assez spécialisés pour une architecture particulière (PC, VMS, Mini) ou pour un système d'exploitation donné (Microsoft Windows, Linux, Sun Solaris, Hp-Ux). De plus ces outils ne sont pas d'une grande souplesse et sont difficiles à prendre en main. Ils nécessitent la plupart du temps l'intervention d'ingénieurs systèmes formés en conséquence. Peu de ces outils permettent de sauvegarder sur des serveurs de stockage distants. De plus ils ne sont pas efficaces à 100%, coûtent très chers. Seules peu d'entreprises ont les moyens de se munir des plus efficaces. Pour n'en citer que deux, voici les plus connus : Arkeia de Knox Software et Ghost de Norton. Ces deux derniers possèdent toutes les fonctionnalités souhaitées, mais leur prix est élevé. À partir des points négatifs cités ci-dessus, il a été donné la possibilité à un stagiaire de l'etna de créer un outil de sauvegarde en réseau pour des postes sous Linux. Ce que l'on a l'habitude d'appelé Linux devrait être appelé GNU/Linux (c'est une vulgarisation linguistique). GNU/Linux est un type de système d'exploitation formé d'une multitude de logiciels et du noyau Linux, qui lui gère l'interaction entre les logiciels et le matériel. Il existe une multitude de versions de GNU/Linux, chacun fournissant des services différents selon l'application souhaitée. Chacune de ces versions est appelée «distribution». Les prochaines parties de ce chapitre seront consacrées à détailler les différentes briques qui permettront de réaliser le projet. Elaboration d'un outil de sauvegarde/restauration de systèmes Linux Page 6/38

I.2 - Cahier des charges : L'outil à créer doit répondre au cahier de charges suivant : Doit fonctionner sur des postes Linux, Créer des copies de disques durs et/ou de partitions de disques durs, Créer ces copies directement en les transférant sur le serveur de stockage, Elaborer une stratégie de classement des images sur le serveur de stockage, Permettre de réécrire sur un disque dur pour y opérer une restauration, Doit fonctionner sur des réseaux routés (plusieurs réseaux IP interconnectés au moyen de routeurs IP), Permettre plusieurs sauvegardes/restaurations simultanées, Être peu coûteux, Prendre en compte la configuration matérielle du PC et en particulier des disques durs, Pouvoir démarrer sur le réseau. Mes travaux de recherches de documentations se déroulent de la façon suivante : Découvrir par quels procédés il est possible de démarrer un ordinateur par le réseau, Découvrir le moyen d'effectuer une sauvegarde, Créer une méthode similaire pour la restauration. Les sections suivantes détaillent chacun de ces points Elaboration d'un outil de sauvegarde/restauration de systèmes Linux Page 7/38

I.2.1 - Démarrer l'ordinateur en réseau : Pour procéder à une sauvegarde/restauration, il faut que l'outil accède aux disques durs de l'ordinateur sans y provoquer de modifications. Une solution pour y parvenir est de démarrer par le réseau. Un démarrage par le réseau est faisable mais exige une procédure assez complexe. D'abord il faut que l'ordinateur le permette. Il faut ensuite avoir un accès direct au réseau, puis télécharger à partir du réseau l'image d'un système d'exploitation, pour finalement le démarrer dessus. Chacune de ces opérations sont décrites plus en détail par la suite. Il faut absolument que l'ordinateur n'accède pas aux disques durs et exécute le nécessaire en mémoire. Cette opération se réalise d'abord par une configuration du BIOS (logiciel minimal primitif écrit sur une mémoire morte, qui permet de démarrer l'ordinateur selon réglages) stipulant de démarrer sur le périphérique réseau. Cette option n'est pas disponible sur tous les ordinateurs et dépend de la carte réseau utilisée. Il est possible de créer une disquette, ou un CD-Rom de démarrage pour les ordinateurs qui ne sont pas dotés de cette fonctionnalité, ce qui est rare cependant. Les cartes réseau du laboratoire, en grande partie fabriquées par la société 3Com, sont réputées pour leur qualité et leur capacité à pouvoir démarrer l'ordinateur en obtenant des informations depuis le réseau. Par la suite la recherche de terme comme 'netboot' m'ont amené à découvrir Etherboot. Etherboot est une suite de logiciels qui permettent de faire des tests de mémoire de réseau d'entreprise. Ainsi sont utilisés les protocoles DHCP, TFTP, PXELinux, NFS, que nous allons détaillons ci-après. Ces fonctions réseaux sont essentielles. Pour accéder à un réseau local, il faut une adresse IP. Une fois l'adresse IP obtenue, le PC démarre par un suite d'actions. Voici un schéma d'un fonctionnement classique (la numérotation suit l'ordre chronologique des opérations) : Elaboration d'un outil de sauvegarde/restauration de systèmes Linux Page 8/38

Figure 1 : Schéma du principe d'un démarrage en réseau classique I.2.1.1 - DHCP : Dynamic Host Configuration Protocol : Le protocole DHCP permet à un client DHCP de récupérer dynamiquement depuis un serveur DHCP une configuration IP adaptée au réseau sur lequel il est rattaché. Ce protocole est exploité dans les réseaux de moyenne et grande importance lorsqu'il faut gérer un grand nombre d'utilisateurs. DHCP centralise la configuration IP sur un seul ordinateur, au lieu d'avoir à reprendre une configuration sur tout un réseau, ce qui peut être une opération longue et fastidieuse. Celui-ci fournit toutes les informations relatives à la configuration d'une interface réseau, comme par exemple l'adresse IP, le masque de réseau, la durée de la validité de ces informations... La configuration s'effectue sur un serveur (ici Packa) avec le logiciel DHCPd (DHCP Daemon). Le client a besoin uniquement de DHCPcd (DHCP Client Daemon). Les informations que reçoit le client sont écrites dans un fichier de configuration sur le serveur. Il existe différents logiciels serveurs DHCP, le plus répandu étant dhcpd car il est simple, et n'a pas de fonctionnalités exotiques qui ne seraient pas nécessaires. DHCP permet de connecter le PC au réseau, le PC n'a toujours pas démarré sur un logiciel ou une distribution. Elaboration d'un outil de sauvegarde/restauration de systèmes Linux Page 9/38

I.2.1.2 - TFTP : Trivial File Transfer Protocol : Ce protocole est largement utilisé sur la plupart des équipements réseaux comme les routeurs, switch (Cisco par exemple). Il est semblable au protocole FTP, qui permet de transférer des fichiers d'un ordinateur à un autre. Il y a toutefois des différences : il utilise UDP au lieu de TCP, ce qui ne sécurise pas le transfert, le serveur ne sachant pas si le transfert s'est bien déroulé. Il ne laisse pas le choix de ce que l'on veut télécharger, il faut au préalable connaître le nom du fichier que l'on souhaite recevoir. Il existe de nombreux logiciels utilisables sous GNU/Linux en tant que logiciel libre : tftp-hpa, atftp et netkit-tftp. Le premier est réputé pour avoir une sécurité accrue par rapport aux deux autres. J'ai donc utilisé celui ci. I.2.1.3 PXELinux : PXELinux est un tout petit programme qui est exécuté pour choisir le système d'exploitation à démarrer. Il fournit une liste des systèmes disponibles. Une fois le choix effectué, il indique au client l'image qu'il faut récupérer sur le serveur grâce à TFTP puis le lancement s'opére. PXELinux est un dérivé de SYSLinux qui permet de lancer un CD-Rom au démarrage de l'ordinateur. PXELinux permet de faire la même fonction, mais sur un support différent, qui est ici le réseau. Il n'existe apparement pas d'alternative à cette solution. I.2.1.4 Les systèmes de fichiers en réseau : NFS : Network File System : sous Linux, il existe une solution qui permet de faire croire à un utilisateur que des données sont accessibles comme si elles étaient présentes sur l'ordinateur, alors que ces fichiers sont sur un autre ordinateur du réseau. Pour mettre en place NFS, il est nécessaire d'avoir un serveur configuré et une prise en charge par le client. NFS peut ici nous permettre de rapatrier les images des disques sauvergardés, mais aussi des fichiers nécessaires à l'exécution d'un système d'exploitaion. NFS s'appuie, tout comme TFTP, sur le protocole de transport UDP, ce qui ne facilite pas le transfert de données sensible (nous ne voulons aucunes pertes et un mimum de sécurité). De plus NFS n'a pas été conçu pour traverser des fonctions de routage et n'est donc pas adapté à notre problème. SHFS : pour palier aux problèmes de NFS, il existe un nouveau système de fichiers en réseau qui se nomme SHFS pour '(Secure) SHell File System'. Il s'appuie sur le protocole SSH (Secure SHell) qui est utilisé pour prendre la main sur un ordinateur en réseau de façon sécurisée avec cryptage SSL (Secure Socket Layer). De plus SSH s'appuie sur TCP, qui contrôle le bon acheminement des données. Ainsi SHFS est doté d'une excellente sécurité, fiabilité, et il est routable. SHFS est encore très récent et c'est sûrement l'un des facteurs qui fait qu'il soit encore assez peu connu et peu utilisé. Mais il est suffisament stable pour nos besoins. Elaboration d'un outil de sauvegarde/restauration de systèmes Linux Page 10/38

Le détail des protocoles que l'on va utiliser est récapitulé sur ce schéma : Figure 2 : Détail des protocoles à mettre en place Nous avons alors suffisament d'informations pour pouvoir démarrer par le réseau un système d'exploitation. Il nous faut encore découvrir quel système d'exploitation démarrer. Elaboration d'un outil de sauvegarde/restauration de systèmes Linux Page 11/38

I.2.2 Un système à démarrer : Le but étant de sauvegarder et de restaurer des stations Linux avant tout, il est logique de devoir démarrer un système Linux. Pour effectuer des tests, il peut être pratique de disposer de distributions très légères. Une distribution légère possède peu de fonctionnalités, mais est d'une taille minime. Ce sont leur point fort, elles sont appliquées à un domaine bien précis et c'est que nous voulons ici : une distribution pour le client qui ne puisse faire qu'une sauvegarde ou qu'une restauration, les autres fonctions nous sont inutiles dans le cadre des tests. Il existe plusieurs distributions légères qui démarrent sur disquette : Tomsrtbt est assez ancienne, et ne tient que sur une seule disquette, Trinux est plus récente mais utilise plusieurs disquettes. Celles-ci sont les principales retenues bien qu'il en existe une multitude qui ne nous serait pas utile. Pour la suite, il faut utiliser une distribution plus gourmande en taille afin d'avoir de nombreux outils suplémentaires, et un support de matériel accru. Les programmes d'installation de Linux sur un ordinateur répondent aux critères de spécialisation et du support de nombreux matériels. Il existe une distribution dont l'installation se fait à l'aide d'un interpréteur de commande : Gentoo 2004.0. L'installateur est un CD-Rom lançable au démarrage de l'ordinateur. Une fois le système chargé, un interpréteur de commandes est à disposition de l'utilisateur. Il est donc plus ressemblant à un Linux standart plutot qu'à un CD-Rom d'installation de Linux. C'est un énorme avantage : nous pouvons le modifier comme si cette distribution Linux était installée sur un disque dur. À ce stade du travail nous pouvons, obtenir les informations réseaux pour permettre de charger un système d'exploitation simple qui plus tard sera modifié afin de l'adapter à nos besoins. Nous verrons dans l'étude de la création comment modifier le CD de Gentoo pour qu'il réponde à nos besoins. Elaboration d'un outil de sauvegarde/restauration de systèmes Linux Page 12/38

I.2.3 Sauvegarde & Restauration : À ce stade, tous les outils permettant d'arriver à la sauvegarde et à la restauration sont définis. Il faut maintenant réfléchir à une solution pour sauvegarder des partitions ou des disques durs. Pour cela il faut pouvoir détecter tous les disques durs qui sont physiquement sur le poste à sauvegarder. Il faut que cela fonctionne pour différents types de technologies comme IDE, SCSI ou RAID. Ensuite, sur chaque disque dur, dans la plupart des cas, il existe plusieurs partitions qui ne sont pas toutes du même type (système de fichier) selon le système d'exploitation : FAT, ext2/3, reiserfs, UFS, etc... Il en existe un grand nombre qu'il faut pouvoir différencier pour les exploiter par la suite. C'est une opération réalisable grâce au fichier journal que créé Linux lors du démarrage. Ce fichier est volumineux : il recense toutes les informations sur le matériel que possède le client. Ce fichier va nous permettre de récupérer les informations utiles. Mais ce n'est pas la seule chose à connaître : il faut également déterminer la taille de chacune des partitions. Optionnellement, il peut être utile d'identifier la marque des disques durs afin d'orienter l'utilisateur plus facilement. L'ensemble de ces informations est utile et nécessaire aux opérations de sauvegarde et de restauration. En outre, il faut être en mesure d'accéder aux données présentes sur ces partitions pour pouvoir les stocker. Plusieurs solutions sont possibles : On peut simplement faire une copie systématique de tous les fichiers, mais se pose le problème des droits et d'appartenance : il faut savoir que les systèmes Unix définissent des droits sur chacun des fichiers. Ainsi un fichier peut appartenir à un seul utilisateur, ou à un groupe d'utilisateurs, et que ce fichier possède des caractéristiques de droits en lecture, écriture et exécution. L'ensemble de ces propriétés doit être impérativement conservé pendant et après les opérations de sauvegarde et de restauration. Sur Unix, tout est fichier. C'est à dire qu'un matériel (disque dur ici) est un fichier, un fichier un peu particulier, on dit que c'est un fichier en mode 'block'. Grâce à cela, le système d'exploitation sait qu'il s'agit d'un matériel. Il existe plusieurs types de fichiers comme les liens (raccourci), les types 'caractères' (équivalent au mode 'block'), les types 'fifo' (des piles d'entrée/sortie). Il est donc très difficile de copier des fichiers qui correspondent directement à un matériel et qui possèdent des droits bien spécifiques. Il est également possible de faire une image 'bit à bit' de la partition ou du disque dur que l'on souhaite sauvegarder. Cette solution efficace et radicalle présente le fâcheux inconvénient de générer des fichiers très volumineux, mais permet de s'affranchir de la gestion des droits des fichiers (caractéristiques des fichiers conservées par essence). Cette opération de sauvegarde s'effectue avec une entrée et une sortie : par exemple en entrée on peut placer le fichier de type 'block' qui correspond à un disque dur et en sortie un fichier (qui sera la sauvegarde). L'opération peut aussi se faire en sens inverse, et dans ce Elaboration d'un outil de sauvegarde/restauration de systèmes Linux Page 13/38

cas c'est une restauration que l'on effectue. L'utilitaire qui permet de le faire est la commande 'dd'. Nous pouvons aussi créer une image ISO9660 (norme ISO pour la création de CD-Rom). Nous devons y placer les fichiers et y appliquer les droits utilisateur. Cette méthode est possible mais ne respecte pas tous les termes de la norme. L'outil pour le faire sous Linux est 'mkisofs'. Cette opération est très longue et n'est pas une bonne solution car la récupération des données et la gestion des droits est très difficile, d'autant plus lorsque cela se fait en réseau. Il est aussi possible de comprésser tous les fichiers d'une partition. Cela permet de sauvegarder les droits sur chacun des fichiers. Il est très long de le faire et la taille des fichiers de sortie est limitée à 2 Go, ce qui n'est pas suffisant. La seconde solution qui effectue de la sauvegarde 'bit à bit' semble être la meilleure : bien qu'elle soit génératrice de gros fichiers, elle présente le double avantage de permettre le backup et la restauration de disques durs globaux sans en altérer le contenu. Les caractéristiques d'appartenance, de droits des fichiers et de système de fichier sont laissées intactes. C'est donc cette solution qui a été retenue. Je me suis également demandé quel langage utiliser pour réaliser ceci. Le langage C est un bon language qui dispose de suffisament de bibliothéques pour accéder au matériel physique. D'après mes recherches, leurs implementations sont assez difficiles et nécessitent un très bon niveau de programmation. Mes recherches m'ont également fait aboutir sur des pages de tutoriels sur le language BASH. Celui-ci est le language que l'on utilise pour exécuter des commandes sur les stations Linux & Unix. Il permet de faire des scripts qui vont être interprétés par la machine et exécutés les uns à la suite des autres. Il dispose de suffisament de fonctionnalités comme les tests, les boucles pour répondre aux besoins. Mes connaissances personnels en BASH étaient alors très limitées. La documentation sur internet à ce sujet est vaste, j'ai ainsi pu approfondir mes connaissances. J'ai ainsi pu découvrir comment démarrer un système d'exploitation en réseau, comment lier deux ordinateurs sur un réseau grâce à SHFS, comment sauvegarder une partition et comment la restaurer. Il reste donc à mettre en œuvre les différents outils décrits précédemment afin de réaliser la solution de sauvegarde/restauration. Elaboration d'un outil de sauvegarde/restauration de systèmes Linux Page 14/38

II Mise en œuvre : Deux ordinateurs ont été utilisés pour prototyper la solution adéquate aux besoins de l'équipe. Le premier, doté d'une distribution RedHat 9.0 a joué le rôle de client à sauvegarder. Le deuxième, sur lequel une distribution Debian 3.0r1 a été installée, à fait office de serveur de backup Découpons la problématique en différentes parties : Il faut d'abord démarrer le client via le réseau, Créer les scripts de sauvegarde et de restauration, Intégrer les outils mis en place et les scripts pour obtenir le résultat souhaité, Tester et valider la solution II.1 Démarrer par le réseau : II.1.1 DHCP : Nous avons vu précédemment que la base du démarrage par réseau est le service DHCP. Voici la démarche détaillée. Les deux ordinateurs sont sur un même réseau. C'est le réseau 192.168.0.0/24. L'adresse IP du serveur est 192.168.0.171, celle du client fixée à 192.168.0.170. En voici un schéma : Figure 3 : Réseau du prototype de sauvegarde/restauration Il faut donc configurer le serveur DHCP pour que le client obtienne une Elaboration d'un outil de sauvegarde/restauration de systèmes Linux Page 15/38

adresse IP, l'adresse du serveur de nom (DNS), de la passerelle pour un accès à Internet. L'adresse du client est fournie avec la correspondance de l'adresse physique (MAC). Ce sont des fonctionnalités du serveur DHCP. Cela se fait grâce à ces lignes dans le fichier de configuration /etc/dhcpd.conf : subnet 192.168.0.0 netmask 255.255.255.0 { range dynamic-bootp 192.168.0.165 192.168.0.175 ; option broadcast-address 192.168.0.255 ; option routers 192.168.0.1 ; option subnet-mask 255.255.255.0 ; option domain-name-servers 192.168.0.1 ; default-lease-time 600 ; max-lease-time 7200 ; host vmware { hardware ethernet 00:04:75:7D:8D:80 ; fixed-address 192.168.0.170 ; } } L'adresse MAC de la machine client a été obtenue en exécutant la commande Linux 'ifconfig'. Dès à présent, lorsque le client fera une requête de configuration réseau, le serveur lui fournira des informations correctes qu'il ne pourra pas modifier. C'est alors que j'ai pu entreprendre le test suivant : Modifier les paramètres du BIOS pour que le démarrage se fasse sur le réseau en sélectionnant l'option LAN. Le démarrage s'effectue et un écran nous indique que la carte réseau recherche un serveur DHCP. Une fois que le client a trouvé un serveur DHCP, il indique les informations qui lui ont été retournées : DHCP MAC ADDR: 00 04 75 7D 8D 80 CLIENT IP: 192.168.0.170 MASK: 255.255.255.0 DHCP IP: 192.168.0.171 GATEWAY IP: 192.168.0.1 Elaboration d'un outil de sauvegarde/restauration de systèmes Linux Page 16/38

II.1.2 TFTP : La suite logique des évenements est donc de mettre en place un serveur TFTP. Sur le serveur, une fois l'installation terminée, il faut modifier le fichier de configuration '/etc/inetd.conf'. Ce fichier définit une liste des services réseau et la manière dont il faut les lancer. Un serveur TFTP utilise UDP comme mode de transmission des données, c'est à dire des datagrammes. Il faut que le serveur attende un client et qu'il s'exécute en tant que super-administrateur (root). On lui précise également où sont situés les fichiers que l'on va mettre à la disposition des clients. Il est également préférable que les clients n'aient accès uniquement qu'à ces fichiers (l'option -s). Voici ce qui en résulte dans le fichier /etc/inetd.conf : #:BOOT: Tftp service is provided primarily for booting. Most sites # run this only on machines acting as "boot servers." tftp dgram udp wait root /usr/sbin/in.tftpd /usr/sbin/in.tftpd -s /boot/diskless Grâce à cette configuration, il est possible de tester avec un client tftp si les fichiers sont bien accessibles. Mais nous n'avons jusqu'ici aucun fichier à mettre à disposition. C'est le rôle de PXELinux. II.1.3 PXELinux : PXELinux est un paquetage qui contient une image et un fichier de configuration à placer sur le serveur TFTP. L'image est générique et peut lire le fichier de configuration. Il faut alors que cette image soit disponible lors d'une connexion TFTP. Le fichier de configuration définit une liste de systèmes d'exploitation exécutables. Nous devons lui indiquer où sont placés le noyau et le ramdisk. Le noyau est l'élément central d'un système d'exploitation. Il joue le rôle de l'interprète entre le matériel et les logiciels. Lorsque, par exemple, un logiciel veut afficher du texte à l'écran, il doit faire appel au noyau. Le ramdisk est un système d'exploitation minimal qui s'exécute en mémoire. Il est d'abord exécuté avant de charger le système présent en temps normal sur un disque dur. Pour cela il faut modifier la configuration du serveur DHCP. Le serveur doit envoyer des informations au sujet de l'image de PXELinux, notament pour savoir où elle est localisée. Pour cela il faut également préciser au serveur DHCP que le client est autorisé à télécharger cette image. Il faut donc rajouter les lignes suivantes dans la configuration du serveur DHCP (/etc/dhcpd.conf): Elaboration d'un outil de sauvegarde/restauration de systèmes Linux Page 17/38

allow bootp ; allow booting ; filename "/pxelinux.0" ; Ne trouvant pas de documentation très claire au sujet de la ligne 'filename' j'ai dû effectuer une série de test. Le fichier pxelinux.0 est dans le répertoire '/boot/diskless'. Je ne savais donc pas si cela avait un rapport avec l'option '-s' de TFTP. J'ai donc testé différentes options comme '/boot/diskless/pxelinux.0', 'pxelinux.0' et '/pxelinux.0'. La dernière est la bonne solution, les autres n'étant pas trouvées par le serveur. Nous savons donc maintenant, que par la suite, tous les chemins vers les fichiers accessible via TFTP ne devront pas commencer par '/boot/diskless'. Les tests sont tous concluants, y compris avec PXELinux. Pour l'heure la configuration de PXELinux est encore vide. Aucun système d'exploitation ne peut encore donc être chargé. Elaboration d'un outil de sauvegarde/restauration de systèmes Linux Page 18/38

II.1.4 La distribution support de l'outil de sauvegarde/restauration : La recherche de distribution m'a donnée deux résultats : Tomsrtbt et Gentoo LiveCD 2004.0. Nous allons étudier chacune d'elles dans des cas basiques en essayant de les démarrer normalement puis en les démarrant via le réseau. II.1.4.1 Utilisation standard : J'ai testé chacune de ces distributions dans leurs utilisations primaires, voici les résultats. Tomsrtbt : Dans un premier temps, pour visualiser le fonctionnement de tomsrtbt j'ai suivi la procédure d'installation sur disquette. J'ai ensuite fait redémarrer l'ordinateur sur la disquette. Le système se charge correctement, détecte la carte réseau et récupère les informations réseau auprès du serveur DHCP. Il est ensuite possible d'exécuter quelques commandes. Le nombre de commandes disponibles est assez limité étant donné que le système d'exploitation n'utilise qu'une disquette. Dès lors il m'était possible d'utiliser les disques durs et de manipuler des fichiers. Cette mini-distribution me paraissait alors comme une bonne solution pour la suite. Quelques logiciels me manquaient comme étant par exemple ftp pour transférer des fichiers. J'ai donc voulu y rajouter ce logiciel. Je l'ai fait, mais à ma grande surprise, le fichier ne pouvait pas être exécuté car les librairies utilisées par tomsrtbt étaient trop anciennes par rapport à celles utilisées lors de la compilation du client ftp. Pour résoudre le problème il m'a fallu faire de grosses recherches sur Internet. J'ai également contacté le développeur de la distribution par e-mail, celuici m'a répondu expliquant pourquoi cela n'était pas possible. Cela m'a permis d'apprendre énormement à propos du fonctionnement d'un programme dans une distribution. Comme par exemple, que beaucoup de programmes nécessitent l'utilisation de librairies, qui sont en fait très proches du noyau et aident le programme à s'exécuter correctement. J'ai également pu découvrir qu'il était simple de connaître quelles versions de librairies utilisait un programme. La commande 'ldd' appliquée à un fichier exécutable fournit la liste des librairies qu'il doit utiliser. Je l'ai essayé et j'ai pu voir que tous les programmes de tomsrtbt utilisent 'libc5' alors que ceux des distributions récentes sont en 'libc6' ou 'glibc2'. C'est ainsi que j'ai abandonné tomsrtbt. J'ai pu découvrir qu'il était possible de recompiler (transformation de code source en langage binaire) pour utiliser 'libc5' au lieu de 'libc6'. Étant donné que c'est une tâche délicate qui sort du cadre de mon stage, je n'ai pas recompilé les programmes nécessaires, et abandonné cette piste. Elaboration d'un outil de sauvegarde/restauration de systèmes Linux Page 19/38

Gentoo 2004.0 : Le livecd Gentoo 2004.0 est un CD-Rom amorçable au démarrage de l'ordinateur, il fonctionne comme tomsrtbt mais contient beaucoup de logiciels récents, donc possède les librairies récentes comme 'libc6' et 'glibc2' nécessaires. Comme pour tomsrtbt, j'ai testé le livecd Gentoo 2004.0. Le démarrage est assez rapide, il y a une détection de tout le matériel. Une fois le chargement terminé, nous disposons d'un prompt (interpréteur de commande) grâce auquel nous pouvons exécuter une multitude de commandes. Nous pouvons également visualiser les disques présents dans l'ordinateur grâce au logiciel 'cfdisk'. cfdisk nous montre les partitions existantes sur un disque dur, leur capacité et le type de systèmes de fichiers. Grâce à ce CD, nous pouvons également surfer sur internet par l'intermédiaire d'un navigateur en mode texte (c'est à dire un navigateur non graphique utilisant des caractères pour représenter les fenêtres). Cela est possible car la carte réseau est détectée au démarrage et les informations réseaux sont demandées via le protocole DHCP. II.1.4.2 Utilisation par le réseau : Il m'est ensuite venu l'idée de tester le démarrage de ces deux distributions en utilisant le réseau. J'ai d'abord commencé par essayer de démarrer tomsrtbt. Tomsrtbt : Tout d'abord il faut faire le fichier de configuration de PXELinux. Lors de mes recherches j'ai pu trouver des exemples de configurations que j'ai adaptés à mes besoins. La première necessité est de donner un nom grâce à la syntaxe LABEL. Ensuite, il faut préciser le chemin du noyau à charger au moyen de TFTP, cette ligne doit alors commencer par KERNEL. Puis, il faut placer les options de démarrage gràce à APPEND pour fournir les informations sur le 'ramdisk', sur l'endroit physique où doit être chargé le système d'exploitation, le moyen par lequel l'adresse IP doit être fixée. Il est possible de définir des options comme TIMEOUT qui permet de donner le temps maximum en secondes avant lequel le DEFAULT sera chargé (DEFAULT est l'entrée par défaut à charger). Il est aussi possible de préciser s'il faut afficher un prompt ou pas grâce à PROMPT. Pour faire un l'affichage d'un texte nous devrons utiliser DISPLAY. Voici le résultat obtenu pour tomsrtbt : DEFAULT tomsrtbt TIMEOUT 150 Elaboration d'un outil de sauvegarde/restauration de systèmes Linux Page 20/38