## page was renamed from Changement du DD serveur CNF
= À 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

 * Device Boot Start End Blocks Id System

/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

 . Device Boot      Start         End      Blocks   Id  System

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

 . Device Boot      Start         End      Blocks   Id  System

/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

 . Device Boot      Start         End      Blocks   Id  System

/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: ====
 . {{{
L'idée principale, c'est de formater le nouveau DD (500 Go) en LVM et de
copier les partitions du DD actuel vers le nouveau pour pourvoir
l'utiliser et changer mon anciens DD.
Je voudrais savoir est ce que je suis sur la bonne route (où
complètement à côté de la plaque !!)
}}}

===== 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.
}}}