Thick Provisioning et Thin Provisioning : Quelle est la différence ?

Dans cet article, nous allons examiner en détail l’aspect de pré-allocation du stockage des paramètres de disque virtuel et découvrir ce que sont l’Allocation statique et l’Allocation fine et dynamique, comment elles diffèrent et quels types de pré-allocation de stockage conviennent le mieux à votre infrastructure.

NAKIVO pour la sauvegarde VMware vSphere

NAKIVO pour la sauvegarde VMware vSphere

Protection complète des données VM VMware vSphere, récupération instantanée, sauvegardes sécurisées sur site, hors site et dans le cloud.

Allocation statique ( « Thick Provisioning », aussi appelé « Static Provisioning »)

Le Thick Provisioning est un type de pré-allocation de stockage. Avec le Thick Provisioning, la quantité totale de capacité de stockage de disque virtuel est pré-allouée sur le stockage physique lors de la création du disque virtuel. Un disque virtuel à l’allocation statique consomme tout l’espace alloué dans la banque de données dès le début. L’espace est donc indisponible pour une utilisation par d’autres machines virtuelles.

Thick provisioning

Il existe deux sous-types de disques virtuels à l’allocation statique :

  • Un Disque avec la mise à zéro lente (Lazy zeroed disk) occupe tout son espace au moment de sa création, mais cet espace peut contenir d’anciennes données sur le support physique. Ces anciennes données ne sont ni effacées ni écrasées. Il faut donc les « mettre à zéro » avant de pouvoir écrire de nouvelles données sur les blocs. Ce type de disque peut être créé plus rapidement, mais ses performances seront plus faibles pour les premières écritures en raison de l’augmentation des IOPS (opérations d’entrée / sortie par seconde) pour les nouveaux blocs ;
  • Un Disque avec la mise à zéro rapide (Eager zeroed disk) obtient tout l’espace requis au moment de sa création, et l’espace est effacé de toute donnée précédente sur le support physique. La création de disques avec la mise à zéro rapide prend plus de temps, car les mises à zéro doivent être écrites sur le disque entier, mais leurs performances sont plus rapides lors des premières écritures. Ce sous-type de disque virtuel à l’allocation statique prend en charge les fonctionnalités de clustering, telles que la tolérance aux pannes.

Thick provisioning

Pour des raisons de sécurité des données, la mise à zéro rapide est plus courante que la mise à zéro lente avec des disques virtuels à l’Allocation statique. Pourquoi ? Lorsque vous supprimez un VMDK, les données de la mémoire des messages ne sont pas totalement effacées ; les blocs sont simplement marqués comme disponibles jusqu’à ce que le système d’exploitation procède à leurs réécriture avec effacement. Si vous créez un disque virtuel mis à zéro hâtif sur cette mémoire des messages, la zone de disque sera totalement effacée (par exemple, mise à zéro), empêchant ainsi toute personne ayant de mauvaises intentions de récupérer les données précédentes – même si elles utilisent un logiciel tiers spécialisé.

Allocation fine et dynamique (Dynamic Provisioning, aussi appelé « Thin Provisioning »)

Le Thin Provisioning est un autre type de pré-allocation de stockage. Un disque virtuel à l’allocation fine et dynamique consomme uniquement l’espace dont il a besoin au départ et augmente avec le temps en fonction de la demande.

Par exemple, si vous créez un nouveau disque virtuel de 30 Go à l’allocation fine et dynamique et y copiez 10 Go de fichiers, la taille du fichier VMDK résultant sera de 10 Go, alors que vous auriez un fichier VMDK de 30 Go, si vous avez choisi d’utiliser un disque à l’allocation statique.

Thin Provisioning

Les disques virtuels à l’allocation fine et dynamique sont rapides à créer et utiles pour économiser de l’espace de stockage. Les performances d’un disque Thin Provisioned ne sont pas supérieures à celles d’un disque Thick Provisioned avec la mise à zéro lente, car pour ces deux types de disque, les mises à zéro doivent être écrites avant l’écriture des données dans un nouveau bloc. Notez que lorsque vous supprimez vos données d’un disque virtuel à l’allocation fine et dynamique, la taille du disque n’est pas automatiquement réduite. Ceci est dû au fait que le système d’exploitation supprime uniquement les indexes de la table de fichiers qui font référence au corps du fichier dans le système de fichiers ; il marque les blocs qui appartenaient à des fichiers « supprimés » en tant que libres et accessibles pour que de nouvelles données puissent être écrites. C’est pourquoi la suppression de fichiers est instantanée. S’il s’agissait d’une suppression complète, où les mises à zéro étaient écrites sur les blocs occupés par les fichiers supprimés, cela prendrait à peu près le même temps que la copie des fichiers en question. Voir l’illustration simplifiée ci-dessous.

View from the operating system

Problèmes pouvant survenir lors de l’utilisation de disques virtuels à l’allocation fine et dynamique

L’utilisation de disques virtuels à l’Allocation fine et dynamique n’est pas toujours lisse. Il y a des problèmes que vous devez connaître et que vous devez être prêt à traiter.

Téléchargez notre Livre Blanc gratuit: « How to Calculate Recovery Time Objective and Cut Downtime Costs »

Considérons un exemple qui rend les machines virtuelles inutilisables. Par exemple, nous avons une banque de données de 20 Go avec trois machines virtuelles en cours d’exécution. Chaque machine virtuelle possède un ensemble de disques virtuels à l’Allocation fine et dynamique à dont la taille maximale est de 10 Go. (Cette pratique est appelée « surallocation » – nous attribuons aux disques virtuels plus d’espace qu’ils ne peuvent en prendre physiquement. Cela se fait souvent, car cela vous permet de faire évoluer le système en ajoutant davantage de stockage physique selon vos besoins.) La taille de fichier de chaque disque virtuel s’étendra au fur et à mesure de l’ajout de données, jusqu’à ce qu’il n’y ait plus d’espace libre dans un banque de données. La situation devient critique lorsqu’il ne reste plus que 1 Go d’espace libre dans la banque de données, par exemple lorsque VM1 occupe 8 Go, VM2 7 Go et VM3 4 Go.

Les méthodes régulières de suppression de fichiers sur les machines virtuelles ne permettent pas de réduire les disques virtuels à l’allocation fine et dynamique. Si plus de 1 Go de nouvelles données est écrit sur l’une de ces machines virtuelles, toutes les trois échoueront et vous devrez migrer une ou plusieurs des machines virtuelles vers une autre banque de données pour restaurer leurs états d’exécution.

Comment réduire la taille du Disque virtuel à l’Allocation fine et dynamique après la suppression de fichiers

Pour pouvoir réduire la taille de fichier VMDK de vos disques virtuels à l’Allocation fine et dynamique, vous devez savoir comment mettre à zéro les blocs occupés précédemment par les données que vous avez supprimées. Voyons comment faire cela.

REMARQUE : Les opérations de réduction de disque ne sont possibles que si les machines virtuelles ne contiennent pas d’instantanés. Soyez également attentif et exécutez les commandes sous votre propre responsabilité. Sauvegardez toujours toutes vos données importantes avant d’effectuer toute opération sur disque. Pour sauvegarder vos machines virtuelles VMware  et Hyper-V, utilisez NAKIVO Backup & Replication.

Réduction des disques VMware à l’allocation fine et dynamique dans Linux

Considérons un exemple : Nous avons un fichier VMDK de 10 266 496 Ko (10 Go) (nous avons appris sa taille en allant dans le répertoire de la banque de données où se trouve notre machine virtuelle) et souhaitons réduire le disque virtuel sur lequel le système d’exploitation Linux invité est installé. Nous pouvons essayer de supprimer les fichiers inutiles sur ce disque virtuel. Cependant, Linux ne met pas automatiquement les blocs à zéro après la suppression des fichiers ; vous devrez le faire vous-même. Vous pouvez le faire en utilisant l’utilitaire dd (duplicateur de données) pour copier et convertir des données. Cet outil est disponible sur tous les systèmes Linux.

REMARQUE : Avant d’exécuter l’utilitaire dd, vous devez vous assurer que la capacité de la banque de données est suffisante pour l’utiliser (par exemple, pour le serveur ESXi, vous pouvez vérifier la capacité de stockage dans la section de stockage du client vSphere – allez à Configuration > Storage).

Utilisons l’utilitaire dd.

1. D’abord, nous vérifions l’espace libre sur une machine virtuelle Linux invitée en utilisant la commande df –h :

			root@test-virtual-machine:/# df –h

Nous obtenons le résultat suivant dans la console :

Filesystem   Size   Used   Avail   Use%   Mounted on
			udev         469M   0      469M    0%     /dev
			tmpfs        99M    6,3M   92M     7%     /run
			/dev/sda7    17G    8,8G   6,4G    58%    /
			tmpfs        491M   116K   491M    1%     /dev/shm
			tmpfs        5,0M   4,0K   5,0M    1%     /run/lock
			tmpfs        491M   0      491M    0%     /sys/fs/cgroup
			/dev/sda1    945M   121M   760M    14%    /boot
			/dev/sda6    3,7G   13M    3,5G    1%     /var/log
			tmpfs        99M    36K    99M     1%     /run/user/1000

Nous pouvons voir à partir de cette sortie que la partition / (root) contient 8,8 Go de fichiers.

2. Supprimons quelques gigaoctets de fichiers inutiles dans la partition root. C’est ce que nous voyons dans la console, si nous exécutons la commande df –h / :

			Filesystem   Size   Used   Avail   Use%   Mounted on
			/dev/sda7    17G    4,7G   11G     31%    /

Ainsi, notre partition root contient maintenant 4,7 Go de fichiers. Cependant, en allant dans le répertoire où se trouve notre fichier VMDK, nous pouvons voir que sa taille est toujours de 10 266 496 Ko (10 Go).

3. Maintenant, nous allons remplir l’espace libre avec des mises à zéro (dans notre cas, nous remplirons 10 Go sur 11 Go disponibles). Tout d’abord, nous tapons cd, suivi du nom du répertoire sur lequel la partition à mettre à zéro est montée (dans notre cas, il s’agit de cd /, car nous voulons naviguer vers la partition root). Après cela, nous exécutons la commande suivante, en modifiant les variables pour répondre à nos besoins :

			dd bs=1M count=10240 if=/dev/zero of=zero

Dans cette commande :

– dd ne peut être exécuté qu’en tant que super-utilisateur (superuser).

– bs définit la taille du bloc (par exemple, bs=1M vous donnerait une taille de bloc de 1 mégaoctet).

– count spécifie le nombre de blocs à copier (la valeur par défaut est dd pour continuer indéfiniment ou jusqu’à épuisement de l’entrée). Dans notre cas, 10 240 Mo correspond à la quantité d’espace libre que nous voulons remplir avec des mises à zéro. Le nombre de blocs de 1 mégaoctet est donc de 10240.

– if signifie un « fichier d’entrée ». C’est ici que vous devez indiquer la source à partir de laquelle vous souhaitez copier des données. Dans notre cas, il s’agit de /dev/zero – un fichier spécial (un pseudo-périphérique) qui fournit autant de caractères nuls que vous voulez en lire.

– of signifie un « fichier de sortie ». C’est là que vous définissez la destination où vous souhaitez écrire / coller vos données (dans notre cas, le nom du fichier est zero).
Après avoir exécuté la commande ci-dessus, la taille de notre fichier VMDK augmente. Ceci est la sortie que nous voyons une fois la commande terminée avec succès :

			10240+0 records in
			10240+0 records out
			10737418240 bytes (10 GB) copied, 59,4348 s, 181 MB/s
			Command has been completed successfully.

Ainsi, la taille de notre fichier VMDK est maintenant de 11 321 856 Ko (10,8 Go), ce qui signifie qu’il a été étendu. De plus, si nous exécutons à nouveau la commande df –h / nous verrons ce qui suit :

			Filesystem   Size   Used   Avail   Use%   Mounted on
			/dev/sda7    17G    15G    569M    97%    /

Cela signifie que presque toute la partition root (c’est-à-dire 97%) est occupée. C’est parce que nous avons rempli la majeure partie de l’espace précédemment « disponible » avec des mises à zéro. Maintenant, notre disque virtuel à l’allocation fine et dynamique est prêt à être réduit.

REMARQUE : Pour effectuer une réduction, il est nécessaire d’installer les outils VMware Tools.

4. Pour les machines virtuelles exécutées sur VMware ESXi ou station de travail VMware Workstation, nous exécutons les deux commandes suivantes dans le système d’exploitation invité Linux.

  • Pour vous assurer que la partition de disque est disponible, nous exécutons la commande comme suit :
    			root@test-virtual-machine:/# vmware-toolbox-cmd disk list
    

    C’est le résultat que nous voyons dans notre cas (c’est-à-dire que nous voyons la liste des partitions disponibles) :

    			/
    			/boot
    			/var/log
    

    La partition root est présente, nous pouvons donc continuer.

  • Pour réduire la partition, nous exécutons la commande comme suit :
    			root@test-virtual-machine:/# vmware-toolbox-cmd disk shrink /
    

    C’est le résultat que nous voyons dans notre cas :

    Please disregard any warnings about disk space for the duration of shrink process.
    Progress: 100 [===========>]
    Disk shrinking complete.
    

    Maintenant, la taille de notre fichier VMDK rétréci est de 5 323 456 Ko (soit 5,08 Go, soit bien moins que les 10,8 Go précédents).

REMARQUE: Si votre machine virtuelle invitée est en cours d’exécution sur un ESXi server, après le remplissage des blocs avec des mises à zéro, vous pouvez suivre ces étapes:
 

  1. Mettez la machine virtuelle hors tension ou déconnectez le disque virtuel que vous souhaitez réduire.
  2. Connectez-vous à l’hébergement ESXi avec le client SSH.
  3. Naviguez jusqu’au Dossier de la Machine Virtuelle.
  4. Vérifiez l’utilisation du disque avec du -h.
  5. Exécutez vmkfstools -K test-virtual-machine.vmdk.
  6. Vérifiez l’utilisation du disque avec du -h encore une fois.

Édition Gratuite de NAKIVO Backup & Replication – la solution de protection des données gratuite n ° 1 pouvant être installée sur les deux systèmes d’exploitation, Linux et Windows.

Réduction des disques VMware à l’Allocation fine et dynamique dans Windows

Comme Linux, Windows ne met pas automatiquement les blocs à zéro après la suppression des fichiers. Pour pouvoir libérer l’espace libre des disques cibles sur votre machine virtuelle Windows, vous devez télécharger SDelete – un utilitaire gratuit qui fait partie de la Suite Sysinternals de Microsoft – et décompresser les fichiers de l’archive téléchargée vers c:\program files\sdelete.

Puis suivez ces étapes :

1. Exécutez cmd.

2. Accédez au répertoire dans lequel se trouve SDelete. Dans notre cas, c’est :

cd c:\program files\sdelete

3. Pour chaque partition de la console, utilisez la commande sdelete –z. Voici ce que nous avons dans notre cas :

sdelete -z c:

sdelete -z d:

Ces commandes annulent tout espace disponible sur votre disque à l’allocation fine et dynamique en remplissant tout espace non utilisé sur les partitions spécifiées.

Attendez quelques minutes jusqu’à ce que le processus soit terminé. Votre fichier VMDK augmentera à sa taille maximale au cours du processus.

4. Assurez-vous que les outils VMware Tools sont installés sur votre machine virtuelle Windows. Par défaut, VMware Tools sont installés dans c:\program files\vmware\vmware tools\. Accédez à ce répertoire en tapant : cd c:\program files\vmware\vmware tools\.

5. Pour afficher les partitions de disque disponibles, tapez :

vmwaretoolboxcmd disk list

6. Réduisez les partitions de disque dont vous avez besoin. Dans notre cas, nous avons exécuté les commandes comme suit :

vmwaretoolboxcmd disk shrink c:\

vmwaretoolboxcmd disk shrink d:\

Attendez que le programme ait fini de réduire le disque.

Vous pouvez utiliser cette méthode pour les machines virtuelles qui s’exécutent sur VMware ESXi ou VMware Workstation.

VMware Storage DRS : équilibrage des charges et allocation des ressources de stockage dynamiques

Ci-dessus, nous avons mentionné une solution pour réduire manuellement les disques à l’Allocation fine et dynamique. Toutefois, si vous utilisez un cluster de banques de données dans vSphere, il existe un autre moyen de gérer vos disques virtuels (à la fois pour les disques à l’Allocation fine et dynamique et ceux à l’allocation statique). VMware fournit une migration automatique des disques virtuels au sein du cluster de banques de données pour éviter le débordement du stockage sur disque où se trouvent les disques virtuels à l’allocation fine et dynamique et pour équilibrer les ressources d’E/S. Si vous avez plusieurs banques de données partagées montées sur le serveur ESXi, vous pouvez configurer le VMware Storage Distributed Resource Scheduler™ (Storage DRS™). Storage DRS est une fonctionnalité intelligente de vCenter Server permettant de gérer efficacement le stockage VMFS et NFS, qui permet un placement et une migration automatiques des disques de la machine virtuelle. Vous pouvez également définir Storage DRS en mode manuel si vous préférez approuver manuellement les recommandations de migration.

Suivez ces étapes pour activer le Storage DRS :

  1. Accédez au cluster de banques de données dans vSphere Web Client.
  2. Accédez à vCenter > Datastore Clusters.
  3. Sélectionnez votre cluster de banques de données et cliquez sur Manage > Settings > Services > Storage DRS.
  4. Cliquez sur Edit.
  5. Configurez les paramètres d’automatisation, les fonctions liées aux E/S et les options avancées dont vous avez besoin.datastore-cluster
  6. Cliquez sur OK pour terminer.

Si votre environnement vSphere ne contient aucun cluster de banques de données, procédez comme suit pour créer et configurer un nouveau cluster de banques de données :

  1. Accédez à vCenter > Datacenters dans vSphere Web Client.
  2. Cliquez avec le bouton droit sur votre Datacenter et sélectionnez New Datastore Cluster.
  3. Saisissez le nom de votre cluster de banques de données et cochez la case située à côté de Turn On Storage DRS.
  4. Sélectionnez les paramètres d’automatisation, les fonctions liées aux E/S et les options avancées dont vous avez besoin.
  5. Cliquez sur OK pour terminer.

Conclusion

Dans cet article de blog, nous avons examiné les types de disques virtuels et évalué les avantages et les inconvénients de chacun afin de mieux comprendre les différences entre l’allocation statique et l’allocation fine et dynamique (Thick Provisioning et Thin Provisioning). Les disques Thick avec la mise à zéro rapide sont les meilleurs pour la performance et la sécurité, mais nécessitent un espace de stockage gratuit suffisant et prennent beaucoup de temps pour être créés.  La mise à zéro lente est bonne pour des temps de création plus courts, mais ces disques n’offrent pas autant de vitesse que les disques créés avec la mise à zéro rapides, et sont moins sécurisés. Les disques à l’allocation fine et dynamique sont le meilleur choix pour économiser de l’espace de stockage de données au moment de la création du disque.

Vous pouvez créer un disque virtuel avec une taille maximale supérieure à l’espace physique disponible (« surallocation ») et ajouter davantage de stockage physique à l’avenir, mais n’oubliez pas que si l’espace disque physique est plein et que le disque Thin ne peut pas se développer pour accueillir plus de données, vos machines virtuelles deviendront inutilisables – alors, n’oubliez pas de garder un œil sur la quantité d’espace libre. Nous avons également opté pour des méthodes permettant de réduire les disques virtuels VMware à l’allocation fine et dynamique, au cas où vous préféreriez ne pas ajouter de stockage et réduire l’espace nécessaire.

1 an de protection gratuite des données

1 an de protection gratuite des données

Déployez la solution en 2 minutes et protégez vos données virtuelles, cloud, physiques et SaaS. Sauvegarde, réplication et récupération instantanée incluses.

Les gens qui ont consulté cet article ont également lu