VHDResizer, commandes PowerShell et autres méthodes de redimensionnement de disques virtuels
Le kit d'outils de gestion de disques d'Hyper-V est loin d'être satisfaisant. Heureusement, VHDResizer, PowerShell et d'autres méthodes permettent de redimensionner les disques virtuels.
La conversion de disques physiques en disques virtuels passe souvent par un redimensionnement. Pour réussir cette migration, il est essentiel d'éviter les goulets d'étranglement au niveau du stockage.
Toutefois, le kit d'outils de gestion de disques d'Hyper-V ne contient pas encore d'utilitaires permettant de redimensionner les disques virtuels. Malgré ce chaînon manquant, il est toujours possible de définir la taille appropriée du disque virtuel en utilisant différents outils, notamment les commandes PowerShell ou VHDResizer.
La méthode PowerShell
Et aussi
Ben Armstrong, responsable du programme Microsoft Hyper-V, a présenté dans un blog cette méthode qui semble prometteuse pour diminuer rapidement le volume d'un disque virtuel et alléger ainsi certaines tâches d'administration. Les étapes nécessaires sont les suivantes :
Ouvrir Microsoft PowerShell : Si les cmdlets Hyper-V PowerShell ne sont pas installés, utilisez la commande suivante :
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-Management-PowerShell
Monter le fichier VHD : La commande suivante permet de monter le fichier VHDX, en remplaçant le chemin ci-dessous par l'emplacement du fichier VHDX dont vous souhaitez réduire la taille.
Mount-VHD "C:\VMs\ResizeMe.vhdx" –passthru | get-disk | get-partition | get-volume
N'oublions pas que ce processus ne fonctionne que pour les fichiers VHDX, qui sont uniquement compatibles avec Hyper-V dans Windows Server 2012. La conversion d'un VHD en VHDX est simple, mais exige l'immobilisation des VM.
Redimensionner la partition : Vous devez redimensionner la partition avant de réduire le fichier VHDX. Par ailleurs, la taille du fichier ne peut pas être réduite au-delà de la taille de la partition. Conservez une marge raisonnable sans oublier que les tâches comme la défragmentation fonctionnent mieux quand au moins 20 % de l'espace disque virtuel est inutilisé. La commande ci-dessous permet de redimensionner la partition. Veillez à inclure l'abréviation KB, MB, GB ou TB dans le paramètre de taille.
Resize-Partition –driveletter D –size 40MB
Démonter le VHD : A ce stade, la gestion de la partition est terminée. Il ne vous reste plus qu'à redimensionner le disque dur virtuel (VHD) proprement dit. La simple commande ci-dessous permet de réduire le VHDX à la nouvelle taille que vous avez attribuée à la partition.
Resize-VHD "C:\VMs\ResizeMe.vhdx" –ToMinimumSize
Utilisez la commande suivante pour vérifier la nouvelle taille du fichier VHDX.
Get-VHD "C:\VMs\ResizeMe.vhdx" | fl path, vhdformat, vhdtype, size
Redimensionner des VHD avec VHDResizer
Le kit d'outils gratuit VHDResizer vous permet de monter des VHD et de les réduire à la taille de votre choix. La commande Resize-VHD mentionnée ci-dessus ne fonctionne que pour les fichiers VHDX. VHDResizer est un outil plus ancien, qui ne prend pas en charge les fichiers VHDX. Son temps d'exécution est plus long car il effectue une copie au niveau des blocs du disque virtuel existant vers un nouveau fichier VHD.
Vous pouvez utiliser les commandes PowerShell ci-dessus pour rétrécir la partition dans le VHD avant de faire appel à VHDResizer.
Commencez par arrêter la VM. Ensuite, montez le VHD, en remplaçant le chemin ci-dessous par l'emplacement de votre VHD.
Mount-VHD "C:\VMs\ResizeMe.vhd" –passthru | get-disk | get-partition | get-volume
Redimensionnez la partition en vous inspirant de l'exemple de commande suivant, tout en ménageant une marge raisonnable.
Resize-Partition –driveletter D –size 40MB
Comme vous pouvez le constater, toute tentative d'utiliser la commande PowerShell Resize-VHD se solde par une erreur indiquant que les fichiers VHDX sont le seul format autorisé. Vous devez alors ouvrir VHDResizer pour réduire la taille du VHD et terminer la procédure. Vous pouvez monter et redimensionner la partition à distance, mais vous devez emprunter un chemin du système local pour exécuter VHDResizer.
A son lancement, VHDResizer demande le VHD source.
La fenêtre suivante vous invite à indiquer l'emplacement du VHD que vous êtes sur le point de créer, la taille souhaitée et s'il doit être dynamique ou fixe. Une fois ces paramètres définis, cliquez sur OK.
VHDResizer ne change pas la taille du VHD existant, mais en crée un second de la taille de votre choix.
Une fois le processus terminé, ouvrez Hyper-V Manager, supprimez le disque plus volumineux antérieur et ajoutez le nouveau VHD redimensionné.
Autres méthodes de redimensionnement de VHD
Si vous disposez d'un réseau de stockage (SAN) NetApp et si des fichiers VHD ou VHDX sont présents sur ces unités logiques, vous pouvez utiliser Data ONTAP PowerShell Toolkit pour redimensionner des disques virtuels. Grâce à ce kit, vous pouvez réduire la taille de vos disques virtuels et mettre à zéro les blocs correspondants sur le SAN, ce qui vous permet de récupérer de l'espace.
Selon le débit de votre réseau, une migration de disques physiques à disques virtuels (P2V) peut prendre de 30 minutes à plusieurs heures. Le temps supplémentaire requis pour réduire le volume des disques par l'une des méthodes ci-dessus prolongerait d'autant le processus, et donc l'immobilisation des applications. Si les nouvelles commandes PowerShell pour Windows Server 2012 s'annoncent prometteuses, elles ne prennent pas en charge les VHD et exigent l'arrêt des VM ; le processus P2V entraîne alors des périodes d'interruption et des perturbations supplémentaires. On peut espérer que cette procédure d'administration soit un jour intégrée à la migration automatisée du stockage P2V ou à une tâche de modification des disques pilotée par assistant dans Hyper-V.