característica de archivo grande en la creación del sistema de archivos

17

¿Es útil usar el indicador -T largefile para crear un sistema de archivos para una partición con archivos grandes como video y audio en formato flac?

Probé la misma partición con esa bandera y sin ella, y usando tune2fs -l [partición] , verifiqué en "Características del sistema de archivos" que tienen habilitado "archivo_grande". Entonces, ¿no es necesario usar -T flag largefile ?

Bagazo
fuente
1
Tenga en cuenta que estaba confundido entre large_file (tengo en tune2fs) y largefile; Parece que son argumentos para cosas diferentes.
Marc

Respuestas:

24

El -T largefileindicador ajusta la cantidad de inodes que se asignan en la creación del sistema de archivos. Una vez asignado, su número no se puede ajustar (al menos para ext2 / 3, no estoy completamente seguro de ext4). El valor predeterminado es un inodo por cada 16K de espacio en disco. -T largefilelo convierte en un inodo por cada megabyte.

Cada archivo requiere un inodo. Si no le quedan inodos, no puede crear nuevos archivos. Pero estos inodes asignados estáticamente también ocupan espacio. Puede esperar ahorrar alrededor de 1,5 gigabytes por cada 100 GB de disco configurando -T largefile, en lugar de lo predeterminado. -T largefile4(un inodo por 4 MB) no tiene un efecto tan dramático.

Si está seguro de que el tamaño promedio de los archivos almacenados en el dispositivo será superior a 1 megabyte, establezca todos los medios -T largefile. Estoy feliz de usarlo en mis particiones de almacenamiento, y creo que no es una configuración demasiado radical.

Sin embargo, si desempaqueta un archivo tar de fuente muy grande de muchos archivos (piense en cientos de miles) en esa partición, tiene la posibilidad de quedarse sin inodos para esa partición. Es poco lo que puede hacer en esa situación, aparte de elegir otra partición para descomprimir.

Puede verificar cuántos inodes tiene disponibles en un sistema de archivos en vivo con el dumpe2fscomando:

# dumpe2fs /dev/hda5
[...]
Inode count:              98784
Block count:              1574362
Reserved block count:     78718
Free blocks:              395001
Free inodes:              34750

Aquí, todavía puedo crear 34 mil archivos.

Esto es lo que obtuve después de hacer mkfs.ext3 -T largefile -m 0en una partición de 100 GB:

Filesystem           1M-blocks      Used Available Use% Mounted on
/dev/loop1              102369       188    102181   1% /mnt/largefile
/dev/loop2              100794       188    100606   1% /mnt/normal

La versión de archivo grande tiene 102 400 inodes mientras que la normal creó 6 553 600 inodes y ahorró 1,5 GB en el proceso.

Si tiene una buena pista sobre el tamaño de los archivos que va a colocar en el sistema de archivos, puede ajustar la cantidad de inodos directamente con el -iinterruptor. Establece los bytes por relación de inodo. Obtendría el 75% del ahorro de espacio si lo utilizara -i 65536mientras todavía puede crear más de un millón de archivos. Generalmente calculo para mantener al menos 100 000 inodes de repuesto.

hhaamu
fuente
buena respuesta, pero donde dijiste, "y ahorré 1,5 GB en el proceso". deberías decir "pero usé 1,5 GB de espacio para los inodos adicionales". Haces que suene como si el modo normal creara más inodos y también dejara más espacio libre en el disco.
localhost
"Generalmente calculo para tener al menos 100 000 inodes de repuesto". - ¿por qué? ¿Seguramente 0 repuesto (y 0 más necesario) es óptimo? ¿Estás realmente preocupado de que puedas estar por 100K en cuántos archivos o directorios tendrás?
OJFord
4

Creo que estás mezclando dos conceptos completamente diferentes e independientes.

La large_filecaracterística que puede ver en la salida de dumpe2fs significa que este sistema de archivos puede contener archivos de más de 2 GiB, creo que los núcleos modernos lo configuran automáticamente. No tiene nada que ver con la -Topción de mke2fs.

Héctor
fuente