Le P2V - Migration machine physique en machine virtuelle

Christophe LOUVET

Avec la montée en puissance du cloud et de l’utilisation de la virtualisation, il est de plus en plus fréquent de devoir virtualiser des machines physiques en production.

Cet article a pour but de décrire le fonctionnement de la migration d'une machine physique en machine virtuelle, processus nommé P2V.

N'hésitez pas à me donner votre avis :

Commentez

- Titre : Le P2V - Migration machine physique en machine virtuelle

- Auteur : Christophe LOUVET

- Parution : 15 juin 2014

- Mise à jour : 9 septembre 2021

- Public visé :

- Licence : Copyright ® 2014 Christophe LOUVET. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Sommaire

- 1. Sommaire

- 1-1. Nomenclature et abréviations utilisées

- 2. Migration à chaud

- 2-1. Le principe de fonctionnement

- 2-2. Produits de P2V à chaud

- 2-2-1. VMware vCenter Converter

- 2-2-2. Microsoft Virtual Machine Converter

- 2-2-3. Veeam backup & Replication

- 2-2-3-1. Sauvegarde

- 2-2-3-2. Restauration en VM

- 2-2-4. Xenconvert

- 2-2-5. Acronis Instant Restore

- 3. Migration à froid

- 3-1. Les différents systèmes

- 3-1-1. Cas Windows XP

- 3-1-2. Windows 2003 Server

- 3-1-3. Cas Vista / Windows 7 / Windows 8 / Windows 10

- 3-1-4. Windows Server 2008 et plus

- 3-1-5. Mac OS X

- 3-1-6. Mac OS X 10.9 (Mavericks) et supérieurs

- 3-1-6-1. Mac OS X Server

- 3-2. Les produits de sauvegarde et/ou clonage

- 3-2-1. Acronis

- 3-2-1-1. Aspect sauvegarde/restauration

- 3-2-1-2. Aspect clone

- 3-2-2. Ghost

- 3-2-3. Macrium Reflect (Windows)

- 3-2-4. HDClone X

- 3-2-5. Clonezilla (Windows/Linux)

- 3-2-5-1. Exemple de sauvegarde

- 3-2-5-2. Exemple de restauration

- 3-2-5-3. Clonezilla server

- 3-2-6. RescueZilla (Windows/Linux)

- 3-2-6-1. Sauvegarde

- 3-2-6-2. Restauration

- 3-2-6-3. Exploration image RescueZilla (beta)

- 3-2-7. Fogproject

- 3-2-8. Retrospect

- 3-2-9. Altaro Physical Server Backup

- 3-2-10. Time Machine (Macintosh)

- 3-2-11. Carbon Copy Cloner (Macintosh)

- 3-3. Cas d'une machine en panne

- 4. Migration « à tiède »

- 4-1. Windows

- 4-1-1. Macrium Reflect

- 4-1-2. Disk2Vhd

- 4-1-3. WinImage

- 4-2. Linux

- 4-2-1. Sauvegarde par dd

- 4-2-2. Copie système dans une image sans les secteurs inutilisés

- 4-3. Finalisation avant arrêt de la machine physique

- 5. Conclusion

- 5-1. Retours d’expérience

- 5-1-1. Migration de mon propre poste

- 5-1-2. Sécurisation ancien serveur d'application comptabilité

- 5-1-3. Sécurisation poste VISTA

- 6. Remerciements

1 - Sommaire

Avec la montée en puissance du cloud et de l’utilisation de la virtualisation, il est de plus en plus fréquent de devoir virtualiser des machines physiques en production.

Cet article a pour but de décrire le fonctionnement de la migration d'une machine physique en machine virtuelle, processus nommé P2V.

Les essais présentés ont été essentiellement effectués avec Windows XP et Linux Debian 7 pour des questions de ressources matérielles, ces systèmes obsolètes fonctionnant très bien avec seulement 512 Mo de mémoire. Les principes seront globalement les mêmes avec des systèmes à version supérieure.

Deux types de migration sont possibles :

- la migration à chaud : sans interruption de service ;

- la migration à froid, entraînant une interruption des services le temps du traitement.

Celles-ci peuvent être manuelles, automatiques, ou semi-automatiques.

Je rajouterai à cela une « migration à tiède » : expression de mon propre cru, aucunement technique, permettant de pallier, du moins en partie, le manque de possibilité de migration à chaud de certains produits ou à la nécessité d’avoir un produit payant pour cette fonctionnalité. En terme technique, nous parlerions plutôt de migration semi-automatique Cette opération provoquera une interruption partielle de service, le temps d’effectuer les opérations.

En contrepartie, cette opération nécessite plus de compétences techniques.

1-1 - Nomenclature et abréviations utilisées

- VM : Virtual Machine – machine virtuelle.

- P2V : Physical To Virtual – physique vers virtuel : processus permettant la transformation d’une machine physique vers une machine virtuelle.

- V2V : Virtual To Virtual – virtuel vers virtuel : processus permettant la conversion d’une VM d’un hyperviseur vers un autre.

- V2P : Virtual to Physical – virtuel vers physique : processus de conversion de machine virtuelle vers une machine physique.

- Appliance : sorte de modèle de VM. Le terme peut aussi être utilisé pour une VM à importer fournie prête à l'emploi.

- ovf/ova : Open Virtualization Format/Open Virtualization Archive : standard censé permettre la portabilité et l’automatisation d’installation de VM ou plutôt d’appliance.

- vhd : Virtual Hard Disk : format de fichier d’image disque créé par Connectix pour son logiciel VirtualPC, racheté par Microsoft et utilisé avec Hyper-V. vhd est maintenant remplacé par VHDX dans Hyper-V, Microsoft fournissant un utilitaire de conversion. vhd est toujours utilisable dans Hyper-V.

- vmdk : Virtual Machine disk : format d’image disque utilisé par VMWare.

- vdi : VirtualBox Disk Image : format d’image disque utilisé par VirtualBox – ne pas confondre avec VDI : Virtual Desktop Infrastructure utilisé pour fournir des bureaux virtuels.

- QCow2 : Qemu Copy-on-write : format d’image disque utilisé par Qemu/KVM.

- snapshot/cliché instantané : s’applique à une VM complète ou un de ses disques. Lors de la création du cliché, les fichiers de la VM (ou du disque) vont être placés en lecture seule. Les prochains changements seront stockés dans un ou plusieurs fichiers secondaires. Au fur et à mesure des nouvelles écritures, le cliché va grossir. Le cliché pourra ensuite être supprimé avec intégration des modifications dans les fichiers d’origine, ou abandon des modifications avec retour à la situation initiale.

- Datastore : que l’on pourrait traduire par magasin de données, correspondra à un emplacement de stockage géré par l’hyperviseur (système de fichiers VMFS dans le cas de de vMWare, volume NFS, volume iSCSI, etc.).

2 - Migration à chaud

La migration à chaud consiste à effectuer la migration en VM d’une machine physique, sans l’arrêter, ceci de façon transparente.

Ce processus comporte les étapes suivantes :

- création de la machine virtuelle sur l’hyperviseur de destination ;

- transfert du contenu de la machine physique dans la machine virtuelle tout en la laissant en production ;

- ajout des additions invitées de l’hyperviseur dans la VM ;

- tests de la machine virtuelle une fois la copie effectuée sans arrêt de la machine physique (dans la mesure du possible, la machine source étant toujours en production) ;

- application du delta(1) depuis la création de la VM ;

- arrêt de la machine physique.

Pour utiliser ce processus, il faut que le produit utilisé supporte :

- l'hyperviseur de destination ;

- le système d'exploitation source.

2-1 - Le principe de fonctionnement

Le principe de fonctionnement sera globalement le même, quels que soient l’hyperviseur et le type de machine physique. Une console d'accès permettra de gérer les opérations. Un agent peut être installé sur le poste à virtualiser soit automatiquement, soit manuellement, quand l'application le permet. La console sert à déclencher la procédure et à la suivre. Les informations nécessaires à la console pour effectuer la migration seront :

- la machine source ;

- la destination (serveur, datastore de celui-ci, nom de la VM) ;

- les réglages (disques sources à migrer, disque de destination statique/dynamique, réglages réseau machine destination, nombre de vCPU, quantité de RAM). Les réglages par défaut sont récupérés depuis la machine source.

Les écrans des consoles des différents produits seront relativement similaires.

2-2 - Produits de P2V à chaud

Dans le cadre de ce tutoriel, je vous présenterai les produits suivants :

- VMWare Converter, produit lié aux produits VMWare ;

- Veeam ;

- Microsoft Virtual Machine converter ;

- XenConvert, produit dédié à Citrix XenServer ;

- Acronis ;

Liste non exhaustive.

2-2-1 - VMware vCenter Converter

VCenter Converter, anciennement VMWare Converter permet de transférer à chaud une machine physique vers un hyperviseur VMWare. À partir du logiciel, il faudra sélectionner la machine source à convertir (soit la machine sur laquelle est installé VCenter Converter, soit une machine sur le réseau).

Voici les étapes de la migration :

- sélection de la source (locale si virtualisation de la machine sur laquelle est présent VCenter Converter) ;

- sélection du serveur de destination et fourniture des paramètres d’authentification ou du dossier de stockage pour une VM à destination de VMWare Workstation ;

- réglages (disque dur extensible ou fixe, paramètres réseau) ;

- personnalisation de la VM (installation additions invitées, changement nom machine, etc.).

Il était auparavant possible d’utiliser une version live-cd, mais cette version n’est plus disponible (il s’agirait dans ce cas d’une migration à froid).

Voici les étapes…

Après installation du produit, et lancement de celui-ci, vous aurez la console permettant d’effectuer la conversion :

Après clic sur « Convert machine », vous aurez l’écran suivant :

VMware vCenter Converter propose par défaut la conversion d’une machine distante, et vous demande donc son adresse IP et ses identifiants. En cliquant sur le menu déroulant, vous pourrez sélectionner « This local machine » :

Pour pouvoir convertir une machine distante, il faudra avoir installé l’agent de vCenter Converter sur celle-ci, installable en sélectionnant l’option client/serveur lors de l’installation du produit.

Il faudra ensuite sélectionner la destination (VMWare Infrastructure pour un hyperviseur ESX/VSphere type 1 bare metal ou VMWare workstation pour une VM à destination de l’hyperviseur type 2) :

Dans le cas d’un hyperviseur ESX/VSPhere, il faudra entrer son adresse IP ou nom d’hôte et les identifiants, il faudra alors sélectionner le datastore.

Dans notre cas, pour l’exemple, nous générons une VM à destination de VMware Worstation, stockée dans un dossier partagé :

Vous pourrez ensuite personnaliser les réglages :

Détail de l’écran « Data to copy » permettant de sélectionner les disques à copier dans la VM :

Détail des écrans de configuration matérielle mémoire et réseau :

Vous pourrez ensuite ajuster les services, déclencher automatiquement l’installation des additions invitées.

Vous aurez en dernier écran contenant un résumé de l‘opération à effectuer :

Une fois le processus déclenché, vous pourrez suivre l’état d’avancement du job :

Une fois la conversion terminée, VMware vCenter Converter reste ouvert :

Reste à votre charge d’arrêter la machine physique et de démarrer ensuite la VM nouvellement créée (sauf si vous avez choisi le démarrage automatique dans les options).

2-2-2 - Microsoft Virtual Machine Converter

Microsoft Virtual Machine Converter (MVMC) est un outil fourni gratuitement par Microsoft pour convertir des machines virtuelles VMWare vers Hyper-V (on parlera alors de V2V), ou une machine physique en VM, ceci à destination d’Hyper-V ou d’Azure. Il nécessite le framework .NET en version 4 et n’est prévu que pour les serveurs Windows.

Le serveur source devra avoir la fonctionnalité « service de transfert intelligent (BITS) ». Le pare-feu devra autoriser WMI sous peine de déclencher une erreur RPC.

Voici le premier écran qui présente le produit :

Le premier écran de traitement vous demandera si vous voulez faire une conversion de machine virtuelle (V2V) ou de machine physique (P2V), ce qui nous intéresse dans le cadre de ce tutoriel.

Vous seront ensuite demandés l’adresse IP ou le nom d’hôte, et l’identifiant de connexion :

Vous ne pourrez pas virtualiser la machine sur laquelle se trouve installé MVMC.

L’écran suivant concernera les informations sur la machine source, il faudra cliquer sur « scan system » pour que les informations soient récupérées :

Informations récupérées :

Vous pourrez ensuite configurer les disques virtuels, sur l’image vous voyez la taille du disque de la machine physique ainsi que l’espace occupé. Vous pouvez également voir que, par défaut, les disques virtuels de destination sont en dynamique.

Sur l’écran suivant, vous pourrez :

- donner un nom à la VM de destination ;

- indiquer le nombre de CPU (ou plutôt de vCPU) ;

- la RAM affectée à la VM.

Vous seront ensuite demandées les informations concernant l’hyperviseur :

Les derniers écrans vous demanderont les réglages concernant le workspace (équivalent au datastore de VMWare) et les réglages réseau.

Vous aurez un résumé avant déclenchement de la conversion.

2-2-3 - Veeam backup & Replication

Les produits Veeam font référence dans la sauvegarde de machines virtuelles. Leur produit Veam Backup & Replication permet de restaurer instantanément une sauvegarde (de machine physique ou virtuelle) vers une VM dans les hyperviseurs VMWare et Hyper-V. Il sera également possible de restaurer sur Amazon EC2 ou Microsoft Azure.

Cette solution sera lourde pour ne migrer qu’une seule machine, mais intéressante dans le cadre de la migration de plusieurs machines et/ou si vous utilisez la solution ou envisagez de l’utiliser. La solution est gratuite jusqu’à 10 workload (1 workload = 1 machine physique, 1 VM, 1 NAS).

Nous partirons ici du principe que Veeam est installé, que l’espace de stockage des sauvegardes est configuré, ainsi que l’accès à l’hyperviseur sur lequel la restauration sera effectuée.

2-2-3-1 - Sauvegarde

Nous commencerons par créer un job de sauvegarde :

Le poste concerné étant un serveur, nous sélectionnerons « server » dans l’écran suivant en mode « managed by backup server » (voir la description pour la différence) :

L’écran suivant nous demandera le nom du job :

Suivra la sélection de la machine source. « Individual computer » vous servira à choisir une machine précise, « Protection group » servira à sélectionner une machine ou un groupe de machines, groupe préconfiguré :

Il faudra ensuite entrer le nom d’hôte ou l’adresse IP de la machine source (dans mon cas la machine locale, mais la sauvegarde pourrait être déclenchée depuis une autre machine hébergeant le serveur Veeam). La ligne « Credentials » va permettre de sélectionner un couple login/mot de passe préenregistré ou d’en créer un.

Comme nous ne comptons sauvegarder qu’un poste, nous pourrons passer à l’écran suivant. Ci-dessous la machine sélectionnée :

Nous sélectionnons ensuite l’ordinateur entier :

L’écran suivant nous demandera de sélectionner le dépôt de stockage où stocker notre sauvegarde, la politique de rétention (inutile dans notre cas de P2V pur, nécessaire ensuite pour effectuer une sauvegarde) :

L’écran suivant permettra d’affiner les réglages pour les applications spécifiques comme les bases de données pour garder une cohérence de la sauvegarde.

L’écran suivant concernera la période de déclenchement automatique du job, que nous n’utiliserons pas :

Vous aurez ensuite le résumé de la tâche. La case « run the job… » étant cochée, la sauvegarde se déclenchera après le clic sur « finish ».

Ci-dessous, écran de sauvegarde en cours :

2-2-3-2 - Restauration en VM

Rappel de prérequis : la connexion avec l’hyperviseur de destination doit avoir été effectuée.

Pour effectuer une restauration, il faudra tout simplement depuis l’écran « home » cliquer sur « restore » et sélectionner le job concerné :

L’écran suivant vous demandera le type de restauration à effectuer, il faudra dans notre cas sélectionner « entire machine restore »

Nous sélectionnerons ensuite la restauration vers un hyperviseur, dans l’exemple, Hyper-V :

Il faudra commencer à cliquer sur « add » pour parcourir le contenu de la sauvegarde (la sauvegarde pouvant contenir plusieurs machines) :

Ci-dessous la machine à restaurer sélectionnée :

Dans l’écran suivant, vous verrez qu’aucun hôte de destination n’est sélectionné :

Il faudra cliquer sur « host » de façon à sélectionner l’hyperviseur (dans notre exemple l’hyperviseur sur la même machine que Veeam : 127.0.0.1) :

Vous pourrez ensuite cliquer sur « next » :

Vous pourrez ensuite gérer les réglages de la VM, d’abord le datastore :

Puis les réglages réseau. Vous pourrez voir qu’il n’y a pas de connexion par défaut.

Vous n’aurez plus qu’à appuyer sur « next » :

La VM va être créée. Veaam va simuler des disques virtuels correspondant au contenu de la sauvegarde sans restaurer le contenu, l’accès au contenu de la sauvegarde se fera à la volée via un pilote spécifique reliant les disques virtuels de la VM à la sauvegarde. Les données modifiées après démarrage de la VM seront écrites dans un snapshot.

À ce stade, la VM est dépendante de la sauvegarde. Pour finaliser celle-ci, il faudra cliquer sur l’icône « Migrate to production » . Cette opération va extraire de façon transparente et définitive les données de la sauvegarde vers des disques virtuels normaux et donc rendre la VM autonome par rapport à la sauvegarde. Une fois l’opération terminée, le snapshot de modifications sera intégré. Les performances de la VM seront dégradées jusqu’à finalisation de la procédure.

2-2-4 - Xenconvert

Xenconvert permet de convertir une machine physique vers Xen Server. Il nécessite le framework .NET en version 4. Il n'y a pas de version Linux.

Le 1er écran permet de choisir la source et la destination. La source sera la machine en cours (this machine) et la destination sera soit un fichier .ovf (open virtualization format), soit le placement sur Xenserver.

Dans le cas d'un placement sur un XenServer, il faut entrer l'adresse de celui-ci, le nom d'utilisateur, le mot de passe et le workspace.

L'exemple ci-dessus va générer un fichier .ovf.

L’écran suivant sert à sélectionner les volumes à virtualiser, j’ai enlevé le disque E : sur lequel je stockerai le fichier ovf. Dans la seconde partie de l’écran, j’ai redimensionné le disque (cela est optionnel). Mon disque d’origine pèse 40 Go dont 9 Go sont utilisés, j’ai compté 10 Go de disque de libre. Le disque fera donc 19 Go. Ce dernier n’est pas un chiffre rond comme un disque réel, mais ne gênera pas la virtualisation.

L’écran suivant permet la sélection de l’emplacement de stockage. Je crée un fichier .ova compressé plutôt qu’un ovf.

L’écran suivant permet de donner un nom à la VM :

La conversion commence. L’application crée tout d’abord un fichier .vhd du nom de la VM à l’emplacement de destination. Sur l’écran ci-dessous, on peut voir celui-ci dans la fenêtre du disque E :, la destination étant à cet endroit. Ce fichier .vhd est ensuite automatiquement monté et formaté. Le registre est ensuite copié dessus, puis tous les autres fichiers de la source. Sur l’écran suivant, on voit le disque F : (point de montage de e:\totof-vm.vhd, le disque virtuel de la future VM) en cours de remplissage.

Une fois la copie terminée, le fichier .vhd est démonté puis compressé (suite à ma demande de mise en format .ova au lieu d’ovf).

Extraits du log de conversion :

Converting boot files...
Citrix XenTools is not installed.
Configuring Xen boot devices in control set ControlSet001...
Using service image path system32\DRIVERS\intelide.sys.
Using service image path system32\DRIVERS\atapi.sys.
Service image path ControlSet001\Services\pciide\ImagePath is missing. Le fichier spécifié est introuvable. (0x00000002)
Using service image path system32\DRIVERS\pciide.sys.
Service image \\?\Volume{aba2abcc-ed72-11e3-b396-000c29e9ad4b}\WINDOWS\system32\DRIVERS\pciide.sys was not installed.
Searching for pciide.sys in cabinet C:\WINDOWS\driver cache\i386\SP3.cab...
Searching for pciide.sys in cabinet C:\WINDOWS\driver cache\i386\driver.cab...
Installed service image \\?\Volume{aba2abcc-ed72-11e3-b396-000c29e9ad4b}\WINDOWS\system32\DRIVERS\pciide.sys.
Set service start type to type 0.
Adding IntelIde to critical device database...succeeded
Adding Ide channel to critical device database...succeeded
Using service image path system32\DRIVERS\i8042prt.sys.
Disabling Microsoft Virtual Server service 1-driver-vmsrvc in ControlSet001.
Disabling Microsoft Virtual Server service 1-vmsrvc in ControlSet001.
Disabling Microsoft Virtual Server service MRxVPC in ControlSet001.
Disabling Microsoft Virtual Server service VPCMap in ControlSet001.
Configuring Xen boot devices in control set ControlSet003...
Using service image path system32\DRIVERS\intelide.sys.
Using service image path system32\DRIVERS\atapi.sys.
Service image path ControlSet003\Services\pciide\ImagePath is missing. Le fichier spécifié est introuvable. (0x00000002)
Using service image path system32\DRIVERS\pciide.sys.
Set service start type to type 0.
Adding IntelIde to critical device database...succeeded
Adding Ide channel to critical device database...succeeded
Using service image path system32\DRIVERS\i8042prt.sys.
Disabling Microsoft Virtual Server service 1-driver-vmsrvc in ControlSet003.
Disabling Microsoft Virtual Server service 1-vmsrvc in ControlSet003.
Disabling Microsoft Virtual Server service MRxVPC in ControlSet003.
Disabling Microsoft Virtual Server service VPCMap in ControlSet003.
Restarting special services...
Volume to Volume stopped at vendredi 6 juin 2014 15:00:46
Volume to Volume lasted 3205,0 seconds
Physical to Disk stopped at vendredi 6 juin 2014 15:00:46
Physical to Disk lasted 3212,5 seconds
IOCTL_MOUNTMGR_SET_AUTO_MOUNT is not available before Windows Server 2003.
Dismounting VHD...
Physical to VHD stopped at vendredi 6 juin 2014 15:00:51
Physical to VHD lasted 3218,4 seconds
Creating the OVF Package...
Compressing OVF Package...
Creating OVA...
Physical to OVF Package stopped at vendredi 6 juin 2014 15:38:48
Physical to OVF Package lasted 5496,0 seconds

On voit toute la procédure. On remarque qu'il y a analyse du registre (recherche de fichiers .sys), cela afin de faire une abstraction du matériel pour la partie HAL.

Le fichier .ova créé n’est utilisable ni avec VMWare ni avec Virtualbox ; d’une part, la licence ne le permet pas et d’autre part, techniquement le fichier n’est pas reconnu. En ouvrant le fichier .ova avec Winrar, celui-ci contient un fichier .ovf, un fichier .pvp et un fichier .vhd. Il n’est pas possible de monter le fichier .vhd en l’extrayant.

Pourquoi vhd ? Car Citrix, acteur industriel de Xen, travaille en étroite collaboration avec Microsoft. Hyper-V provient de cette collaboration (au moins en partie).

2-2-5 - Acronis Instant Restore

Acronis est un éditeur de solutions de sauvegardes. Nous présenterons ces produits dans la partie Migration à froid, dans le cadre d’un backup d’une machine physique restauré dans une VM.

Dans ce chapitre, c’est la fonction Instant restore qui nous intéressera.

Avec ce principe, nous pourrons déclencher la restauration vers une VM dans un hyperviseur VMWare ou Hyper-V. Le fonctionnement sera similaire à Veeam que nous avons vu précédemment.

Vous devrez avoir le logiciel installé sur une machine autre que celle à restaurer pour utiliser Instant Restore.

Le processus de restauration de la sauvegarde sera quasi instantané, les données étant récupérées à la volée lors de leur accès.

Pour cela, Acronis va créer un stockage virtuel sur l’hyperviseur étant vu comme un datastore. Le chargement des données est alors effectué à la volée, les blocs sont extraits de la sauvegarde lors de leur accès. En cas de modification, celles-ci sont écrites dans un snapshot.

À ce stade, cette VM vous donnant accès aux données depuis la sauvegarde acronis est considérée comme temporaire.

Pour effectuer une restauration définitive, il faudra depuis l’interface Acronis « finaliser » celle-ci.

Cette opération va copier en tâche de fond le contenu de la sauvegarde vers le ou les fichiers image de la VM. La VM est utilisable pendant le processus de restauration, si les données accédées ne sont pas encore rapatriées, elles sont utilisées depuis la sauvegarde. Le temps de la restauration complète, les performances seront dégradées et dépendront de la bande passante, mais ce système permet de ne pas interrompre les services.

3 - Migration à froid

La migration à froid consiste en la migration d'une machine physique vers une machine virtuelle avec arrêt pendant le processus. Le système de la machine physique doit être mis en l'état dans une VM.

Ceci s’effectuera simplement par sauvegarde de la machine physique et restauration dans une VM après création de cette dernière au plus proche de la machine réelle. La sauvegarde sera par exemple effectuée sur un disque dur USB qui sera relié à la VM pour la restauration.

L’utilisation d’outil de clonage (clone d’un disque source vers un disque de destination) permettra d’effectuer l’opération plus rapidement en évitant la double copie source vers fichier de sauvegarde, fichier de sauvegarde vers destination. Il faudra dans ce cas effectuer le clone vers un disque virtuel dans un format reconnu par l’hyperviseur de destination.

La machine virtuelle sera préparée pour accueillir la restauration : même nombre de disques, taille mémoire identique, installation contrôleur IDE/SATA/SCSI selon la situation. Nous verrons aussi l'utilisation de produits tiers.

Le principe est identique, quels que soient l'hyperviseur de destination et le système source. Une fois la restauration effectuée, il ne faudra pas oublier d'installer les additions invitées fournies avec l’hyperviseur, et de désinstaller les anciens pilotes.

3-1 - Les différents systèmes

Les systèmes Windows sont très liés au matériel, si vous montez un disque dur contenant un système Windows sur une machine différente, il est fort probable que vous vous trouviez face à un BSOD (Blue Screen Of Death : écran bleu de la mort). Ceci a tendance à changer depuis Windows 10.

Afin de pallier ce problème, notamment sur les anciens systèmes, avant de virtualiser ,il faudra appliquer des modifications dans le registre. Ces modifications se feront via le script MergeIDE.

MergeIDE est disponible ici.

Si le poste est en panne ou que la sauvegarde a déjà été effectuée, il est possible de le faire depuis un CD d’installation Windows ou un disque de restauration en lançant la ligne de commande via les touches SHIFT-F10, puis en lançant regedit. Il faudra dans ce cas charger la ruche SYSTEM du Windows offline dans le registre du Windows en cours d'exécution. Le fichier ruche SYSTEM se trouve dans c:\windows\system32\config. Quand vous chargerez cette ruche, regedit vous demandera un nom de dossier ou présenter cette ruche dans la ruche en cours de vision. Il faudra ensuite dans le fichier MergeIDE remplacer toutes les références à HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ par HKEY_LOCAL_MACHINE\[le nom de votre dossier]\ControlSet001\. Vous pourrez le faire directement via notepad lancé depuis le terminal via un simple copier-coller, notepad étant disponible dans le CD d’installation Windows ou la restauration système.

MergeIDE sera plutôt à utiliser pour les anciennes machines. Pour les plus récentes, un premier démarrage en mode sans échec peut suffire à régler le problème de BSOD.

Autre solution, si la première n’est pas suffisante : désactiver tous les services liés à la gestion de disques dans HKEYLOCALMACHINE\SYSTEM\CurrentControlSet\services (CurrentControlSet sera à remplacer par ControlSet001 dans le cas d’un traitement offline).

Il faudra pour cela positionner la valeur de l’entrée start sur 3. (3 signifiant : Manual).

Les services à désactiver contiendront le terme ide, sata, scsi, intel, amd.

Si l’opération réussit, le premier démarrage sera assez long, mais vous n’aurez ensuite plus de BSOD.

Cette opération est risquée. Si elle est incorrectement effectuée, vous serez obligé d’effectuer une restauration et recommencer.

3-1-1 - Cas Windows XP

Windows XP est plus qu’obsolète, mais il peut être pertinent de garder des VM XP pour piloter par exemple des vieilles machines industrielles dont les logiciels de pilotage n’ont pas été mis à jour.

Pour transformer une machine physique Windows XP en VM, nous allons utiliser le système de sauvegarde intégré au système : NTBackup. Il est important de sélectionner l’état système de façon à avoir un système opérationnel. Je recommande de n’avoir aucune application ouverte, de désactiver l’antivirus ainsi que les services tels que SQL Server, si ceux-ci sont présents, de façon à avoir une sauvegarde avec le moins de risque de problèmes et plus rapide.

NTBackup n'est pas installé sur Windows XP Home par défaut. Vous pourrez l’installer depuis le dossier valueadd\msft du CD d’installation.

Pour restaurer cette sauvegarde, on installera un XP de base dans une VM (avec Windows XP Pro, vous pourrez restaurer directement la sauvegarde depuis les premiers écrans d’installation sous réserve que votre disque externe soit reconnu). Une fois l’installation effectuée, on restaurera notre sauvegarde. Lors du premier redémarrage, Windows XP devrait demander à activer le système, le « matériel » ayant changé. Il se peut que les premiers démarrages génèrent un plantage, le démarrage en mode sans échec peut permettre de régler le problème automatiquement en réinstallant des pilotes et, si nécessaire, en effectuant de la maintenance (comme expliqué au chapitre précédent). Certains logiciels protégés peuvent détecter qu’ils ne sont plus sur la même machine et ne plus fonctionner ou demander à se réactiver comme Windows. Il faudra gérer ceci au cas par cas. Il faudra penser à installer les additions invitées.

Dans le cas où votre Windows XP était préinstallé sur un disque SATA (cas de machines de marque par exemple lors de l’apparition du SATA), il faudra dans un premier temps installer un XP de base sur un disque IDE. Une fois celui-ci installé, il faudra ajouter un contrôleur SATA et installer les drivers via les additions invitées. Il faudra ensuite, VM arrêtée, supprimer le disque virtuel du contrôleur IDE (sans suppression du fichier) et le mettre dans le contrôleur SATA. La meilleure solution consiste à modifier la base de registre et extraire quelques fichiers tel qu’expliqué ici sur le système d’origine avant la sauvegarde.

Solution testée avec VirtualBox :

- installation de base en IDE ;

- ajout d’un contrôleur SATA ;

- reboot de la VM ;

- installation des pilotes pour le contrôleur SATA (en installant ou réinstallant les additions invitées) ;

- arrêt de la VM ;

- suppression du disque virtuel du contrôleur IDE (sans suppression du fichier) depuis l'interface VirtualBox ;

- ajout de ce fichier au contrôleur SATA.

Au redémarrage, le XP démarre sur un disque SATA. De là, la restauration du NTBackup se fera sans BSOD.

3-1-2 - Windows 2003 Server

La méthode Windows XP est applicable pour Windows 2003 avec les remarques suivantes :

- dans le cas d’un contrôleur de domaine, il est important que la configuration réseau ne soit pas modifiée (adresses IP notamment). À la restauration, vous perdrez les réglages IP, car la carte réseau virtuelle sera considérée comme une nouvelle carte réseau qu’il faudra configurer pour avoir les réglages initiaux ;

- par ailleurs, dans le cas de plusieurs contrôleurs, il faut s’assurer que les réplications AD (Active Directory) sont à jour, que les autres AD sont virtualisées ou non, et que la synchronisation du temps entre la VM et la machine hôte est désactivée et laisser les OS gérer avec les serveurs de temps.

Désactivation de la synchronisation du temps entre un hôte et une VM :

Virtualbox en ligne de commande :

vboxmanage setextradata <nom de la VM> “VBoxInternal/Devices/VMMDev/0/Config/GetHostTimeDisabled” “1″

VMWare Workstation :

VSPhere :

Pour VSPhere, il faudra aller dans les réglages de la VM-→ options-→ VMWare tools → décocher synchronisation du temps avec l’hôte.

Rappel pour déclencher une réplication entre AD :

repadmin /replicate [FQDN serveur cible].local [FQDN serveur source].local dc=[nom de l’AD],dc=local

L’extension .local sera à adapter à votre situation si vous ne l’utilisez pas.

Pour vérifier l’état de la réplication :

repadmin /showrepl

Pour les domaines, je recommanderais plutôt la création de serveurs virtuels que l’on intégrera au domaine dans le but de remplacer les anciens serveurs après déplacement des fonctionnalités, voir le chapitre 3.1.4.

3-1-3 - Cas Vista / Windows 7 / Windows 8 / Windows 10

Pour effectuer une sauvegarde avec les outils système, il faut aller dans le panneau de configuration → Sauvegarder et restaurer, puis créer une image système. Il est possible de le faire également en ligne de commande avec wbadmin, mais cet outil est plus adapté aux versions serveur et aux utilisateurs avancés.

Exemple de sauvegarde avec wbadmin :

wbadmin start backup -backuptarget:E: -allCritical -vssFull

Avec en option :

- backupTarget : attend un volume ou un chemin UNC ;

- allCritical : tout ce qui est critique au système est sauvegardé (état système, partition de boot) ;

- vssFull : utilise le service VSS (Volume Snapshot Service, appelé aussi shadowcopy), ceci permet de sauvegarder les fichiers en cours d’utilisation et de garder leur cohérence en cas de modification pendant la sauvegarde.

Il est également possible d’effectuer les sauvegardes depuis l’interface graphique en lançant « Sauvegarder et Restaurer » depuis le panneau de configuration.

Pour les versions serveur, il faudra installer le rôle « sauvegarde Windows Server ». Pour Windows Server 2003, c’est ntbackup qu’il faudra utiliser comme pour les versions XP.

La sauvegarde sera restaurée soit une fois un système de base installé, soit depuis le DVD d’installation ou un DVD de restauration dans la VM (fichier .iso ou accès direct au DVD de l’hôte).

Après avoir booté sur le support, il faut sélectionner « réparer l'ordinateur » :

Vous aurez ensuite l’écran suivant, dans lequel il faudra sélectionner « restaurer » :

Dans l’écran suivant, vous pouvez voir que Windows a trouvé directement mon backup. Si ce n’est pas le cas, il faudra sélectionner « Sélectionner une image système » :

Si vous branchez un disque externe en USB par exemple, il se peut que la machine virtuelle ait du mal à le voir, à ce stade les additions invitées ne sont pas installables, vous avez donc un accès limité à la gestion des paramètres USB. En cas de difficultés, installez un système de base et effectuez la restauration depuis celui-ci.

Vous aurez ensuite un accès aux options avancées :

Vous aurez ensuite une demande de confirmation :

Écran de progression de la sauvegarde :

À la fin de la restauration, après redémarrage, vous aurez le système restauré.

3-1-4 - Windows Server 2008 et plus

Concernant les domaines 2008 ou 2012/2016/2019, les mêmes règles sont applicables qu’avec Windows 2003.

La solution que j’utiliserais serait plutôt :

- ajouter un contrôleur de domaine supplémentaire depuis une VM fraîchement installée ;

- transférer les données et les services (par exemple déporter les partages de fichiers sur le nouveau DC virtualisé) ;

- transférer les rôles FSMO sur le serveur virtualisé ;

- sortir l’ancien ou les anciens serveurs physiques du domaine.

Profitez éventuellement de l’occasion pour changer de version de Windows Server si celle-ci est ancienne.

3-1-5 - Mac OS X

La virtualisation est possible sur Mac OS X depuis l'utilisation des processeurs Intel à la place des processeurs PowerPC, ces derniers ne contenant pas de fonction de virtualisation. Les systèmes antérieurs à Mac OS X 10.4 premiers systèmes supportant les processeurs Intel ne seront donc pas virtualisables.

Bien que techniquement possible, la virtualisation de Mac OS X sur autre chose qu'un Mac est interdite par Apple, qui bloque au maximum cette possibilité.

Les solutions présentes sur Internet sont donc illégales. Elles sont nommées Hackintosh (le nom est explicite).

Sur les macs récents, les disques durs SSD sont soudés sur les cartes mères, ce qui limite l’accès aux données en cas de problème sur la machine. Vous pourrez par contre restaurer la sauvegarde de votre système via TimeMachine dès le boot sur un disque externe contenant une partition de restauration Apple bootable.

Ces aspects limitent les possibilités de P2V avec Mac OS.

Les logiciels de virtualisation disponibles sur Mac sont :

- VirtualBox (gratuit) ;

- VMWare fusion Pro (payant) / VMWare fusion player (gratuit : pour un usage personnel uniquement - nécessite une inscription) ;

- Parallel's Desktop (payant).

Les tests que j'ai effectués l'ont été avec VirtualBox et Mac OS X 10.6 (CDROM d'installation Apple), et OS X 10.9. OS X 10.9 (Mavericks) n'est pas fourni en CD, il est téléchargeable sur l'Apple Store.

Ceci n’est valable que pour les Macs à processeur Intel. Pour ceux à processeur M1, sortis depuis fin 2020, seuls des VM à base ARM seront utilisables dans le cadre de la virtualisation. Windows 10 ARM n’est pas distribué, uniquement installé sur les appareils compatibles, et les anciennes versions Windows ne sont pas disponibles en ARM.

Apple étant capable d’émuler les instructions x86 avec Rosetta2, il n’y a aucune raison pour que des acteurs comme VMWare, Parallels et Oracle pour VirtualBox ne puissent pas utiliser l’émulation en lieu et place de la virtualisation pour gérer des VM x86, les processeurs M1 annonçant des performances plus élevées que les processeurs Intel. Reste à voir cet aspect au fur et à mesure des avancées.

À l’heure actuelle, il est encore trop tôt pour développer cet aspect. Il semblerait qu’il soit possible de virtualiser Windows 10 ARM avec Parallels Desktop si vous faites partie du programme Windows Insider.

La version Macintosh de Virtualbox permet de choisir, lors de la création d'une VM, entre les différentes versions OS X supportées (OS X 10.6 à 10.13, les dernières versions étant 10.15 Catalina et 11 Big Sur, Big Sur étant la seule version disponible pour les macs M1).

Lors du démarrage dans la VM créée sur le CD OS X 10.6 d'origine, l'écran gris avec la pomme n’apparaît pas.

Les écrans qui s'affichent sont d'une part des messages EFI, puis des messages terminal comme avec le démarrage en Single-user (pomme S).

Avant l'écran d'installation « Installer Mac OS X », il faut attendre un long moment avec les messages terminal, contrairement à une installation Mac OS X standard où l'écran gris avec la pomme fait apparaître un symbole . Une fois l'écran d'installation affiché, il faudra aller dans « utilitaire de disque » via le menu afin de formater le disque, car le système détecte l'absence de disque d'origine Apple (test du Firmware de disque).

Le disque apparaît en couleur orange, comme les disques externes au lieu de la couleur classique grise. Cela n’empêchera pas l'installation.

Une fois l'installation terminée, il vous restera à restaurer vos données. Pour les applications, la copie des dossiers concernés depuis le dossier /Applications ainsi que les données du dossier ~/Library/Applications Support et ~/Library/Preferences suffisent pour certains produits. Mais cela est à gérer au cas par cas. Par ailleurs, les applications protégées contre la copie vont détecter le changement de « machine ». Il faudra réactiver celles-ci, voire les réinstaller.

Je vous invite à vous rendre aux paragraphes 3.2.10 pour l'aspect sauvegarde/restauration.

3-1-6 - Mac OS X 10.9 (Mavericks) et supérieurs

Apple ne fournit plus de CD d'installation d'OS X depuis un bon moment. L’OS est récupérable sur L'Apple Store (par défaut uniquement le système le plus récent compatible avec votre Mac), il se présente sous la forme d'une application destinée à mettre à jour des systèmes antérieurs (mais contient tout ce qu'il faut pour une installation complète). Il est possible d’effectuer une net install via Mac OS X Server.

Il est également possible de réinstaller un système en netboot depuis les serveurs Apple dans le cas où il n’y a pas de partition de restauration valide sur le disque.

Pour générer un média d'installation (clé USB ou disque dur externe), il faut formater le support avec l'utilitaire de disque en HFS+ avec table de partition Apple (en fait en GPT).

sudo /Applications/Install\ OS\ X\ Mavericks.app/Contents/Resources/createinstallmedia --volume /Volumes/nom --applicationpath /Applications/Install\ OS\ X\ Mavericks.app --nointeraction

nom correspond au nom du volume qui contiendra l’installation.

Il existe des utilitaires avec interface graphique automatisant cela, non reconnus par Apple.

Cette manipulation n’a pas été testée avec les systèmes récents.

3-1-6-1 - Mac OS X Server

Le principe de migration est identique à la version standard, les versions Mac OS X Server intégrant une simple surcouche pour l'aspect serveur. Celle-ci intègre un serveur mail (Postfix, Cyrus/Dovecot selon les versions), un serveur Web (Apache/Php,Mysql), un serveur DNS (Bind), un serveur SMB (Samba), un serveur AFP (le protocole de partage de fichiers Apple), un serveur de Wiki, un serveur Ical (caldav), un serveur pour les carnets d'adresses (CardDav), le tout utilisant OpenDirectory (l'équivalent Apple d'Active Directory s'appuyant sur OpenLDAP), etc., ainsi qu'une interface d'administration de tous ces services.

L’utilisation de Mac OS Server devient de plus en plus rare.

3-2 - Les produits de sauvegarde et/ou clonage

Les produits présentés ici ne représentent qu’une partie des produits existants. Il s’agit surtout de produits que j’ai déjà eu l’occasion d’utiliser.

Liste des produits présentés :

- Acronis (Windows, Linux, Mac OS : payant) ;

- Ghost (obsolète) ;

- Macrium (Windows : Freemium) ;

- HDClone (Windows : Freemium) ;

- Clonezilla (Windows, linux : open source) ;

- RescueZilla (Windows, linux : open source) ;

- Fogproject (open source) ;

- Retrospect (Windows, Mac OS : payant) ;

- Altaro VM Backup VM Backup & Replication (payant)

- Time Machine (Mac OS : gratuit – intégré au système) ;

- Carbon Copy Cloner (Mac OS : payant).

- Veeam (gratuit jusque 10 machines)

La plupart des produits Windows nécessiteront une version spécifique serveur pour fonctionner sur Windows Server.

3-2-1 - Acronis

Il existe plusieurs types de produits Acronis.

Les produits personnels :

- Acronis TrueImage.

Les produits professionnels :

- Acronis Backup et backup Advanced ;

- Acronis Backup to cloud.

De nouveaux produits Acronis pour les professionnels sont maintenant disponibles, remplaçant les produits précédents : Acronis Cyber Backup et Acronis Cyber Protect avec la gestion des hyperviseurs VMWare et Hyper-V.

La fonction principale des produits Acronis n’est pas la création de clones, mais la sauvegarde/restauration. Le produit sera utilisable pour effectuer un clone et/ou un backup/restore.

Le produit testé est la version grand public : Acronis TrueImage 2021.

3-2-1-1 - Aspect sauvegarde/restauration

L’intérêt des produits Acronis pour le P2V ou la restauration sur une autre machine est l'option « Universal Restore » qui permet de restaurer avec des pilotes de périphériques différents de ceux contenus dans la sauvegarde. Cette option est idéale pour restaurer une sauvegarde sur un autre ordinateur et donc, dans une VM également. Acronis est le seul produit à ma connaissance possédant cette option.

Acronis est capable de sauvegarder des partitions Linux, testé avec une Debian en ext4.

Les produits Acronis permettent une sauvegarde/restauration à chaud, mais aussi à froid via le Rescue CD. Acronis permet également de cloner des disques.

Vous verrez ci-dessous, une copie d'écran d'un boot sur CD Acronis généré une fois le produit installé sur un ordinateur.

Écran version live-cd Windows (WinPE) :

Version Linux :

Vous aurez, en version simplifiée accès aux fonctions principales :

- sauvegarde ;

- restauration ;

- clone depuis outils/utilitaires.

3-2-1-2 - Aspect clone

J’ai testé un clone directement dans une image disque VHD, celles-ci étant montables directement dans Windows, et utilisables avec VirtualBox ainsi qu’avec Hyper-V.

Il faudra commencer par créer l’image disque depuis le gestionnaire de disques, fichier qui sera stocké sur disque externe, sur un volume réseau, et dans l’idéal directement sur la machine hôte de la future VM via un partage réseau (SMB, SSH selon le cas).

Pour créer un fichier .vhd depuis le gestionnaire de disques, il faut aller dans le menu actions → créer un disque dur virtuel :

Vous seront ensuite demandés le chemin d’accès, la taille du disque et si vous souhaitez un disque fixe ou dynamique :

La taille du disque destination devra être supérieure ou égale à la taille du disque source sous peine d’échec du clone.

Sur l’écran suivant, vous pouvez voir le disque virtuel en disque 1, non initialisé :

Lors du lancement de l’interface, voici l’écran qui apparaîtra :

L’accès à l’option de clonage se fera depuis l’icône outils sur la gauche :

Le disque de destination devra être connecté avant de cliquer sur l’icône de clone.

Vous aurez ensuite un assistant, la présentation sera basée sur l’option automatique :

Vous aurez ensuite à choisir le disque source :

Puis le disque de destination :

Vous sera ensuite demandé si le but est de remplacer le disque actuel, l’utiliser sur une autre machine, ou l’utiliser comme disque de données. Dans notre cas, nous choisissons « utiliser dans une autre machine » :

Restera à déclencher la procédure :

Copie en cours :

Acronis est capable de sauvegarder des partitions/disques Linux, testé avec une Debian en ext4. Bien que le clonage soit disponible et fonctionnel pour un système Linux, il ne sera pas possible de monter un disque virtuel type vhd/vmdk depuis le média bootable d’Acronis, rendant le produit uniquement exploitable à froid, et depuis un système Windows dans lequel sera installé le disque contenant le Linux.

Les produits professionnels ne permettent pas le clonage à chaud, l’option n’étant présente que sur True Image (la version pour les particuliers (cette option n'étant pas le but premier d’Acronis). L’option est par contre présente sur le média bootable des produits professionnels et grand public.

3-2-2 - Ghost

Norton Ghost est un logiciel historique de Symantec, racheté par Broadcom. C’était un produit de référence pour le clonage, au point où on utilisait le terme « ghoster ». Norton fait référence à l’ingénieur Peter Norton, connu pour les fameux anciens outils Norton Utilities et Norton Commander, la société de Peter Norton ayant à l’époque été rachetée par Symantec. Le nom commercial Norton est toujours utilisé pour les produits grand public de Symantec, notamment Norton 360.

Vous pouvez trouver plus d’informations sur Ghost, dans le tutoriel de Viduc.

Ghost a été abandonné depuis un moment (fin de commercialisation le 30 avril 2013) et bien que Norton 360 intègre des sauvegardes sur le cloud, il ne fournit pas d’outil de clonage.

Son aspect précurseur pour ce type de produit valait bien à Ghost un chapitre.

3-2-3 - Macrium Reflect (Windows)

Macrium Reflect est un logiciel permettant de faire des sauvegardes et de cloner les disques. Une version gratuite est disponible. Nous nous intéresserons ici à la fonction de clonage.

J’ai testé un clone directement dans une image disque VHD, celles-ci étant montables directement dans le système Windows.

Il faut commencer par créer l’image disque VHD depuis le gestionnaire de disques, fichier qui sera stocké sur disque externe, sur un volume réseau et dans l’idéal directement sur la machine hôte de la future VM via un partage réseau (SMB, SSH selon le cas).

Pour créer un fichier VHD depuis le gestionnaire de disques, il faut aller dans le menu actions → créer un disque dur virtuel :

Vous sera ensuite demandé, le chemin d’accès, la taille du disque, et si vous souhaitez un disque fixe ou dynamique :

La taille du disque destination devra être supérieure ou égale à la taille du disque source sous peine d’échec du clone.

Sur l’écran suivant, vous pouvez voir le disque virtuel en disque 1, non initialisé :

Une fois Macrium installé et lancé, vous aurez sur l’écran de gauche un accès rapide aux fonctions principales comme la création d’une image de backup. Sur la partie droite, vous verrez votre disque dur avec en dessous le lien pour générer un clone :

Vous aurez ensuite l’écran de sélection source destination :

Vous aurez ensuite l’écran de planification, que nous passerons, car nous allons déclencher le clone immédiatement :

Viendra ensuite le résumé :

Puis une demande de confirmation du déclenchement immédiat :

Ci-dessous la procédure en cours :

L’éventuelle partition de restauration placée derrière la partition contenant les données va occuper de la place et empêche de cloner sur un disque de taille inférieure même si la partition des données n’est pas entièrement remplie.

Une fois la copie effectuée, nous pouvons voir les partitions dans le disque de destination :

Vous pourrez également voir le contenu du disque depuis l’explorateur.

Restera à détacher le disque virtuel en cliquant bouton droit sur le disque dans le gestionnaire de disques et sélectionner détacher.

Selon votre version de Windows (comme Windows 7 par exemple), vous pourrez avoir une case « Supprimer le fichier de disque virtuel lors du détachement » lors de la demande de confirmation. Il faudra prendre garde à ne pas la cocher.

J’ai pu utiliser ce fichier VHD depuis une VM VirtualBox. Pour l’utiliser avec VMWare ou KVM, il faudra convertir le fichier VHD respectivement en .vmdk ou en .qcow2.

Ne pas oublier de désinstaller le logiciel dans la VM une fois celle-ci en production.

Vous ne pourrez pas appliquer le delta après clone en relançant un clone, Macrium vous demandant d’écraser celui-ci, du moins dans la version gratuite.

3-2-4 - HDClone X

HD clone X est un freemium. Le test est basé sur la version « Basic », utilisable en usage privé.

Le logiciel va tout d’abord vous demander si vous souhaitez créer un support de démarrage (live-cd avec l’application, comme vu avec Acronis et Macrium) :

Vous aurez ensuite l’écran principal :

Nous sélectionnons évidemment la fonction clonage. Vous seront ensuite demandés le disque source et le disque destination :

Une fois le disque source sélectionné, il apparaîtra grisé dans les disques de destination, difficile de faire plus simple.

Une fois la source et la destination sélectionnées, il faudra juste appuyer sur « Démarrer » :

Vous aurez ensuite une demande de confirmation vous précisant que la destination va être écrasée et que la signature du disque sera différente de la source :

Durant la copie, j’ai eu une fenêtre me précisant que la copie pourrait être plus rapide :

Et effectivement, la copie a été relativement longue par rapport à Macrium, et le fichier VHD a eu une taille plus importante, quasiment la taille originale du disque.

Le résultat fut cependant fonctionnel.

3-2-5 - Clonezilla (Windows/Linux)

Clonezilla est une distribution Linux sous forme de live-cd permettant de cloner ou de sauvegarder des disques ou partitions sous forme d’image. Elle s’appuie sur Partclone et permet donc la sauvegarde des systèmes de fichiers suivants :

- Windows : FAT12, FAT16, FAT32, NTFS, ExFAT ;

- Linux : Ext2, Ext3, Ext4, ReiserFS, BTRFS, UFS ;

- AIX/LINUX : JFS ;

- Irix/Linux : XFS ;

- VMWare : VMFS.

Vous pourrez stocker les images dans :

- des volumes locaux (disques externes) ;

- des volumes réseau SMB, SSH, NFS ;

- des serveurs Webdav, S3.

Voici les principaux écrans pour effectuer la sauvegarde, certains ont été sautés, ce tutoriel n’étant pas un tutoriel sur Clonezilla.

Sur l’écran ci-dessous, il faut sélectionner « device-image » pour sauvegarder la partition vers un fichier image, « device-device » servant à cloner la partition d’un disque à un autre.

L’écran suivant permet de choisir l’endroit où sera stockée l’image. Les noms sont explicites.

Les écrans suivants partent du principe que la sauvegarde sera faite sur un second disque dur. L’écran suivant montre la sélection du disque de stockage des images. Dans mon exemple, le disque sdb1 au format ext2 est le disque qui contiendra l’image ; le disque sda1 est le disque à sauvegarder contenant un Windows (partition NTFS).

Sur les écrans suivants, le mode Beginner a été sélectionné. L’écran suivant permettra de choisir soit de sauvegarder, soit de restaurer.

3-2-5-1 - Exemple de sauvegarde

Une fois le choix de sauvegarder effectué, Clonezilla va demander le nom de la sauvegarde.

L’écran suivant demande la partition (ou le disque selon le choix effectué) qui doit être sauvegardée. Le disque sélectionné pour stocker l’image n’apparaîtra pas dans la liste.

En dessous de l’écran, apparaît un message précisant qu’un script correspondant à l’opération à effectuer a été sauvegardé dans /tmp/ocs-2014-06-01-23-img-2014-06-02-00-31 ; ce qui n’est pas pertinent dans notre cas, l’opération n’étant effectuée qu’une fois. Clonezilla demande également s'il doit vérifier le système de fichiers de la partition ou du disque à sauvegarder, et si l’image sauvegardée doit être vérifiée. Une demande de confirmation sera faite dans le terminal (pas dans un écran).

Pendant la sauvegarde, vous aurez cet écran :

L’arrêt de Windows 10 place le système de fichiers NTFS dans un état non arrêté complètement, un peu comme une mise en veille. À cause de cette fonctionnalité, il n’est pas possible à Linux d’utiliser la partition. Pour pallier cela, il faut décocher l’option « démarrage rapide » dans les options avancées de gestion de l’alimentation, ou arrêter le système en enfonçant la touche shift en cliquant sur « Arrêter ».

Il est également possible d’utiliser la commande suivante sous Linux :

ntfsfix /dev/sdaX

Commande à éviter.

3-2-5-2 - Exemple de restauration

Les captures suivantes partent d’un disque vierge dans la VM sur laquelle sera restaurée l’image sauvegardée.

Seul le disque contenant l’image de sauvegarde est visible, le disque sur lequel sera restaurée celle-ci ne contenant aucune partition.

Les écrans suivants seront les mêmes que pour la partie sauvegarde.

Une fois la restauration lancée, une double confirmation sera demandée, celle-ci écrasant le disque de destination :

Une fois la confirmation faite, la restauration s’effectue :

La restauration sur disque de plus faible capacité sera uniquement possible si l’espace utilisé par la source représente une taille inférieure à la taille du disque (exemple : un disque de 1 To occupé à 40 % sera restaurable sur un disque de 512 Go).

Clonezilla ne vous autorisera pas cela par défaut, il faudra cocher l’option avancée, option -iscd.

Clonezilla est plus compliqué à utiliser que les autres produits présentés, mais très complet.

3-2-5-3 - Clonezilla server

Clonezilla inclut la possibilité de faire du clonage et du déploiement. Il est possible d’utiliser Clonezilla depuis un serveur existant, il faudra alors installer un serveur DRBL (Diskless Remote Boot in Linux). Cette solution incluant Clonezilla.

Nous n’utiliserons pas cet aspect, mais démarrerons CloneZilla server directement depuis le CD : solution nommée Clonezilla Lite Server.

Il nous faudra démarrer Clonezilla normalement :

puis sélectionner « Lite Server » :

Nous sélectionnons ensuite « netboot » :

Les réglages suivants concerneront le DHCP, vous pourrez utiliser le DHCP déjà présent sur le réseau ou générer un :

Si aucun volume de stockage n’est monté, il vous le sera demandé.

Une fois celui-ci monté, il vous sera demandé si vous voulez passer en mode débutant (beginner) ou expert :

Nous choisirons ensuite « Massive-deployment », la solution « interactive-client » servant à pouvoir démarrer Clonezilla depuis n’importe quel poste sur le réseau (option pouvant être également utile), une fois le serveur démarré.

Puis nous sélectionnons « from image » :

Puis sélectionnons « restore disk », ayant effectué une sauvegarde de disque complet :

Nous sélectionnons ensuite la sauvegarde à restaurer (une seule sauvegarde est présente) :

Il faudra ensuite choisir le disque à restaurer (au cas où l’image contient plusieurs disques) :

Vous devrez ensuite choisir si vous souhaitez vérifier l’image avant de la restaurer, puis ce que vous souhaitez faire (redémarrage, ne rien faire) :

Il faudra ensuite choisir le mode de restauration, nous choisissons multicast (broadcast émettant en aveugle sur tout le réseau) :

L’écran suivant vous permettra de poser les limites en termes de restauration et horaire de mise à disposition :

Vous devrez ensuite entrer le nombre de clients à cloner (dans notre cas : un seul) :

Clonezilla effectuera ensuite les configurations nécessaires :

À ce stade, la restauration peut être effectuée.

Une fois votre VM qui hébergera la restauration créée, il faudra la paramétrer pour qu’elle puisse démarrer à partir du réseau.

Ci-dessous l‘écran de démarrage PXE :

Une fois celui-ci effectué, vous aurez l’écran de démarrage de Clonezilla vous proposant la sauvegarde à restaurer :

Le système se chargera depuis le réseau :

La restauration se déclenchera alors toute seule.

3-2-6 - RescueZilla (Windows/Linux)

RescueZilla est un fork de Redo Backup, front-end graphique utilisant Partclone (comme Clonezilla). Redo Backup a été abandonné il y a quelques années.

RescueZilla est compatible avec Clonezilla et permet donc un équivalent graphique. Tout comme CloneZilla, il est fourni en LiveCD.

Ci-dessous, l’écran de démarrage:

Vous aurez alors l’écran suivant :

3-2-6-1 - Sauvegarde

La première étape consistera à sélectionner la source :

Le clic sur celle-ci la mettra en surbrillance et activera l’accès au bouton « suivant »

Vous sera ensuite présentée la liste des partitions (toutes cochées par défaut) :

Il faudra ensuite sélectionner la destination, dans mon cas sur un partage réseau :

Vous aurez ensuite l’écran de sélection du répertoire où effectuer la sauvegarde :

Vous pourrez ensuite nommer votre sauvegarde, le nom par défaut indiquant la date et l’heure conviendra dans la plupart des cas :

Suivra l’écran de confirmation :

Écran de sauvegarde en cours :

Une fois la sauvegarde effectuée, vous aurez l’écran suivant :

3-2-6-2 - Restauration

La restauration sera aussi simple, nous commencerons par l’emplacement de l’image :

Vous aurez ensuite à choisir l’image à restaurer :

Il faudra ensuite choisir le disque de destination qui sera écrasé :

Le message « Sélectionner le disque à restaurer » peut prêter à confusion, il s’agit bien du disque de destination, pas du disque source à restaurer.

Vous pourrez ensuite choisir la partition à restaurer (toutes sélectionnées par défaut) :

Vous aurez ensuite une demande de confirmation :

Ci-dessous écrans de restauration en cours :

Ci-dessous, écran de fin de restauration, celui-ci manquant de clarté.

3-2-6-3 - Exploration image RescueZilla (beta)

Une fonction intéressante a été ajoutée par rapport à redo Backup, la fonction Image Explorer :

Vous devrez sélectionner l’emplacement de l’image (dans l’exemple chemin réseau) :

La boite de dialogue suivante vous indique le montage en cours en lecture seule du volume sélectionné dans la sauvegarde. La boite de dialogue précise que ça peut être très long, et effectivement c’est très long.

Une fois l’opération terminée, vous aurez un bouton permettant d’ouvrir l’explorateur de fichiers :

La lenteur d’accès est due au format de l’image : l’image partition est morcelée en plusieurs fichiers compressés.

J’ai eu des échecs d’accès au partage distant SMB, probablement dus au packaging live-CD plutôt qu’à RescueZilla lui-même.

3-2-7 - Fogproject

Fogproject est un outil libre permettant le déploiement et le clonage de machines sur le réseau. Ce ne sera pas le meilleur outil pour ne migrer qu’une seule machine, le produit devant être installé sur une machine Linux et servant essentiellement à effectuer du déploiement.

Une machine intégrée à Fogproject pourra être « capturée » (terme utilisé par le produit). Une fois la tâche de capture déclarée, la machine à capturer devra être redémarrée avec support du netboot. Celle-ci démarrera alors sur le netboot fourni par Fogproject via PXE et effectuera la capture d’une image disque avec Partclone.

L’image capturée pourra alors être restaurée dans une VM ayant été préalablement préparée (visible sur le réseau utilisé par Fogproject, réglages mémoire et disque adéquat, etc.)

Un tutoriel sur Fogproject est en cours de réalisation, son lien sera intégré ici une fois publié.

Pour installer Fogproject, il faudra télécharger celui-ci depuis le site Web ou directement avec wget :

wget https://github.com/FOGProject/fogproject/archive/1.5.9.tar.gz

3-2-8 - Retrospect

Retrospect est un produit disponible pour Mac et PC. Peu connu dans le monde Windows, mais acteur historique dans le monde Macintosh depuis 1989.

Pour plus de détails sur celui-ci, consultez mon tutoriel sur Retrospect.

3-2-9 - Altaro Physical Server Backup

Altaro est connu pour son produit Altaro VM Backup. Nous allons ici étudier leur produit Altaro Physical Server backup, qui permet une restauration de sa sauvegarde en VM. Altaro Physical Server Backup est gratuit.

Vous ne pourrez restaurer la sauvegarde que sur Hyper-V. Altaro VM Backup gérant Hyper-V et VMWare, il est possible qu’à l’avenir Physical Server Backup soit utilisable avec VMWare.

Il s’agit d’un produit serveur, il ne sera pas utilisable avec des postes standards.

Cette solution sera d’autant plus pertinente si vous utilisez Altaro VM Backup qui semble avoir de bonnes performances.

Une fois le produit installé sur votre serveur, vous y accéderez via une interface Web, via le port 35480.

Une fois connecté, vous aurez l’écran suivant :

La configuration est très simple, nous commencerons par cliquer sur « Clic here to configure backup location and schedule » :

Le clic sur « set a backup location » nous présentera la boite de dialogue suivante :

Une fois la destination sélectionnée, il faudra valider en cliquant sur « save » en bas à droite.

Restera à confirmer en bas à droite pour enregistrer les réglages.

En cliquant à gauche sur Backup, vous aurez l’écran ci-dessus.

La première sauvegarde sera déclenchée en cliquant sur « Take Backup » :

Ci-dessous la sauvegarde en cours :

Une fois celle-ci terminée, la sauvegarde apparaîtra

Nous sélectionnerons ensuite l’écran « Restore to virtual » :

Nous sélectionnerons l’option « onsite backup location », l’option « Altaro offiste server » permettant une connexion à une instance Altaro VM Backup (produit non utilisé dans le cadre de ce tutoriel).

L’écran suivant vous demandera quel serveur restaurer, Altaro Physical backup Server permettant la sauvegarde de plusieurs machines. Nous n’avons ici qu’une solution.

L’écran suivant vous permettra de choisir quelle version de sauvegarde à restaurer :

Vous sera ensuite demandé si vous voulez restaurer dans un fichier vhd ou restaurer une VM directement sur Hyper-V :

Restera à entrer les informations de connexion :

Le job est créé, vous pouvez consulter l’état en cliquant sur « Go to Dashboard » :

Nous voyons la restauration en cours dans le tableau de bord :

La restauration terminée :

Ci-dessous, nous pouvons voir la VM dans le gestionnaire Hyper-V :

3-2-10 - Time Machine (Macintosh)

Time Machine est l'outil le plus simple pour sauvegarder son système sur Mac. Celui-ci effectue des sauvegardes incrémentales jusqu'à remplir le disque de sauvegarde. Il fait une sauvegarde toutes les heures, en gardant une sauvegarde par 24 heures, par semaine, par mois jusqu'à saturation du disque. Quand le disque est plein, les sauvegardes les plus anciennes sont supprimées automatiquement. Les derniers systèmes permettent de restaurer directement depuis une sauvegarde Time Machine lors de la procédure d'installation et également une sauvegarde multivolume (plusieurs sauvegardes différentes sur plusieurs volumes – exemple : une première sauvegarde sur disque externe, et une seconde sur un autre, ou sur un volume réseau compatible Time Machine par exemple).

En cas de mise à jour système majeure ou de réinstallation, Time Machine refera une sauvegarde complète. Si le disque dur est mis sur un autre ordinateur et que ce volume est sélectionné pour faire une sauvegarde, Time Machine conservera les sauvegardes de l'autre poste, mais vous n’y aurez accès qu’avec un compte administrateur. Si l'on souhaite ne pas conserver les sauvegardes de l'autre poste, il faudra les supprimer manuellement. Une réinstallation complète sera considérée comme un nouveau poste.

Pour sauvegarder sur un volume réseau, si la destination n’est pas un Mac OS Server ou un partage NAS compatible Time Machine, il vous faudra :

- créer une image disque depuis l’utilitaire de disque (sélectionner image disque sparseBundle en format MacOS journalisé) ;

- copier l’image disque dans le volume réseau ;

- double-cliquer dessus pour la monter ;

- lancer la commande suivante depuis le terminal : sudo tmutil setdestination /Volume/[nom du volume Time Machine monté].

3-2-11 - Carbon Copy Cloner (Macintosh)

Carbon Copy Cloner est un outil de clonage qui du coup, permet également d'effectuer une sauvegarde bootable.

Pour que le support de sauvegarde soit bootable, il faut que le message « This volume will be bootable » apparaisse (comme sur l'image ci-dessus).

L'avantage par rapport à Time Machine est qu'il suffit de démarrer sur le volume contenant la sauvegarde (touche Alt au démarrage du Mac), pour retrouver son système tel quel et pouvoir travailler, il y a plus d'options avancées que Time Machine. Time Machine est adapté à l'utilisateur standard, Carbon Copy Cloner, à un administrateur.

Il est possible de sauvegarder sur un volume réseau, mais pas de faire un clone dans ce cas-là.

3-3 - Cas d'une machine en panne

Dans le cas d'une machine en panne, il est possible de la transformer en VM avec le principe de la migration à froid sous réserve d'un accès au disque dur.

- La panne ne doit pas être une panne disque.

- Dans le cas d'un disque SCSI ou SAS, il faudra une carte contrôleur permettant d'y accéder.

- Dans le cas d'un RAID matériel, si la carte RAID est opérationnelle, il devrait être possible de récupérer le contenu du ou des disques, si ceux-ci ne sont pas endommagés ou corrompus.

- Dans le cas d’un RAID logiciel, celui-ci peut être dégradé, mais doit contenir suffisamment de disques pour être reconstructible.

- Sur les modèles récents de Macintosh, il ne sera pas possible de récupérer le contenu, sauf à passer par des services spécialisés, les disques SSD étant directement soudés à la carte mère.

4 - Migration « à tiède »

Dans la migration « à tiède », certaines étapes normalement effectuées par les produits prévus pour faire une migration à chaud devront être faites à la main. Cette étape nécessitera plus de compétences techniques.

Rappel des étapes d’une migration P2V :

- création de la machine virtuelle de destination ;

- transfert du contenu de la machine physique dans la machine virtuelle tout en la laissant en production ;

- tests sans arrêt de la machine physique une fois la copie effectuée ;

- application du delta depuis la création de la VM ;

- arrêt de la machine physique.

La création de la VM et l'application du delta seront faites manuellement.

L’utilisation d’un logiciel de sauvegarde/restauration incluant la sauvegarde incrémentale pourra permettre de rapidement appliquer le delta depuis la première sauvegarde.

4-1 - Windows

Voici quelques exemples de migration sous Windows.

4-1-1 - Macrium Reflect

Nous avons vu la réalisation d’un clone avec Macrium Reflect au chapitre 3.2.3.

Il est tout à fait possible d’appliquer un delta à l’image disque. Pour cela il faudra :

- détacher le disque virtuel de sa VM ;

- le monter depuis le gestionnaire de disques dans la machine physique source (menu Action → attacher un disque virtuel ;

- refaire un clone par-dessus celui déjà fait, Macrium ne va pas refaire le clone en entier, il va utiliser sa fonction Rapid Delta Clone (activé par défaut) ;

- détacher le disque virtuel de la VM et le reconnecter à la VM.

Dans le cas de l’utilisation de VMWare, il vous faudra utiliser un produit tiers tel que OSFMount ou imDisk pour pouvoir créer et monter un fichier vmdk dans lequel le clone sera copié.

4-1-2 - Disk2Vhd

disk2vhd, produit de Systernal, permet de transformer un volume en fichier VHD ou en VHDX, nouveau format utilisé par Hyper-V 3.0. Cet outil ne nécessite pas d'installation et gère le VSS (Volume Shadow Service).

Ci-dessous, l'écran au démarrage de Disk2Vhd :

Dans mon cas, je décoche le disque e:\ correspondant au disque qui contiendra le fichier VHD. Je sélectionne le nom du fichier et son chemin. Je décoche VHDX (nouveau format Hyper-V 3).

Ce fichier VHD sera utilisable tel quel avec VirtualBox et Hyper-V après création de la VM. Pour VMWare, il faut utiliser d'autres produits ou faire une conversion. Le produit présenté ci-dessous permet d'effectuer une conversion, mais dans ce cas précis, il sera évidemment plus pertinent de l'utiliser directement.

4-1-3 - WinImage

WinImage est un shareware conçu pour lire ou écrire des fichiers image. Il permet de générer des images au format .vhd, .vmdk et .ima (format natif de WinImage). Il permet également la conversion d'un fichier .vhd en fichier .vmdk.

Dans l’exemple ci-dessous, j’ai converti le disque actuel (disque 0) vers un fichier .vmdk stocké sur le e:\ (disque 1 à l’écran). Il faut cocher la case « include non removable hard disk(s) »  pour voir les disques internes. Attention, il faut lancer WinImage en administrateur (une icône spécifique est créée lors de l'installation) pour accéder au disque en cours d’utilisation par le système. J’ai choisi la création d’un disque dynamique (disque à taille variable). Une fois l’opération effectuée, voici l’écran qui apparaît :

L'écran suivant permet de demander quelle partition afficher dans l’écran suivant (même s'il n’y a qu’une partition, cet écran s’affiche) :

En utilisant le format VHD, l'image sera utilisable avec VirtualBox et Hyper-V ; en utilisant le format VMDK, l'image sera utilisable avec VirtualBox et VMWare.

La création de la VM dans VMWare en reprenant le fichier image n’a pas posé de difficultés. VMWare m’a signalé que le vmdk était dans un ancien format et m’a demandé de soit le laisser dans le format actuel, soit le mettre à jour ; je l’ai laissé tel quel.

Sur l'écran suivant, WinImage affiche le contenu de l'image :

4-2 - Linux

4-2-1 - Sauvegarde par dd

dd est une commande Unix/Linux permettant de dupliquer un fichier/périphérique vers un autre fichier/périphérique. Il ne travaille pas au niveau du système de fichiers, mais au niveau secteurs disques. L'intégralité du disque (ou de la partition sélectionnée) est copiée. Si le disque fait 20 Go et qu'il est occupé à 50 %, l'image fera quand même 20 Go.

Exemple de sauvegarde avec le disque complet /dev/sda  dans un fichier image dans /mnt :

dd if=/dev/sda of=/mnt/image.dd

Pour la sauvegarde par partition (intéressant pour ne pas avoir à copier la partition de swap) :

dd if=/dev/sda1 of=/mnt/image.dd

Pour la restauration d’un disque :

dd if=/mnt/image.dd of=/dev/sda

Pour la restauration d’une partition :

dd if=/mnt/image.dd of=/dev/sda1

Il est possible de compresser et décompresser à la volée en utilisant gzip dans un pipe.

Sauvegarde :

dd if=/dev/sda | gzip > /mnt/image.gz

Restauration :

gunzip /mnt/image.gz | dd of=/dev/sda

Ce dump ne sera pas utilisable tel quel dans une VM, mais devra être converti en fichier image dans un format accepté par l’hyperviseur utilisé, à moins d’être appliqué depuis un live-cd comme source de restauration.

Un dump via dd ne sera pas forcément bootable sans intervention, notamment avec l’UEFI. Il vous faudra en cas d’échec réinstaller Grub ou un éventuel autre chargeur de boot.

Dans mon exemple provenant d’une VM, mon disque fait 4 Go de façon à optimiser le temps de traitement.

L’option status=progress de dd permet de voir la progression de l’opération.

Il est également possible de voir la progression de la sauvegarde en lançant dans un second terminal la commande kill -USR1 suivi du numéro de processus de dd, comme dans l’exemple ci-dessus. Dans mon exemple, le numéro de process est 2030, obtenu via la commande « ps aux | grep dd ».

kill sert en général à killer c’est-à-dire détruire un processus, mais sert aussi à envoyer un signal spécifique à un processus donné. Dans notre cas nous envoyons le signal USR1 au processus dd qui permet d’obtenir l’état d’avancement.

Une fois l'opération effectuée, je convertis l'image brute générée par dd en .vmdk en utilisant l'utilitaire qemu-img fourni avec Qemu.

La commande de conversion :

qemu-img convert -O vmdk svg.dd linux_hd.vmdk

Il est aussi possible de convertir l'image en vdi pour VirtualBox (qui peut pour rappel aussi travailler avec des fichiers vmdk et vhd), et en .vhd pour Hyper-V.

Après installation de ce fichier vmdk dans une VM, le système ne démarrait pas. J’ai démarré dans un live-cd et utilisé les commandes suivantes pour recréer le code d'amorçage. Le contenu du disque était accessible :

mount /dev/sdX /mnt          # montage de celle-ci en remplaçant le X par le bon numéro de partition
cd /mnt                       # on se place dans le point de montage
mount --bind /proc proc
mount --bind /sys sys
mount --bind /dev dev
mount --bind /dev/pts dev/pts
chroot .                      # lancement du chroot
grub-install /dev/sdX              # installation de grub sur le MBR
grub-install --force /dev/sdX      # --force nécessaire uniquement en cas de message d'erreur
update-grub                        # pour mettre à jour le fichier de configuration si besoin
exit                               # pour sortir du chroot
umount dev/pts dev sys proc        # suppression des montages faits pour retour à l’état initial
cd /
umount /mnt                        # démontage du disque

Une fois ces opérations effectuées, la VM a démarré.

Ceci est valable dans le cas d’un boot legacy. Dans le cas d’un système UEFI, il sera plus simple d’utiliser grub-repair (cela reste faisable en ligne de commande).

Cette méthode posera des problèmes de cohérence en cas de modification de la source durant sa copie. Il faudra donc, je pense, l’éviter en production, l’idéal étant d’arrêter les services (partage de fichiers, bases de données, etc.) avant traitement ou de ne laisser éventuellement qu’un accès en lecture seule.

4-2-2 - Copie système dans une image sans les secteurs inutilisés

Afin d'éviter de devoir copier les secteurs inutilisés, j'ai choisi une alternative : créer une image à la taille occupée par mon disque qui sera transformé en disque pour VM.

Dans l'exemple utilisé, le disque de la machine à virtualiser sera un disque de 8 Go (dans une VM) occupé à hauteur d’environ 1 Go. Mon disque ne comprenant qu’environ 15 % occupé, cette méthode m'a permis de générer un fichier image correspondant à cette taille et non pas une image de 8 Go avec 85 % de données inutiles (avec dd, tous les secteurs sont copiés, qu'ils soient occupés par un fichier ou non). Gain de place et de temps. dd sert à copier des blocs d'un périphérique vers un autre, ce périphérique pouvant être un disque, une partition, un fichier, /dev/zero en source et en destination. Dans ce cas, dd va être utilisé avec /dev/zero en entrée pour créer un fichier rempli de 0 qui contiendra ensuite la partition, le système de fichiers et la copie des fichiers pour le disque image de la VM.

Commençons par voir l’espace occupé avec la commande df :

df -h

Sys. de fichiers Taille Utilisé Dispo Uti% Monté sur
udev 986M 0 986M 0% /dev
tmpfs 200M 3,0M 197M 2% /run
/dev/sda2 7,8G 1001M 6,4G 14% /
tmpfs 996M 0 996M 0% /dev/shm
tmpfs 5,0M 0 5,0M 0% /run/lock
tmpfs 996M 0 996M 0% /sys/fs/cgroup

Nous voyons que le système est monté dans une partition unique (/dev/sda2), pas de partition /home, ni de partition /boot, /var à part. Celle-ci occupe environ 1 G. Il n’y a pas de swap.

Dans le cas de partition /home ou autres en plus de la partition racine, il faudra créer une partition par point de montage. Vous pourrez aussi envisager de créer un disque virtuel par point de montage, ou de tout copier dans une seule partition. Il faudra alors modifier le fichier /etc/fstab en conséquence et ne pas utiliser le drapeau -x dans la commande cp.

Nous créerons un fichier de 4 Go :

dd if=/dev/zero of=image.dd bs=1 count=0 seek=4G
0+0 enregistrements lus
0+0 enregistrements écrits
0 bytes copied, 0,003833337 s, 0,0 KB/s

L’option seek permet la création d’un fichier sparse. Le fichier n’est pas écrit entièrement, mais apparaît avec la taille choisie dans le système de fichiers.

Une fois le fichier créé, il va falloir y créer une table de partitions :

avec fdisk pour les anciens systèmes BIOS/MBR :

fdisk image.dd

avec gdisk pour les systèmes UEFI/GPT :

gdisk image.dd

Le déclenchement de la commande créera automatiquement la table de partition, il va falloir créer la ou les partitions selon le schéma du disque source.

Les commandes seront les mêmes avec fdisk ou gdisk, sauf qu’en GPT, il va falloir créer une partition ESP avant la partition contenant le système (code ef00 dans la liste)

exemple en UEFI :

Nous commencerons par la partition ESP :

gdisk image.dd

Partition table scan:
MBR: not present
BSD: not present
APM: not present
GPT: not present

Creating new GPT entries.

Command (? for help): n
Partition number (1-129, default1) :
First sector (34-8388574, default = 2048) or {+-}size{KMGTP} :
Last sector (67584-8388574, default = 8388574) or {+-}size{KMGTP} : +100M
Current type is ‘Linux filesystem’
Hex code or GUID (L to show codes, Enter = 8300) : ef00
Changed type of partition to ‘EFI System’

Command (? for help): n
Partition number (2-129, default 2) :
First sector (34-8388574, default = 206848) or {+-}size{KMGTP} :
Last sector (206848-8388574, default = 8388574) or {+-}size{KMGTP} :
Current type is ‘Linux filesystem’
Hex code or GUID (L to show codes, Enter = 8300) :
Changed type of partition to ‘Linux filesystem’

Command (? for help): wq

Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!

Do you want to proceeed? (Y/N): Y
OK; writing new GUID partition table (GPT) to image.dd.
Warning: the kernel is still using the old partition table.
The new table will be used at the next reboot or after you run partbrobe(8) or kpartx(8)
The operation has completed successfully.

Nous avons ici créé une partition ESP de 100 Mo, le reste de place disponible étant utilisé pour la partition ext4.

Avec fdisk, lors de la création d’une partition, il vous sera demandé si vous voulez créer une partition primaire ou étendue. D’autre part, il faudra activer le flag bootable (commande a).

Une fois la ou les partitions créées, nous lançons ensuite kpartx :

kartx -a image.dd

Ceci permettra l’accès aux deux partitions via /dev/mapper (partitions loop0p1 et loop0p2)

Nous allons devoir formater les partitions :

mkfs.vfat, nécessaire pour créer la partition ESP est inclus dans le paquet dosfstools.

pour la partition ESP (qui est en fait une partition FAT32 avec le flag ESP) :

mkfs.vfat -F 32 /dev/mapper/loop0p1
mkfs.fat 4.1 (2017-01-24)

puis la partition ext4 :

mkfs.ext4 /dev/mapper/loop0p2

Nous montons ensuite les partitions :

mkdir /media/p1 /media/p2
mount /dev/mapper/loop0p1 /media/p1
mount /dev/mapper/loop0p2 /media/p2

Il faudra également monter la partition EFI source si elle ne l’est pas :

mount /dev/sda1 boot/efi

puis ensuite copier les données des deux partitions :

cp -dpRx /boot /media /p1
cp -dpRx / /media /p2

Explication des paramètres :

-d

Copie des liens symboliques en tant que tels.

-p

Conserve le propriétaire, le groupe, les permissions d’accès et les horodatages du fichier original.

-R

Copie récursivement les dossiers et sous-dossiers.

-x

Ignore les sous-dossiers membres d'un système de fichiers différent de celui de départ de la copie.

Rappel : L’option -x ne copiant pas les éléments depuis un autre point de montage, il faudra itérer la copie sur chaque partition dans le cas de plusieurs partitions sur la machine source.

Une fois la copie effectuée, nous démontons les volumes :

umount /media /p1 /media /p2

Démontage au niveau de kpartx :

kpartx -d image.dd
loop deleted : dev/loop0

Comme vu au chapitre précédent, ce fichier image devra être converti en image de disque virtuel compatible avec votre hyperviseur.

Dans l’exemple présenté, j’ai converti l’image en fichier vmdk, pesant environ 1 Go, ce qui correspond à l’espace réellement occupé sur la machine source.

Une fois la conversion effectuée, il m’aura été nécessaire de démarrer sur un live-cd et d’exécuter boot-repair afin que l’image puisse démarrer.

Une fois la VM opérationnelle, un simple usage de rsync permettra d’appliquer le delta si la machine source est restée en production.

Avant de démarrer sur la VM, j’agrandis le fichier image (avec les outils de l'hyperviseur utilisé) de façon à pouvoir ensuite agrandir la partition.

Pour VMWare Player, dans les réglages, il faut sélectionner la ligne « hard disk » puis sur la droite, dans « utilities », sélectionner « expand », puis « la taille du vmdk ».

Pour VirtualBox, il faut en ligne de commande utiliser :

vboxmanage modifyhd "fichier.vdi"  --resize 30720

Avec 30 720 pour agrandir à 30 go (30*1024=30 720).

Pour agrandir un fichier .vhd, il est possible de le faire depuis les réglages de la VM Hyper-V.

Il est possible de le faire également avec diskpart :

select vdisk file= "fichier.vhd"
expand vdisk maximum=30720

Je n'ai pas testé l'agrandissement d'un fichier .vhd contenant autre chose qu'une partition Windows avec diskpart.

Lors du démarrage sur live-cd, j'agrandis la partition contenant mon système, je crée une partition pour le swap et j'installe GRUB comme vu précédemment.

Partition avant agrandissement :

L'agrandissement de la partition se fait par un clic bouton droit sur la partition et sélection de l'option « redimensionner ». Pour créer une autre partition, il faut faire un clic bouton droit sur la zone non allouée (unallocated). Il ne faudra pas oublier de cliquer sur la flèche verte afin de valider les opérations.

Une fois GRUB remis, le démarrage sur le disque image s'effectue. Il faut vérifier que le point de montage dans le fichier /etc/fstab pour le swap est bon, sinon il faudra corriger. Cela n’empêchera pas le démarrage, mais générera un warning et il n'y aura pas de swap.

J'ai aussi remplacé le point de montage de / par /dev/sda1, ma partition vue depuis la VM en lieu et place du montage par UUID. J’aurais également pu mettre à jour cet UUID en le récupérant avec la commande blkid.

# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# / was on /dev/sda1 during installation
UUID=2b4889d6-1aeb-40df-a95d-36980dd0ac9a /               ext4    errors=remount-ro 0       1
# swap was on /dev/sda5 during installation
UUID=48a8e28b-541c-4bb5-bbcb-7f3cdd9a51a1 none            swap    sw              0       0
/dev/sr0        /media/cdrom0   udf,iso9660 user,noauto     0       0

4-3 - Finalisation avant arrêt de la machine physique

Avant l'arrêt de la machine physique, le delta, depuis le début de la procédure doit être recopié de la machine physique vers la VM. Par ailleurs, la machine physique et la machine virtuelle ne peuvent cohabiter sur le réseau avec la même adresse IP, il faut modifier la configuration d'une des deux, au moins temporairement le temps d'appliquer le delta.

Pour les fichiers, cela peut être fait via rsync. Pour Windows, on peut utiliser un logiciel de synchronisation ou Deltacopy, l'équivalent rsync pour Windows, voir robocopy avec les bonnes options.

Pour les bases de données, il faudra faire un dump avec les outils fournis avec le moteur de base de données et le restaurer dans la destination. Vous pourrez aussi utiliser des outils tiers compatibles avec votre base de données. Certains des logiciels évoqués pour faire les sauvegardes à froid (comme Acronis, Retrospect) incluent des modules spécifiques SQL-Server et/ou Exchange (ces modules peuvent être en option).

Dans le cadre d’Active Directory, utiliser un cluster de base de données peut permettre de plus facilement virtualiser des contrôleurs de domaine, l’idée étant alors d‘ajouter une ou plusieurs machines virtuelles dans le cluster, puis de sortir les machines physiques du dit cluster comme vu précédemment.

5 - Conclusion

La migration à froid est ce qu'il y a de plus simple. Le produit utilisé importe peu, utilisez celui que vous maîtrisez. Le choix de celui-ci aura les mêmes impacts qu’avec des machines physiques.

Dans le cas d'une migration à chaud, je recommande l'usage de la solution proposée par le fabricant de l'hyperviseur (VMWare converter pour VMWare, XenConvert pour Xenserver, etc.).

Dans le cadre de migrations de masse,les solutions telles que Double-Take MOVE, PlateSpin (produits n’étant pas évoqués, car peu connus et peu utilisés), ou Veeam sont plus pertinentes dans le cas d'environnement multihyperviseur ou une manipulation de P2V/V2V/V2P importante.

Les solutions de migration à tiède sont à envisager en dernier recours de par leur lourdeur de mise en place, par rapport à une migration à chaud avec les produits standards ou une migration à froid.

5-1 - Retours d’expérience

5-1-1 - Migration de mon propre poste

Je travaillais auparavant sur Windows XP (avant la date de fin de support) à partir d'un Mac Mini vieillissant sous Mac OS X 10.5. Je démarrais soit sur Mac OS (rarement) et par défaut sur XP. Je suis passé sur un Mac Mini nouveau modèle sous Mavericks (Mac OS X 10.9). Avec la montée de l’utilisation des machines virtuelles, il m’a paru pertinent de virtualiser ce Windows XP, plutôt que de refaire un dual boot.

J'ai effectué un NtBackup de mon poste selon la procédure exposée au paragraphe 3.1.1 (installation d’un système de base avant restauration du backup).

Je n'ai pas récupéré mon profil Firefox. En investiguant, je me suis rendu compte qu'il y avait deux profils, dont celui de ma sauvegarde. Lors de l’installation du XP de base dans la machine virtuelle, j'avais installé Firefox, ce qui m'a créé un profil. Il m'a suffi de sélectionner le bon profil pour régler le problème.

Autre souci, dans Outlook, j'avais bien tous mes mails, mais n’avais plus le compte POP/SMTP que j'ai dû recréer. Je pense que ce problème vient du fait que mon fichier pst n’était pas placé à l'emplacement originel (dans %appdata% pour l’ancienne version, les versions actuelles stockant les fichiers .pst dans Documents\Fichiers Outlook).

Après quelques jours d'utilisation, j'ai commencé à avoir des BSOD. En recherchant la source du plantage par les codes erreurs fournis, j'ai désactivé dans la base de registre les services en lien avec mon erreur (Intelppm, processor). Le problème a finalement été résolu en replaçant le disque virtuel en IDE au lieu de SATA.

Une fois ce Windows XP opérationnel, il aura suffi de mettre à jour le système vers des versions supérieures, en créant un snapshot avant pour retour en arrière en cas de problème. Ces mises à jour système seront possibles tant que des versions Windows 32 bits seront disponibles, Windows XP étant en 32 bits.

5-1-2 - Sécurisation ancien serveur d'application comptabilité

Une société utilisait un vieux logiciel de comptabilité en 16 bits, donc incompatible avec les systèmes actuels en 64 bits s'appuyant sur SQL Server 2000, avec aucun support d'installation de fourni, plus de support produit non plus. Le logiciel a été remplacé, mais devait rester dans un premier temps accessible. Le poste XP supportant ce serveur a été sauvegardé via NtBackup.

Les postes XP ont été remplacés par des Windows 7. Le poste qui servait de serveur et de client est resté sur le réseau en serveur dédié, les postes clients se connectant ponctuellement dessus via une VM Windows XP installée sur leur Windows 7.

J'ai restauré le backup dans une VM, ensuite je l'ai nettoyé, enlevé les données bureautique (le poste servait à l’origine de serveur pour le logiciel de comptabilité, mais aussi comme poste bureautique), et gardé celle-ci au cas où. La VM en fichier .ova faisait un peu plus de 4 Go (contre 40 Go de sauvegarde avant nettoyage).

Le poste XP faisant office de serveur est tombé en panne. J'ai alors remonté la VM sur un des postes, l'utilisateur supportant le serveur a juste changé de VM pour utiliser le produit et devait démarrer celle-ci quand nécessaire. Les autres utilisateurs "client" accédant à cette VM "serveur" comme auparavant.

5-1-3 - Sécurisation poste VISTA

J'ai réparé un poste VISTA qui était planté. Le poste est reparti après un chkdsk puis un fixmbr et un fixboot. L'utilisateur n'ayant aucun des supports d'installation des logiciels utilisés, ceux-ci étant obsolètes, le système n'étant pas très stable et l'utilisateur souhaitant un nouvel appareil, j'ai virtualisé celui-ci. Ceci a permis à l’utilisateur de garder ses anciens logiciels dans un premier temps dans son ancien système virtualisé.

6 - Remerciements

Je remercie Jipété. Le lien qu'il m'a fourni m'a permis de générer une partition correcte dans un fichier image. Je le remercie aussi pour sa relecture orthographique.

Je remercie LittleWhite et Viduc pour leur relecture technique.

Je remercie Malick ,franouch et f-leb pour leur relecture orthographique.

(1)*le delta correspond aux modifications effectuées entre la création de la VM et l'instant T. S'il n'y a pas d'outil d'application de delta dans la solution employée, celui-ci devra être fait à la main par un logiciel de synchronisation par exemple pour ce qui est des fichiers. Pour les bases de données, une solution de réplication peut être envisagée, mais cela nécessite des compétences dans ce domaine.