Menú
Está libre
registro
el principal  /  Navegantes/ Comparación de sistemas de archivos Linux. Sistemas de archivos de Windows

Comparación de sistemas de archivos Linux. Sistemas de archivos de Windows

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 específicos de Linux: derechos de acceso, 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:

  • reiserfs

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 fue minix. Pero las capacidades de este fs son bastante limitadas y solo se usó en las primeras etapas del desarrollo de Linux.). Fue establecido en 1993. El sistema se considera muy confiable y probado por 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, se ralentizará cuando haya una gran cantidad de archivos en la partición. Es decir, ext2 se considera lento ( Lento es un término muy relativo. Ext2 se considera lento en Linux. Pero cuando lo compara con el sistema de archivos estándar de FreeBSD, ext2 es muy rápido.). Por supuesto, con el aumento del tamaño de los discos, con la llegada de nuevas tendencias, se realizaron cambios en el sistema de archivos para mejorar su rendimiento y funcionalidad. Por ejemplo, soporte POSIX ACL. Pero aún así, no se vio afectado por los cambios globales, que permiten decir:

Sí, este es el único sistema de archivos que me conviene por completo.

Además, ext2 tiene serias limitaciones:

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

Sistemas de archivos registrados

Hoy en día, 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 constantemente. Pero los milagros no suceden, el servidor a veces tiene que estar sobrecargado. Su tarea es asegurarse de que después de una falla del sistema se reinicien 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 sistemas de archivos de este tipo, su comprobación puede llevar mucho tiempo. ¡Y el servidor debería funcionar!

Los sistemas de archivos de diario se han desarrollado para reducir el tiempo dedicado a las comprobaciones y aumentar la fiabilidad. Si ha trabajado con bases de datos, probablemente conozca una transacción. Varias declaraciones SQL se combinan en una transacción. El sistema debe ejecutar todas las declaraciones. Si al menos uno de ellos falla, el sistema retrocede al comienzo de la transacción. Si el sistema se apagó mientras una transacción estaba en curso, en el momento del encendido, si es posible, intenta ejecutar las declaraciones restantes o volver al comienzo 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 funcionamiento del sistema de archivos, todas las operaciones con el archivo parecen una sola transacción. Si observa más de cerca las operaciones de archivos en Linux, escribir o modificar un archivo es un procedimiento bastante complejo, que consta de muchas acciones con datos en el disco. Al usar el registro de transacciones, antes de que se realicen cambios físicos 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 desconecta incorrectamente, el verificador primero mira el registro de transacciones y, en función de los datos que contiene, intentará devolver (deshacer) el sistema en el momento en que se inició la transacción o, si es posible, completar las acciones. descrito en la transacción. Teniendo en cuenta 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 significativamente.

Sistema de archivos ext3

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

Ext2 es físicamente idéntico a ext3. Esta característica hizo posible utilizar las mismas utilidades (creación, verificación y configuración de sistemas de archivos) para trabajar con ext3 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 no permiten. Esta característica hace que ext3 sea muy confiable.

Ext3 admite tres modos de funcionamiento:

  • Escritura diferida: no se registran datos en este modo. Los llamados metadatos (inodo de archivo, enlaces a bloques) se colocan primero en el registro. Solo después de haber ingresado al registro, 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 escritura diferida, todos los metadatos se escriben primero en el diario y solo luego se realizan 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 escribe en el registro, y el bloque se escribe, y así sucesivamente. Es decir, los datos cambian en paralelo con el cambio en el registro.
  • Diario: modo de diario 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ó solucionar el problema de colocar pequeños archivos en el disco. Por ejemplo, en ext2 / 3, se usaría un bloque completo en el disco para acomodar un archivo que contenga un solo carácter. Un bloque ext2 / 3 puede ser 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 búsqueda 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.

ReiserFS 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 tiene licencia GNU GPL. Puede encontrar una descripción de JFS en Internet en. JFS se utiliza no solo en Linux, sino también en otros sistemas operativos como AIX y OS / 2.

JFS es un sistema de archivos con registro. Su principal punto fuerte es su uso junto con LVM (Logical Volume Manager). LVM le permite combinar varias particiones físicas del disco duro en una lógica, que luego puede particionarse como un disco duro normal. Al mismo tiempo, algunos tipos de LVM le permiten conectar nuevo espacio en disco sobre la marcha. Y si usa el sistema de archivos ext3 en particiones en crecimiento, un día 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 en ella de antemano, dependiendo del 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, entonces este número de inodos es suficiente para el funcionamiento normal. JFS tiene la capacidad de hacer crecer dinámicamente el sistema de archivos y el número de inodos. Gracias 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 restricciones:

  • 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 512 TB.

Sistema de archivos XFS

El sistema de archivos XFS fue desarrollado por SGI (anteriormente Silicon Graphics, Inc.). XFS nació en 1994 y originalmente se envió con el sistema operativo IRIX. SGI es conocida por sus estaciones de trabajo de video y servidores de almacenamiento. Por lo tanto, el sistema de archivos está optimizado para servir una gran cantidad de archivos grandes y para 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 se guarda la copia de seguridad. 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 encontrar 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. Además, hay buenos artículos en Internet que describen XFS en detalle:

Sistemas de archivos de Microsoft

En lo que respecta a los sistemas de archivos de Microsoft, Linux es compatible con 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 que hay que tener en cuenta al utilizar FAT es que hay dos variantes en Linux:

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

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

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

Los sistemas de archivos iso9660 y udf

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

Iso9660 era originalmente un sistema de archivos muy simple con muchas limitaciones. Por ejemplo, nombres de archivo como en MS DOS, limitación en el número de archivos adjuntos al directorio. Por lo tanto, se han escrito varios complementos para iso9660 para expandir sus capacidades. Incluyendo complementos que le permiten conservar 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 el trabajo. Además, el controlador iso9660 admite, por extraño que parezca, el modo de grabación. Se utiliza para crear imágenes de CD-ROM.

Tampoco se notaron problemas especiales con udf. Por lo tanto, trabajar con CD y DVD es compatible con Linux sin ninguna restricción.

El sistema de archivos proc

Pertenece a la categoría de sistemas de archivos virtuales. Un sistema de archivos muy útil. 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, cubrí brevemente el propósito de este sistema de archivos. Solo para recordarle que los archivos en el directorio / proc son la asignación del área de datos del kernel al sistema de archivos. Es decir, si observa el contenido de un archivo, verá una cierta parte del área de datos del kernel.

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

/ proc / cmdline

Contiene la línea de comando pasada al kernel cuando se inició.

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

/ proc / cpuinfo

Información sobre el procesador o procesadores.

# procesador cat cpuinfo: 0 vendor_id: GenuineIntel familia de cpu: 6 modelo: 9 nombre de modelo: procesador Intel (R) Pentium (R) M 1400MHz paso a paso: 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í cpuid level: 2 wp: yes flags: 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.9

/ proc / devices

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.

# cat dma 4: cascada #

/ proc / filesystems

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 node usbvfs #

/ proc / interrupts

Distribución de interrupciones.

# cat interrumpe CPU0 0: 850627 Temporizador XT-PIC 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 / modules

Lista de módulos cargados.

# módulos Cat irtty_sir 5248 0 - Vivo 0xf8a09000 sir_dev 13548 1 irtty_sir, vivo 0xf8a1d000 IrDA 107768 1 sir_dev, vivo 0xf8a3f000 crc_ccitt 1792 1 IrDA, vivo 0xf8a04000 parport_pc 24324 0 - Vivo 0xf8a16000 parport 30920 1 parport_pc, vivo 0xf8a0d000 uhci_hcd 30416 0 - Vivo 0xf89e7000 ehci_hcd 27656 0 - En vivo 0xf897a000 usbcore 103740 3 uhci_hcd, ehci_hcd, En vivo 0xf8990000 ohci1394 31092 0 - En vivo 0xf895e000 ieee1394 86392 1 ohci1394, En vivo 0xf891e000 ipw2100 78204 0 - En vivo 0xf21100148, ieee802802 - 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 0xf88756 pcma_cent2

/ proc / mounts

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 none / 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 para todas las unidades conectadas.

# cat particiones mayor menor # nombre de bloques 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 detectados en el bus PCI.

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

# cat pci PCI dispositivos encontrados: Bus 0, dispositivo 0, función 0: Puente de host: Procesador Intel Corporation 82855PM a controlador de E / S (rev 3). Memoria de 32 bits recuperable en 0xd0000000. Bus 0, dispositivo 1, función 0: Puente PCI: Procesador Intel Corporation 82855PM a controlador AGP (rev 3). Maestro capaz. Latencia = 96. Min Gnt = 12. Bus 0, dispositivo 29, función 0: Controlador USB: Intel Corporation 82801DB / DBL / DBM (ICH4 / ICH4-L / ICH4-M) Controlador USB UHCI # 1 (rev 1). IRQ 11. E / S en 0x1800. #

/ proc / swaps

Contiene una lista de particiones y archivos de intercambio conectados.

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

/ proc / versión

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

# cat versión Linux versión 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 de este directorio describen los parámetros del proceso. El contenido de uno de los directorios se muestra a continuación.

# ls / proc / 4624 auxv [correo electrónico protegido] [correo electrónico protegido] mapas monta oom_score seccomp statm task / cmdline environment fd / mem oom_adj [correo electrónico protegido] estado de estado wchan #

Solo algunos de los archivos que se muestran en el ejemplo contienen información que sería comprensible sin un procesamiento preliminar.

cmdline

Contiene argumentos de línea de comando.

# cat cmdline -su #

reinar

Contiene los valores de las variables de entorno del proceso.

# cat environment HZ = 100TERM = xtermPATH = / usr / local / sbin: / usr / local / bin: / sbin: / usr / sbin: / bin: / usr / binHOME = / rootSHELL = / bin / bashUSER = rootLOGNAME = rootMAIL = / var / spool / mail / root #

estado

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

# cat status Nombre: bash Estado: S (durmiendo) 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 Vm Tamaño: 2832 kB VmLck: 0 kB VmRSS: 1724 kB VmData: 388 kB VmStk: 88 kB VmExe: 628 kB VmLib: 1628 kB VmPTE: 12 kB Subprocesos: 1 SigQ: 0/7168 SigPnd: 000000000000 Shd0000Pnd0000 : 0000000000384004 SigCgt: 000000004b813efb CapInh: 0000000000000000 CapPrm: 00000000fffffeff CapEff: 00000000fffffeff #

Otros directorios

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

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

/ proc / sys

El sistema de archivos / proc / sys es un gran tema aparte. Con los archivos de 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 necesita saber demasiado para comprender para qué se utilizan los archivos. Por lo tanto, le diré dónde encontrar la documentación y descripción de este sistema de archivos:

Udev utiliza sysfs para crear archivos de dispositivo de forma dinámica.

Hola, lectores de mi sitio, quería hablarles sobre existente y nuevos sistemas de archivos, así como ayudarla correctamente escoger... Después de todo, la elección depende de la velocidad del trabajo, la comodidad y la salud. cuando la computadora se congela, se ralentiza, no creo que te guste y te afecta los nervios correctamente 🙂

¿Qué es un sistema de archivos y para qué sirve?

En términos simples, este es un sistema que sirve para almacenar archivos y carpetas en un disco duro u otro medio, unidad flash, teléfono, cámara, etc. Y también para organizar archivos y carpetas: moverlos, copiarlos, renombrarlos. Entonces, este sistema es responsable de todos sus archivos, por eso es tan importante.

Si elige el sistema de archivos incorrecto, su computadora puede funcionar mal, congelarse, bloquearse, la información puede fluir lentamente y, lo que es peor, es posible que se dañen los datos. Esto es bueno si no sistémico, pero parecerá. Y lo más importante es que si su computadora se ralentiza por esta razón, ¡ninguna cantidad de limpieza de basura ayudará!

¿Tipos de sistemas de archivos?

Muchos sistemas de archivos son cosa del pasado y algunos están en las últimas, tk. Las tecnologías modernas crecen y crecen todos los días y ahora un sistema de archivos completamente nuevo está en camino detrás del cual futuro! Veamos dónde empezó todo.

Grasa 12

Fat - tabla de asignación de archivos En traducción Tabla de asignación de archivos... Al principio, el sistema de archivos era de 12 bits y utilizaba un máximo de 4096 clústeres. Fue desarrollado hace mucho tiempo, en los días de DOS y se usaba para disquetes y unidades pequeñas de hasta 16 MB de tamaño. Pero fue reemplazado por un fat16 más avanzado.

Grasa 16

Esta sistema de archivos contenía ya 65525 y soportaba discos de 4.2 GB, en ese momento era un lujo y por lo tanto le fue bien en ese momento. Pero el tamaño del archivo no puede exceder los 2GB, y en términos de economía no es la mejor opción, cuanto mayor es el tamaño del archivo, más espacio ocupa el clúster. Por tanto, no es rentable utilizar un volumen superior a 512 MB. La tabla muestra cuánto toma el tamaño del sector según el tamaño del medio.

Aunque el sistema se las arregló en ese momento, aparecieron una serie de deficiencias en el futuro:

1. No puede trabajar con discos duros de más de 8 GB.

2. No puede crear archivos de más de 2 GB.

3. La carpeta raíz no puede contener más de 512 elementos.

4. Incapacidad para trabajar con particiones mayores de 2 GB.

Grasa 32

Las tecnologías modernas no se detienen y, con el tiempo, el sistema Fat 16 no fue suficiente y vino a reemplazar grasa 32... Este sistema ya podía admitir discos de hasta 2 terabytes (2048 gigabytes) y ya utilizaba económicamente el espacio en disco debido a los clústeres más pequeños. Otra ventaja es que no hay restricciones en el uso de archivos en la carpeta raíz y es más confiable en comparación con versiones anteriores. Pero la mayor desventaja por el momento es que los archivos pueden dañarse y es bueno que esto no produzca. Y la segunda desventaja principal es que ahora los archivos superan el tamaño de más de 4 GB y el sistema no admite un volumen mayor de un archivo. Que a menudo los usuarios tienen preguntas sobre por qué no puedo descargar una película de 7GB, aunque hay 100GB libres en el disco, ese es todo el problema.

Por lo tanto contras y aquí está suficiente:

1. El sistema no admite archivos de más de 4 GB.

2. El sistema es propenso a la fragmentación de archivos debido a que el sistema comienza a ralentizarse.

3. Afectado por la corrupción de archivos.

4. Por el momento, ya hay más de 2 TB en discos.

NTFS

Y ahora vino a reemplazar nuevo sistema ntfs(Sistema de archivos de nueva tecnología) lo que se traduce sistema de archivos nueva tecnología, en el que se han eliminado una serie de desventajas, pero también hay suficientes desventajas. Este sistema es el último aprobado, aparte del nuevo, que comentaré a continuación. El sistema apareció en los años 90 y fue aprobado en 2001 con el lanzamiento de Windows XP y se utiliza hasta el día de hoy. admite discos de hasta 18 TB, genial, ¿eh? Y cuando los archivos están fragmentados, la velocidad no se pierde de forma tan notoria. La seguridad ya ha alcanzado buenos niveles, en caso de una falla, la corrupción de la información es poco probable.

Desventajas y aquí estará:

1. El consumo de RAM, si tiene menos de 64 MB de RAM, entonces no se recomienda configurarlo.

2. Con el 10% restante de espacio libre en el disco duro, el sistema comienza a ralentizarse notablemente.

3. Trabajar con una pequeña capacidad de almacenamiento puede resultar complicado.

Nuevo ReFS

Para estrenar Sistema de archivos ReFS ( Resilient File System) en traducción un sistema de archivos tolerante a fallas desarrollado para el nuevo sistema operativo Windows, detrás del cual puede haber ¡futuro! Según los desarrolladores, el sistema debería ser extremadamente confiable y, poco después de su finalización, será compatible con otros sistemas operativos. Aquí hay una tabla de diferencias:

Como puede ver, el nuevo sistema admite grandes cantidades de espacio en disco y más caracteres en la ruta y el nombre del archivo. El sistema promete ser más seguro en el que debería haber un mínimo de interrupciones debido a la nueva arquitectura y una forma diferente de registrar el registro. Mientras puedas ver solo uno pros, pero aún no se sabe cuánto es cierto. Después de la aprobación total, es posible que aparezca una serie. contras... Pero hasta ahora esto sigue siendo un misterio. Esperemos que el nuevo sistema de archivos nos traiga solo sentimientos positivos.

¿Qué sistema de archivos debería elegir?

Es mejor instalarlo en una computadora que funcione bien Ntfs, será más productivo y seguro para estos fines. No se recomienda instalarlo en equipos con menos de 32 GB de disco duro y 64 MB de RAM. Y la anciana fat32 puede apostar por una unidad flash con un volumen pequeño, porque el rendimiento puede ser mayor. Y una cosa más: después de formatear una unidad flash USB para un teléfono, una cámara digital y otros dispositivos electrónicos en formato ntfs, es posible que tenga errores. Es posible que algunos dispositivos no admitan ntfs o que sean lentos y se bloqueen con él. Por lo tanto, antes de formatear, asegúrese de qué sistema de archivos es mejor para su dispositivo.

Hay otros tipos de sistemas de archivos, por ejemplo para Linux. XFS, ReiserFS (Reiser3), JFS (sistema de archivos con registro), ext (sistema de archivos extendido), ext2 (segundo sistema de archivos extendido), ext3 (tercer sistema de archivos extendido), Reiser4, ext4, Btrfs (B-tree FS o Butter FS), Tux2, Tux3, Xiafs, ZFS (sistema de archivos Zettabyte), pero esa es una historia completamente diferente ...

¿Por qué un teléfono inteligente no puede iniciar programas desde una tarjeta de memoria? ¿En qué se diferencia fundamentalmente ext4 de ext3? ¿Por qué una unidad flash durará más tiempo si se formatea en NTFS en lugar de FAT? ¿Cuál es el principal problema con F2FS? Las respuestas se encuentran en las peculiaridades de la estructura de los sistemas de archivos. Hablaremos de ellos.

Introducción

Los sistemas de archivos determinan cómo se almacenan los datos. Ellos determinan qué restricciones enfrentará el usuario, qué tan rápidas serán las operaciones de lectura y escritura y cuánto tiempo funcionará la unidad sin fallas. Esto es especialmente cierto en el caso de las SSD económicas y sus hermanos menores: las unidades flash. Conociendo estas características, puede exprimir al máximo cualquier sistema y optimizar su uso para tareas específicas.

Debe elegir el tipo y los parámetros del sistema de archivos cada vez que necesite hacer algo que no sea trivial. Por ejemplo, desea acelerar las operaciones de archivo más frecuentes. En el nivel del sistema de archivos, esto se puede lograr de varias maneras: la indexación proporcionará búsquedas rápidas y la reserva previa de bloques libres facilitará la sobrescritura de archivos que cambian con frecuencia. La optimización de los datos en la RAM de antemano reducirá la cantidad de E / S requerida.

Las características de los sistemas de archivos modernos, como la escritura diferida, la deduplicación y otros algoritmos avanzados, ayudan a extender el tiempo de actividad. Son especialmente relevantes para SSD económicos con chips de memoria TLC, unidades flash y tarjetas de memoria.

Existen optimizaciones independientes para diferentes niveles de matrices de discos: por ejemplo, el sistema de archivos puede admitir la duplicación de volúmenes livianos, instantáneas o escalado dinámico sin desconectar un volumen.

Caja negra

Los usuarios trabajan principalmente con el sistema de archivos que ofrece el sistema operativo de forma predeterminada. Rara vez crean nuevas particiones de disco y menos a menudo piensan en su configuración: solo usan los parámetros recomendados o incluso compran medios preformateados.

Para los fanáticos de Windows, todo es simple: NTFS en todas las particiones del disco y FAT32 (o el mismo NTFS) en unidades flash. Si hay un NAS y se usa algún otro sistema de archivos en él, entonces para la mayoría permanece más allá de la percepción. Simplemente se conectan a él a través de la red y descargan archivos, como si fueran de una caja negra.

En dispositivos móviles con Android, ext4 se encuentra con mayor frecuencia en la memoria interna y FAT32 en tarjetas microSD. Para Apple, no importa en absoluto qué tipo de sistema de archivos tengan: HFS +, HFSX, APFS, WTFS ... para ellos solo hay hermosos íconos de carpetas y archivos dibujados por los mejores diseñadores. Los usuarios de Linux tienen la opción más rica, pero puede agregar soporte para sistemas de archivos que no son nativos del sistema operativo tanto en Windows como en macOS; más sobre eso más adelante.

Raíces comunes

Se han creado más de cien sistemas de archivos diferentes, pero un poco más de una docena pueden considerarse relevantes. Si bien todos fueron diseñados para sus aplicaciones específicas, muchos terminaron estando relacionados conceptualmente. Son similares porque utilizan el mismo tipo de estructura de presentación (meta) datos: árboles B ("bi-árboles").

Al igual que con cualquier sistema jerárquico, el árbol B comienza en el registro raíz y luego se ramifica hasta los elementos finales: registros individuales sobre archivos y sus atributos, u "hojas". El objetivo principal de crear una estructura lógica de este tipo era acelerar la búsqueda de objetos del sistema de archivos en grandes matrices dinámicas, como discos duros de varios terabytes o matrices RAID aún más impresionantes.

Los árboles B requieren muchos menos accesos al disco que otros tipos de árboles B cuando se realizan las mismas operaciones. Esto se logra debido al hecho de que los objetos finales en los árboles B están ubicados jerárquicamente a la misma altura, y la velocidad de todas las operaciones es simplemente proporcional a la altura del árbol.

Al igual que otros árboles equilibrados, los árboles B tienen la misma longitud de camino desde la raíz hasta cualquier hoja. En lugar de crecer, se ramifican más y crecen más en ancho: todos los puntos de ramificación en el árbol B almacenan muchas referencias a objetos secundarios, lo que los hace fáciles de encontrar en menos llamadas. Una gran cantidad de punteros reduce la cantidad de operaciones de disco más largas: posicionamiento del cabezal al leer bloques arbitrarios.

El concepto de árboles B se formuló en los años setenta y ha experimentado varias mejoras desde entonces. Se implementa de una forma u otra en NTFS, BFS, XFS, JFS, ReiserFS y muchos DBMS. Todos son primos en términos de los principios básicos de la organización de datos. Las diferencias se refieren a detalles, que a menudo son bastante importantes. La desventaja de los sistemas de archivos relacionados también es común: todos fueron creados para funcionar con discos incluso antes de la llegada de las SSD.

La memoria flash como motor de progreso

Las unidades de estado sólido están reemplazando gradualmente a las unidades de disco, pero hasta ahora se ven obligadas a utilizar sistemas de archivos que les son ajenos, heredados. Se basan en matrices de memoria flash, cuyos principios difieren de los de los dispositivos de disco. En particular, la memoria flash debe borrarse antes de escribir, y esta operación en chips NAND no se puede realizar a nivel de celdas individuales. Solo es posible para bloques grandes en su conjunto.

Esta limitación se debe al hecho de que en la memoria NAND, todas las celdas se combinan en bloques, cada uno de los cuales tiene una sola conexión común al bus de control. No entraremos en los detalles de la paginación y describiremos la jerarquía completa. El principio mismo de las operaciones grupales con celdas y el hecho de que los tamaños de los bloques de memoria flash suelen ser más grandes que los bloques abordados en cualquier sistema de archivos son importantes. Por lo tanto, todas las direcciones y comandos para unidades con flash NAND deben traducirse a través de la capa de abstracción FTL (Flash Translation Layer).

Los controladores de memoria flash brindan compatibilidad con la lógica de los dispositivos de disco y soporte para los comandos de sus interfaces nativas. Por lo general, FTL se implementa en su firmware, pero puede ejecutarse (parcialmente) en el host; por ejemplo, Plextor escribe controladores para sus SSD que aceleran la escritura.

No puede prescindir de FTL en absoluto, ya que incluso escribir un bit en una celda específica conduce al lanzamiento de toda una serie de operaciones: el controlador busca un bloque que contenga la celda requerida; el bloque se lee en su totalidad, se escribe en la caché o para liberar espacio, luego se borra por completo, después de lo cual se vuelve a escribir con los cambios necesarios.

Este enfoque se asemeja a la vida cotidiana en el ejército: para dar una orden a un soldado, el sargento hace una formación general, llama al pobre infeliz y ordena a los demás que se dispersen. En la ahora rara memoria NOR, la organización era spetsnaz: cada celda se controlaba de forma independiente (cada transistor tenía un contacto individual).

Las tareas de los controladores son cada vez mayores, ya que con cada generación de memoria flash, el proceso técnico de su fabricación disminuye con el fin de aumentar la densidad y reducir el costo de almacenamiento de datos. Junto con los estándares tecnológicos, también se reduce la vida estimada de los chips.

Los módulos con celdas SLC de un solo nivel tenían un recurso declarado de 100 mil ciclos de reescritura e incluso más. Muchos de ellos todavía funcionan en unidades flash y tarjetas CF antiguas. El MLC de clase empresarial (eMLC) reclamó el recurso en el rango de 10 a 20 mil, mientras que en el MLC de nivel de consumidor habitual se estima en 3-5 mil. La memoria de este tipo está activamente abarrotada por el TLC aún más barato, cuyo recurso apenas alcanza los mil ciclos. Mantener la vida útil de la memoria flash en un nivel aceptable debe hacerse mediante ajustes de software, y los nuevos sistemas de archivos se están convirtiendo en uno de ellos.

Los fabricantes asumieron inicialmente que el sistema de archivos no era importante. El propio controlador debe mantener una matriz de células de memoria de corta duración de cualquier tipo, distribuyendo la carga entre ellas de manera óptima. Para el controlador del sistema de archivos, simula un disco normal y él mismo realiza optimizaciones de bajo nivel en cualquier acceso. Sin embargo, en la práctica, la optimización varía de mágica a ficticia para diferentes dispositivos.

En los SSD corporativos, el controlador integrado es una computadora pequeña. Tiene un búfer de memoria enorme (medio giga y más) y admite muchos métodos para mejorar la eficiencia del trabajo con datos, lo que evita ciclos de reescritura innecesarios. El chip organiza todos los bloques en la caché, realiza escrituras diferidas, realiza la deduplicación sobre la marcha, reserva algunos bloques y borra otros en segundo plano. Toda esta magia pasa completamente desapercibida para el sistema operativo, los programas y el usuario. Con un SSD como este, realmente no importa qué sistema de archivos se utilice. Las optimizaciones internas tienen un impacto mucho mayor en el rendimiento y los recursos que las externas.

Los SSD económicos (y aún más, las unidades flash) están equipados con controladores mucho menos inteligentes. El caché en ellos está truncado o ausente, y las tecnologías de servidor avanzadas no se utilizan en absoluto. En las tarjetas de memoria, los controladores son tan primitivos que a menudo se afirma que no existen en absoluto. Por lo tanto, para dispositivos económicos con memoria flash, los métodos externos de equilibrio de carga siguen siendo relevantes, principalmente utilizando sistemas de archivos especializados.

JFFS a F2FS

Uno de los primeros intentos de escribir un sistema de archivos que tuviera en cuenta los principios de organización de la memoria flash fue JFFS - Journaling Flash File System. Inicialmente, este desarrollo de la empresa sueca Axis Communications se centró en mejorar la eficiencia de la memoria de los dispositivos de red que Axis produjo en los años noventa. La primera versión de JFFS solo admitía memoria NOR, pero ya en la segunda versión se hizo amigo de NAND.

JFFS2 tiene un uso limitado en este momento. En su mayoría, todavía se usa en distribuciones de Linux para sistemas integrados. Se puede encontrar en enrutadores, cámaras IP, NAS y otros usuarios habituales del Internet de las cosas. En general, siempre que se requiera una pequeña cantidad de memoria confiable.

Un esfuerzo de desarrollo adicional para JFFS2 fue LogFS, que almacenaba inodos en un archivo separado. Los autores de esta idea son un empleado de la división alemana de IBM Jorn Engel y un profesor de la Universidad de Osnabrück Robert Mertens. El código fuente de LogFS está disponible en GitHub. A juzgar por el hecho de que el último cambio se realizó hace cuatro años, LogFS no ha ganado popularidad.

Pero estos intentos estimularon la aparición de otro sistema de archivos especializado: F2FS. Fue desarrollado por Samsung Corporation, que representa una gran parte de la memoria flash producida en el mundo. Samsung fabrica chips NAND Flash para sus propios dispositivos y para otras empresas, y también desarrolla SSD con interfaces fundamentalmente nuevas en lugar de las de disco heredado. La creación de un sistema de archivos especializado optimizado para memoria flash ha sido una necesidad desde hace mucho tiempo desde el punto de vista de Samsung.

Hace cuatro años, en 2012, Samsung creó F2FS (Flash Friendly File System). Su idea es buena, pero la implementación resultó ser húmeda. La tarea clave al crear F2FS fue simple: reducir el número de operaciones de reescritura de celdas y distribuir la carga en ellas de la manera más uniforme posible. Esto requiere realizar operaciones con varias celdas dentro del mismo bloque al mismo tiempo, y no violarlas una a una. Esto significa que no necesitamos la reescritura instantánea de los bloques existentes a la primera solicitud del sistema operativo, sino el almacenamiento en caché de los comandos y los datos, la adición de nuevos bloques al espacio libre y el borrado retardado de las celdas.

Hoy en día, el soporte F2FS ya está implementado oficialmente en Linux (y por lo tanto en Android), pero no ofrece ninguna ventaja especial en la práctica. La característica principal de este sistema de archivos (sobrescritura diferida) ha llevado a conclusiones prematuras sobre su eficacia. El viejo truco de almacenamiento en caché incluso engañó a las primeras versiones de los puntos de referencia, donde F2FS mostró una ventaja aparente no en un pequeño porcentaje (como se esperaba) o incluso varias veces, sino en órdenes de magnitud. Es solo que el controlador F2FS informó la ejecución de una operación que el controlador estaba planeando hacer. Sin embargo, si la ganancia de rendimiento real en F2FS es pequeña, el desgaste de la celda definitivamente será menor que cuando se usa el mismo ext4. Aquellas optimizaciones que un controlador económico no puede hacer se realizarán a nivel del propio sistema de archivos.

Extensiones y mapas de bits

Mientras que F2FS se percibe como exótico para los geeks. Incluso los propios teléfonos inteligentes de Samsung todavía usan ext4. Muchos lo consideran un desarrollo posterior de ext3, pero esto no es del todo cierto. Esto es más una revolución que romper la barrera de 2 TB por archivo y simplemente aumentar otras métricas.

Cuando las computadoras eran grandes y los archivos pequeños, el direccionamiento era fácil. A cada archivo se le asignó un cierto número de bloques, cuyas direcciones se ingresaron en la tabla de correspondencia. Así es como funcionaba el sistema de archivos ext3, que todavía se usa en la actualidad. Pero en ext4, apareció una forma fundamentalmente diferente de direccionamiento: extensiones.

Las extensiones pueden considerarse extensiones de inodo como conjuntos discretos de bloques que se direccionan en su totalidad como secuencias contiguas. Una extensión puede contener un archivo completo de tamaño mediano y, para archivos grandes, es suficiente asignar una docena o dos extensiones. Esto es mucho más eficiente que abordar cientos de miles de pequeños bloques de cuatro kilobytes.

El mecanismo de escritura en sí ha cambiado en ext4. Ahora la distribución de bloques ocurre inmediatamente en una solicitud. Y no por adelantado, sino justo antes de escribir datos en el disco. La asignación retardada de múltiples bloques le permite deshacerse de operaciones innecesarias que ext3 cometió: en él, los bloques para un nuevo archivo se asignaron inmediatamente, incluso si encajaba completamente en la caché y estaba programado para ser eliminado como temporal.


Dieta restringida en grasas

Además de los árboles equilibrados y sus modificaciones, existen otras estructuras lógicas populares. Hay sistemas de archivos con un tipo de organización fundamentalmente diferente, por ejemplo, lineal. Probablemente use al menos uno de ellos con frecuencia.

Misterio

Adivina el acertijo: a los doce empezó a engordar, a los dieciséis era una gorda estúpida, y a los treinta y dos engordaba y seguía siendo una simplona. ¿Quién es ella?

Así es, esta es una historia sobre el sistema de archivos FAT. Los requisitos de compatibilidad le dieron una mala herencia. En los disquetes era de 12 bits, en los discos duros, al principio era de 16 bits y hasta el día de hoy se ha reducido a 32 bits. En cada versión posterior, el número de bloques direccionables aumentó, pero en esencia nada cambió.

El todavía popular sistema de archivos FAT32 apareció hace veinte años. Hoy en día todavía es primitivo y no admite ACL, cuotas de disco, compresión en segundo plano u otras tecnologías modernas de optimización de datos.

¿Por qué se necesita FAT32 en estos días? De todos modos, solo para fines de compatibilidad. Los fabricantes creen, con razón, que cualquier sistema operativo puede leer una partición FAT32. Por lo tanto, lo crean en discos duros externos, USB Flash y tarjetas de memoria.

Cómo liberar memoria flash en su teléfono inteligente

Las tarjetas MicroSD (HC) utilizadas en los teléfonos inteligentes están formateadas en FAT32 de forma predeterminada. Este es el principal obstáculo para instalar aplicaciones en ellos y transferir datos desde la memoria interna. Para superarlo, debe crear una partición ext3 o ext4 en la tarjeta. Todos los atributos del archivo (incluidos el propietario y los derechos de acceso) se pueden transferir a él, por lo que cualquier aplicación puede funcionar como si se hubiera iniciado desde la memoria interna.

Windows no puede crear más de una partición en unidades flash, pero para esto puede ejecutar Linux (al menos en una máquina virtual) o una utilidad avanzada para trabajar con particiones lógicas, por ejemplo, MiniTool Partition Wizard Free. Habiendo encontrado una partición primaria adicional con ext3 / ext4 en la tarjeta, la aplicación Link2SD y otras similares ofrecerán muchas más opciones que en el caso de una sola partición FAT32.


Otro argumento a favor de elegir FAT32 se cita a menudo como su falta de registro en diario, lo que significa escrituras más rápidas y menos desgaste en las celdas de memoria Flash NAND. En la práctica, el uso de FAT32 conduce a lo contrario y da lugar a muchos otros problemas.

Las unidades flash y las tarjetas de memoria mueren rápidamente porque cualquier cambio en FAT32 provoca la sobrescritura de los mismos sectores donde se encuentran dos cadenas de tablas de archivos. Guardé toda la página web y la reescribí cien veces, con cada adición de otro pequeño GIF a la unidad flash. ¿Lanzó el software portátil? Creó archivos temporales y los cambia constantemente durante el trabajo. Por lo tanto, es mucho mejor usar NTFS en unidades flash con su tabla $ MFT tolerante a fallas. Los archivos pequeños se pueden almacenar directamente en la tabla de archivos principal, y sus extensiones y copias se escriben en diferentes áreas de la memoria flash. Además, la indexación NTFS agiliza las búsquedas.

INFO

Para FAT32 y NTFS, los límites teóricos del nivel de anidamiento no se especifican, pero en la práctica son los mismos: solo se pueden crear subdirectorios 7707 en un directorio de primer nivel. Los amantes de las muñecas nido lo agradecerán.

Otro problema al que se enfrentan la mayoría de los usuarios es que es imposible escribir un archivo de más de 4 GB en una partición FAT32. La razón es que en FAT32 el tamaño del archivo se describe con 32 bits en la tabla de asignación de archivos, y 2 ^ 32 (menos uno, para ser precisos) solo da cuatro gigas. Resulta que ni una película en calidad normal ni una imagen de DVD se pueden grabar en una unidad flash recién comprada.

Copiar archivos grandes sigue siendo la mitad del problema: cuando intenta hacer esto, el error es al menos inmediatamente visible. En otras situaciones, FAT32 actúa como una bomba de tiempo. Por ejemplo, copió un software portátil a una unidad flash USB y al principio puede usarlo sin ningún problema. Después de mucho tiempo, uno de los programas (por ejemplo, contabilidad o correo) tiene una base de datos inflada y ... simplemente deja de actualizarse. El archivo no se puede sobrescribir porque ha alcanzado el límite de 4 GB.

Un problema menos obvio es que en FAT32, la fecha de creación de un archivo o directorio se puede especificar con una precisión de dos segundos. Esto no es suficiente para muchas aplicaciones criptográficas que utilizan marcas de tiempo. La baja precisión del atributo de fecha es otra razón por la que FAT32 no se considera un sistema de archivos completo desde el punto de vista de la seguridad. Sin embargo, sus debilidades se pueden utilizar para sus propios fines. Por ejemplo, si copia cualquier archivo de una partición NTFS a un volumen FAT32, se borrarán todos los metadatos, así como los permisos heredados y especialmente establecidos. FAT simplemente no los apoya.

exFAT

A diferencia de FAT12 / 16/32, exFAT fue diseñado específicamente para USB Flash y tarjetas de memoria grandes (≥ 32 GB). Extended FAT elimina la desventaja mencionada anteriormente de FAT32: sobrescribir los mismos sectores en cualquier cambio. Como sistema de 64 bits, prácticamente no tiene límites significativos en el tamaño de un solo archivo. Teóricamente, puede tener 2 ^ 64 bytes (16 EB) de longitud y las tarjetas de este tamaño no aparecerán pronto.

Otra diferencia importante en exFAT es su compatibilidad con listas de control de acceso (ACL). Esto ya no es tan simple de los noventa, pero el formato cerrado dificulta la implementación de exFAT. La compatibilidad con ExFAT está implementada total y legalmente solo en Windows (a partir de XP SP2) y OS X (a partir de 10.6.5). En Linux y * BSD, se admite con restricciones o no del todo legalmente. Microsoft requiere una licencia para usar exFAT y existen muchas disputas legales en esta área.

Btrfs

Otro ejemplo destacado de sistemas de archivos de árbol B se llama Btrfs. Este FS apareció en 2007 y se creó originalmente en Oracle con miras a trabajar con SSD y RAID. Por ejemplo, se puede escalar dinámicamente: cree nuevos inodos en el sistema en vivo o divida un volumen en subvolúmenes sin asignarles espacio libre.

El mecanismo de copia en escritura implementado en Btrfs y la integración completa con el módulo del kernel del mapeador de dispositivos le permiten hacer instantáneas casi instantáneas a través de dispositivos de bloques virtuales. La precompresión de datos (zlib o lzo) y la deduplicación aceleran las operaciones básicas al tiempo que extienden la vida útil de la memoria flash. Esto es especialmente notable cuando se trabaja con bases de datos (la compresión se logra de 2 a 4 veces) y archivos pequeños (se escriben en bloques grandes ordenados y se pueden almacenar directamente en las "hojas").

Btrfs también admite el registro en diario completo (datos y metadatos), la verificación de volumen sin desmontar y muchas otras características modernas. El código Btrfs se publica bajo la licencia GPL. Este sistema de archivos se ha mantenido estable en Linux desde el kernel 4.3.1.

Registros de vuelo

Casi todos los sistemas de archivos más o menos modernos (ext3 / ext4, NTFS, HFSX, Btrfs y otros) pertenecen al grupo general de los registrados por diario, ya que mantienen registros de los cambios realizados en un registro separado (diario) y verifican con él por si acaso. de fallas durante las operaciones del disco ... Sin embargo, el nivel de verbosidad y tolerancia a fallas de estos sistemas de archivos es diferente.

Ext3 admite tres modos de registro: bucle invertido, secuenciado y registro completo. El primer modo implica registrar solo los cambios generales (metadatos), realizados de forma asincrónica con respecto a los cambios en los datos en sí. En el segundo modo, se realiza la misma grabación de metadatos, pero estrictamente antes de que se realicen cambios. El tercer modo es equivalente al registro completo (cambios tanto en los metadatos como en los propios archivos).

Solo la última opción garantiza la integridad de los datos. Los otros dos solo aceleran la identificación de errores durante la verificación y garantizan la restauración de la integridad del propio sistema de archivos, pero no el contenido de los archivos.

El registro NTFS es similar al segundo modo de registro de ext3. Solo los cambios en los metadatos se registran en el registro y los datos en sí pueden perderse en caso de falla. Este método de registro en diario NTFS no se concibió como una forma de lograr la máxima confiabilidad, sino solo como una compensación entre el rendimiento y la tolerancia a fallas. Esta es la razón por la que las personas acostumbradas a trabajar con sistemas de registro por diario completo consideran que NTFS es un registro pseudo-diario.

El enfoque NTFS es algo mejor que el predeterminado en ext3. En NTFS, los puntos de control se crean además periódicamente para garantizar que se completen todas las operaciones de disco pendientes anteriormente. Los puntos de control no tienen nada que ver con los puntos de restauración en \ System Volume Infromation \. Estas son solo entradas generales en el registro.

La práctica muestra que tal registro parcial de NTFS en la mayoría de los casos es suficiente para un funcionamiento sin problemas. Después de todo, incluso con un corte de energía brusco, los dispositivos de disco no se desactivan instantáneamente. La unidad de fuente de alimentación y numerosos condensadores en los propios variadores proporcionan solo esa reserva de energía mínima, que es suficiente para completar la operación de escritura actual. Los SSD modernos, con su velocidad y economía, suelen tener suficiente energía para realizar operaciones pendientes. Un intento de cambiar al registro completo reduciría varias veces la velocidad de la mayoría de las operaciones.

Conectamos sistemas de archivos de terceros en Windows

El uso de sistemas de archivos está limitado por su soporte a nivel de sistema operativo. Por ejemplo, Windows no comprende ext2 / 3/4 y HFS +, pero a veces es necesario utilizarlos. Esto se puede hacer agregando el controlador apropiado.

ADVERTENCIA

La mayoría de los controladores y complementos para admitir sistemas de archivos de terceros tienen sus limitaciones y no siempre funcionan de manera estable. Pueden interferir con otros controladores, antivirus y programas de virtualización.

Controlador abierto para leer y escribir particiones ext2 / 3 con soporte parcial ext4. La última versión admite extensiones y particiones de hasta 16 TB. No se admiten LVM, ACL ni atributos extendidos.


Hay un complemento gratuito para Total Commander. Admite la lectura de particiones ext2 / 3/4.


coLinux es un puerto libre y de código abierto del kernel de Linux. Junto con un controlador de 32 bits, le permite ejecutar Linux en Windows 2000 a 7 sin utilizar tecnologías de virtualización. Solo admite versiones de 32 bits. Se canceló el desarrollo de la modificación de 64 bits. coLinux permite, entre otras cosas, organizar desde Windows el acceso a particiones ext2 / 3/4. El apoyo al proyecto se suspendió en 2014.

Es posible que Windows 10 ya tenga soporte nativo para sistemas de archivos específicos de Linux, simplemente está oculto. Estos pensamientos son sugeridos por el controlador de nivel de kernel Lxcore.sys y el servicio LxssManager, que se carga como una biblioteca mediante el proceso Svchost.exe. Para más detalles, vea la charla de Alex Ionescu "El kernel de Linux escondido dentro de Windows 10", que presentó en Black Hat 2016.


ExtFS para Windows es un controlador de pago lanzado por Paragon. Funciona en Windows 7 a 10, admite acceso de lectura / escritura a volúmenes ext2 / 3/4. Proporciona soporte ext4 casi completo en Windows.

HFS + para Windows 10 es otro controlador propietario de Paragon Software. A pesar del nombre, funciona en todas las versiones de Windows a partir de XP. Proporciona acceso completo a los sistemas de archivos HFS + / HFSX en discos con cualquier partición (MBR / GPT).

WinBtrfs es un desarrollo temprano del controlador Btrfs para Windows. Ya en la versión 0.6, admite acceso de lectura y escritura a volúmenes Btrfs. Puede manejar enlaces duros y simbólicos, admite flujos de datos alternativos, ACL, dos tipos de compresión y modo de lectura / escritura asíncrono. Hasta ahora, WinBtrfs no puede usar mkfs.btrfs, btrfs-balance y otras utilidades para mantener este sistema de archivos.

Capacidades y limitaciones del sistema de archivos: tabla dinámica

Sistema de archivos Mac-si-mal-ny volumen-tamaño Pre-eliminación del tamaño de un archivo Longitud por nombre de archivo propio Longitud del nombre completo del archivo (incluida la ruta desde la raíz) Pre-del número de archivos y / o catálogos Precisión de especificar la fecha del archivo / catálogo Derechos dos-tu-pa Enlaces duros Enlaces sin sim Instantáneas Comprimir datos en segundo plano Cifrado-ro-va-ción de datos en segundo plano Abuelo-pli-ka-ción de datos
FAT16 2 GB en sectores de 512 bytes o 4 GB en clústeres de 64 KB 2 GB 255 bytes con LFN - - - - - - - - - -
FAT32 8 TB en sectores de 2 KB 4 GB (2 ^ 32 - 1 byte) 255 bytes con LFN hasta 32 subdirectorios con CDS 65460 10ms (crear) / 2s (cambiar) No No No No No No No
exFAT ≈ 128 PB (2 ^ 32-1 grupos de 2 ^ 25-1 bytes) en teoría / 512 TB debido a limitaciones de terceros 16 EB (2 ^ 64 - 1 byte) 2796202 en catálogo 10 ms ACL No No No No No No
NTFS 256 TB en clústeres de 64 KB o 16 TB en clústeres de 4K 16 TB (Win 7) / 256 TB (Win 8) 255 caracteres Unicode (UTF-16) 32,760 caracteres Unicode, pero no más de 255 caracteres por elemento 2^32-1 100 ns ACL
HFS + 8 EB (2 ^ 63 bytes) 8 EB 255 caracteres Unicode (UTF-16) no limitado por separado 2^32-1 1 segundo Unix, ACL No No
APFS 8 EB (2 ^ 63 bytes) 8 EB 255 caracteres Unicode (UTF-16) no limitado por separado 2^63 1 ns Unix, ACL
Ext3 32 TB (teórico) / 16 TB en clústeres de 4K (debido a las limitaciones de los programas e2fs) 2 TB (teórico) / 16 GB para programas anteriores 255 caracteres Unicode (UTF-16) no limitado por separado - 1 segundo Unix, ACL No No No No
Ext4 1 EB (teórico) / 16 TB en clústeres de 4K (debido a las limitaciones de los programas e2fs) 16 TB 255 caracteres Unicode (UTF-16) no limitado por separado 4000000000 1 ns POSIX No No No
F2FS 16 TB 3,94 TB 255 bytes no limitado por separado - 1 ns POSIX ACL No No No
BTRFS 16 EB (2 ^ 64 - 1 byte) 16 EB 255 caracteres ASCII 2 ^ 17 bytes - 1 ns POSIX ACL

(2010) con algunas adiciones y aclaraciones.

Inicio sesión

Antes de hablar sobre sistemas de archivos, echemos un vistazo rápido al concepto de " Inicio sesión«.

Inicio sesión se utiliza de una forma u otra en casi todos los sistemas de archivos modernos.

El registro se usa solo para operaciones de escritura en el disco y es una especie de búfer para todas esas operaciones. Este enfoque ayuda a resolver problemas que surgen durante una operación de escritura en disco en la que la computadora se apaga, por ejemplo, debido a un corte de energía. Sin llevar un diario, en tales casos es imposible averiguar qué archivos se escribieron y cuáles no o se escribieron parcialmente.

Cuando se utiliza el registro, el archivo se escribe primero en el registro (o "registro"). Después de eso, el archivo se escribe en el disco duro y luego se elimina del registro, después de lo cual la operación de escritura se considera completa. Si se apaga la alimentación durante la grabación, luego de encender el sistema, el sistema de archivos puede verificar el registro y encontrar operaciones incompletas.

El mayor problema con el uso del registro es que requiere recursos adicionales del sistema para usarlo. Para reducir esta sobrecarga, los sistemas de archivos de registro por diario no escriben el archivo completo en el diario, sino solo ciertos metadatos.

Sistemas de archivos externos

Ext

Medio " Extendido"(Extendido) sistema de archivos, y fue el primero en ser diseñado específicamente para Linux-sistemas. Actualmente hay 4 sistemas de archivos en total. Ext... El primero es simplemente Ext- fue una actualización importante del sistema operativo FS Minix.

Caracteristicas Ext:

  • tamaño máximo de archivo: 2 GB;
  • tamaño máximo de partición: 2GB;

El desarrollador es, y la primera versión apareció en 1992.

No lo consideraremos, porque lo más probable es que nunca lo encuentre.

Ext2

- sistema de archivos sin registro en diario, lanzado en 1993, cuya tarea principal era admitir dispositivos de hasta 2 Terabytes de tamaño. Porque a Ext2 sin registro en diario: realiza muchas menos escrituras en disco, lo que afecta el rendimiento y su alcance.

Caracteristicas:

  • tamaño máximo de archivo: 16 GB - 2 TB;
  • tamaño máximo de partición: 2 - 32 TB;
  • el tamaño máximo del nombre es de 255 caracteres.
  • debido al bajo número de operaciones de escritura y eliminación, es ideal para varias unidades flash;
  • al mismo tiempo moderno SSD-los discos tienen indicadores mejorados de su ciclo de vida (resistencia al desgaste de los elementos impulsores) y algunas otras características que neutralizan las deficiencias Ext2 como un FS no registrado.

Ext3

- apareció en 2001, junto con el lanzamiento Kernel de Linux 2.4.15. De hecho es lo mismo Ext2 pero con soporte de tala. El objetivo principal Ext3 existía la posibilidad de su compatibilidad con versiones anteriores Ext2 sin necesidad de reformatear las particiones. Las ventajas incluyen el hecho de que la mayoría de las pruebas, correcciones de errores, etc. por Ext3 era el mismo que en Ext2 que hizo Ext3 FS más estable y más rápido.

Caracteristicas:

  • tamaño máximo de archivo: 16GB - 2TB (dependiendo del tamaño del bloque);
  • tamaño máximo de partición: 2 - 32 TB (según el tamaño del bloque);
  • adecuado si estás usando Ext2 y desea utilizar el registro;
  • por su rendimiento y estabilidad, probablemente será el FS más adecuado para servidores de bases de datos;
  • Probablemente no sea la mejor opción para servidores. no admite la creación de instantáneas ( shapshot) FS y dificultades para recuperar archivos borrados.

Ext4

- como Ext3 tiene compatibilidad con versiones anteriores de FS. De hecho, puede montar Ext2 o Ext3 cómo Ext4-y, en determinadas condiciones, lograr una mayor productividad. También puedes montar Ext4 cómo Ext3 sin efectos secundarios.

Ext4- la versión estable se lanzó en 2008. Es el primer FS de la "familia" Ext usando el mecanismo " “, Lo que permite una menor fragmentación de archivos y aumenta el rendimiento general del sistema de archivos. Además, en Ext4 se implementa el mecanismo de escritura retardada ( ), que también reduce la fragmentación del disco y la utilización de la CPU. Por otro lado, aunque el mecanismo de escritura diferida se utiliza en muchos sistemas de archivos, debido a la complejidad de su implementación, aumenta la probabilidad de pérdida de datos. Consulte para obtener más detalles.

Caracteristicas:

  • tamaño máximo de archivo: 16 TB;
  • tamaño máximo de nombre de archivo: 255 caracteres.
  • la mejor opción para SSD;
  • mejor rendimiento en comparación con los anteriores Etx-sistemas;
  • También es excelente como sistema de archivos para servidores de bases de datos, aunque el sistema en sí es más joven. Ext3.

BtrFS

- desarrollado por la empresa Oráculo en 2007. Su esquema es similar a ReiserFS, el principio fundamental de su trabajo es el llamado. ... BtrFS le permite asignar inodos dinámicamente, crear instantáneas del sistema de archivos durante su funcionamiento, realizar una compresión transparente de archivos y realizar desfragmentación en el modo operativo.

Aunque la versión estable BtrFS aún no incluido en la mayoría de las distribuciones Linux(a partir de hoy, a juzgar por la publicación, solo SUSE y Oracle Linux) - bien puede reemplazar Ext3 / 4 en un futuro previsible y ya ofrece opciones de conversión Ext3 / 4 en BtrFS... Además, vale la pena mencionar que uno de los desarrolladores Ext, dijo eso " BtrFS Es un paso hacia el futuro ".

Caracteristicas:

  • tamaño máximo de partición: 16 EB;
  • tamaño máximo de nombre de archivo: 255 caracteres.
  • debido al rendimiento, instantáneas y otras características - BtrFS es un excelente sistema de archivos para el servidor;
  • Oráculo también desarrolla un reemplazo para NFS y CIFS, Lo que es llamado CRFS y que está diseñado para mejorar el rendimiento de almacenamiento de archivos con BtrFS;
  • las pruebas de rendimiento mostraron retraso BtrFS desde Ext4 en medios de estado sólido como SSD y para operaciones con archivos relativamente pequeños:

ReizerFS

- introducido en 2001, se dio cuenta de muchas posibilidades que nunca se podrán realizar en Ext*. En 2004 para reemplazar ReizerFS FS fue lanzado Reizer4.

Al mismo tiempo - desarrollo Reizer4 progresando muy lentamente y todavía tiene soporte limitado (?) en el kernel Linux... Actualmente, solo ReiserFS .

Caracteristicas:

  • tamaño máximo de archivo: 1 EB ();
  • tamaño máximo de partición: 16 TB;
  • tamaño máximo de nombre de archivo: 4032 bytes, pero limitado a 255 caracteres.
  • excelente rendimiento cuando se trabaja con archivos pequeños como archivos de registro y es ideal para servidores de bases de datos o servidores de correo;
  • ReiserFS se presta bien para aumentar el tamaño del volumen, pero no admite su reducción y cifrado a nivel de FS;
  • futuro Reiser4 todavía está en duda y por ahora BtrFS sigue siendo la opción preferida (?) entre estos dos FS.

ZFS

- Vale la pena mencionarlo aquí, tk. también fue desarrollado por la empresa Oráculo y tiene capacidades similares a BtrFS y ReizerFS... También se hizo bastante famosa después de que la empresa manzana la intención de utilizarlo como sistema de archivos predeterminado. Primer lanzamiento ZFS tuvo lugar en 2005.

Debido a restricciones de licencia - ZFS no se puede incluir en el kernel Linux, pero su soporte es posible con la ayuda del mecanismo De Linux (FUSIBLE).

Caracteristicas:

  • tamaño máximo de archivo: 16 EB ();
  • tamaño máximo de partición: 256 ZiB (Zebibyte);
  • tamaño máximo de nombre de archivo: 255 bytes.
  • muestra un rendimiento excelente cuando se trabaja con matrices de discos grandes;
  • admite la capacidad de combinar discos en matrices, crear instantáneas FS y trabajar con "visualización en capas" ( ) datos;
  • posibles dificultades al intentar instalar y utilizar en Linux-sistemas, debido a la necesidad de utilizar FUSIBLE.

Intercambio

Intercambio- no es un sistema de archivos en absoluto. Archivo o sección con intercambio-th es utilizado por el sistema de memoria virtual del kernel y no tiene ninguna estructura de sistema de archivos. No puede montarlo y leer datos de él, porque intercambio utilizado exclusivamente por el kernel Linux escribir páginas de memoria, no de disco. Generalmente - intercambio se utiliza solo cuando el sistema operativo carece de RAM libre y "vacía" parte de los datos de la memoria a intercambio para su liberación.