À FAIRE 2009


Mars

Serveur CNF:

Etas actuel du serveur:

cnf:~# fdisk -l

Disk /dev/sda: 73.5 GB, 73517552640 bytes 255 heads, 63 sectors/track, 8938 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes

/dev/sda1 * 1 61 489951 83 Linux

/dev/sda2 62 183 979965 82 Linux swap / Solaris

/dev/sda3 184 8938 70324537+ 5 Extended

/dev/sda5 184 305 979933+ 83 Linux

/dev/sda6 306 427 979933+ 83 Linux

/dev/sda7 428 549 979933+ 83 Linux /dev/sda8 550 792 1951866 83 Linux

/dev/sda9 793 1035 1951866 83 Linux

/dev/sda10 1036 1521 3903763+ 83 Linux

/dev/sda11 1522 1764 1951866 83 Linux

/dev/sda12 1765 4682 23438803+ 83 Linux

/dev/sda13 4683 6019 10739421 83 Linux

/dev/sda14 6020 8938 23446836 83 Linux


Disk /dev/sdb: 500.1 GB, 500107862016 bytes 255 heads, 63 sectors/track, 60801 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes


Disk /dev/hda: 203.9 GB, 203928109056 bytes 255 heads, 63 sectors/track, 24792 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes

/dev/hda1 * 1 61 489951 83 Linux

/dev/hda2 62 183 979965 82 Linux swap / Solaris

/dev/hda3 184 8938 70324537+ 5 Extended

/dev/hda5 184 305 979933+ 83 Linux

/dev/hda6 306 427 979933+ 83 Linux

/dev/hda7 428 549 979933+ 83 Linux

/dev/hda8 550 792 1951866 83 Linux

/dev/hda9 793 1035 1951866 83 Linux

/dev/hda10 1036 1521 3903763+ 83 Linux

/dev/hda11 1522 1764 1951866 83 Linux

/dev/hda12 1765 4682 23438803+ 83 Linux

/dev/hda13 4683 6019 10739421 83 Linux

/dev/hda14 6020 8938 23446836 83 Linux Disk


/dev/hdc: 41.1 GB, 41110142976 bytes 255 heads, 63 sectors/track, 4998 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes

/dev/hdc1 * 1 7 56196 83 Linux

/dev/hdc2 8 2547 20402550 f W95 Ext'd (LBA)

/dev/hdc5 8 132 1004031 83 Linux

/dev/hdc6 133 257 1004031 83 Linux

/dev/hdc7 258 890 5084541 83 Linux

/dev/hdc8 891 922 257008+ 82 Linux swap / Solaris

/dev/hdc9 923 1111 1518111 83 Linux

/dev/hdc10 1112 1300 1518111 83 Linux

/dev/hdc11 1301 2547 10016496 83 Linux



L'organisation du serveur:

1) Partitioner le Disk SATA de 500 Go (Disk /dev/sdb)

* Les commandes à éfectuer:

Note Importante:

Le /boot doit être a l'exterieur de LVM

Donc on utilise la commande cfdisk pour faire les deux premier partitions (sdb1 et sdb2.. ensuite convertir sdb2 en LVM ).

#cfdisk /dev/sdb

Ensuite choisir:

New/primary/1000 Mo /bigining/bootable

New/primary/499000 Mo /bigining/

Choisir Write.

Exemple:

Après partitionnement on aura:

sdb1 Boot Primary Linux 1003,49

sdb2 Primary Linux 499101,77

Pour convertir sdb2 en LVM

#pvcreate /dev/sdb2

Pour créer le Groupe de Volume (ici mvg)

#vgcreate mvg /dev/sdb2

Pour créer les diférentes partitions suivant la talbe de partition suivante:

PT1 ==== Boot ===> Primary ===>Linux ext3 ===> [/] ===> 1 Go

PT2 ===========>Primary ===> Linux swap ===>/ Solaris ===> 2 Go

PT3============> Logical ===>Linux ext3 ===> [/usr] ===> 2 Go

PT4 ============>Logical ===> Linux ext3 ===> [/tmp] ===> 2 Go

PT5 ============>Logical ===>Linux ext3 ===> [/var] ===> 2 Go

PT6 ============>Logical ===>Linux ext3 ===>[/var/log] ===> 5 Go

PT7 ===========>Logical ===>Linux ext3 ===> [/var/lib] ===> 2 Go

PT8 ===========>Logical ===>Linux ext3 ===>[/var/spool] ===> 5 Go

PT9 ============> Logical ===>Linux ext3 ===> [/srv/www] ===> 3 Go

PT10 ===========>Logical ===> Linux ext3 ===>[/srv/mail] ===> 30 Go

PT11============>Logical ===>Linux ext3 ===> [/srv] ===> 10 Go

PT12 ============>Logical ===> Linux ext3 ===>[/home] ===> 50 Go

* Pour le swap: lvcreate -n swap -L 2g mvg

* Pour usr : lvcreate -n usr -L 2g mvg

* Pour tmp : lvcreate -n tmp -L 2g mvg

* Pour var : lvcreate -n var -L 2g mvg

* Pour var/log: lvcreate -n varlog -L 5g mvg

* Pour var/lib: lvcreate -n varlib -L 2g mvg

* Pour var/spool/squid : lvcreate -n spool -L 5g mvg

* Pour srv/www: lvcreate -n srvwww -L 3g mvg

* Pour srv/mail: lvcreate -n srvmail -L 30g mvg

* Pour srv : lvcreate -n srv -L 10g mvg

* Pour home : lvcreate -n home -L 50g mvg

Quelques Remarques importants:

Thomas N:

Sur le principe, c'est ok, mais la copie des partitions avec un "dd" n'est
vraiment pas conseillée. Utilise plutôt rsync pour copier les fichiers (et
non pas le système de fichier octet par octet...). Ca te permet de
réorganiser tes partitions comme tu veux ; ça effectue par la même occasion
une petite "défragmentation" (quoique sur un serveur on s'en fiche). Une
copie avec dd comporte en revanche des risques si la partition n'a pas tout à
fait la même taille, etc.

Par ailleurs, je vois que tu utilises encore une "ancienne" technique qui
était de mettre des /srv/www ou /srv/mail. Aujourd'hui je pense qu'il est
plus raisonnable de rester "dans la plaque" et de conserver les valeurs par
défaut attendues par les logiciels (/var/www et /var/mail).

Enfin, pour squid, 5Go c'est vraiment trop
 Un bon giga lui suffira très
très largement... Finalement je verrais quelque chose d'un peu plus simple :
  /           1Go
  /usr        2Go
  /tmp        1Go
  /var        3Go (contient les logs)
  /var/lib    2Go (données, notamment mysql)
  /var/spool  2Go (notamment pour squid)
  /var/www    3Go
  /var/mail  30Go
  /home      50Go

Finalement : pourquoi ne pas en profiter pour passer à OpenVZ et virtualiser
un peu ? Il semble que ton serveur fasse pas mal de choses en même temps.

Nacer AS :

tu pourrais peut être, une fois ton serveur en fonctionnement normal,
faire des copies (juste des copies) des données des dossiers /srv/truc
vers l'équivalent sous
 en préservant les permissions et adapter
les configs des logiciels affectés, puis tester le bon fonctionnement.
Comme ca, si tu as un souci, tu peux toujours revenir à ta config,
mais en principe tu ne devrais pas en avoir qui ne soit insurmontable
rapidement!

Thomas N :

Tu peux très bien créer /var/www et faire un lien symbolique "/srv/www ->
/var/www" afin que, dans un premier temps, tout continue à fonctionner comme
avant. Puis, ensuite, au fur et à mesure, adapter la configuration d'apache
pour qu'il aille voir dans /var/www. Même chose pour le /var/mail.

Pour squid, tu avais fais une partition spécifique à squid. Je pense que
c'est inutile. Tu peux parfaitement faire une partition /var/spool générale,
dans laquelle tu retrouveras bien sûr /var/spool/squid.

Ceci dit, si tu ne te sens pas trop à l'aise avec ça, personne ne t'en voudra
d'avoir des choses dans /srv : ce n'est pas non plus complétement anormal.
L'essentiel c'est de savoir où sont les choses

Pour formater les partition:

# mkfs -t ext3 /dev/mvg/xxxx

Exemple:

mkfs -t ext3 /dev/mvg/usr

Pour le swap on utilisera la comande:

# mkswap -c /dev/mvg/swap

Pour copier les partitions du sda vers celles de sdb on utilise la commande:

# rsync -aHS

Exemple:

# rsync -aHS /srv /dev/mvg/srv

NB: en utilisant rsync j'obtien le message d'erreur suivant:

cnf:/home# rsync -a /srv /dev/mvg/srv ERROR: destination must be a directory when copying more than 1 file

rsync error: errors selecting input/output files, dirs (code 3) at main.c(494) [receiver=2.6.9]

rsync: connection unexpectedly closed (8 bytes received so far) [sender]

rsync error: error in rsync protocol data stream (code 12) at io.c(453) [sender=2.6.9]

Maintenant comment faire ???

BN: Remarque de JC:

Première chose : il ne faut pas confondre espace disque, système de
fichiers ou encore les fichiers eux-même. Ici tu demandes à rsync de
synchroniser les fichiers dans un dossier (/srv) avec... un espace
disque (
...) ! Les deux n'étant pas de même nature, ça ne peut pas
fonctionner. Et même si rsync avait accepté de le faire, le résultat
aurait été inutilisable.

Tout d'abord, si ce n'est pas encore fait, il te faut créer un _système
de fichiers_ sur ton espace disque (ici le volume logique "srv" du
groupe de volumes "mvg") avec la commande suivante :
  mkfs -t ext3 /dev/mvg/srv

Ensuite, il te faut attacher ce
 à un dossier
existant, afin de pouvoir accéder à son contenu via ce dossier. Cela se
fait avec la commande classique :
  mount /dev/mvg/srv /mnt

Deuxième chose : quand on synchronise deux dossiers ensemble, il vaut
mieux ajouter un '/' terminal derrière chacun d'eux (cf "man rsync").
Donc ici ça donnerait :
  rsync -a

Ensuite, pour rendre la copie la plus identique possible, il faut
également ajouter les options -H (conserver les liens en dur) et -S
(conserver les trous dans les fichiers) :
  rsync -aHS

N'oublies pas de détacher "/mnt" une fois la copie finie.

# dd if=/dev/sdaxx of=/dev/mvg/sdbxx

Exemple: répertoire /usr dd if=/dev/sda5 of=/dev/mvg/usr

Ensuite changer le fstab:

# /etc/fstab: static file system information.

# <file system> <mount point> <type> <options> <dump> <pass>

proc /proc proc defaults 0 0

/dev/sdb1 / ext3 defaults,errors=remount-ro 0 1

/dev/mvg/home /home ext3 defaults 0 2

/dev/mvg/srv /srv ext3 defaults 0 2

/dev/mvg/srvmail /srv/mail ext3 defaults,nosuid 0 2

/dev/mvg/srvwww /srv/www ext3 defaults 0 2

/dev/mvg/tmp /tmp ext3 defaults 0 2

/dev/mvg/usr /usr ext3 defaults 0 2

/dev/mvg/var /var ext3 defaults 0 2

/dev/mvg/varlib /var/lib ext3 defaults 0 2

/dev/mvg/varlog /var/log ext3 defaults 0 2

/dev/mvg/spool /var/spool ext3 defaults 0 2

/dev/mvg/swap none swap sw 0 0

/dev/hdd /media/cdrom0 iso9660 ro,user,noauto 0 0

/dev/fd0 /media/floppy0 auto rw,user,noauto 0 0


Autres Difficultés:

NB: Remarque de Lam:

moi:

Je suis bloqué de nouveau
 !!
Après avoir effectuer tout les copie des fichier des  partitions en
utilisant rsync; je n'arrive pas à bouter mon serveur sur le nouveau disque.
Il me dit : "operating système not found"
Les étapes déjà effectuée:
- adaptation de fstab
- changement de l'ordre de boot sur le BIOS

Lam

Il faut lancer grub-install pour installer grub sur ton nouveau disque.
Avant il faut modifier le fichier /boot/grub/menu.lst , ligne
root            (hd0,0)  pour bien pointer sur ton nouveau disque
Si non tu peux mettre le boot sur l'ancien disque, mais ajouter un boot
pour le nouveau disque en modifiant le fichier /boot/grub/menu.lst.  Je
pense qu'il suffit de copier des lignes de l'ancien disque, en suite
juste changer la ligne root(...)

title           Debian GNU/Linux, kernel 2.6.18-4-686 (single-user mode)
root            (hd0,0)
kernel          /vmlinuz-2.6.18-4-686 root=/dev/mapper/g1-vzmain ro single
initrd          /initrd.img-2.6.18-4-686
savedefault

Moi:

J'ai réussi à copier toutes les partition faut le /
NB: J'utilise la commande "rsync -aHS / /mnt" après avoir monter mon
/dev/mvg/sdb1 sur /mnt.
Est ce qu'il faut que j'utilise un LiveCD ?

Thomas N:

Oui, il faut faire l'opération sur une machine "arrêtée". Le plus
simple est donc de la rebooter sur un LiveCD afin d'être sûr qu'il
n'y aura aucune activité sur le disque dur.

Ensuite, une technique peut être :

- monter les partitions des anciens disques sur /source, /source/var,
  /source/tmp, etc, etc, afin que /source contienne ton système
  d'origine complet

- formater puis monter les partitions cibles (le LVM) sur /cible,
  puis créer le répertoire (vide) /cible/var et y monter la partition
  associée (sur /cible/var), même chose pour /cible/tmp, etc...

Ensuite, un "gros" rsync général de /source vers /cible...

Il faut alors adapter quelques fichiers, je pense principalement à
/cible/etc/fstab afin qu'il considère bien les nouvelles partitions.

Enfin, il faut installer grub sur le nouveau disque. Je suis un peu moins à
l'aise avec ça, je laisse les grubmen répondre.

(A noter qu'en fait, ce que tu dois faire est très très proche d'une
procédure de récupération d'un serveur depuis des backups).

A priori je n'oublie pas trop de choses : tu rebootes et ça devrait marcher.

ZAP/PortVila/ChangementDeDisqueServeurCNF (dernière édition le 2010-04-21 23:05:09 par JeanChristopheAndré)