JezVirt

Wiki.JezVirt History

Hide minor edits - Show changes to output

Changed lines 179-184 from:
hyp# virsh setmem ma_vm 256M@]
to:
hyp# virsh setmem ma_vm 256M@]
Plus d'infos: http://earlruby.org/2014/05/increase-a-vms-vcpu-count-with-virsh/

!! Augmenter le nombre de CPU (sucks :/ )
Super naze, ça ne se fait pas à chaud avec virsh.
Infos: http://earlruby.org/2014/05/increase-a-vms-vcpu-count-with-virsh/
Changed lines 160-179 from:
qemu-img convert -O qcow2 vm.qcow2 vm_shrinked.qcow2@]
to:
qemu-img convert -O qcow2 vm.qcow2 vm_shrinked.qcow2@]

!! Utiliser le ballooning
Bon, c'est un peu naze, je pensais que c'était automatique de base, mais non, c'est manuel. Dans la conf du guest:[@
hyp# virsh edit ma_vm
  <memory unit='KiB'>524288</memory>
  <currentMemory unit='KiB'>131072</currentMemory>
@]
Au niveau du guest:[@
guest# lsmod  | grep virtio
virtio_balloon        12832  0
virtio_blk            12874  3
virtio_net            17808  0
virtio_pci            13207  0
virtio_ring            13148  4 virtio_pci,virtio_net,virtio_blk,virtio_balloon
virtio                13093  5 virtio_ring,virtio_pci,virtio_net,virtio_blk,virtio_balloon
@]
Pour jouer avec l'ensemble (depuis l'hyperviseur):[@
# Defini le guest à 256M
hyp# virsh setmem ma_vm 256M
@]
Changed lines 26-27 from:
[12253.056182] vda: detected capacity change from 10485760000 to 16106127360@]
to:
[12253.056182] vda: detected capacity change from 10485760000 to 16106127360@]Note: Si vous ne voyez pas votre device, vous pouvez tenter un scan des devices PCI:[@echo "- - -" > /sys/class/scsi_host/host*/scan
@]
June 26, 2014, at 05:41 PM EST by 89.31.149.185 -
Changed lines 158-159 from:
L'idée est d'écrire des zero
to:
L'idée est d'écrire un fichier avec que des zeros dedans sur toutes les partitions de la VM. On éteint la VM, et au niveau du fichier qcow2:[@
qemu-img convert -O qcow2 vm.qcow2 vm_shrinked.qcow2@]
June 23, 2014, at 12:20 AM EST by 88.166.207.155 -
Changed lines 5-6 from:
# Hyp: On choppe les infos sur l'image de la VM, ici @@jezweb@@ :[@
to:
# Sur l'hyperviseur:
##
On choppe les infos sur l'image de la VM, ici @@jezweb@@ :[@
Changed lines 9-11 from:
** Le périphérique au niveau de la VM: @@drive-virtio-disk0@@
** Le fichier qcow2 associé: @@drive-virtio-disk0: removable=0 io-status=ok file=/srv/vms/vm_jezweb.img ro=0 drv=qcow2 encrypted=0 bps=0 bps_rd=0 bps_wr=0 iops=0 iops_rd=0 iops_wr=0@@
# Hyp: On check la taille de l'image:[@
to:
*** Le périphérique au niveau de la VM: @@drive-virtio-disk0@@
*** Le fichier qcow2 associé: @@drive-virtio-disk0: removable=0 io-status=ok file=/srv/vms/vm_jezweb.img ro=0 drv=qcow2 encrypted=0 bps=0 bps_rd=0 bps_wr=0 iops=0 iops_rd=0 iops_wr=0@@
## On check la taille de l'image:[@
Changed line 18 from:
# Hyp: On rajoute l'espace qu'il faut sur l'image disque, ici 10Go:[@
to:
## On rajoute l'espace qu'il faut sur l'image disque, ici 10Go:[@
Changed line 20 from:
# Hyp: On signale à la VM que la taille de son disque dur à changé (c'est le truc tricky):[@
to:
## On signale à la VM que la taille de son disque dur à changé (c'est le truc tricky):[@
Changed lines 23-24 from:
# VM: Du coté de la VM, on devrait avoir dans le @@dmesg@@. Si y'a pas, c'est que c'est pas bon:[@
to:
# Sur la VM:
##
Du coté de la VM, on devrait avoir dans le @@dmesg@@. Si y'a pas, c'est que c'est pas bon:[@
Changed line 27 from:
# VM: Une fois qu'on a un disque dur plus gros, on peut jouer avec les partitions. Je n'utilise que du LVM sur mes VMs, alors ça sera avec LVM qu'on continue:[@
to:
## Une fois qu'on a un disque dur plus gros, on peut jouer avec les partitions. Je n'utilise que du LVM sur mes VMs, alors ça sera avec LVM qu'on continue:[@
Changed line 29 from:
# Ou avec cfdisk, mais je crois que c'est moins fiable (sources?)
to:
## Ou avec cfdisk, mais je crois que c'est moins fiable (sources?)
Changed line 31 from:
# VM: De l'espace disque en fin de disque a du apparaître. La méthode consiste à supprimer la partition LVM existante, et à en recréer une qui commence au même endroit (même block) mais qui finit à la fin du disque. Il faut bien noter le block de départ et d'arrivé de la partition que l'on veut resizer, au cas où les valeurs par défaut de fdisk sont erronnées:[@
to:
## De l'espace disque en fin de disque a du apparaître. La méthode consiste à supprimer la partition LVM existante, et à en recréer une qui commence au même endroit (même block) mais qui finit à la fin du disque. Il faut bien noter le block de départ et d'arrivé de la partition que l'on veut resizer, au cas où les valeurs par défaut de fdisk sont erronnées:[@
Changed line 84 from:
# VM: Une relecture de la table de partition au niveau système sera probablement nécéssaire:[@
to:
## Une relecture de la table de partition au niveau système sera probablement nécéssaire:[@
Changed line 89 from:
# VM: On ajuste le PV pour gagner de l'espace:[@
to:
## On ajuste le PV pour gagner de l'espace:[@
June 23, 2014, at 12:18 AM EST by 88.166.207.155 -
Changed lines 4-10 from:
https://vougeot.nexen.net/awh/modop/proxmox/gestion_disques

!! Rajouter un disque sur une VM
# On crée un nouveau disque sur l'hyperviseur:[@
cd /srv/vms
qemu-img create -f qcow2 -o preallocation=metadata vm_<VM>_<NAME>.img <TAILLE>G@]Exemple:[@
root@jezhyp:/srv/vms# qemu-img create -f qcow2 -o preallocation=metadata vm_storage_data.img 100G
to:
Oué, alors, on a de tout et de rien sur ce sujet. Le premier truc, c'est que ça PEUT se faire à chaud, depuis une version pas trop vieille de QEMU/KVM. La procédure:
# Hyp: On choppe les infos sur l'image de la VM, ici @@jezweb@@ :[@
virsh qemu-monitor-command jezweb  --hmp "info block"@]On obtient un message du type::[@
drive-virtio-disk0: removable=0 io-status=ok file=/srv/vms/vm_jezweb.img ro=0 drv=qcow2 encrypted=0 bps=0 bps_rd=0 bps_wr=0 iops=0 iops_rd=0 iops_wr=0@]On identifie deux choses:
** Le périphérique au niveau de la VM: @@drive-virtio-disk0@@
** Le fichier qcow2 associé: @@drive-virtio-disk0: removable=0 io-status=ok file=/srv/vms/vm_jezweb.img ro=0 drv=qcow2 encrypted=0 bps=0 bps_rd=0 bps_wr=0 iops=0 iops_rd=0 iops_wr=0@@
# Hyp: On check la taille de l'image:[@
qemu-img info /srv/vms/vm_jezweb.img@]On obtient la taille virtuelle, celle que le guest pourra utiliser, et la taille actuellement utilisée sur le disque:[@
image: /srv/vms/vm_jezweb.img
file format: qcow2
virtual size: 10G (16106127360 bytes)
disk size: 7.8G
cluster_size: 65536@]
# Hyp: On rajoute l'espace qu'il faut sur l'image disque, ici 10Go:[@
qemu-img resize /srv/vms/vm_jezweb.img +10G@]
# Hyp: On signale à la VM que la taille de son disque dur à changé (c'est le truc tricky):[@
virsh qemu-monitor-command jezweb  --hmp "block_resize drive-virtio-disk0 20G"
@]
# VM: Du coté de la VM, on devrait avoir dans le @@dmesg@@. Si y'a pas, c'est que c'est pas bon:[@
[12253.056172] virtio_blk virtio1: new size: 31457280 512-byte logical blocks (16.1 GB/15.0 GiB)
[12253.056182] vda: detected capacity change from 10485760000 to 16106127360@]
# VM: Une fois qu'on a un disque dur plus gros, on peut jouer avec les partitions. Je n'utilise que du LVM sur mes VMs, alors ça sera avec LVM qu'on continue:[@
fdisk /dev/vda
# Ou avec cfdisk, mais je crois que c'est moins fiable (sources?)
cfdisk /dev/vda@]
# VM: De l'espace disque en fin de disque a du apparaître. La méthode consiste à supprimer la partition LVM existante, et à en recréer une qui commence au même endroit (même block) mais qui finit à la fin du disque. Il faut bien noter le block de départ et d'arrivé de la partition que l'on veut resizer, au cas où les valeurs par défaut de fdisk sont erronnées:[@
root@jezweb:/var/www/jeznet.org# fdisk /dev/vda

Command (m for help): p

Disk /dev/vda: 16.1 GB, 16106127360 bytes
16 heads, 63 sectors/track, 31207 cylinders, total 31457280 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

  Device Boot      Start        End      Blocks  Id  System
/dev/vda1  *          63      391103      195520+  83  Linux
/dev/vda2          391104    20479999    10044448  8e  Linux LVM

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

Command (m for help): n
Partition type:
  p  primary (1 primary, 0 extended, 3 free)
  e  extended
Select (default p): p
Partition number (1-4, default 2):
Using default value 2
First sector (391104-31457279, default 391104):
Using default value 391104
Last sector, +sectors or +size{K,M,G} (391104-31457279, default 31457279):
Using default value 31457279

Command (m for help): p

Disk /dev/vda: 16.1 GB, 16106127360 bytes
16 heads, 63 sectors/track, 31207 cylinders, total 31457280 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

  Device Boot      Start        End      Blocks  Id  System
/dev/vda1  *          63      391103      195520+  83  Linux
/dev/vda2          391104    31457279    15533088  83  Linux

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: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.@]
# VM: Une relecture de la table de partition au niveau système sera probablement nécéssaire:[@
blockdev --rereadpt /dev/vd
# Ou avec partprobe, dans le packet de parted
partprobe /dev/vda
@]
# VM: On ajuste le PV pour gagner de l'espace:[@
pvresize /dev/vda2
@]

May 07, 2014, at 02:55 AM EST by 88.166.207.155 -
Changed lines 20-21 from:
# On attache le disque à la VM, et ce de manière permanente:[@
virsh attach-disk storage
  /srv/vms/vm_storage_data.img vdb --driver qemu --subdriver qcow2
to:
# On attache le disque à la VM, et ce de manière permanente (avec l'option @@--config@@):[@
virsh attach-disk storage 
/srv/vms/vm_storage_data.img vdb --config --driver qemu --subdriver qcow2
Changed line 23 from:
virsh attach-disk example-domain /path/to/another/image vdb --driver qemu --subdriver qcow2@]
to:
virsh attach-disk example-domain /path/to/another/image vdb --config --driver qemu --subdriver qcow2@]
May 06, 2014, at 01:50 AM EST by 88.166.207.155 -
Changed line 4 from:
to:
https://vougeot.nexen.net/awh/modop/proxmox/gestion_disques
May 06, 2014, at 01:49 AM EST by 88.166.207.155 -
May 06, 2014, at 01:44 AM EST by 88.166.207.155 -
Added lines 1-71:
Ouléé, la virtu à ma manière: KISS et cool :-)

!! Rajouter de l'espace disque sur une VM


!! Rajouter un disque sur une VM
# On crée un nouveau disque sur l'hyperviseur:[@
cd /srv/vms
qemu-img create -f qcow2 -o preallocation=metadata vm_<VM>_<NAME>.img <TAILLE>G@]Exemple:[@
root@jezhyp:/srv/vms# qemu-img create -f qcow2 -o preallocation=metadata vm_storage_data.img 100G
@]

# On vérifie que les modules @@acpiphp@@ et @@pci_hotplug@@ sont chargés:
## [@modprobe acpiphp pci_hotplug@]Et on vérifie que c'est bien chargé:[@
lsmod | grep -iE '(acpiphp)|(pci_hotplug)' @]
## Si ça ne marche pas ou qu'il n'y a pas de résultats, c'est que c'est peut être déjà chargé dans le noyau. Pour vérifier, on regarde que les modules soient bien chargés:[@
grep -iE '(acpiphp)|(pci_hotplug)' /var/log/messages
@]

# On attache le disque à la VM, et ce de manière permanente:[@
virsh attach-disk storage  /srv/vms/vm_storage_data.img vdb --driver qemu --subdriver qcow2
@]Exemple:[@
virsh attach-disk example-domain /path/to/another/image vdb --driver qemu --subdriver qcow2@]

# Si ça a fonctionné, on peut voir avec un @@dmsg@@ sur la VM:[@
[...]
[ 5036.337987] virtio-pci 0000:00:06.0: enabling device (0000 -> 0003)
[ 5036.338905] ACPI: PCI Interrupt Link [LNKB] enabled at IRQ 11
[ 5036.338967] virtio-pci 0000:00:06.0: setting latency timer to 64
[ 5036.339369] virtio-pci 0000:00:06.0: irq 45 for MSI/MSI-X
[ 5036.339397] virtio-pci 0000:00:06.0: irq 46 for MSI/MSI-X
[ 5036.468289]  vdb: unknown partition table
@]

!! Réduire ou agrandir une partition (LVM)
Ça c'est tout simple, mais un peu touchy pour la réduction. Avant de commencer, quelques notes:
* L'augmentation de la taille d'une parition ext3/4 peut se faire à chaud, c'est à dire sans démonter la partition.
* La réduction d'une partition quand elle peut corrompre vos données si elle est mal faite, en l'occurence si vous réduisez la partition en deça de la taille du système de fichier.
* A ma connaissance, la réduction d'une partition nécéssite le démontage de la partition, et donc de couper tous les processus qui accèdent à cette partition.
* La limitation du fait que ça soit possible à chaud ou non dépends essentiellement du système de fichier de la partition. Ici, ça fonctionne avec ext3 et ext4.
C'est parti!
# Ajout d'espace disque:
# Réduction d'espace disque
## On regarde la taille minimale que la partition peut prendre:[@
# df -h | grep /dev/mapper/system-sys_backup_mother
/dev/mapper/system-sys_backup_mother  493G  57G  412G  12% /backup_mother
@] La taille minimal est donc de 57G, mais il faut toujours prendre un peu plus, pour ne pas couper les données. On la retailler à 60G.
## On démonte la partition (obligatoire):[@
umount /dev/mapper/system-sys_backup_mother@]
## On check la partition (obligatoire):[@
e2fsck -f /dev/mapper/system-sys_backup_mother@]
## On réduit la taille du système de fichier:[@
resize2fs /dev/mapper/system-sys_backup_mother 60G
@]
## On réduit la taille de la partition, mais obligatoirement un peu moins que ce que l'on a réduit sur le système de fichier. Prendre 5 Go de plus est une sécurité non négociable, 1 Go est le minimum. En dessous de ça, vous risquez de corrompre votre système de fichier, et de perdre des fichiers.[@
lvresize -L65G /dev/mapper/system-sys_backup_mother
  WARNING: Reducing active logical volume to 65.00 GiB
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce sys_backup_mother? [y/n]: y
  Reducing logical volume sys_backup_mother to 65.00 GiB
  Logical volume sys_backup_mother successfully resized
@] Comme vous le voyez, LVM vous prévient de pas faire de boulettes.
## On récupère l'espace disque manquant en retaillant le système de fichier à son maximum (on précise pas la taille cette fois-ci):[@
resize2fs /dev/mapper/system-sys_backup_mother @]
## On remonte la partition:[@
mount /dev/mapper/system-sys_backup_mother@]
## C'est fini, je vous invite à voir la taille de votre partition avec un @@df -h@@

!! Récupérer de l'espace disque sur un fichier qcow2
L'idée est d'écrire des zero

Page last modified on January 14, 2015, at 07:03 PM EST