GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo usar la nueva función de datos en línea ext4? (almacenando datos directamente en el inodo)

Para habilitar los datos en línea en ext4, deberá usar e2fsprogs 1.43 o posterior. El soporte para datos en línea se agregó en marzo de 2014 al repositorio de Git, pero solo se lanzó en mayo de 2016.

Una vez que tenga eso, puede ejecutar mke2fs -O inline_data en un dispositivo apropiado para crear un nuevo sistema de archivos con soporte de datos en línea; esto borrará todos tus datos . Aparentemente, aún no es posible activar datos en línea en un sistema de archivos existente (al menos, tune2fs no lo admite).

Ahora cree un archivo pequeño y ejecute debugfs en el sistema de archivos. cd al directorio apropiado y ejecute stat smallfile; obtendrás algo como

Inode: 32770   Type: regular    Mode:  0644   Flags: 0x10000000
Generation: 2302340561    Version: 0x00000000:00000001
User:  1000   Group:  1000   Size: 6
File ACL: 0    Directory ACL: 0
Links: 1   Blockcount: 0
Fragment:  Address: 0    Number: 0    Size: 0
 ctime: 0x553731e9:330badf8 -- Wed Apr 22 07:30:17 2015
 atime: 0x553731e9:330badf8 -- Wed Apr 22 07:30:17 2015
 mtime: 0x553731e9:330badf8 -- Wed Apr 22 07:30:17 2015
crtime: 0x553731e9:330badf8 -- Wed Apr 22 07:30:17 2015
Size of extra inode fields: 28
Extended attributes:
  system.data (0)
Size of inline data: 60

Como puede ver, los datos se almacenaron en línea. Esto también se puede ver usando df; antes de crear el archivo:

% df -i /mnt/new 
Filesystem                           Inodes IUsed IFree IUse% Mounted on
/dev/mapper/vg--large--mirror-inline  65536    12 65524    1% /mnt/new
% df /mnt/new 
Filesystem                           1K-blocks  Used Available Use% Mounted on
/dev/mapper/vg--large--mirror-inline   1032088  1280    978380   1% /mnt/new

Después de crear el archivo:

% echo Hello > smallfile
% ls -l
total 1
-rw-r--r-- 1 steve steve 6 Apr 22 07:35 smallfile
% df -i /mnt/new
Filesystem                           Inodes IUsed IFree IUse% Mounted on
/dev/mapper/vg--large--mirror-inline  65536    13 65523    1% /mnt/new
% df /mnt/new
Filesystem                           1K-blocks  Used Available Use% Mounted on
/dev/mapper/vg--large--mirror-inline   1032088  1280    978380   1% /mnt/new

El archivo está ahí, usa un inodo pero el espacio de almacenamiento disponible no ha cambiado.


Si tu e2fsprogs la versión es demasiado antigua o el sistema de archivos ya está creado, puede configurar el indicador de función usando debugfs (la bandera es compatible desde 2012, mientras que mke2fs y las otras herramientas agregaron soporte en 2014+ y muchas distribuciones aún no las envían en 2016, incl. Ubuntu Xenial).

Para hacerlo, abra la partición en modo lectura-escritura:

debugfs -w /dev/sdxx

Y luego agrega la bandera:

feature inline_data

(o feature -inline_data para desactivarlo, ¡pero probablemente sea una muy mala idea si ya hay archivos en línea!)

Tenga en cuenta, sin embargo, si su sistema e2fsprogs son viejos, te estás acorralando, ya que las utilidades (incluyendo debugfs mismo) se negará a tocar dicho sistema de archivos después de establecer la bandera.

También tenga en cuenta que el actual GRUB (2.02) no admite esto, por lo que configurarlo en la partición de arranque hará que el sistema no pueda arrancar. Hay un parche no fusionado para agregar soporte.

Al momento de escribir este artículo, archivos y directorios de hasta inode_size-128 puede estar en línea, por lo que 128 bytes para los inodos predeterminados de 256 bytes. Puede usar inodos más grandes si desea más alineaciones.


Linux
  1. Cómo usar el comando grep de Linux

  2. Cómo usar el comando de historial en Linux

  3. ¿Cómo aumentar el número de inodos en un sistema de archivos Ext4?

  4. ¿Cómo usar el Tpm para sellar datos en un sistema con arranque Uefi?

  5. ¿Cómo encontrar el tamaño de inodo de un sistema de archivos ext2/ext3/ext4?

Cómo usar el comando superior en Linux

Cómo usar el comando ping de Linux

Cómo usar el comando nmap

¿Cómo mover la partición Ext4 delante de la partición de arranque?

Cómo usar el comando fd en el sistema Linux

¿Cómo usar el comando wget en Linux?