Qu’est-ce qu’un trou de fichier et comment peut-il être utilisé?

À ma connaissance, les trous sont peut-être conservés sous forme de métadonnées à l’inode, mais le disque réel n’est pas rempli de zéros vides.

  1. Quelqu’un peut-il expliquer avec des exemples d’utilisation de la vie réelle, où les trous dans un fichier peuvent être utiles?

  2. Les trous sont-ils les mêmes que ceux d’ une préallocation souple ? Du sharepoint vue du diskusage, même si l’espace disque réel n’est pas utilisé, cet espace n’est pas non plus disponible pour d’autres processus.

Les fichiers comportant des trous sont généralement appelés fichiers fragmentés.

Ils sont utiles lorsqu’un programme doit accéder à une large gamme d’adresses (offset) mais qu’il est peu probable qu’il touche tous les blocs potentiels. Cela peut être utilisé par les produits de virtualisation pour stocker des disques virtuels. Disons que vous configurez une machine virtuelle avec un disque de 20 Go, mais elle ne sera pas remplie rapidement de données. Il est beaucoup plus rapide de créer un fichier fragmenté de 20 Go qui utilisera seulement quelques blocs de disque au début, puis la VM créera un système de fichiers et stockera les fichiers à un rythme faible.

La taille d’un fichier volumineux peut également être réduite lorsque certains de ses blocs sont masqués (c’est-à-dire remplis d’octets nuls). Le programme sensible aux fichiers fragmentés qui le fait peut, au lieu d’écrire réellement sur les blocs, les supprimer du fichier (perforations du fichier) avec le même effet, car les blocs non alloués renvoient des zéros lors de la lecture.

Les fichiers clairsemés sont à l’opposé de la préallocation, ils sont ce que l’on appelle le provisionnement fin ou peuvent également être appelés le surdimensionnement de disque. Cela permet de créer plus d’espace disque que les supports matériels réels et d’append plus de disque pour développer le système de fichiers uniquement lorsque cela est nécessaire.

Les trous sont “utiles” dans le sens où ils réduisent l’utilisation de l’espace disque (ils rendent plus d’espace disponible). Ils ne peuvent pas être utilisés autrement. L’existence de trous dans une représentation de système de fichiers est “utile” quand on a des fichiers fragmentés contenant de gros blocs de zéros.

Les trous n’ont rien à voir avec la pré-affectation. La pré-allocation permet de libérer de l’espace sur le disque pour les données d’un fichier avant que le fichier ne contienne réellement ces données. Les trous sont une représentation des données … spécifiquement des blocs composés uniquement de zéros.