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”
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.