File systems (Español)
De Wikipedia:
- En informática, un sistema de archivos controla cómo se almacenan y recuperan los datos. Sin un sistema de archivos, la información colocada en un medio de almacenamiento sería una gran cantidad de datos sin una manera de decir dónde se detiene una información y comienza la siguiente. Al separar los datos en partes y darle a cada una un nombre, la información se aísla e identifica fácilmente. Tomando su nombre de la forma en que se nombran los sistemas de información en papel, cada grupo de datos se llama un «archivo». La estructura y las reglas lógicas utilizadas para administrar los grupos de información y sus nombres se denominan «sistema de archivos».
Las particiones individuales de la unidad se pueden configurar utilizando uno de los muchos y diferentes sistemas de archivos disponibles. Cada uno tiene sus propias ventajas, desventajas e idiosincrasias únicas. A continuación se ofrece una breve descripción de los sistemas de archivos compatibles; los enlaces son a páginas de Wikipedia que proporcionan mucha más información.
Contents
Tipos de sistemas de archivos
Véase filesystems(5) para una visión general y Wikipedia:es:Anexo:Comparación de sistemas de archivos para una comparación detallada de características. Los sistemas de archivos soportados por el kernel están listados en /proc/filesystems
.
Sistema de archivos | Orden para crearlo | Utilidades de usuario | Archiso [1] | Documentación del kernel [2] | Notas |
---|---|---|---|---|---|
Btrfs | mkfs.btrfs(8) | btrfs-progs | Sí | btrfs.txt | estado de su estabilidad |
VFAT | mkfs.fat(8) | dosfstools | Sí | vfat.txt | |
exFAT | mkexfatfs(8) | exfat-utils | Sí | N/D (basado en FUSE) | |
F2FS | mkfs.f2fs(8) | f2fs-tools | Sí | f2fs.txt | dispositivos basados en flash |
ext3 | mke2fs(8) | e2fsprogs | Sí (base) | ext3.txt | |
ext4 | mke2fs(8) | e2fsprogs | Sí (base) | ext4.txt | |
HFS | mkfs.hfsplus(8) | hfsprogsAUR | No | hfs.txt | sistema de archivos de macOS (8.x-10.12.x) |
JFS | mkfs.jfs(8) | jfsutils | Sí (base) | jfs.txt | |
NILFS2 | mkfs.nilfs2(8) | nilfs-utils | Sí | nilfs2.txt | |
NTFS | mkfs.ntfs(8) | ntfs-3g | Sí | N/D (basado en FUSE) | sistema de archivos de Windows |
Reiser4 | mkfs.reiser4(8) | reiser4progsAUR | No | ||
ReiserFS | mkfs.reiserfs(8) | reiserfsprogs | Sí (base) | ||
UDF | mkfs.udf(8) | udftools | Opcional | udf.txt | |
XFS | mkfs.xfs(8) | xfsprogs | Sí (base) |
xfs.txt |
|
ZFS | zfs-linuxAUR | No | N/D (OpenZFS port) |
Journaling
Todos los sistemas de archivos anteriores con la excepción de ext2, FAT16/32, Btrfs and ZFS, utilizan journaling. Journaling proporciona tolerancia a fallos al registrar los cambios antes de que se confirmen en el sistema de archivos. En el caso de un fallo del sistema o de alimentación, estos sistemas de archivos son más rápidos para volver a estar en línea y es menos probable que se corrompan. El registro se realiza en un área dedicada del sistema de archivos.
No todas las técnicas Journaling son iguales. Ext3 y ext4 ofrecen data-mode journaling, que registra datos y metadatos, así como posibilidad de registrar solo los cambios de metadatos. Data-mode journaling viene con una penalización de velocidad y no está activada de forma predeterminada. Del mismo modo, Reiser4 ofrece el llamado "modelos de transacción", que incluye journaling puro (equivalente a data-mode journaling de ext4), aproximación a Copy-on-Write puro (equivalente al predeterminado de btrfs) y un enfoque combinado que alterna heurísticamente entre los dos anteriores.
Los otros sistemas de archivos proporcionan ordered-mode journaling, que solo registra metadatos. Si bien todo journaling devolverá un sistema de archivos a un estado válido después de una caída, data-mode journaling ofrece la mayor protección contra la corrupción y la pérdida de datos. Sin embargo, existe un compromiso en el rendimiento del sistema, ya que data-mode journaling realiza dos operaciones de escritura: primero en el journal y luego en el disco. Al elegir el tipo de sistema de archivos, se debe considerar el equilibrio entre la velocidad del sistema y la seguridad de los datos.
Los sistemas de archivos basados en copy-on-write, como Btrfs y ZFS, no tienen necesidad de usar el journal tradicional para proteger los metadatos, porque nunca se actualizan en el lugar. Aunque Btrfs todavía tiene un árbol de registro similar a journal, solo se utiliza para acelerar fdatasync/fsync.
Sistemas de archivos basados en FUSE
Véase FUSE.
Sistemas de archivos apilables
- aufs — Sistema de archivos de unificación multicapa avanzado, un sistema de archivos de unión basado en FUSE, una reescritura completa de Unionfs, fue rechazado de la línea principal de Linux y, en su lugar, OverlayFS se fusionó con el Kernel de Linux.
- eCryptfs — El sistema de archivos de cifrado empresarial es un paquete de software de cifrado de disco para Linux. Se implementa como una capa de cifrado a nivel de sistema de archivos compatible con POSIX, con el objetivo de ofrecer una funcionalidad similar a la de GnuPG a nivel de sistema operativo.
- mergerfs — Un sistema de archivos de unión basado en FUSE.
- mhddfs — Sistema de archivos FUSE Multi-HDD, un sistema de archivos de unión basado en FUSE.
- http://mhddfs.uvw.ru || mhddfsAUR
- overlayfs — OverlayFS es un servicio de sistema de archivos para Linux que implementa un montaje de unión para otros sistemas de archivos.
- Unionfs — Unionfs es un servicio de sistema de archivos para Linux, FreeBSD y NetBSD que implementa un montaje de unión para otros sistemas de archivos.
- http://unionfs.filesystems.org/ || not packaged? search in AUR
- unionfs-fuse — Una implementación de Unionfs en el espacio de usuario.
Sistemas de archivos de solo lectura
- SquashFS — SquashFS es un sistema de archivos comprimido de solo lectura. SquashFS comprime archivos, inodos y directorios, y admite tamaños de bloque de hasta 1 MB para una mayor compresión.
Sistemas de archivos agrupados (cluster)
- Ceph — Unificado, sistema de almacenamiento distribuido diseñado para un excelente rendimiento, fiabilidad y escalabilidad.
- Glusterfs — Sistema de archivos agrupado capaz de escalar a varios peta-bytes.
- IPFS — Un protocolo de hipermedia de igual a igual (peer-to-peer) para que la web sea más rápida, segura y abierta. IPFS trata de reemplazar a HTTP y construir una mejor web para todos nosotros. Utiliza bloques para almacenar partes de un archivo, cada nodo de red almacena solo el contenido que le interesa, proporciona deduplicación, distribución, sistema escalable limitado solo por los usuarios. (actualmente en estado aplha)
- MooseFS — MooseFS es un sistema de archivos distribuido en red de escalamiento horizontal tolerante a fallos, de alta disponibilidad y de alto rendimiento.
- OpenAFS — Implementación de código abierto del sistema de archivos distribuido AFS.
- OrangeFS — OrangeFS es un sistema de archivos de red de escalado horizontal diseñado para acceder de forma transparente al almacenamiento en disco multiservidor en paralelo. Ha optimizado el soporte de MPI-IO para aplicaciones paralelas y distribuidas. Simplifica el uso del almacenamiento paralelo no solo para clientes Linux, sino también para Windows, Hadoop y WebDAV. Compatible con POSIX. Parte del kernel de Linux desde la versión 4.6.
- http://www.orangefs.org/ || not packaged? search in AUR
- Sheepdog — El sistema de almacenamiento de objetos distribuidos para servicios de volumen y contenedor. Gestiona los discos y nodos de forma inteligente.
- https://sheepdog.github.io/sheepdog/ || not packaged? search in AUR
- Tahoe-LAFS — Tahoe Least-Authority Filesystem es un sistema de archivos libre y abierto, seguro, descentralizado, tolerante a fallos y distribuido de igual a igual.
Identificar los sistemas de archivos existentes
Para identificar los sistemas de archivos existentes, puede utilizar lsblk:
$ lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT sdb └─sdb1 vfat Transcend 4A3C-A9E9
Un sistema de archivos existente, si está presente, se mostrará en la columna FSTYPE
. Si está montado, aparecerá en la columna MOUNTPOINT
.
Crear un sistema de archivos
Los sistemas de archivos generalmente se crean en una partición, dentro de contenedores lógicos como LVM, RAID y dm-crypt, o en un archivo normal (véase Wikipedia:es:Loop device). Esta sección describe el caso de la partición.
Antes de continuar, identifique el dispositivo donde se creará el sistema de archivos y si está montado o no. Por ejemplo:
$ lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT sda ├─sda1 C4DA-2C4D ├─sda2 ext4 5b1564b2-2e2c-452c-bcfa-d1f572ae99f2 /mnt └─sda3 56adc99b-a61e-46af-aab7-a6d07e504652
Los sistemas de archivos montados deben ser desmontados antes de continuar. En el ejemplo anterior, existe un sistema de archivos que está en /dev/sda2
y se monta en /mnt
. Se desmontaría con:
# umount /dev/sda2
Para encontrar los sistemas de archivos que estén montados, véase #Listar los sistemas de archivos montados.
Para crear un nuevo sistema de archivos, utilice mkfs(8). Véase #Tipos de sistemas de archivos para conocer el tipo exacto, así como las utilidades de espacio de usuario que desee instalar para un sistema de archivos en particular.
Por ejemplo, para crear un nuevo sistema de archivos de tipo ext4 (común para particiones de datos de Linux) en /dev/sda1
, ejecute:
# mkfs.ext4 /dev/sda1
El nuevo sistema de archivos ahora se puede montar en el directorio de su elección.
Montar un sistema de archivos
Para montar manualmente el sistema de archivos ubicado en un dispositivo (por ejemplo, una partición) en un directorio, utilice mount(8). Este ejemplo monta /dev/sda1
en /mnt
.
# mount /dev/sda1 /mnt
Esto vincula el sistema de archivos en /dev/sda1
en el directorio /mnt
, haciendo visible el contenido del sistema de archivos. Todos los datos que existían en /mnt
antes de esta acción se vuelven invisibles hasta que se desmonte el dispositivo.
fstab contiene información sobre cómo se deben montar automáticamente los dispositivos, si están presentes. Véase el artículo fstab para obtener más información sobre cómo modificar este comportamiento.
Si se especifica un dispositivo en /etc/fstab
y solo se proporciona el dispositivo o el punto de montaje en la línea de órdenes, esa información se utilizará en el montaje. Por ejemplo, si /etc/fstab
contiene una línea que indica que /dev/sda1
debe montarse en /mnt
, entonces lo siguiente montará automáticamente el dispositivo en esa ubicación:
# mount /dev/sda1
o
# mount /mnt
mount contiene varias opciones, muchas de las cuales dependen del sistema de archivos especificado. Las opciones se pueden cambiar, ya sea:
- utilizando opciones en la línea de órdenes con mount
- editando fstab
- creando reglas udev
- compilando el kernel usted mismo
- o utilizando scripts de montaje específicos del sistema de archivos (situados en
/usr/bin/mount.*
).
Véase estos artículos relacionados y el artículo del sistema de archivos de interés para obtener más información.
Listar los sistemas de archivos montados
Para listar todos los sistemas de archivos montados utilice findmnt(8):
$ findmnt
findmnt toma una variedad de argumentos que pueden filtrar la salida y mostrar información adicional. Por ejemplo, puede tomar un dispositivo o punto de montaje como argumento para mostrar solo información sobre lo que se especifica:
$ findmnt /dev/sda1
findmnt reúne información de /etc/fstab
, /etc/mtab
, y /proc/self/mounts
.
Desmontar un sistema de archivos
Para desmontar un sistema de archivos utilice umount(8). Se puede especificar el dispositivo que contiene el sistema de archivos (por ejemplo, /dev/sda1
) o el punto de montaje (por ejemplo, /mnt
):
# umount /dev/sda1
o
# umount /mnt