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