XFS: ¿el sistema de archivos del futuro? Sistema de archivos XFS para principiantes

El sistema de archivos XFS muestra un rendimiento excelente cuando se trabaja con archivos grandes y se diseñó originalmente para su uso en discos grandes. La desventaja de este sistema se consideraba un rendimiento insuficiente en una gran cantidad de archivos pequeños. Sin embargo, los últimos parches realizados por los desarrolladores del sistema XFS eliminan esta deficiencia y elevan la velocidad de trabajo con archivos pequeños al nivel de ext4, sistemas de archivos ReiserFS.

Una de las ventajas de XFS es la presencia de un desfragmentador regular (digan lo que digan, y al copiar archivos grandes y enormes, la desfragmentación puede reducir significativamente la velocidad).

Un conjunto de utilidades para administrar el sistema de archivos XFS se llama xfsprogs. Considere qué oportunidades de optimización brindan estas utilidades.

Ver información de ubicación de archivos

Para almacenar archivos, XFS asigna espacio en forma de las llamadas extensiones (Extent). Normalmente, cuando un archivo se copia en el sistema de archivos, ocupa una extensión. Pero en el caso de que el archivo se modifique y aumente de tamaño, y el espacio después del archivo ya esté ocupado, el contenido del archivo se puede colocar en varias extensiones. Del mismo modo, al copiar un archivo grande, no hay suficiente extensión en tamaño.

Dependiendo de los patrones de uso, los archivos en XFS pueden fragmentarse bastante.

Para ver un mapa de las extensiones en las que se almacena un archivo, utilice el siguiente comando:

Xfs_bmap -v /media/video/football_cup_1993.avi

Produce la siguiente información:

/media/video/football_cup_1993.avi: EXT: ARCHIVO-DESPLAZAMIENTO BLOQUE-RANGO AG AG-DESPLAZAMIENTO TOTAL 0: 18748384..19010399 0 (18748384..19010399) 262016 1: : 771769344..973531426 2 (253 4) 2626 :: 767587184..768111471 2 (249482928..250007215) 524288 3 :: 738171688..739220263 2 (2200674332..221116007) 1048576 4:: 880928368..8829285858585858585858585858585858585858585858585858585858

Como puede ver, el archivo /media/video/football_cup_1993.avi abarca cinco extensiones.

Desfragmentar XFS

Para reorganizar la ubicación de los archivos (desfragmentación), use el comando xfs_fsr. Se puede utilizar para toda la sección o para un solo archivo. Para realizar la desfragmentación, es necesario que haya suficiente espacio libre en la partición para copiar cualquier archivo. Al final de la operación, cada archivo ocupará una extensión.

Para desfragmentar una partición completa, use el comando:

Xfs_fsr -v /dev/<раздел>

La desfragmentación de un solo archivo se realiza mediante el comando:

Xfs_fsr-v<имя файла>

la opción -v muestra información adicional.

Comprobación del grado de fragmentación de XFS

La información sobre la fragmentación de particiones se puede obtener con el comando:

Xfs_db -r -c fragmento /dev/<раздел>

La opción -r es necesaria para verificar la partición que está montada y actualmente en uso. La opción -c frag se necesita directamente para mostrar información sobre la fragmentación de la partición.

Recientemente, en la conferencia linux.conf.au 2012, el desarrollador de XFS Dave Chinner señaló que, en su opinión, XFS atraer a más usuarios en el futuro. Su informe abordó la solución de problemas de escalado, así como el trabajo adicional para mejorar el sistema de archivos. Si hemos de creer en sus palabras, tal vez en los próximos años escuchemos mucho más sobre XFS.
XFS a menudo considerado como un sistema de archivos para aquellos que trabajan con archivos grandes. Según Dave, ella hace frente perfectamente a esta tarea, además, XFS tradicionalmente funciona bien bajo cargas pesadas. Pero la situación empeora cuando se escriben metadatos. La compatibilidad con la escritura de grandes cantidades de metadatos a lo largo del tiempo es un punto débil de este sistema de archivos. En resumen, los metadatos se escriben muy lentamente y no se escalan bien, incluso cuando se ejecutan en una sola CPU.
¿Qué tan lento? Dave proporcionó varias diapositivas que muestran los resultados de la prueba fs-mark contra ext4. resultados XFS mucho peor (casi dos veces) incluso en una CPU. A medida que el número de subprocesos aumenta a ocho, la situación empeora aún más, después de lo cual el rendimiento de ext4 también cae drásticamente. Para el trabajo intensivo de E/S, donde se necesita cambiar una gran cantidad de metadatos (se dio como ejemplo la descompresión tarball), ext4 ha mostrado un rendimiento de 20 a 50 veces más rápido que XFS. Este atraso es un problema realmente serio.

Registro retrasado

El problema está en el registro de E/S: XFS generó una gran cantidad de tráfico para cambiar los metadatos. En los peores casos, casi todo el tráfico de E/S eran datos de registro, no datos que el usuario intentaba escribir en el disco. Los intentos de resolver este problema a lo largo de los años han incluido un cambio importante en el algoritmo de grabación y muchas otras optimizaciones y ajustes importantes. Lo único que no se requirió fue ningún cambio en el formato de datos en el disco, aunque esto puede ser necesario en el futuro.
Cargas de cambiar una gran cantidad de metadatos pueden eventualmente resultar en que el mismo bloque de directorio se cambie muchas veces en un corto período de tiempo, cada uno de los cuales genera una entrada que debe registrarse. Esta es la fuente de gran tráfico de revistas. El concepto de resolver este problema es muy simple: diferir la actualización del registro y fusionar los cambios del mismo bloque en una sola entrada. De hecho, tomó varios años de arduo trabajo traducir esta idea en una implementación escalable, pero ahora ya está funcionando. Registro retrasado para el sistema de archivos XFS compatible con la versión del núcleo 3.3.
De hecho, la tecnología de diario perezoso se tomó prestada del sistema de archivos ext3, por lo que se conoce su algoritmo y lleva mucho menos tiempo implementarlo en XFS que si se hubiera desarrollado desde cero. Junto con los beneficios de velocidad, esto también significa una reducción significativa en la cantidad de código. Si quieres saber más sobre el funcionamiento de esta tecnología, los detalles los puedes encontrar en la ficha sistemas de archivos/xfs-retraso-registro.txt en el árbol de documentación del kernel.
El registro retrasado es un gran cambio, pero no el único. Una forma rápida de reservar espacio en una revista sigue siendo un tema candente en XFS. Hoy no requiere un bloqueo, mientras que la vía lenta todavía requiere un bloqueo global en ese punto. El código de escritura de metadatos asíncronos resultó en una fragmentación severa de E/S, lo que redujo significativamente el rendimiento. Ahora se retrasa la escritura de los metadatos, y antes de escribir se ordena. Esto significa que, según Dave, el sistema de archivos actúa como un planificador de E/S. Pero el programador de E/S funciona con una cola de solicitudes, que generalmente está limitada a 128 entradas, mientras que la cola de metadatos retrasados XFS puede contener muchos miles de entradas, por lo que tiene sentido ordenar el sistema de archivos antes de pasar los metadatos al sistema de E/S. Los "elementos de registro activos" son un mecanismo que mejora el rendimiento cuando se trabaja con grandes listas ordenadas de elementos de registro acumulando cambios y aplicándolos en modo por lotes. Además, los metadatos almacenados en caché se eliminaron de la página de intercambio, ya que su presencia generaba solicitudes para cargar páginas en el momento equivocado.

Comparación de sistemas de archivos

Cómo XFS escalado después de todos los cambios? Con uno o dos subprocesos sigue siendo un poco más lento que ext4, pero a medida que el número de subprocesos aumenta a ocho, su rendimiento aumenta linealmente, mientras que ext4 se degrada y btrfs se degrada aún más. Hasta la fecha, la escalabilidad XFS se limita a bloquear la capa del núcleo que se ocupa de los sistemas de archivos virtuales, no el código asociado directamente con el sistema de archivos. El cruce de directorios ahora es más rápido incluso con un subproceso e incluso más rápido con ocho subprocesos.
La escalabilidad de asignación de disco actualmente es mucho más rápida que ext4. Esto cambiará ligeramente con la introducción de la función "bigalloc" en la versión 3.2, que aumenta la escalabilidad de la asignación de espacio en disco ext4 en dos órdenes de magnitud si se utiliza un tamaño de bloque lo suficientemente grande. Desafortunadamente, esto aumenta proporcionalmente el espacio ocupado en el disco por archivos pequeños. Por ejemplo, para alojar la fuente del kernel linux en este caso, se requieren 160 GB de espacio en disco. Bigalloc no es muy compatible con algunas de las otras funciones de ext4 y requiere una configuración compleja. Según Dave, ext4 adolece de fallas arquitectónicas: cosas como el uso de mapas de bits para realizar un seguimiento del espacio en disco eran típicos de los años 80. Simplemente no puede escalar a sistemas de archivos realmente grandes.
La asignación de disco en Btrfs es incluso más lenta que en ext4. Según Dave, el problema es principalmente el espacio libre en el caché que se mueve, lo que consume demasiada CPU. Sin embargo, esto no es un error de arquitectura, por lo que se puede solucionar con bastante facilidad.

El futuro de los sistemas de archivos de Linux

Hasta la fecha, los problemas de rendimiento y escalabilidad pueden considerarse resueltos. Ahora el cuello de botella es la capa VFS, por lo que se deben dirigir más esfuerzos a esta área de trabajo. Pero el mayor desafío en el futuro será el problema de la confiabilidad del almacenamiento de datos, y esto puede requerir cambios significativos en el sistema de archivos XFS.
La confiabilidad no se trata solo de no perder datos; en este asunto, esperamos XFS ya lo suficientemente confiable, el problema también está relacionado con la escalabilidad. Simplemente no es práctico desmontar un sistema de archivos de petabytes para ejecutar una verificación del sistema de archivos o una utilidad de recuperación de datos. En el futuro, solo necesitamos hacer posible realizar tales operaciones en un sistema de archivos en funcionamiento. Esto requerirá una herramienta robusta de detección de fallas integrada en el sistema de archivos para verificar los metadatos sobre la marcha. Algunos otros sistemas de archivos tienen mecanismos similares, pero según Dave, por XFS dicho sistema se implementaría mejor a nivel de arreglos de almacenamiento o a nivel de aplicación.
"Validación de metadatos" significa desarrollar metadatos que se protegen a sí mismos de solicitudes de escritura mal dirigidas en el nivel del dispositivo de almacenamiento. La verificación de la suma de verificación no es suficiente, solo muestra que los datos se escribieron correctamente. Los metadatos con dicha protección podrían identificar bloques que se escribieron en el lugar equivocado y ayudar a restaurar la integridad del sistema de archivos en caso de fallas graves. También puede ayudar a resolver el conocido problema de reiserfs, que consiste en que la herramienta de reparación del sistema de archivos es engañada por metadatos obsoletos o metadatos que se encuentran en las imágenes del sistema de archivos.
El desarrollo de tales metadatos requerirá muchos cambios. Cada bloque de metadatos incluirá el UUID del sistema de archivos al que pertenece, así como los números de bloque e inodo para que el sistema de archivos pueda determinar que los metadatos provienen de la fuente correcta. También habrá sumas de verificación para identificar bloques de metadatos dañados y un identificador personalizado para asociar metadatos con un inodo o directorio personalizado. Invertir el árbol de asignación permitirá que el sistema de archivos identifique rápidamente a qué archivo pertenece cada bloque.
Por supuesto, el formato actual XFS no almacena todos estos datos adicionales, por lo que deberá cambiarse. Al mismo tiempo, según Dave, no hay planes para mantener ninguna compatibilidad con versiones anteriores con el formato del sistema de archivos actual. Esto se hace para dar a los desarrolladores total libertad para crear un nuevo formato de sistema de archivos que se utilizará durante muchos años. Además de agregar las funciones descritas anteriormente, los desarrolladores también planean agregar espacio para d_type en la estructura de directorios, contadores de versiones NFSv4, tiempo de creación de inodos y probablemente algo más. También se aumentará el tamaño máximo del directorio, que actualmente es de solo 32 GB.
Con todas estas funciones implementadas, aparecerán nuevas funciones: detección proactiva de corrupción del sistema de archivos, localización y reemplazo de bloques deshabilitados, así como corrección de errores del sistema de archivos sobre la marcha mejorada. Significa, como dijo Dave, que XFS seguirá siendo el mejor sistema de archivos para manejar grandes cantidades de datos bajo Linux durante mucho tiempo.
¿Cuáles son las implicaciones de todo esto desde una perspectiva btrfs? Según Dave, btrfs claramente no está optimizado para grandes cantidades de metadatos: existen problemas graves de escalabilidad. Esto es de esperar de un sistema de archivos en una etapa temprana de desarrollo. Tomará algún tiempo resolver estos problemas, y algunos de ellos pueden ser intratables. Por otro lado, la confiabilidad del almacenamiento de datos en btrfs está en la cima, y ​​en los próximos años se podrá utilizar como tal.
Ext4, por otro lado, sufre problemas de escalabilidad relacionados con errores de infraestructura. En cualquier caso, según los resultados de las pruebas dadas por Dave, no es el más rápido. Se nota la venerable antigüedad de su arquitectura, aunque hay planes para mejorar su confiabilidad. Ext4 pronto tendrá dificultades para mantenerse a la par con la competencia.
Al final de su discurso, Dave planteó algunas preguntas más. Debido a sus méritos, btrfs pronto reemplazará a ext4 como el sistema de archivos predeterminado en muchas distribuciones, dice. Al mismo tiempo, ext4 es inferior. XFS en la mayoría de las operaciones de trabajo, incluidas aquellas en las que tradicionalmente ha sido fuerte. El problema de la escalabilidad ya se muestra en servidores pequeños. Además, no es tan estable como creen los usuarios. Al final, preguntó: "¿Por qué seguimos usando ext4?".
Se puede suponer que los desarrolladores de ext4 tienen una buena respuesta a esta pregunta, pero, desafortunadamente, ninguno de ellos estuvo presente en la sala. Así que parece que esta discusión debe continuar en otro lugar. Será interesante escucharlo.

El sistema operativo Linux admite una amplia variedad de tipos de sistemas de archivos. Desde el punto de vista de Linux, los sistemas de archivos se pueden dividir aproximadamente en cuatro grupos:

  • sistemas de archivos nativos. Esto significa que el sistema de archivos admite todos los atributos inherentes a Linux: permisos, marcas de tiempo, información sobre el propietario del archivo, etc.;
  • Sistemas de archivos no nativos. Es decir, sistemas de archivos que no admiten atributos de Linux;
  • Virtual. Estos son sistemas de archivos que no tienen medios físicos;
  • sistemas de archivos de red.

Los sistemas de archivos nativos incluyen:

  • reservas

sistema de archivos ext2

Ext2 es uno de los primeros sistemas de archivos utilizados en Linux ( Más específicamente, el primer sistema de archivos de Linux es minix. Pero las posibilidades de este fs son muy limitadas y solo se usó en la etapa inicial de desarrollo de Linux.). Fue establecido en 1993. Este sistema de archivos se considera muy confiable y probado en el tiempo. Pero, dado que ext2 se desarrolló en un momento en que un disco duro de 300 MB se consideraba muy grande, tiene algunas limitaciones. No tiene sentido usar este fs para particiones grandes, comenzará a "ralentizarse" cuando haya una gran cantidad de archivos en la partición. Es decir, ext2 se considera lento ( El concepto de "lento" es muy relativo. Ext2 se considera lento en Linux. Pero si lo compara con el sistema de archivos estándar de FreeBSD, ext2 es bastante rápido.). Por supuesto, con el aumento del tamaño de los discos, con la llegada de las nuevas tendencias, se realizaron cambios en el sistema de archivos que mejoraron su funcionamiento y funcionalidad. Por ejemplo, compatibilidad con POSIX ACL. Pero aún así, los cambios globales no la afectaron, lo que le permitió decir:

Sí, este es el mismo, el único sistema de archivos que me conviene completamente.

Además, ext2 tiene serias limitaciones:

  • El tamaño máximo de archivo es de 2048 GB.
  • El tamaño máximo del sistema de archivos es de 32768 GB.
  • El número máximo de subdirectorios en un directorio es 32768.

Sistemas de archivos registrados

Ahora el sistema de archivos ext2 prácticamente ya no se usa. Y ni siquiera se trata de sus limitaciones, ext2 es un sistema de archivos bastante confiable. Se trata de la velocidad de carga de los servidores Linux. El servidor debe estar funcionando todo el tiempo. Pero los milagros no ocurren, los servidores a veces tienen que estar sobrecargados. Su tarea es asegurarse de que después de que el sistema falle, se reinicie lo más rápido posible. Cuando se enciende el servidor, se comprueban los discos. El procedimiento para verificar los sistemas de archivos, especialmente los grandes, es un procedimiento bastante largo. Si hay varios de estos sistemas de archivos, verificarlos puede llevar mucho tiempo. ¡Y el servidor debería funcionar!

Para reducir el tiempo dedicado a la comprobación y aumentar la fiabilidad, se han desarrollado sistemas de archivos de diario. Si ha trabajado con bases de datos, probablemente esté familiarizado con el concepto de transacción. Varias sentencias SQL se combinan en una transacción. El sistema debe ejecutar todas las sentencias. Si al menos uno de ellos no funciona, el sistema retrocede al comienzo de la transacción. Si el sistema fue deshabilitado mientras la transacción estaba en curso, cuando está habilitado, si es posible, intenta ejecutar las sentencias restantes o volver al inicio de la transacción.

Se ha agregado compatibilidad con el registro de transacciones a los sistemas de archivos modernos. Desde el punto de vista del sistema de archivos, todas las operaciones en un archivo parecen una sola transacción. Mirando más de cerca las operaciones de archivos en Linux, escribir o modificar un archivo es un procedimiento bastante complicado, que consiste en muchas acciones en los datos del disco. Al utilizar el registro de transacciones, antes de realizar cualquier cambio físico en el disco, se abre una nueva transacción en el registro, que registrará todas las acciones que se realizarán en el sistema de archivos. Y solo después de que la transacción se guarde en el disco, se realizarán cambios en el sistema de archivos.

Si el sistema de archivos se deshabilita incorrectamente, el programa de verificación primero mira el registro de transacciones y, en función de los datos que contiene, intentará restablecer (retroceder) el sistema en el momento en que comenzó la transacción o, si es posible, completarlo. las acciones descritas en la transacción. Teniendo en cuenta el hecho de que el diario es pequeño (en el sistema de archivos ext3 es de 32 MB), el proceso de restauración del sistema de archivos se acelera considerablemente.

sistema de archivos ext3

Cuando se hizo necesario implementar sistemas de archivos registrados en Linux, RedHat desarrolló el sistema de archivos ext3. RedHat tomó el camino de la menor resistencia: tomaron como base el conocido ext2 y agregaron soporte para revistas.

Físicamente, ext2 es idéntico a ext3. Esta función hizo posible utilizar las mismas utilidades para trabajar con ext3 (crear, comprobar y configurar sistemas de archivos) que para trabajar con ext2.

A pesar de la adición de un diario, ext3 es más rápido que ext2. Las ventajas de ext3 también deberían incluir la capacidad de registrar no solo las acciones necesarias, sino también los datos, que otros sistemas de registro en diario no permiten. Debido a esta característica, ext3 se considera muy confiable.

Ext3 admite tres modos de funcionamiento:

  • Writeback: en este modo no hay registro de datos. Los llamados metadatos (inodo de archivo, enlaces a bloques) se colocan primero en el registro. Solo después de haber ingresado al diario, los datos se escriben en el sistema de archivos.
  • Ordenado (modo predeterminado): este modo es similar al descrito anteriormente. La única diferencia es que en el modo de reescritura, todos los metadatos se escriben primero en el diario y solo después de que se produzcan los cambios en el sistema de archivos. Y en el modo ordenado, cuando la información sobre un bloque se coloca en el diario, este bloque se cambia inmediatamente en el sistema de archivos. Luego, la información sobre el siguiente bloque se coloca en el registro y se escribe el bloque, y así sucesivamente. Es decir, los datos cambian en paralelo con el cambio en el registro.
  • Diario: modo de registro completo. El registro contiene metadatos y datos. Y solo después de eso hay un cambio en el sistema de archivos.

Sistema de archivos ReiserFS

ReiserFS es desarrollado por Hans Reiser y su empresa Namesys (http://www.namesys.com). Es un sistema de archivos muy rápido, muy adecuado para almacenar grandes cantidades de archivos pequeños.

Logró resolver el problema de colocar archivos pequeños en el disco. Por ejemplo, en ext2/3, se ocupará un bloque completo en el disco para asignar un archivo que contenga un solo carácter. Un bloque ext2/3 puede tener un tamaño de 1 a 8 KB ( el tamaño depende del tamaño del sistema de archivos). Y en ReiserFS, los datos de varios archivos se pueden colocar en un bloque. Además, si el tamaño del archivo es muy pequeño, los datos se pueden colocar en el inodo, es decir, directamente en los metadatos.

El sistema de archivos se basa en árboles optimizados (árbol B). Esto aumenta la velocidad de las búsquedas en el sistema de archivos y elimina el problema de limitar la cantidad de archivos y directorios en un directorio.

Este sistema de archivos también maneja archivos grandes con mucha confianza.

El sistema de archivos ReiserFS versión 3.6 tiene las siguientes limitaciones:

  • El tamaño máximo de archivo es de 8 TB (para equipos de 32 bits);
  • El tamaño máximo del sistema de archivos es de 16 TB.

Ahora se está desarrollando la próxima versión de ReiserFS: la cuarta. Se espera que se incluya en los núcleos 2.6.17 o 2.6.18.

Sistema de archivos JFS

Este sistema de archivos está desarrollado por IBM y se distribuye bajo la licencia GNU GPL. Puede encontrar una descripción de JFS en línea en . JFS se usa no solo en Linux, sino también en otros sistemas operativos, como AIX y OS/2.

JFS es un sistema de archivos de diario. Su principal punto fuerte es el uso en conjunto con LVM (Logical Volume Manager). LVM le permite combinar varias particiones físicas del disco duro en una lógica, que luego se puede particionar como un disco duro ordinario. Al mismo tiempo, algunos tipos de LVM le permiten conectar un nuevo espacio en disco sobre la marcha. Y si usa el sistema de archivos ext3 en particiones en crecimiento, en un momento recibirá un mensaje sobre la imposibilidad de crear un nuevo archivo. El hecho es que al formatear una partición en ext3, se reserva un número finito de inodos de antemano, según el tamaño. Es decir, el número máximo de archivos se conoce de antemano. Si el tamaño del sistema de archivos no aumenta, esta cantidad de inodos es suficiente para el funcionamiento normal. JFS tiene la capacidad de hacer crecer dinámicamente el sistema de archivos y la cantidad de inodos. Debido a esta propiedad, cuando aumenta el tamaño del sistema de archivos, no hay límite en la cantidad de archivos creados.

El sistema de archivos JFS tiene las siguientes limitaciones:

  • El tamaño máximo de archivo está limitado por el bitness del sistema operativo.
  • El tamaño máximo del sistema de archivos es de 512 TB.

sistema de archivos XFS

El sistema de archivos XFS fue desarrollado por SGI (antes Silicon Graphics, Inc.). XFS nació en 1994 y originalmente se envió con el sistema operativo IRIX. SGI es famosa por sus estaciones de trabajo de producción de video y servidores de almacenamiento. Por lo tanto, el sistema de archivos está optimizado para servir una gran cantidad de archivos grandes y admitir directorios grandes. Debido a su estructura, también admite una gran cantidad de archivos pequeños. En términos de velocidad, es comparable al sistema de archivos ReiserFS, y en términos de confiabilidad supera al sistema de archivos Hans ( Cuántos datos perdí en el sistema de archivos ReiserFS desde cero. Solo copia de seguridad guardada. Por lo tanto, ahora no uso ReiserFS en servidores.).

La compatibilidad con archivos grandes es posible porque XFS es un sistema de archivos de 64 bits. Y la velocidad del sistema de archivos se logra mediante el uso de árboles B+ para buscar y describir estructuras internas.

La estructura interna del sistema de archivos es bastante compleja y no veo la necesidad de una breve descripción de su estructura. Sobre todo porque hay buenos artículos en Internet que describen XFS en detalle:

sistemas de archivos de microsoft

Hablando de sistemas de archivos de Microsoft, Linux admite FAT y NTFS. Con FAT, todo es muy simple, se conoce la estructura del sistema de archivos, por lo que es totalmente compatible con Linux. Lo único a considerar al usar FAT, hay dos variedades en Linux:

  • msdos-FAT12/16.
  • vfat - FAT32.

La compatibilidad con FAT debe estar habilitada si tiene la intención de utilizar disquetes y varias unidades USB: tarjetas flash, discos duros, etc. El caso es que todos suelen estar formateados en FAT.

NTFS es un poco más complicado. Este sistema de archivos normalmente se admite en modo de solo lectura. No se recomienda utilizarlo en modo grabación. Aunque se admite el modo de escritura, pero si lee la documentación de los controladores NTFS, verá que dice en mayúsculas: en el modo de escritura, solo puede cambiar el contenido de los archivos existentes, en ningún caso puede crear nuevos archivos , elimine o cambie el tamaño de los existentes; esto puede destruir el sistema de archivos.

sistemas de archivos iso9660 y udf

Estos sistemas de archivos se utilizan para almacenar información en CD y DVD.

Inicialmente, iso9660 era un sistema de archivos muy simple con muchas limitaciones. Por ejemplo, nombres de archivo como en MS DOS, un límite en el número de archivos adjuntos de directorio. Por lo tanto, se han escrito varios complementos para iso9660 que amplían sus capacidades. Incluye complementos que le permiten guardar los atributos de los archivos UNIX. Todos los complementos son compatibles con el controlador del sistema de archivos y no debería haber ninguna dificultad durante la operación. Además, el controlador iso9660 admite, curiosamente, el modo de grabación. Se utiliza al crear imágenes de CD-ROM.

Con udf tampoco se notan problemas especiales. Por lo tanto, el trabajo con CD y DVD es compatible con Linux sin restricciones.

sistema de archivos proc

Este es un sistema de archivos muy útil. En su trabajo como administrador, a menudo se referirá a sus capacidades. En uno de los primeros capítulos sobre la organización del sistema de archivos de Linux, hablé brevemente sobre el propósito de este sistema de archivos. Solo un recordatorio de que los archivos que están en el directorio /proc son una asignación del área de datos del kernel al sistema de archivos. Es decir, si ve el contenido de cualquier archivo, en realidad está viendo cierta parte del área de datos del kernel.

A continuación, describiré algunos de los archivos interesantes que puede encontrar en el directorio /proc. El contenido de los archivos en su sistema diferirá del contenido de los archivos que se muestran como ejemplos.

/proc/líneacmd

Contiene la línea de comando pasada al núcleo cuando se inició.

# cat cmdline BOOT_IMAGE=Linux-2613 ro root=303 #

/proc/cpuinfo

Información sobre el procesador o procesadores.

# cat cpuinfo procesador: 0 id_vendedor: familia de cpu GenuineIntel: 6 modelo: 9 nombre del modelo: procesador Intel(R) Pentium(R) M 1400MHz stepping: 5 cpu MHz: 1399.050 tamaño de caché: 1024 KB fdiv_bug: no hlt_bug: no f00f_bug: no coma_bug: no fpu: sí fpu_exception: sí nivel de cpuid: 2 wp: sí indicadores: fpu vme de pse tsc msr mce cx8 sep mtrr pge mca cmov pat clflush dts acpi mmx fxsr sse sse2 tm pbe est tm2 bogomips: 2800.93 #

/proc/dispositivos

Lista de dispositivos.

# dispositivos cat Dispositivos de caracteres: 1 mem 2 pty 3 ttyp 4 /dev/vc/0 4 tty 4 ttyS 5 /dev/tty 5 /dev/console 5 /dev/ptmx 7 vcs 10 misc 13 input 14 sound 21 sg 116 alsa 128 ptm 136 pts 171 ieee1394 180 usb 226 drm 254 pcmcia Dispositivos de bloque: 3 ide0 7 loop 8 sd 11 sr 65 sd #

/proc/dma

Uso de canales DMA.

# gato dma 4: cascada #

/proc/sistemas de archivos

Lista de sistemas de archivos compatibles.

# cat filesystems nodev sysfs nodev rootfs nodev bdev nodev proc nodev sockfs nodev pipefs nodev futexfs nodev tmpfs nodev inotifyfs nodev eventpollfs nodev devpts ext3 ext2 nodev ramfs msdos vfat iso9660 ntfs udf nodev mqueue nodev usbfs #

/proc/interrumpe

Distribución de interrupciones.

# cat interrumpe CPU0 0:850627 XT-PIC temporizador 1:9691 XT-PIC i8042 2:0 XT-PIC cascada 7:2 XT-PIC parport0 8:1 XT-PIC rtc 9:6620 XT-PIC acpi 11:238626 XT -PIC Intel 82801DB-ICH4, yenta, yenta, eth0, eth1, ohci1394, ehci_hcd:usb1, uhci_hcd:usb2, uhci_hcd:usb3, uhci_hcd:usb4, [correo electrónico protegido]:0000:01:00.0 12:65575 XT-PIC i8042 14:11538 XT-PIC ide0 NMI: 0 LOC: 0 ERR: 0 MIS: 0 #

/proc/modulos

Lista de módulos cargados.

# cat modules irtty_sir 5248 0 - Live 0xf8a09000 sir_dev 13548 1 irtty_sir, Live 0xf8a1d000 irda 107768 1 sir_dev, Live 0xf8a3f000 crc_ccitt 1792 1 irda, Live 0xf8a04000 parport_pc 24324 0 - Live 0xf8a16000 parport 30920 1 parport_pc, Live 0xf8a0d000 uhci_hcd 30416 0 - Live 0xf89e7000 ehci_hcd 27656 0 - Live 0xf897a000 usbcore 103740 3 uhci_hcd,ehci_hcd, Live 0xf8990000 ohci1394 31092 0 - Live 0xf895e000 ieee1394 86392 1 ohci1394, Live 0xf891e000 ipw2100 78204 0 - Live 0xf8936000 ieee80211 18948 1 ipw2100, Live 0xf8918000 ieee80211_crypt 4488 1 ieee80211, Live 0xf88f8000 eepro100 26512 0 - Live 0xf8909000 pcmcia 30568 4 - Live 0xf8900000 firmware_class 7680 2 ipw2100,pcmcia, Live 0xf88f2000 yenta_socket 20748 4 - Live 0xf8879000 rsrc_nonstatic 11264 1 yenta_socket, Live 0xf8875000 pcmcia_core 34640 3 pcmcia,yenta_socket,rsrc_nonstatic, Live 0xf88e2000 #

/proc/montajes

Contiene una lista de sistemas de archivos montados.

# cat monta rootfs / rootfs rw 0 0 /dev/root / ext3 rw 0 0 proc /proc proc rw,nodiratime 0 0 sysfs /sys sysfs rw 0 0 ninguno /dev ramfs rw 0 0 /dev/hda5 /usr ext3 rw 0 0 /dev/hda6 /home ext3 rw 0 0 /dev/hda1 /mnt/win ntfs ro,noatime,nodiratime,uid=0,gid=0,fmask=0177,dmask=077,nls=iso8859-1, errores= continuar,mft_zone_multiplier=1 0 0 devpts /dev/pts devpts rw 0 0 usbfs /proc/bus/usb usbfs rw 0 0 #

/proc/particiones

Contiene una lista de particiones de todas las unidades conectadas.

# gato particiones mayor menor #bloques nombre 3 0 58605120 hda 3 1 10485688 hda1 3 2 506520 hda2 3 3 9775080 hda3 3 4 1 hda4 3 5 9775048 hda5 3 6 28062688 hda6 #

/proc/pci

Lista de dispositivos encontrados en el bus PCI.

Este archivo se puede utilizar para diagnosticar por qué algunos dispositivos no funcionan. Preste atención a las interrupciones: si es 0, significa que al dispositivo no se le asignó una interrupción por algún motivo. No daré el contenido completo de este archivo, es muy grande.

# cat pci Dispositivos PCI encontrados: Bus 0, dispositivo 0, función 0: Host bridge: Intel Corporation 82855PM Processor to I/O Controller (rev 3). Memoria precargable de 32 bits en 0xd0000000. Bus 0, dispositivo 1, función 0: puente PCI: procesador Intel Corporation 82855PM a controlador AGP (rev. 3). Capaz de maestro. latencia=96. Gnt mín.=12. Bus 0, dispositivo 29, función 0: Controlador USB: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) Controlador USB UHCI n.° 1 (rev. 1). IRQ 11. E/S en 0x1800. #

/proc/intercambios

Contiene una lista de particiones y archivos de intercambio montados.

# cat swaps Nombre de archivo Tipo Tamaño Usado Prioridad /dev/hda2 partición 506512 0 -1 #

/proc/versión

Contiene información de versión sobre el sistema operativo y el kernel de Linux.

# versión cat versión Linux 2.6.13-rc3-my ( [correo electrónico protegido]) (gcc versión 3.3.6) #3 martes 19 de julio 22:25:23 GMT+3 2005 #

Procesar informacion

Además de los archivos, /proc contiene directorios que tienen un número como nombre. Cada directorio describe un proceso cuyo PID coincide con el nombre del directorio. Los archivos en este directorio describen los parámetros del proceso. El contenido de uno de los directorios se muestra a continuación.

# ls /proc/4624auxv [correo electrónico protegido] [correo electrónico protegido] mapas montajes oom_score seccomp statm task/ cmdline environ fd/ mem oom_adj [correo electrónico protegido] estado de estadísticas wchan #

Solo algunos de los archivos del ejemplo contienen información que sería comprensible sin procesamiento previo.

línea de comandos

Contiene argumentos de línea de comando.

# gato cmdline -su #

reinar

Contiene los valores de las variables de entorno del entorno del proceso.

# cat entorno HZ=100TERM=xtermPATH=/usr/local/sbin:/usr/local/bin:/sbin:/usr/sbin:/bin:/usr/binHOME=/rootSHELL=/bin/bashUSER=rootLOGNAME=rootMAIL =/var/spool/correo/raíz #

estado

Contiene información sobre el estado del proceso en un formato legible por humanos.

# cat status Nombre: bash Estado: S (dormido) SleepAVG: 98 % Tgid: 4510 Pid: 4510 PPid: 4498 TracerPid: 0 Uid: 0 0 0 0 Gid: 0 0 0 0 FDSize: 256 Grupos: 0 1 2 3 4 6 10 11 vMsize: 2832 kb vmlck: 0 kb vmrss: 1724 kb vmdata: 388 kb vmstk: 88 kb vmexe: 628 kb vmlib: 1628 kb vmpte: 12 kb hilos: 1 sigq: 1 sigpnd:00000000000000000000000000000000000000000000000000000000MIEMA00000000000000 MIETLESEMA0000000000000000000000 MIETLES0000000000000000000000 MIETORES00000000000000000000 MIETORES MITERES0000000000000000000000 MIETORES MITERES00000000000000000000 MIETORES MITENES MITENES. : 0000000000384004 SigCgt: 000000004b813efb

Otros directorios

Además de los directorios que describen los procesos del sistema, se pueden encontrar otros directorios en /proc. A continuación se muestra el propósito de algunos de ellos:

  • idea- información sobre los dispositivos conectados a la interfaz ide.
  • Irq- información sobre la distribución de interrupciones.
  • neto- información de la red. El contenido de la tabla arp y la tabla de enrutamiento. Estadísticas sobre interfaces de red y protocolo. Etcétera.
  • scsi- información sobre dispositivos SCSI.
  • sistema- contiene parámetros del sistema modificables.

/proc/sistema

El sistema de archivos /proc/sys es un gran tema aparte. Usando los archivos en este directorio, puede cambiar los parámetros del sistema sobre la marcha. Basta con escribir el valor deseado en un archivo específico. No describiré /proc/sys, hay demasiada información y mucho que necesita saber para comprender para qué se utilizan los archivos. Por ello, te diré dónde encontrar la documentación y descripción de este sistema de archivos:

  • En primer lugar, esta es la documentación del kernel. Viene con las fuentes del núcleo. Puede encontrar una descripción de /proc/sys en Documentation/filesystems/proc.txt. Se le dedica un capítulo aparte (y lejos de ser pequeño).

La elección del sistema de archivos siempre ha sido muy disputada entre los entusiastas de Linux que están dispuestos a golpearse el pecho tratando de convencer a sus oponentes de que están absolutamente equivocados. Y esto es más que comprensible, ya que, a diferencia de Windows o macOS, cuyos usuarios es mucho menos probable que tengan que pensar en ello en el transcurso de las aventuras informáticas cotidianas, a este sistema operativo no le faltan varias opciones de sistema de archivos. Si bien ext es el valor predeterminado para la mayoría de las distribuciones de Linux, XFS apenas menciona el back-end y es muy popular en el mundo de Linux. Pero, ¿qué es este sistema de archivos y en qué se diferencia de sus homólogos?

XFS es, de hecho, uno de los sistemas de archivos más antiguos y maduros disponibles para Linux. Desarrollado por Silicon Graphics e introducido en 1994 con su sistema operativo IRIX, pasó al kernel de Linux en 2001 con el objetivo de manejar con éxito grandes cantidades de datos. El formato fue opcional durante mucho tiempo y finalmente se eligió como predeterminado para Red Hat Enterprise Linux 7 en 2014. Actualmente es compatible con la mayoría de las distribuciones de Linux, mientras que RHEL, Oracle Linux 7, CentOS 7 y algunas otras lo utilizan como sistema de archivos predeterminado.

XFS es un sistema de archivos de diario de 64 bits. El contenido de cada archivo en XFS se almacena en bloques de datos en el disco. Para registrar eficientemente todo el espacio libre y asignado, XFS agrupa estos bloques en secuencias contiguas llamadas extensiones, que el sistema de archivos puede resolver como unidades separadas. El tamaño mínimo de extensión es un bloque y puede crecer a medida que aumenta el tamaño del archivo. Toda la información sobre un archivo (sus metadatos) se almacena en una estructura de datos especial llamada inodo. El sistema de archivos en sí consta de tres componentes principales:

La sección de datos se utiliza para almacenar todos los metadatos del sistema de archivos, así como los datos del usuario (excepto los archivos en tiempo real). Esta partición se divide en una cierta cantidad de grupos de distribución con un tamaño igual (puede predefinir su número o tamaño: el mínimo es de 16 MB y el máximo es de hasta un terabyte). Cada grupo de distribución se puede considerar como un sistema de archivos independiente que controla su propio uso del espacio. Múltiples grupos de distribución permiten que XFS procese múltiples operaciones al mismo tiempo, evitando la degradación del rendimiento. Para realizar un seguimiento del espacio libre en cada grupo de asignación, se utilizan un par de estructuras especiales denominadas árboles B+, cuyos nodos contienen información sobre el bloque original de cada área libre y su tamaño en bloques. El mismo enfoque se utiliza para realizar un seguimiento de los bloques de datos y los inodos que pertenecen a cada archivo.

La sección de registro contiene toda la información de registro que se escribe cuando se realizan cambios en los metadatos del sistema de archivos y se almacena allí hasta que se realiza: en caso de un bloqueo repentino o un apagón, esto permite que se completen todas las operaciones que se realizaron en ese momento y, por lo tanto, preservar la consistencia del sistema de archivos.

La sección en tiempo real almacena datos de archivos en tiempo real, archivos que deben escribirse o actualizarse inmediatamente, sin demora.

Este diseño hace que XFS sea especialmente útil para manejar archivos y almacenamiento de gran tamaño. El tamaño máximo de archivo es actualmente de 9 exabytes y un solo volumen puede tener hasta 18 exabytes. El número total de archivos no está limitado. Otros puntos fuertes de este sistema de archivos incluyen:

Diario. El uso de registros para operaciones de metadatos garantiza que XFS sea consistente incluso después de un bloqueo o pérdida de energía.

Asignación retrasada. Los datos en XFS no se escriben inmediatamente en el disco duro, sino que se almacenan en la RAM durante algún tiempo, mientras que la cantidad requerida de bloques de datos simplemente se reserva. Al final, puede resultar que no hay necesidad de escribirlo en absoluto. Por lo tanto, XFS optimiza el rendimiento de escritura y reduce la fragmentación de archivos.

Preasignación. XFS reserva espacio en disco antes de que se escriban los bloques de datos. También ayuda a evitar la fragmentación de archivos, ya que es más probable que un archivo completo se escriba en una serie contigua de bloques en el disco.

Archivos dispersos. Si el archivo contiene fragmentos de datos nulos, en lugar de asignarles espacio en disco, el sistema escribe solo algunos de los metadatos que representan esos fragmentos nulos y, por lo tanto, evita desperdiciar espacio en "nulos".

Cuotas de disco. XFS admite cuotas de disco que permiten una gestión eficiente de los recursos del disco al limitar la cantidad de archivos creados por un determinado grupo de usuarios/usuarios o la cantidad de espacio de memoria utilizado.

atributos extendidos. Los atributos extendidos permiten al usuario adjuntar metadatos arbitrarios (como un par de nombre y valor) a cualquier archivo o inodo. A diferencia de los atributos normales, que están estrictamente definidos por el sistema de archivos, pueden contener cualquier información, como el autor del documento o una firma digital.

entrada/salida avanzada. El uso de múltiples grupos de distribución permite E/S paralelas de alta velocidad.

instantáneas de volumen. Las instantáneas le permiten crear una copia de un volumen en un momento específico y, si es necesario, revertir el sistema de archivos a ese estado.

Desfragmentación y cambio de tamaño en línea. El sistema de archivos se puede desfragmentar o ampliar durante la instalación y activación.

copia de seguridad/restauración nativa. XFS tiene copias de seguridad y restauración integradas, que se pueden realizar con las utilidades integradas xfsdump y xfsrestore. Además, incluso los archivos que por alguna razón no han sido respaldados, contrariamente a la creencia popular, tienen posibilidades extremadamente altas de recuperación en caso de pérdida de datos. Aunque algunos expertos afirman que la pérdida de datos de XFS es completamente irrecuperable, muchas herramientas de recuperación de datos como UFS Explorer, Recovery Explorer y Raise Data Recovery han tenido éxito en esta tarea durante muchos años.

Sin embargo, este sistema de archivos también tiene varios inconvenientes. En primer lugar, una partición formateada con XFS no se puede reducir, aunque aún puede hacer una copia de seguridad, crear un nuevo sistema de archivos más pequeño y luego restaurarlo. En segundo lugar, XFS no tiene métodos de compresión de datos incorporados. Además, el sistema de archivos no usa sumas de verificación para garantizar la integridad de los datos de usuario almacenados y detecta todos los bits corruptos lo antes posible, por lo que algunos archivos pueden corromperse silenciosamente y, cuando finalmente sale, podría ser demasiado tarde para solucionar el problema, y ​​la gran pérdida de datos será inevitable. Además, XFS utiliza el registro en diario para los metadatos, pero no cambia ningún cambio de datos, por lo que, en caso de que se apague el sistema de forma inesperada, es probable que pierda los datos de los archivos que están abiertos en ese momento. Además, si tiene un sistema de arranque dual Windows/Linux, Windows no podrá leer una partición con formato XFS sin algunas herramientas adicionales.

Para averiguar si su unidad es compatible con XFS, use el comando de archivo con la opción -s, que mostrará información sobre el tipo de sistema de archivos.

En general, a pesar de la ausencia de desventajas, XFS es un sistema de archivos bastante confiable y rico en funciones que se destaca cuando se administran medios de alto rendimiento. Si necesita almacenar y acceder a archivos grandes, XFS es probablemente su mejor opción.



Continuando con el tema:
ventanas

Natalya Komarova, 28/05/2009 (25/03/2018) Cuando lees un foro o un blog, recuerdas a los autores de las publicaciones por su apodo y... por la imagen del usuario, el llamado avatar...