Skip to content
2010/12/06 / vpourchet

Augmenter la taille d’un disque en EXT2 ou EXT3 avec Vsphere 4.1

Le but de cette procédure est d’augmenter la taille d’un disque et donc de sa partition primaire sans perdre ses données !

Pré-requis:

– Faire un snapshot de la VM (coté baie si possible)
– Connaitre sous Vsphere et sous Centos quel disque est à augmenter
– Avoir déterminé la taille cible du disque
– Avoir mis en commentaire le montage du disque dans la FSTAB pour que le disque ne se monte pas au démarrage
– Démonter le disque si il est monté (umount)


Procédure:

La procédure sera faite sur la base d’un exemple concret ayant les pré-requis suivant:

Nom du device du disque: /dev/sdb
Taille du disque existant: 1Go
Taille du disque cible: 15Go

Le disque contient une seule partition primaire qui prend tout l’espace du disque et qui se nomme sdb1.

Les étapes:

1) Augmenter coté vmware la taille du disque (Ceci peut être fait à chaud)



2) Augmenter la taille du disque coté Centos:

a) Tout d’abord nous allons faire un fdisk -l pour voir l’état du disque sdb:

Disque /dev/sdb: 1073 Mo, 1073741824 octets
127 heads, 3 sectors/track, 5504 cylinders
Unités = cylindres de 381 * 512 = 195072 octetsPériphérique Amorce    Début         Fin      Blocs    Id  Système
/dev/sdb1               1        5250      999984+  83  Linux 

 

Nous voyons donc le la taille totale du disque vu par l’OS est de 1073 Mo (environ 1Go) et qu’il y une seule partition nommée /dev/sdb1.

Attention: L’OS ne voit pas que le disque a été agrandit à 15 Go mais c’est normal pour le moment !

b) Comme la partition /dev/sdb1 est en EXT3, nous devons enlever temporairement la journalisation ce qui aura pour effet de la passer en EXT2.

On commence par vérifier si on est bien en EXT3 avec la commande suivante:

parted /dev/sdb print

Model: Inconnu (unknown)
Disk /dev/sdb1: 1024MB
Sector size (logical/physical): 512B/512B
Partition Table: msdosNumber  Start   End    Size   Type      File system  Fanions
2      32,3kB  535MB  535MB  primaire 

Model: VMware Virtual disk (scsi)
Disk /dev/sda: 8590MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End     Size    Type      File system  Fanions
1      32,3kB  107MB   107MB   primaire  ext3         amorce
2      107MB   8587MB  8480MB  primaire               lvm

Model: VMware Virtual disk (scsi)
Disk /dev/sdb: 1074MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End     Size    Type      File system  Fanions
1      16,4kB  1024MB  1024MB  primaire  ext3

 

Nous somme donc en effet en EXT3 !

On désactive la journalisation via la commande suivante:

tune2fs -O ^has_journal /dev/sdb1

[root@test-antoine /]# tune2fs -O ^has_journal /dev/sdb1
tune2fs 1.39 (29-May-2006)
[root@test-antoine /]#

Puis on vérifie bien qu’on est bien passé en EXT2:

[root@test-antoine /]# parted /dev/sdb1 print allModel: Inconnu (unknown)
Disk /dev/sdb1: 1024MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos 

Number  Start   End    Size   Type      File system  Fanions
2      32,3kB  535MB  535MB  primaire

Model: VMware Virtual disk (scsi)
Disk /dev/sda: 8590MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End     Size    Type      File system  Fanions
1      32,3kB  107MB   107MB   primaire  ext3         amorce
2      107MB   8587MB  8480MB  primaire               lvm

Model: VMware Virtual disk (scsi)
Disk /dev/sdb: 1074MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End     Size    Type      File system  Fanions
1      16,4kB  1024MB  1024MB  primaire  ext2

 

Nous sommes bien passé en EXT2 donc tout va bien !

c) Il faut ensuite vérifier l’intégrité du disque via la commande suivante (compter environ 1h pour un disque de 100 Go):

e2fsck -f /dev/sdb1

e2fsck 1.39 (29-May-2006)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/data: 182/251904 files (2.7% non-contiguous), 874360/999984 blocks


d) Nous devons maintenant redémarrer le système pour qu’il prenne en compte la nouvelle taille du disque (15G dans notre cas).

Tapez la commande: reboot

Attention: Bien faire attention que le disque est bien commenté dans la crontab pour que l’OS n’essait pas de le monter au démarrage.

e) Une fois le système redémarré, vérifier que la nouvelle taille a bien été prise en compte:

fdisk -l

Disque /dev/sdb: 16.1 Go, 16106127360 octets
127 heads, 3 sectors/track, 82565 cylinders
Unités = cylindres de 381 * 512 = 195072 octetsPériphérique Amorce    Début         Fin      Blocs    Id  Système
/dev/sdb1               1        5250      999984+  83  Linux 

 

On voit donc que la taille du disque a augmenté mais que la patition sdb1 fait toujours la même taille … Tout va bien !

f) Nous allons maintenant agrandir la partition sdb1 en tapant les commandes suivantes.

On détermine le début de la partition (Très important !!!):

parted /dev/sdb print

Model: VMware Virtual disk (scsi)
Disk /dev/sdb: 16,1GB
Sector size (logical/physical): 512B/512B
Partition Table: msdosNumber  Start   End     Size    Type      File system  Fanions
1      16,4kB 1024MB  1024MB  primaire  ext2 

Information: Ne pas oublier de mettre à  jour /etc/fstab si nécessaire.

 

On a donc la partition 1 (qui correspond à sdb1) qui commence à 16,4kB et qui se termine à 1024MB. On a donc bien une partition qui à pour taille environ 1 Go. Mais ce qu’il faut surtout retenir c’est le début de la partition qui commence à 16,4kB.

Nous allons donc maintenant agrandir la partition pour qu’elle fasse 15 Go soit 15*1024=15360MB (Notre cible !)

Il faut maintenant taper les commande suivantes:

parted /dev/sdb
unit s
rm 1
mkpart 1 ext2

quit

[root@test-antoine ~]# parted /dev/sdb
GNU Parted 1.8.1
On utilise /dev/sdb
Welcome to GNU Parted! Type ‘help’ to view a list of commands.
(parted) unit s
(parted) rm 1
(parted) mkpart 1
Type de partition?  primary/primaire/extended/étendue? primary
Type de système de fichiers?  [ext2]?
Début? 16,4kB
Fin? 15360MB
(parted) quit
Information: Ne pas oublier de mettre à  jour /etc/fstab si nécessaire.

Attention: Bien mettre le même Début que l’ancienne partition (16,4kB
) et la fin cible (15360MB)

Tapez ensuite les commandes suivantes:#Pour lire la table de partition
blockdev –rereadpt /dev/sdb
 

#Pour vérifier que la partition utilise bien toute la place disponible (15G)
resize2fs /dev/sdb1

[root@test-antoine ~]# resize2fs /dev/sdb1
resize2fs 1.39 (29-May-2006)
Resizing the filesystem on /dev/sdb1 to 14999984 (1k) blocks.
Le système de fichiers /dev/sdb1 a maintenant une taille de 14999984 blocs.

#On repasse en EXT3
tune2fs -O has_journal /dev/sdb1

[root@test-antoine ~]# tune2fs -O has_journal /dev/sdb1
tune2fs 1.39 (29-May-2006)
Création de l’i-noeud du journal : complété
Le système de fichiers sera automatiquement vérifié tous les 20 montages ou
après 180 jours, selon la première éventualité. Utiliser tune2fs -c ou -i
pour écraser la valeur.

#On labelise la partition comme avant
e2label /dev/sdb1 /data

#On refait un e2fsck (compter environ 1h pour un disque de 100 Go)
e2fsck -f /dev/sdb1

[root@test-antoine ~]# e2fsck -f /dev/sdb1
e2fsck 1.39 (29-May-2006)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/data: 182/3751936 files (2.7% non-contiguous), 1349470/14999984 blocks


#Il faut ensuite décommenter la fstab et remonter la partition
vi /etc/fstab (et on décommente la ligne de la partition)
mount /data

#Puis on vérifie la taille de la partition
df -h

root@test-antoine ~]# df -h
Sys. de fich.         Tail. Occ. Disp. %Occ. Monté sur
/dev/mapper/VolGroup00-LogVol00
5,8G  2,0G  3,5G  37% /
/dev/sda1              99M   19M   75M  21% /boot
tmpfs                 502M     0  502M   0% /dev/shm
/dev/sdb1              14G  856M   13G   7% /data

On voit que la partition /data fait 14G (Moins de 15G à cause de la journalisation EXT3)

g) Vérifier ensuite que les données sont bien présentes:

ls -al /data

Les données doivent bien être la avec les même droits etc …

2 commentaires

Laisser un commentaire
  1. Anonyme / Mar 30 2012 12:39

    Merci, c’est top !!!!

    • vpourchet / Avr 12 2012 22:18

      Hey !

      De rien.

      V

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s

%d blogueurs aiment cette page :