GNU/Linux >> Tutoriels Linux >  >> Linux

Différence entre la taille du bloc et la taille du cluster ?

J'ai une question concernant la taille du bloc et la taille du cluster. En ce qui concerne ce que j'ai lu à ce sujet, je suppose ce qui suit :

  • La taille de bloc est la taille physique d'un bloc, généralement 512 octets. Il n'y a aucun moyen de changer cela.
  • La taille du cluster correspond à la taille minimale d'un bloc accessible en lecture et en écriture par le système d'exploitation. Si je crée un nouveau système de fichiers, par ex. ext3, je peux spécifier cette taille de bloc minimale avec le commutateur -b. Presque tous les programmes comme dumpe2fs, mke2fs utilisent la taille de bloc comme nom pour la taille de cluster.

Si j'ai le résultat suivant :

$ stat test
File: `test'
Size: 13            Blocks: 4          IO Block: 2048   regular file
Device: 700h/1792d  Inode: 15          Links: 1

Est-il exact que la taille correspond à l'espace réel en octets, que les blocs sont les blocs physiquement utilisés (512 octets pour chacun) et que le bloc d'E/S correspond à la taille de bloc spécifiée lors de la création du FS ?

Réponse acceptée :

Je pense que vous êtes confus, peut-être parce que vous avez lu plusieurs documents qui utilisent une terminologie différente. Des termes tels que "taille de bloc" et "taille de cluster" n'ont pas de sens universel, même dans le contexte de la littérature sur les systèmes de fichiers.

Systèmes de fichiers

Pour ext2 ou ext3, la situation est relativement simple :chaque fichier occupe un certain nombre de blocs. Tous les blocs d'un système de fichiers donné ont la même taille, généralement de 1024, 2048 ou 4096 octets. Un fichier¹ dont la taille est comprise entre N blocs plus un octet et N+1 blocs occupe N+1 blocs. Cette taille de bloc est ce que vous spécifiez avec mke2fs -b . Il n'y a pas de notion distincte de clusters.

Le système de fichiers FAT utilisé en particulier par MS-DOS et les premières versions de Windows a une allocation d'espace tout aussi simple. Ce que ext2 appelle des blocs, FAT appelle des clusters; le concept est le même.

Certains systèmes de fichiers ont un schéma d'allocation plus sophistiqué :ils ont des blocs de taille fixe, mais peuvent utiliser le même bloc pour stocker les derniers octets de plusieurs fichiers. C'est ce qu'on appelle la sous-allocation de bloc; Reiserfs et Btrfs le font, mais pas ext3 ni même ext4.

Utilitaires

Les utilitaires Unix utilisent souvent le mot "bloc" pour désigner une unité de taille arbitraire, généralement 512 octets ou 1 Ko. Cette utilisation n'est liée à aucun système de fichiers ou matériel de disque particulier. Historiquement, le bloc 512B est né parce que les disques et les systèmes de fichiers de l'époque fonctionnaient souvent en blocs 512B, mais l'utilisation moderne est simplement arbitraire. Les utilitaires et interfaces Unix traditionnels utilisent encore parfois des blocs 512B, bien que les blocs 1kB soient maintenant souvent préférés. Vous devez consulter la documentation de chaque utilitaire pour savoir quelle taille de bloc il utilise (certains ont un commutateur, par exemple du -B ou df -B sous Linux).

En relation :Commutateur - la différence entre un commutateur intelligent et un commutateur géré ?

Dans la stat GNU/Linux utilitaire, les blocks le chiffre est le nombre de blocs 512B utilisés par le fichier. Le IO Block chiffre est la taille préférée pour l'entrée-sortie de fichier, qui est en principe sans rapport mais généralement une indication de la taille de bloc du système de fichiers sous-jacent (ou de la taille du cluster si c'est ainsi que vous voulez l'appeler). Ici, vous avez un fichier de 13 octets, qui occupe un bloc sur le système de fichiers ext3 avec une taille de bloc de 2048; donc le fichier occupe 4 unités de 512 octets (appelées "blocs" par stat ).

Disques

La plupart des disques présentent une interface qui montre le disque comme un groupe de secteurs. Le disque ne peut écrire ou lire qu'un secteur entier, pas des bits ou des octets individuels. La plupart des disques durs ont des secteurs de 512 octets, bien que les disques à secteur de 4 Ko aient commencé à apparaître il y a quelques années.

La taille du secteur du disque n'est pas directement liée à la taille du bloc du système de fichiers, mais avoir un bloc sur un nombre entier de secteurs est meilleur pour les performances.

¹ Exception :les fichiers fragmentés économisent de l'espace .


Linux
  1. Différence entre le shell de connexion et le shell sans connexion ?

  2. Différence entre 2>&-, 2>/dev/null, |&, &>/dev/null et>/dev/null 2>&1 ?

  3. Quelle est la différence entre Sudo Su - et Sudo Su - ?

  4. Différence entre Eot et Eof?

  5. Différence entre [0-9], [[:digit:]] et D ?

Différence entre apt et apt-get expliquée

Différence entre l'utilisateur Sudo et l'utilisateur root ?

Différence entre $HOME et '~' (tilde) ?

différence entre netstat et ss sous linux?

Différence entre ${} et $() dans Bash

différence entre les cgroups et les espaces de noms