SvBackup01

Mr. Bruno Vernay

Revision History
Revision 13/11/2003
Installation système, Pb carte Raid.
Revision 224/11/2003
Installation BackupPC
Revision 308/12/2003
1er sauvegardes réussies
Revision 420/12/2003
RedHat -> Mandrake : Pb carte Raid
Revision 505/01/2004
Mandrake -> Suse

Table of Contents

1. Introduction
2. Matériel
Carte RAID
3. Installation Red Hat 9
Carte RAID Promise SX6000 ...
Updates
4. Installation Mandrake 9.2 (incomplete)
Carte RAID Promise SX6000 ...
5. Installation Suse 9.0
Ressources
Carte RAID Promise SX6000 ...
Kernel
Partitionnement et LVM
Updates
6. Configuration du serveur
Cron
FTP
HTTP
7. BackupPC
8. Mirroir Suse
Création d'un mirroir local

List of Tables

5.1. df -h

Chapter 1. Introduction

Ce document décri l'installation d'une machine dont le disque dur n'est pas reconnu en standart avec Suse. Je suis passé par 3 installations (RH, Mandrake, Suse) pour des raisons politiques sans importances (si j'avais eu du temps j'aurais fait une Gentoo dans la foulée ...) Je décri aussi le mirroring du site de Suse.

Le PDF n'est pas disponible car les tableaux ne passent pas !

Chapter 2. Matériel

Table of Contents

Carte RAID

Il s'agit d'un PC en rack 1u :

  • Marque : SuperMicro

  • Modèle : P4SGR/P4SGE Bios 1.1a

  • Processeur : Celeron 2GHz

  • Mémoire : 256Mo de type DDR266

  • Bios : Phoenix v6.00PG

  • Carte réseau : Intel Pro 1000 (utile car non reconnue lors de l'installation de Suse.)

Note : Pas d'alimentation redondante.

Carte RAID

Plusieurs mailing lists rapportent des problèmes d'installation et de performance, la marque 3ware est souvent recommandée.

http://www.linuxquestions.org/questions/archive/18/2003/08/4/21514

http://www.spinics.net/lists/rh-inst/msg27212.html

Chapter 3. Installation Red Hat 9

Suite aux récentes prises de positions litigieuses de Red Hat, le problème se pose du choix du système : RHE, Suse ou Mandrake ? (Je penche pour Mandrake.)

Carte RAID Promise SX6000 ...

Pour la carte RAID Promise SX6000 : elle n'est pas reconnu par RH9. Il faut créer une disquette avec le driver du site de Promise : http://www.promise.com/support/download/download2_eng.asp?productId=86&category=All&os=100.

Sous MS-windows, cela nécessite le programme rawrite qui peut être trouvé ici : http://www.tux.org/pub/dos/rawrite/. (Sous Linux dd suffit.)

Quand on boot avec le CD de RH9, il faut taper linux dd à l'invite du boot et inserer la disquette contenant le driver (il est sur \\SvBackup\Drivers\Promise SX6000\.) Suivre les instructions pour charger le driver. Ce driver ce retrouvera ensuite dans la liste des devices drivers qu'on pourra ajouter. En effet : Red Hat ne détecte pas de disques. Quand il le propose, il faut donc ajouter puis choisir le device suivant : Promise SuperTrack Driver v1.34 build 1.

Updates

Je me suis créé un compte personnel sur RHN pour pouvoir faire les mises-à-jour. Il faut être patient, mais ça marche. (Conseil : mettre à jour les packages par groupe de 3 ou 4 maximum.)

Attention : la première mise à jour concerne l'appli de mise à jour elle même, à recuperer sur le site de RH ... Suivre les instructions du site de RH (enregistrer les RPM sur le disque et les installer.)

Chapter 4. Installation Mandrake 9.2 (incomplete)

Carte RAID Promise SX6000 ...

Le site de Promise ne fourni pas d'image disque directement utilisable pour l'installation de Mandrake. Il faut donc créer cette disquette à la main. Sur le principe, il faut compiler le driver à partir de ses sources : http://www.promise.com/support/download/download2_eng.asp?productId=86&category=All&os=100 sur une machine en Mdk9.2 (car la compilation nécessite la présence des sources du même kernel qui sera utilisé lors de l'instalation, à savoir 2.4.22) puis le mettre sur une disquette. Enfin, booter sur le CD d'install avec l'option linux updatemodules ou expert.

Création de la disquette :

  1. Récupération des sources du kernel : urpmi kernel-source.

  2. Récupération des sources du pilote dans /usr/src/st6000src_1.34 :

    curl http://www.promise.com/support/file/driver/1_st6000src_1.34.zip > st6000src_1.34.zip
    cd /usr/src
    unzip st6000src_1.34.zip
  3. Compilation du pilote : Il faut suivre les instructions du fichier README.txt. Notamment, il faut commencer dans le kernel par make xconfig puis make dep avant de compiler le pilote, même si on ne veut pas utiliser ce kernel ! Ensuite dans les sources du pilote et faire make KERNEL_SOURCE_DIR=/usr/src/linux. Cela doit créer un fichier pti_st.o.

  4. Création de la disquette

    Le systeme de fichier sur la diquette doit être ext2 (et non fat ou vfat par défaut.) Il faut donc prendre quelques précautions :

    mkfs.ext2 /dev/fd0                  # crée le système de fichier
    mount -t etx2 /dev/fd0 /mnt/floppy  # monte la disquette en présisant le type (plus prudent)

    Copier le fichier pti_st.o sur la disquette.

    Dans le cas d'une installation avec l'option "expert", seule la présence du fichier pti_so.o est requise. Ensuite lorsqu'il le demande il faut choisir scsi_mod.o pour acceder au disque.

    Pour créer une disquette "updatemodules" (voir : http://cvs.mandrakesoft.com/cgi-bin/cvsweb.cgi/~checkout~/gi/mdk-stage1/doc/UPDATEMODULES?rev=1.4) il faut ajouter un fichier to_load contenant le simple mot : pti_st (des lignes vides provoquent des erreurs, mais ne gènent pas l'install.)

  5. Ne pas oublier de démonter la disquette avant de la retirer : umount /mnt/floppy !

Chapter 5. Installation Suse 9.0

Pour se conformer aux normes du groupe, on utilise une distribution Suse.

Il n'existe pas de CD d'installations à télécharger (comme pour Mandrake, Red Hat, Gentoo ...) On télécharge juste un petit CD de boot et on lui indique un FTP (ou TFTP, NFS ... ) où trouver le reste de l'installation. En l'occurence, on utilise un mirroir local bien plus rapide que le FTP de Suse !

Carte RAID Promise SX6000 ...

La machine ne voit pas de disque dur, seule la carte RAID-IDE qui n'est pas reconnue en standart ! D'où la difficulté : le BIOS de la carte RAID est juste capable de booter le MBR, pour le reste, il faut se débrouiller.

Le site de Promise ne fourni pas d'image disque directement utilisable pour l'installation de Suse 9.0 (Il existe pour d'anciennes versions.) Il faut donc créer cette disquette à la main. Sur le principe, il faut compiler le driver à partir de ses sources : http://www.promise.com/support/download/download2_eng.asp?productId=86&category=All&os=100 sur une machine en Suse 9.0 (car la compilation nécessite la présence des sources du même kernel qui sera utilisé lors de l'instalation, à savoir 2.4.21) puis le mettre sur une disquette. Enfin, booter avec le CD d'installation en appuyant lorsqu'il le propose sur F3 : "Driver update".

Création de la disquette : Identique à la création pour Mandrake. Il faut voir aussi le modèle des disquettes d'installation Suse. L'important est d'avoir le module sur la disquette.

A la fin de l'install, il faut stopper le reboot automatique et ouvrir une console ou redemarrer sur le CD de boot en mode rescue pour avoir une console.

L'opération consiste alors à mettre les drivers nécessaires dans le fichiers initrd.img et à relancer LILO (ou GRUB) (inutile si la taille du fichier n'a pas trop changé.) Le fichier /boot/initrd.img contient un système de fichier compressé. On peut donc le décompresser et le monter sur un répertoire, ajouter des fichiers puis le démonter et le recompresser.

  1. Aller dans /boot

  2. Créer un répertoire initrd.dir

  3. recopier le ficher /boot/inird-x.xx.xx-xx.xx.img dans /boot/inirdrd-x.xx.xx-xx.img.gz (noter le .gz en plus.)

  4. décompresser l'image : gunzip inirdrd-x.xx.xx-xx.img.gz

  5. monter l'image : mount inirdrd-x.xx.xx-xx.img initrd.dir -o loop

  6. Aller voir dans /boot/initrd.dir/ recopier les modules et changer le script linuxrc pour charger les nouveaux modules.

  7. Démonter le système de fichier : umount initrd.dir et recompresser l'image : gzip -9 -n inirdrd-x.xx.xx-xx.img. recopier l'image compressée dans /boot à la place de l'ancienne.

  8. Dans le doute, si fichier image a trop changé, il faut relancer LILO. Pour cela il faut écrire le fichier /etc/lilo.conf sur le modèle d'une autre Suse. En effet, en bootant en mode rescue, on n'a pas de lilo.conf.

Kernel

Attention : pour mettre à jour le kernel, il faut récuperer les sources, configurer, compiler et ajouter le pilote de Promise recompilé pour le nouveau kernel.

Voici ce qui a été fait étape par étape :

  1. Récuperer les sources du kernel dans /usr/src/linux-xx.xx ... et les sources du pilote Promise dans /usr/src/st_6000src_x.xx

  2. Eventuellement, nettoyer l'environnement : make clean ; make mrproper dans src/linux (cela détruit la dernière configuration) et rm *.o dans src/st_6000src. Effacer les traces de précédents essais : quelques fichiers dans /boot/ et un répertoire dans /lib/modules/, plus des entrées dans le menu /boot/grub/menu.lst.

  3. Tout ce qui sui ce passe dans /usr/src/linux... : Changer le numéro de version du kernel vi Makefile changer EXTRAVERSION en tout début de fichier : il suffit de remplacer "custom" par la date, ou un numéro qu'on incrémente à chaque essai.

  4. Pour ne pas partir de zéro, il est possible de récuperer la dernière bonne configuration : les fichiers sont /boot/config-x.xx.xx qu'il suffit de copier dans .config.

  5. Lancer la configuration : make xconfig. C'est la partie la plus délicate => Faire un chapitre à part ! Citons déjà les point les plus importants : autoriser le RAMDISK pour initrd ! En effet : le pilote Promise est livré sous forme de module à compiler : il doit donc se trouver dans le ramdisk créé au démarrage pour pouvoir être chargé dans le kernel et donner accès au disque dur !

  6. Lancer make dep ; make clean. Puis make bzImage, puis make modules et make modules_install. Vérifier que les deux dernières commandes se finissent bien : ce sont les parties les plus susceptible de génerer des erreurs. Dans ce cas revenir au point 2 et essayer de modifier la config.

  7. Aller dans les sources du pilote Promise et lancer make KERNEL_SOURCE_DIR=/usr/src/linux-x.xx.xx pour le compiler.

  8. Copier le fichier pti_st.o compilé dans /lib/module/x.xx.xx-xx.x/kernel/drivers/scsi/. (Ce répertoire est créé par make modules_install.)

  9. Retourner dans les sources linux pour lancer make install ! Si la commande se fini bien, il est possible de rebooter pour tester.

  10. Il est possible de vérifier si le pilote est bien dans l'image disque qui est chargé en ram au démarrage.

    1. Aller dans /tmp

    2. Créer un répertoire initrd.dir

    3. recopier le ficher /boot/inird-x.xx.xx-xx.xx.img dans /tmp/inirdrd-x.xx.xx-xx.img.gz (noter le .gz en plus.)

    4. décompresser l'image : gunzip inirdrd-x.xx.xx-xx.img.gz

    5. monter l'image : mount inirdrd-x.xx.xx-xx.img initrd.dir -o loop

    6. Aller voir dans /tmp/initrd.dir/lib si il se trouve un fichier pti_st.o ... si il n'y est pas, il est inutile d'essayer de booter avec ce kernel.

Note : le fichier /etc/modules.conf doit contenir une ligne alias scsi_hostadapter pti_st. Il n'y a pas à la modifier. Ce fichier contient, à priori les modules a charger au démarrage.

Partitionnement et LVM

Afin de beneficier de l'isolation des systèmes de fichier sans être frustré par la suite de ne plus pouvoir les redimensionner : j'ai utilisé le système Logical Volume Manager. Il est proposé en standart et certains l'utilisent avec BackupPC (notamment pour les SnapShot.)

Voici donc la configuration initiale :

Table 5.1. df -h

SysFichierTailleUtiliséDispo.Util%Monté sur
/dev/sda1194M12M173M7%/boot
/dev/Volume00/LogVol00993M114M829M13%/
/dev/Volume00/LogVol022.9G1.4G1.5G48%/usr
/dev/Volume00/LogVol03993M21M922M3%/home
/dev/Volume00/LogVol04993M20M923M3%/tmp
/dev/Volume00/LogVol052.9G113M2.7G5%/var
/dev/Volume00/LogVol0697G33M92G1%/var/backuppc

Updates

Il est possible de faire des mises à jours en ligne. Dans KDE, une icône dans le systray prévient de la présence de mise à jour de sécurité. Il faut le configurer pour utiliser le mirroir local.

Pour les mises à jour du kernel : attention à conserver le pilote de la carte raid-ide Promise.

Chapter 6. Configuration du serveur

Table of Contents

Cron
FTP
HTTP

Le nom complet de la machine est svbackup01.padrol.fr. Specifier le domaine permet d'éviter certains messages d'avertissement (notamment pour l'envoi des mails.)

Cron

Un job cron met à jour toute les nuits le mirroir de Suse, pour pouvoir faire les installations et mise-à-jour. Le script est dans /root/cronjobs/mirror-suse.sh et rapporte son activité dans mirror-suse.log.

FTP

Un pure-FTP tourne pour servir de mirroir de Suse. (Rappel : la racine du ftp est dans /srv/ftp.)

HTTP

Un serveur Apache2 spécifique à BackupPC est en service. Pour ajouter des services HTTP, il faudrait lancer une autre instance d'Apache2 et probablement sur d'autres ports que 80.

Chapter 7. BackupPC

Voir la documentation concernant l'application BackupPC.

Chapter 8. Mirroir Suse

Création d'un mirroir local

Le site de Suse est souvent débordé. On fait donc un mirroir sur une machine locale avec rsync. On n'a pas pu faire de rsync directement sur le site de Suse. On utilise un miroir de cette liste : http://www.suse.de/en/private/download/ftp/index.html. Un cron lance toute les nuits les commandes suivantes :

#!/bin/sh
#
# Synchronisation des FTP Suse pour installer et surtout mettre à jour plus rapidement cette distrib.
#

#mirroir=mirrors.mathematik.uni-bielefeld.de::pub/linux/suse/ftp.suse.com/pub/suse
mirroir=fr2.rpmfind.net::linux/SuSE-Linux

rsync -vrzl --delete ${mirroir}/i386/update/9.0/ /srv/ftp/suse/i386/update/9.0

#
# Sans doute inutile, le repertoire de base qui ne doit pas changer, à priori.
#
#rsync -vrzl --delete ${mirroir}/i386/9.0/ /srv/ftp/suse/i386/9.0

Concernant les options de rsync :

delete

Permet de supprimer les fichiers qui ne sont plus sur le serveur.

v

Liste les fichiers copiés

l

Recrée les liens symboliques.

z

Compresse

r

Récursif

Ce mirroir est partagé en FTP (on pourrait aussi utiliser TFTP, NFS, SMB ... car on reste sur des IP internes) avec pure-FTP (serveur FTP par défaut, léger et très sécurisé.)