GNU/Linux >> Tutoriels Linux >  >> Linux

Comment utiliser la nouvelle fonctionnalité de données en ligne ext4 ? (stockage des données directement dans l'inode)

Pour activer les données en ligne dans ext4, vous devrez utiliser e2fsprogs 1.43 ou version ultérieure. La prise en charge des données en ligne a été ajoutée en mars 2014 au référentiel Git, mais n'a été publiée qu'en mai 2016.

Une fois que vous avez cela, vous pouvez exécuter mke2fs -O inline_data sur un périphérique approprié pour créer un nouveau système de fichiers avec prise en charge des données en ligne ; cela effacera toutes vos données . Il n'est apparemment pas encore possible d'activer les données en ligne sur un système de fichiers existant (au moins, tune2fs ne le supporte pas).

Créez maintenant un petit fichier et exécutez debugfs sur le système de fichiers. cd dans le répertoire approprié et exécutez stat smallfile; vous obtiendrez quelque chose comme

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

Comme vous pouvez le voir, les données ont été stockées en ligne. Cela peut également être vu en utilisant df; avant de créer le fichier :

% 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

Après avoir créé le fichier :

% 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

Le fichier est là, il utilise un inode mais l'espace de stockage disponible n'a pas changé.


Si votre e2fsprogs la version est trop ancienne ou le système de fichiers est déjà créé, vous pouvez définir l'indicateur de fonctionnalité à l'aide de debugfs (le drapeau est supporté depuis 2012, alors que mke2fs et les autres outils ont ajouté le support sur 2014+ et de nombreuses distributions ne les expédient toujours pas en 2016, incl. Ubuntu Xénial).

Pour cela, ouvrez la partition en mode lecture-écriture :

debugfs -w /dev/sdxx

Et puis ajoutez le drapeau :

feature inline_data

(ou feature -inline_data pour le désactiver, mais c'est probablement une très mauvaise idée s'il y a déjà des fichiers en ligne !)

Notez cependant que si votre système e2fsprogs êtes vieux, vous vous enfoncez dans un coin, puisque les utilitaires (dont debugfs lui-même) refusera de toucher à un tel système de fichiers après avoir défini le drapeau.

Notez également que l'actuel GRUB (2.02) ne le prend pas en charge, donc le définir sur la partition de démarrage rendra le système impossible à démarrer. Il existe un correctif non fusionné pour ajouter du support.

Au moment d'écrire ces lignes, les fichiers et répertoires jusqu'à inode_size-128 peut être en ligne, donc 128 octets pour les inodes de 256 octets par défaut. Vous pouvez utiliser des inodes plus grands si vous voulez plus d'inlining.


Linux
  1. Les inodes et le système de fichiers Linux

  2. Comment augmenter le nombre d'inodes dans un système de fichiers Ext4 ?

  3. Comment utiliser le TPM pour sceller les données sur un système démarré Uefi ?

  4. Comment trouver la taille d'inode d'un système de fichiers ext2/ext3/ext4 ?

  5. Comment puis-je utiliser DD pour migrer des données d'un ancien disque vers un nouveau disque ?

Comment utiliser la commande top sous Linux

Comment utiliser la commande Linux Ping

Comment utiliser la commande nmap

Comment déplacer la partition Ext4 avant la partition de démarrage ?

Comment utiliser la commande fd sur le système Linux

Comment utiliser la commande wget sous Linux ?