You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
blog/posts/2016/2016-01-12-virtualization-t...

91 lines
3.8 KiB
Markdown

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

<!-- title: Mon mémo pour la virtualisation -->
<!-- category: Virtualisation -->
<!-- tag: planet -->
Cet article est un mémo de toutes les commandes qui me sont régulièrement
utiles quand je manipule des machines virtuelles VirtualBox, VMware et KVM.<!-- more -->
L'utilitaire **qemu-img** du paquet qemu-utils (sous Debian) a bien évolué et
c'est l'outil de prédilection pour les conversions ; on peut se passer de
l'utilitaire *VBoxManage* (qui fait partie de VirtualBox).
### Convertir une machine virtuelle VirtualBox en KVM
La première approche c'est de créer une VM VirtualBox avec le type de disque
natif VDI et de convertir le disque au format QCOW2 avec *qemu-img* :
qemu-img convert -f vdi -O qcow2 vm-disk.vdi vm-disk.qcow2
Mais si la finalité c'est de mettre au point la VM sous VirtualBox avant de
l'installer sous KVM (dans un Proxmox par exemple), on peut plutôt créer une VM
VirtualBox directement avec le type de disque QEMU (QCOW) dans VirtualBox.
![VirtualBox](/images/2016/virtualbox-creation.png "VirtualBox")
Ensuite, il reste à convertir le disque du format QCOW vers QCOW2 :
qemu-img convert -O qcow2 vm-disk.qcow vm-disk.qcow2
### Convertir un disque VMware en VirtualBox
Le format natif des disques VMware est VMDK. L'utilitaire *VBoxManage* permet
de convertir un fichier VMDK en VDI.
VBoxManage clonehd --format VDI vm-disk.vmdk vm-disk.vdi
Mais *qemu-img* reste la voie royale pour faire le même boulôt :
qemu-img convert -f vmdk -O vdi vm-disk.vmdk vm-disk.vdi
### Convertir une machine virtuelle VMware en KVM
D'abord exporter la machine au format OVF puis convertir le disque avec l'ami *qemu-img* :
qemu-img convert -f vmdk -O qcow2 vm-disk.vmdk vm-disk.qcow2
Ensuite, on peut créer une VM avec des caractéristiques semblables dans KVM et
attacher le disque.
### Retaper les interfaces réseau
Lorsque la machine virtuelle a été créée depuis une machine physique par le
tryptique : clonezilla / restauration virtualbox / conversion KVM, il se peut
que la configuration logique des interfaces réseaux (*/etc/network/interfaces*
sous Debian ou */etc/sysconfig/network-scripts/ifcfg-???* sous RedHat / CentOS)
ne correspondent plus aux interfaces physiques. Dans ce cas il faut adapter la
configuration UDEV qui s'occupe de réaliser cette correspondance sur la plupart
des distributions en éditant le fichier
*/etc/udev/rules.d/70-persistent-net.rules* :
# This file was automatically generated by the /lib/udev/write_net_rules
# program, run by the persistent-net-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single
# line, and change only the value of the NAME= key.
# PCI device 0x8086:0x100e (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="32:94:32:76:50:6d", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
# PCI device 0x8086:0x100e (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="6a:79:37:a3:24:32", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"
# PCI device 0x8086:0x100e (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="fa:a8:8e:cc:fd:69", ATTR{type}=="1", KERNEL=="eth*", NAME="eth2"
# PCI device 0x8086:0x100e (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="ce:1c:8c:c2:fd:f7", ATTR{type}=="1", KERNEL=="eth*", NAME="eth3"
# Compacter un disque
Il ne s'agit pas de modifier la taille du disque virtualisé mais de réduire son encombrement sur le disque hôte par du compactage.
Depuis le système GNU/Linux virtualisé, on nullifie (horrible ce mot) l'espace libre :
dd if=/dev/zero of=/bigemptyfile bs=4096k
rm -rf /bigemptyfile
On stoppe la VM et on utilise *vboxmanage* pour compacter le disque :
vboxmanage modifyhd disk.vdi --compact
Et pour Ms Windows ? je ne sais pas et ça ne m'intéresse pas (*troll inside*)