web-dev-qa-db-fra.com

Comment fonctionne la taille de bloc du système de fichiers?

Tous les systèmes de fichiers Linux ont une taille de bloc de 4 Ko. Disons que j'ai 10 Mo de stockage sur disque dur. Cela signifie que j'ai 2560 blocs disponibles et disons que j'ai copié 2560 fichiers ayant chacun 1 Ko de taille. Chaque bloc de 1 Ko occupera 1 bloc bien qu'il ne remplisse pas le bloc entier.

Donc, tout mon disque est maintenant rempli, mais il me reste 2560 x 3 Ko d'espace libre. Si je veux stocker un autre fichier de 1 Mo par exemple, le système de fichiers me permettra-t-il de le stocker? Va-t-il écrire dans l'espace libre laissé dans les blocs individuels? Existe-t-il un concept traitant de ce problème?

J'apprécierais quelques éclaircissements. Merci d'avance

7
Srimanth Duggineni

La taille de bloc par défaut était de 512 octets depuis le tout premier Linux. Sauf récemment, les tailles de bloc de 4 ko ont été introduites pour répondre à la taille toujours croissante des disques. C’est en fait même presque dicté par le matériel du disque (voir plus: https://unix.stackexchange.com/questions/178899/optimizing-logical-sector-size-for-physical-sector -size-4096-hdd ).

Pourtant, pour votre question spécifique: vous avez raison de dire que tous les fichiers gaspillent les octets inutilisés du dernier bloc sur de nombreux types de systèmes de fichiers, ce qui est particulièrement inutile pour les petits fichiers. Mais btfrs et reiserfs semblent être capables de s’en sortir, selon https://en.m.wikipedia.org/wiki/Block_suballocation

1
Harald
  1. Les systèmes de fichiers peuvent avoir une taille de bloc de 512 à (généralement) 65536. La taille de bloc peut être spécifiée sous la forme d'option mkfs.xxx. La taille de bloc par défaut de la plupart des systèmes de fichiers Linux - 4096.

  2. Certains systèmes de fichiers prennent en charge l’assemblage final et/ou l’allocation de sous-blocs. ext2/3/4, xfs autant que je sache - pas. Si vous prévoyez de remplir une partition avec plusieurs petits fichiers, vous pouvez réduire l’espace inutile en réduisant la taille de bloc à 512 ou 1024.

0
Oleksandr Suvorov