GNU/Linux >> Tutoriales Linux >  >> Linux

¿Diferencia entre el tamaño del bloque y el tamaño del clúster?

Tengo una pregunta sobre el tamaño del bloque y el tamaño del clúster. En cuanto a lo que he leído sobre eso asumo lo siguiente:

  • El tamaño del bloque es el tamaño físico de un bloque, en su mayoría 512 bytes. No hay manera de cambiar esto.
  • El tamaño del clúster es el tamaño mínimo de un bloque que el sistema operativo puede leer y escribir. Si creo un nuevo sistema de archivos, p. ext3, puedo especificar este tamaño de bloque mínimo con el modificador -b. Casi todos los programas como dumpe2fs, mke2fs usan el tamaño de bloque como nombre para el tamaño del clúster.

Si tengo el siguiente resultado:

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

¿Es correcto que el tamaño es el espacio real en bytes, los bloques son los bloques utilizados físicamente (512 bytes para cada uno) y el bloque IO se relaciona con el tamaño de bloque especificado al crear el FS?

Respuesta aceptada:

Creo que está confundido, posiblemente porque ha leído varios documentos que usan una terminología diferente. Términos como "tamaño de bloque" y "tamaño de clúster" no tienen un significado universal, incluso dentro del contexto de la literatura sobre sistemas de archivos.

Sistemas de archivos

Para ext2 o ext3, la situación es relativamente simple:cada archivo ocupa un cierto número de bloques. Todos los bloques en un sistema de archivos determinado tienen el mismo tamaño, generalmente uno de 1024, 2048 o 4096 bytes. Un archivo¹ cuyo tamaño está entre N bloques más un byte y N+1 bloques ocupa N+1 bloques. Ese tamaño de bloque es lo que especificas con mke2fs -b . No existe una noción separada de clústeres.

El sistema de archivos FAT utilizado en particular por MS-DOS y las primeras versiones de Windows tiene una asignación de espacio igualmente simple. Lo que ext2 llama bloques, FAT llama clusters; el concepto es el mismo.

Algunos sistemas de archivos tienen un esquema de asignación más sofisticado:tienen bloques de tamaño fijo, pero pueden usar el mismo bloque para almacenar los últimos bytes de más de un archivo. Esto se conoce como subasignación de bloque; Reiserfs y Btrfs lo hacen, pero no ext3 ni ext4.

Utilidades

Las utilidades de Unix a menudo usan la palabra "bloque" para referirse a una unidad de tamaño arbitrario, típicamente 512 bytes o 1kB. Este uso no está relacionado con ningún sistema de archivos o hardware de disco en particular. Históricamente, el bloque 512B surgió porque los discos y los sistemas de archivos en ese momento a menudo operaban en fragmentos 512B, pero el uso moderno es simplemente arbitrario. Las utilidades e interfaces tradicionales de Unix todavía usan bloques 512B a veces, aunque ahora se prefieren bloques de 1kB. Debe consultar la documentación de cada utilidad para saber qué tamaño de bloque está utilizando (algunos tienen un interruptor, por ejemplo, du -B o df -B en Linux).

Relacionado:Conmutador:¿la diferencia entre el conmutador inteligente y el gestionado?

En GNU/Linux stat utilidad, los blocks la cifra es el número de bloques 512B utilizados por el archivo. El IO Block figure es el tamaño preferido para la entrada y salida del archivo, que en principio no está relacionado, pero generalmente es una indicación del tamaño del bloque del sistema de archivos subyacente (o tamaño del clúster, si así es como quiere llamarlo). Aquí tiene un archivo de 13 bytes, que ocupa un bloque en el sistema de archivos ext3 con un tamaño de bloque de 2048; por lo tanto, el archivo ocupa 4 unidades de 512 bytes (llamadas "bloques" por stat ).

Discos

La mayoría de los discos presentan una interfaz que muestra el disco como un grupo de sectores. El disco solo puede escribir o leer un sector completo, no bits o bytes individuales. La mayoría de los discos duros tienen sectores de 512 bytes, aunque los discos de sectores de 4 kB comenzaron a aparecer hace un par de años.

El tamaño del sector del disco no está directamente relacionado con el tamaño del bloque del sistema de archivos, pero tener un bloque con un número entero de sectores es mejor para el rendimiento.

¹ Excepción:los archivos dispersos ahorran espacio.


Linux
  1. ¿Diferencia entre Shell de inicio de sesión y Shell sin inicio de sesión?

  2. ¿Diferencia entre 2>&-, 2>/dev/null, |&, &>/dev/null y>/dev/null 2>&1?

  3. ¿Cuál es la diferencia entre Sudo Su y Sudo Su?

  4. ¿Diferencia entre Eot y Eof?

  5. ¿Diferencia entre las aplicaciones Gtk y Qt?

Explicación de la diferencia entre apt y apt-get

¿La diferencia entre Nss y Pam?

Diferencia entre GNUWin32 y cygwin

diferencia entre netstat y ss en linux?

Diferencia entre ${} y $() en Bash

diferencia entre cgroups y espacios de nombres