Tutoriel sur le partitionnement d'un serveur Kimsufi
Par Benjamin le mardi 4 novembre 2008, 09:00 - technique - Lien permanent
Le partitionnement de base fourni sur les serveurs Kimsufi sous Ubuntu mérite généralement un bon remaniement pour coller à ses besoins. Ce tutoriel retrace comment passer d'une partitionnement monolithique à un partitionnement plus adapté à un serveur.
Le serveur d'origine n'est pas vraiment partitionné selon mes goûts. Cela ressemble à ceci :
root@serveur:~# df -k Filesystem 1K-blocks Used Available Use% Mounted on /dev/sda1 3099260 492972 2448856 17% / varrun 493172 44 493128 1% /var/run varlock 493172 0 493172 0% /var/lock udev 493172 20 493152 1% /dev devshm 493172 0 493172 0% /dev/shm /dev/sda2 236749404 32844 224690304 1% /home
Bref, une partition énorme pour /home et pas grand chose pour le reste : même la racine n'a droit qu'à une portion congrue. Sachant que la plus grande partie du disque sera consacrée à /var (i.e. les données) et à /usr (i.e. les applications installées), quelques transformations s'imposent.
Pour retailler les partitions, j'utilise parted en ligne de commande.
En fait, je me contente de retailler /home pour disposer d'un /var et d'un /usr de bonne taille. Le /home lui-même ne me servira pas à grand chose. Disons qu'on part pour un /var et un /usr de 100Go chacun et un /home de 49Go et on y ajoute un petit /tmp de 1Go.
Pour commencer, il faut démonter la partition:
root@serveur:~# umount /home
Ensuite, une petite vérification ne fait pas de mal :
root@serveur:~#parted GNU Parted 1.7.1 Using /dev/sda Welcome to GNU Parted! Type 'help' to view a list of commands.
On commence par regarder les partitions :
(parted) print Disk /dev/sda: 250GB Sector size (logical/physical): 512B/512B Partition Table: msdos Number Start End Size Type File system Flags 1 32.3kB 3224MB 3224MB primary ext3 boot 2 3224MB 250GB 246GB primary ext3 3 250GB 250GB 535MB primary linux-swap
Puis on vérifie rapidement l'état de /home (la deuxième dans la liste):
(parted) check 2 Information: The ext2 file system passed a basic check. For a more comprehensive check, use the e2fsck program.
Et l'on regarde ce qu'on peut en faire :
(parted) print 2 Minor: 2 Flags: File System: ext2 Size: 246GB (98.5%) Minimum size: 3900MB (1.56%) Maximum size: 250GB (100%)
Elle est donc énorme pour le moment, mais très peu occupée (c'est un peu normal pour un serveur fraîchement installé).
Voici le partitionnement souhaité (avec parted, on doit préciser où commence et où se termine une partition):
- /home : début à 0, fin à 49Go
- /tmp : début à 49Go, fin à 50Go
- /var : début à 50Go, fin à 150Go
- /usr : début à 150Go, fin à 250Go
Pour le resizing de /home, cela se passe ici (en mode intéractif, c'est plus facile!) :
(parted) resize Partition number? 2 Start? [3224MB]? End? [250GB]? 52GB Warning: A resize operation on this file system will use EXPERIMENTAL code that MAY CORRUPT it (although it hasn't doneso yet in the past). You should at least backup your data and run 'e2fsck -f' afterwards. OK/Cancel? OK
Bon, le warning n'est pas très encourageant, mais ça fonctionne...
On commence par une partition étendue (pas besoin d'une primaire vu que je ne vais pas y installer un autre OS):
(parted) mkpart Partition type? primary/extended? extended Start? 52GB End? 250GB
Dans cette partition, on va placer les partitions logiques /tmp /var et /usr :
pour /tmp :
(parted) mkpartfs Partition type? [logical]? File system type? [ext2]? Start? 52.0GB End? 53.0GB
et ainsi de suite pour /var et /usr
Attention, il est judicieux d'être précis sur la taille des partitions indiquées à parted, sinon c'est lui qui choisira comment il gère l'approximation. Pour une partition de 100Go, une approximation à 1Go n'est pas franchement gênante ; elle l'est plus pour une partition de 1Go, comme /tmp. C'est pour cela que j'ai précisé la première décimale du start et du end.
Finalement, on obtient :
(parted) print Disk /dev/sda: 250GB Sector size (logical/physical): 512B/512B Partition Table: msdos Number Start End Size Type File system Flags 1 32.3kB 3224MB 3224MB primary ext3 boot 2 3224MB 52.0GB 48.8GB primary ext3 4 52.0GB 250GB 198GB extended lba 5 52.0GB 52.0GB 8193kB logical ext2 6 52.0GB 152GB 100GB logical ext2 7 152GB 250GB 97.5GB logical ext2 3 250GB 250GB 535MB primary linux-swap
Reste maintenant à mettre à jour /etc/fstab pour y faire figurer les nouvelles partitions
root@serveur:~#vi /etc/fstab /dev/sda1 / ext3 errors=remount-ro 0 1 /dev/sda2 /home ext3 defaults 0 2 /dev/sda3 none swap defaults 0 0 /dev/sda5 /tmp ext2 defaults 0 2 /dev/sda6 /usr ext2 defaults 0 2 /dev/sda7 /var ext2 defaults 0 2 proc /proc proc defaults 0 0 sysfs /sys sysfs defaults 0 0
Et le tour est joué.
Ensuite, il reste à déplacer le contenu actuel de /usr de la partition /dev/sda1 à la partition /dev/sda5, et le contenu de /var de la partition /dev/sda1 à /dev/sda7. Tout ceci peut se faire à coups de mv, en utilisant /home comme tampon.
Attention, un mv des répertoires /usr et /lib n'est pas complètement anodin : il y a des choses qui servent là-dedans ! Pareil pour le changement de la table des partitions. En cas de grosse erreur pendant ces manip, le mode secours du Kimsufi vous permettra de remettre de l'ordre dans tout cela, mais c'est un peu pénible et cela peut donner quelques sueurs froides...
root@serveur:~# mv /usr /home root@serveur:~# mkdir /usr root@serveur:~# mount /usr root@serveur:~# mv /home/usr/* /usr
et la même chose pour var, ou presque car /var/run et /var/lock sont gérés différemment, donc on les laisse en place.
Après un reboot, tout doit rentrer dans l'ordre :
root@serveur:~# df -k Filesystem 1K-blocks Used Available Use% Mounted on /dev/sda1 3099260 69504 2872324 3% / varrun 493172 44 493128 1% /var/run varlock 493172 0 493172 0% /var/lock udev 493172 36 493136 1% /dev devshm 493172 0 493172 0% /dev/shm /dev/sda2 46884132 32848 44469648 1% /home /dev/sda5 74960 13 70830 1% /tmp /dev/sda6 96116872 298880 90935440 1% /usr /dev/sda7 93738184 124756 88851764 1% /var
Si cet article vous a intéressé, n'hésitez pas à nous laisser un commentaire ou à vous abonner à notre flux RSS.
Peut-être serez-vous également intéressé par ces articles :
Commentaires
Et si le reboot marche pas.... :-)
Pour un serveur, il peut être très utile de regarder aussi du côté de LVM -> http://tldp.org/HOWTO/LVM-HOWTO/
Le but: pouvoir augmenter des partitions à chaud.
Très très pratique :-)
D'ailleurs, quelle idée de prendre une Ubuntu alors qu'ils proposent Debian... ;-)
Réponse au premier commentaire :
le mode rescue est basé sur un net-boot. Personnellement, ça m'inspire plutôt confiance, et j'ai eu l'occasion de le tester. Et puis, si ça ne marche pas, il reste le bon vieux support - que je n'ai jamais eu l'occasion de tester.
Réponse au second commentaire : parce que c'est mieux ;-)
Plus sérieusement, j'explique ce choix par le fait que j'ai un environnement de développement et d'intégration plus proche d'Ubuntu Server que de Debian. C'est donc le confort (ou la paresse, c'est selon) qui l'a motivé.