Gandi Wiki


Questions

Agrandir un disque en mode Expert

Agrandissement du "volume group"

Cette partie est automatique et comparable à la procédure sous Gandi AI

Important :

Tous les disques créés en France après Avril 2011 aux USA depuis Décembre 2010) sont sur la nouvelle plateforme de stockage, il est donc inutile de suivre cette procédure !

Vous pouvez agrandir la taille "à chaud" de vos disques système, données ou sauvegarde par la commande "resize2fs /dev/xvdX" en mode root directement !

Note :

Les distributions inférieures à Cent OS 6 doivent utiliser la commande "resize2fs /dev/xvdX"(contenu dans le paquet "e2fsprogs") ou bien "resize4fs /dev/xvdX" (contenu dans le paquet "e4fsprogs"), en fonction du système de fichier utilisé pour redimensionner les disques "à chaud".

Agrandissement du "filesystem" pour le disque de données

Cette procédure s'applique pour les disques de données, sans partition.

Note: avant de commencer cette procédure, si votre serveur a rebooté, vérifiez si le disque n'est pas déjà à la taille souhaitée. Les images récentes profitent en effet d'un agrandissement automatique au démarrage.

Vérifier le disque

Tout d'abord, il est nécessaire d'effectuer une vérification du système de fichier pour corriger les éventuelles erreurs sur le disque, afin que que celui-ci soit marqué comme "clean" par la suite et puisse être redimensionné. L'exemple se base sur le disque /dev/xvdb :

# umount /dev/xvdb
# e2fsck -f /dev/xvdb
e2fsck 1.40.2 (12-Jul-2007)
Passe 1 : vérification des i-noeuds, des blocs et des tailles
Passe 2 : vérification de la structure des répertoires
Passe 3 : vérification de la connectivité des répertoires
Passe 4 : vérification des compteurs de référence
Passe 5 : vérification de l'information du sommaire de groupe
disque2: 11/3014656 files (9.1% non-contiguous), 134435/6029312 blocks

Si e2fsck indique des problèmes il est nécessaire de les corriger avant de pouvoir continuer.

Redimensionner le disque

Une fois le disque vérifé et les éventuelles erreurs corrigées, il est possible de redimensionner la taille du système de fichier pour qu'elle corresponde à celle du disque :

# resize2fs /dev/xvdb
Resizing the filesystem on /dev/xvdb to 6815744 (4k) blocks.
Le système de fichiers /dev/xvdb a maintenant une taille de 6815744 blocs.

Puis remontez le disque:

# mount /dev/xvdb /srv/d_mondisque

Agrandissement du "filesystem" pour le disque système

Redimensionner un disque système est une procédure délicate et risquée. En cas d'erreur lors de la suppression et la création des partitions, il est possible de perdre son disque système. Il convient donc de faire extrêmement attention.

Tout d'abord, il est impératif de désactiver la swap, comme la partition qui la contient va être supprimée.

# swapoff /dev/xvda2

Modifier la taille des partitions

Ensuite, il faut lancer un fdisk pour modifier les partitions. Il y a deux partitions, la partition système et celle pour la swap. Les deux vont être supprimées, la partition système va être aggrandie.

# fdisk /dev/xvda

The number of cylinders for this disk is set to 5221.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
   (e.g., DOS FDISK, OS/2 FDISK)

Command (m for help): p

Disk /dev/xvda: 42.9 GB, 42949672960 bytes
255 heads, 63 sectors/track, 5221 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

    Device Boot      Start         End      Blocks   Id  System
/dev/xvda1               1         312     2506108+  83  Linux
/dev/xvda2             313         391      634567+  82  Linux swap / Solaris

L'affichage est passé en secteurs :

Command (m for help): u
Changing display/entry units to sectors

La swap est supprimée :

Command (m for help): d
Partition number (1-4): 2

Command (m for help): p

Disk /dev/xvda: 42.9 GB, 42949672960 bytes
255 heads, 63 sectors/track, 5221 cylinders, total 83886080 sectors
Units = sectors of 1 * 512 = 512 bytes

    Device Boot      Start         End      Blocks   Id  System
/dev/xvda1              63     5012279     2506108+  83  Linux

Puis la partition système est supprimée :

Command (m for help): d
Selected partition 1

Les deux partitions étant maintenant supprimées, il faut les recréer. Premièrement, re-créer la partition système avec la bonne taille. Ici, 40Go.

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First sector (63-83886079, default 63):
Using default value 63
Last sector or +size or +sizeM or +sizeK (63-83886079, default 83886079): +40G

Command (m for help): p

Disk /dev/xvda: 42.9 GB, 42949672960 bytes
255 heads, 63 sectors/track, 5221 cylinders, total 83886080 sectors
Units = sectors of 1 * 512 = 512 bytes

    Device Boot      Start         End      Blocks   Id  System
/dev/xvda1              63    78125063    39062500+  83  Linux

Il est ensuite nécessaire de recréer la partition pour la swap.

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 2
First sector (78125064-83886079, default 78125064):
Using default value 78125064
Last sector or +size or +sizeM or +sizeK (78125064-83886079, default 83886079):
Using default value 83886079

Puis donner à la partition swap le type "Linux swap" :

Command (m for help): t
Partition number (1-4): 2
Hex code (type L to list codes): 82
Changed system type of partition 2 to 82 (Linux swap / Solaris)

Command (m for help): p

Disk /dev/xvda: 42.9 GB, 42949672960 bytes
255 heads, 63 sectors/track, 5221 cylinders, total 83886080 sectors
Units = sectors of 1 * 512 = 512 bytes

    Device Boot      Start         End      Blocks   Id  System
/dev/xvda1              63    78125063    39062500+  83  Linux
/dev/xvda2        78125064    83886079     2880508   82  Linux swap / Solaris

Finalement, sauvegarder toutes les modifications

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Périphérique ou ressource occupé.
The kernel still uses the old table.
The new table will be used at the next reboot.
Syncing disks.

Redémarrer et lancer une vérification du disque

Eventuellement il faudra forcer le fsck au reboot, selon la distribution, et redémarrer :

# touch /forcefsck
# reboot

Si le le fsck n'a pas eu lieu au boot, il est nécessaire de l'effectuer. Pour cela, au préalable, il peut être nécessaire de faire un "lsof" et "kill"-er les process ayant w/u sur / :

# mount -o remount,ro /
# fsck -f /dev/xvda1
fsck 1.40-WIP (14-Nov-2006)
e2fsck 1.40-WIP (14-Nov-2006)
Passe 1 : vérification des i-noeuds, des blocs et des tailles
Passe 2 : vérification de la structure des répertoires
Passe 3 : vérification de la connectivité des répertoires
Passe 4 : vérification des compteurs de référence
Passe 5 : vérification de l'information du sommaire de groupe
DEBIAN4: 20503/313600 files (2.2% non-contiguous), 156236/626527 blocks

Si des réparations ont eu lieu pendant le fsck il est nécessaire de rebooter. Sinon, il ne reste plus qu'à redimensionnement le système de fichier.

Redimensionner le disque

Pour cela on utilise resize2fs :

# resize2fs /dev/xvda1
resize2fs 1.40-WIP (14-Nov-2006)
Filesystem at /dev/xvda1 is mounted on /; on-line resizing required
old desc_blocks = 1, new_desc_blocks = 3
Performing an on-line resize of /dev/xvda1 to 9765625 (4k) blocks.

Le système de fichiers /dev/xvda1 a maintenant une taille de 9765625 blocs.

Il est possible de vérifier la taille du disque avec la commande df :

# df -h
Sys. de fich.         Tail. Occ. Disp. %Occ. Monté sur
/dev/xvda1             37G  576M   36G   2% /

Reactiver le swap

Construire un systeme de swap sur la deuxieme partition:

# mkswap /dev/xvda2 
Setting up swapspace version 1, size = 654934 kB
no label, UUID=f81664a7-4764-4b66-acde-c2f12cc86e31

Reassigner la partition au swap:

# swapon /dev/xvda2 

Dernière modification: le 01/09/2011 à 09:41 par Emerick M. (Gandi)