Oracle VM : ajout à chaud et agrandissement d'un disque dans une vm

Voici un sujet qui nous montre la souplesse d’utilisation d’Oracle VM à travers deux fonctionnalités attachées aux disques :

  • Ajout à chaud d’un disque dans une VM
  • Agrandissement d’un disque et du filesystem attaché

Allons y !

1) Ajouter un disque à chaud

Cette partie est une fonctionnalité d’Oracle VM très facile à utiliser. Elle est fournie en effet avec la console Oracle VM Manager.
On y accède par le menu : Virtual Machines –> machine choisie –> Configure –> Storage –> Create new virtual disk
Je crée un disque de 1Go avec l’interface du VM Manager, la machine virtuelle étant en fonctionnement.

Voici la liste des disques connectés après ajout sur la machine virtuelle. Notre disque apparaît bien dans la liste.

[vm]# fdisk -l
Disk /dev/xvda: 13.3 GB, 13316728320 bytes
255 heads, 63 sectors/track, 1619 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
    Device Boot      Start         End      Blocks   Id  System
/dev/xvda1   *           1          12       96358+  83  Linux
/dev/xvda2              13        1357    10803712+  83  Linux
/dev/xvda3            1358        1619     2104515   82  Linux swap / Solaris
Disk /dev/xvdb: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
    Device Boot      Start         End      Blocks   Id  System
/dev/xvdb1               1        1305    10482381   83  Linux
Disk /dev/xvdc: 16.1 GB, 16106127360 bytes
255 heads, 63 sectors/track, 1958 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
    Device Boot      Start         End      Blocks   Id  System
/dev/xvdc1               1        1958    15727603+  83  Linux
Disk /dev/xvdd: 1073 MB, 1073741824 bytes <========= DISQUE AJOUTE
255 heads, 63 sectors/track, 130 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Disk /dev/xvdd doesn't contain a valid partition table



Le disque a bien été ajouté à chaud, je peux maintenant le partitionner et le transformer en filesystem ext3. Je fais ensuite le montage et une copie de fichiers sur ce FS pour tester par la suite la non déperdition de données dans l’opération suivante.

[vm]# fdisk /dev/xvdd
[vm]# mkfs.ext3 -L u02 /dev/xvdd1
[vm]# mkdir /u02
[vm]# mount /dev/xvdd1 /u02
[vm]# cp -R /etc/sysconfig /u02
[vm]# du -csh sysconfig/
1.1M    sysconfig/
1.1M    total
[vm]# df -h /u02
Filesystem            Size  Used Avail Use% Mounted on
/dev/xvdd1           1004M   18M  936M   2% /u02

2) Agrandir un disque et le filesystem supporté par celui-ci

Le filesystem est démonté

[vm]# umount /u02

Je vais maintenant agrandir ce disque. Je reviens pour cela sur le server VM sur lequel je vais créer un fichier temporaire dont la taille sera équivalente à l’augmentation de volume désirée, en l’occurence 1Go. Nous utilisons la commande dd :

[servervm]# dd if=/dev/zero of=/OVS/running_pool/httpprd1/Tempfile bs=1024 count=1000000
1000000+0 records in
1000000+0 records out
1024000000 bytes (1.0 GB) copied, 15.0873 seconds, 67.9 MB/s
[servervm]#


Nous utilisons ce fichier pour agrandir notre disque virtuel :

[servervm]# ls -l u02
-rw-rw-rw- 1 root root  1073741824 May  5 10:19 u02.img
[servervm]# cat /OVS/running_pool/httpprd1/Tempfile >>/OVS/running_pool/httpprd1/u02.img
[servervm]# rm Tempfile
[servervm]# ls -l u02
-rw-rw-rw- 1 root root 2097741824 May  5  10:23 u02.img


Les commandes suivantes permettent d’actualiser dans la VM les nouveaux paramètres du disque :

[servervm]xm block-detach httpprd1 xvdd
[servervm]xm block-attach httpprd1 file:/OVS/running_pool/httpprd1/u02.img xvdd w


De retour dans la VM, nous allons agrandir la partition avec fdisk en la supprimant tout d’abord puis en la recréant comme partition 1.

[vm]# fdisk /dev/xvdd
Command (m for help): p
Disk /dev/xvdd: 2097 MB, 2097741824 bytes
255 heads, 63 sectors/track, 255 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
    Device Boot      Start         End      Blocks   Id  System
/dev/xvdd1               1         130     1044193+  83  Linux
Command (m for help): d
Selected partition 1
1
Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-255, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-255, default 255):
Using default value 255
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.

Nous allons maintenant modifier la taille du filesystem. Pour cela, il faut d’abord supprimer le journal du filesystem, puis agrandir le filesystem , enfin re-créer le journal du filesystem.

[vm]# tune2fs -O ^has_journal /dev/xvdd1
tune2fs 1.39 (29-May-2006)
[vm]# resize2fs -f /dev/xvdd1
resize2fs 1.39 (29-May-2006)
Resizing the filesystem on /dev/xvdd1 to 512064 (4k) blocks.
The filesystem on /dev/xvdd1 is now 512064 blocks long.
[vm]# tune2fs -j /dev/xvdd1
tune2fs 1.39 (29-May-2006)
Creating journal inode: done
This filesystem will be automatically checked every 21 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.

La phase d’agrandissement est maintenant terminée. Nous allons maintenant contrôler que la taille de notre nouveau filesystem est bien de 2 Go et que les données écrites précédemment sont encore présentes.

[vm]# mount /dev/xvdd1 /u02
[vm]# cd /u02
[vm]# du -csh sysconfig/
1.1M    sysconfig/
1.1M    total
[vm]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/xvda2             11G  2.4G  7.6G  24% /
/dev/xvda1             92M   12M   75M  14% /boot
tmpfs                 128M     0  128M   0% /dev/shm
/dev/xvdb1            9.9G  3.7G  6.1G  38% /u01
/dev/xvdd1            2.0G   35M  1.9G   2% /u02

Il est à noter que la nouvelle taille du disque n’est pas prise en compte dans l’interface graphique d’Oracle VM. Le seul moyen pour qu’elle soit prise en compte est de supprimer la VM (attention, suppression d’Oracle Manager mais non physique !!!) et de la réimporter via le menu : Resources —> Virtual Machine Images

1 réflexion sur “Oracle VM : ajout à chaud et agrandissement d'un disque dans une vm”

  1. Bonjour,
    Article intéressant, juste pour informations il existe un autre moyen plus simple et rapide qui ne nécessite pas le démontage du file système.
    Autre choses la mise à jour de la taille du disque sur l’OVM, peux se faire sans suppression recréation du disque. (il suffit de connaitre le schéma ovs) un update de la table est possible
    walkman

Les commentaires sont fermés.