proxmox

Dans cette première partie, nous allons voir comment virtualiser un serveur physique Windows Server 2008 (R2) pour le faire tourner dans Proxmox (je n’ai pas testé avec du 2003(R2) / 2012(R2)). Cet article repose en grande partie sur le wiki Proxmox mais détaillera plus précisément la méthode utilisant VMware Converter.

Il nous faut donc :

  • 1 serveur Windows server 2008 (R2)
  • 1 serveur Proxmox 4.2 (la dernière mouture à ce jour)
  • 1 disque dur USB (formaté en ntfs) ou 1 partage réseau pour stocker le résultat de la conversion

Pour info, j’ai réalisé l’opération avec le lab suivant (composé essentiellement de matériel obsolète/recyclé) :

  • 1 serveur Windows 2008 R2 (2 CPU Intel Xeon E5504 / 16 Gio RAM / 1 partition système RAID1 de 146 Gio + 1 partition données RAID5 de 407 Gio)
  • 1 cluster de 2 serveurs Proxmox 4.2-17/e1400248 (1 CPU Intel Xeon E5420 / 8 Gio RAM / 1 partition système de 10Gio, 1 partition SWAP de 4 Gio et 1 partition données ZFS de 60 Gio)
  • 1 SAN Nexenta 4.0.4 Community Edition (2 CPU Intel Xeon E5504 / 16 Gio RAM / RAIDZ1 3x500Gio + 1 SSD 128 Gio ZIL) pour stocker les VMs, monté dans le cluster en ZFS over iSCSI
  • 1 partage NFS/SMB sur un NAS pour stocker temporairement le résultat de la virtualisation

Je précise tout ça car les captures d’écran viendront de ce lab et que si j’essaye ici de rester dans une situation assez standard, je décrirai à l’occasion les opérations spécifiques au montage ci-dessus.

1. Conversion P2V via VMware Converter

Toutes les opérations suivantes ont lieu sur le serveur Windows server 2008 R2 à virtualiser.

La première chose à faire est de télécharger la dernière version de VMware Converter sauvegarder le serveur physique !

Sauvegarder ensuite la base de registre car nous allons la modifier :

Windows + R -> regedit -> Clic-droit sur la racine -> Exporter (sur le Bureau par exemple)

Maintenant et seulement maintenant nous sommes prêt à oeuvrer.

Télécharger le fichier https://pve.proxmox.com/mediawiki/images/f/f5/Mergeide.zip, le décompresser et l’exécuter. Il s’agit d’un ensemble de clés de registre qui permettront à la VM de démarrer sur des disques (virtuels) connectées à des contrôleurs (virtuels) IDE. Sans cette étape, il y a de grandes chances que la VM affiche un BSOD au bout de quelques secondes.

Télécharger le fichier https://www.spice-space.org/download/windows/spice-guest-tools/spice-guest-tools-0.100.exe, pour l’instant on n’en fera rien mais il nous sera utile dans le 2ème partie. Il s’agit d’un ensemble de pilotes et de fonctionnalités du même style que ceux offerts pas les VMware Tools ou les Guest Additions de Virtualbox.

Télécharger la dernière version de VMware Converter et de l’installer sur le serveur physique. Elle est disponible à cette adresse https://my.vmware.com/en/web/vmware/evalcenter?p=converter (la création d’un compte VMware est obligatoire, il faut bien donner du travail aux commerciaux…).

Connecter le disque dur USB au serveur (ou dans mon cas, préparer un partage SMB) pour y stocker le résultat de la conversion.

Lancer VMware Converter et choisir les options suivantes au fil des étapes :

  • Source type : Powered-on machine
  • Specify the powered-on machine : This local machine
  • Select destination type : VMware Workstation or other VMware virtual machine
  • Select VMware Product : VMware Workstation 11.0.x
  • Name : Entrer le nom de l’image (ici : srv2k8r2.enterprise.net)
  • Select a location for the virtual machine : Indiquer le dossier dans lequel sera créée l’image, disque dur USB ou partage réseau (ici : le lecteur F:)
  • Configurer le matériel (nombre de CPU, taille de la RAM, etc) et les services (désactiver les services obsolètes ou non pertinents du style monitoring du serveur physique, RAID et autres). Dans le doute ne pas modifier les services, on fera le ménage plus tard.
vmware-converter

vmware-converter

La durée de la conversion dépend du volume de données à transférer et de la vitesse de l’interface USB ou réseau. Une fois terminée, on obtient un fichier .vmdk par disque et un fichier .vmx dont on ne fera rien, ce dernier décrivant le matériel de la VM pour une importation dans un hyperviseur VMware. Le wiki Proxmox précise à cet instant qu’il peut être nécessaire de démarrer la VM dans VMware Workstation Player (disponible gratuitement sans compte ce coup-ci) afin d’y installer d’éventuels pilotes manquants pour le contrôleur de disque mais je n’ai jamais eu à le faire, à vous de voir au cas par cas.

2. Conversion VMDK vers QCOW2/RAW

Toutes les opérations suivantes ont lieu sur le serveur Proxmox.

À ce stade, on pourrait conserver le fichier .vmdk mais on va le convertir en un format plus indiqué pour Proxmox (enfin KVM). Pour une VM classique stockée sur l’hyperviseur, on va opter pour le format QCOW2. Dans mon cas (stockage distant ZFS over iSCSI) je n’ai pas le choix seul le format RAW est supporté. En règle générale, il vaut mieux éviter de superposer QCOW2 sur ZFS, les deux formats faisant du copy on write on risque de se retrouver avec des performances déplorables en écriture.

Débrancher le disque dur USB du serveur Windows 2008 R2 et le brancher sur le serveur Proxmox.

Identifier le disque dur USB :

fdisk -l
Disque /dev/sdd : 465,8 GiB, 500107860992 octets, 976773166 secteurs
Unites : sectors of 1 * 512 = 512 octets
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xa4b57300

Peripherique Amorcage Start Fin Secteurs Size Id Type
/dev/sdd1 63 976768064 976768002 465,8G 7 HPFS/NTFS/exFAT

Installer le paquet ntfs-3g et monter le disque dur USB :

apt-get install ntfs-3g
mkdir /media/usb_disk
mount /dev/sdd1 /media/usb_disk

Vérifier que le fichier .vmdk est bien présent :

ls /media/usb_disk
srv2k8r2.enterprise.net.vmdk	srv2k8r2.enterprise.net.vmx

Convertir le fichier .vmdk en .qcow2 (on peut améliorer la vitesse de conversion en créant le fichier .qcow2 sur un autre support que le disque USB) :

qemu-img convert -f vmdk /media/usb_disk/srv2k8r2.enterprise.net.vmdk -O qcow2 /media/usb_disk/srv2k8r2.enterprise.net.qcow2

ou en .raw :

qemu-img convert -f vmdk /media/usb_disk/srv2k8r2.enterprise.net.vmdk -O raw /media/usb_disk/srv2k8r2.enterprise.net.raw

Fin de la première partie, nous avons maintenant un disque utilisable par Proxmox et nous verrons la prochaine fois comment créer et optimiser la VM.