admin:linux:fs

File Systems

If you ask this question, probably the one which is default for your distribution or ext4.

Some good file systems and their usage:

ext4 root, data
btrfs redundant data, file servers
zfs redundant data, file servers
xfs root, data
f2fs flash storage
glusterfs computer clusters
ntfs shared storage with windows (slow, because fuse)

Could be that you ran out of inodes. Check with df -i.

get label1 xfs_admin -l /dev/sdb1
change label xfs_admin -L NEWLABEL /dev/mapper/NAME

SSDs do garbage collection differently, which is why dd if=/dev/true or scrub don't work properly.

  • xfs scrub can TRIM the SSD's free space
  • you can use a systemd timer (fstrim.service / fstrim.timer) to TRIM periodically
  • you can enable the discard mount option to TRIM immediately after deleting a file, which slows down deleting files a fair bit.

init ext4 inodes on mkfs

lazy inode init makes the drive behave slowly on first mount

mkfs.ext4 -E lazy_itable_init=0,lazy_journal_init=0 /dev/sdXY

directory index for a huge amount of files

Huge amount = >300k

mount with dir_index

if the error EXT4-fs warning (device /dev/sdx): ext4_dx_add_entry: Directory index full! occurs, you probably have more than 2 million files in one directory, check with

$ cd /var/
$ debugfs
debugfs> open /dev/sdd1
debugfs> cd log/
debugfs> htree .
[...]
Number of Entries (count): 508
Number of Entries (limit): 508
[...]

and remedy with fsck.ext4 -yfD /dev/sdx1

(source)

For interoperability with Windows; is mounted with FUSE and therefore pretty slow.

Use mount options fmask=117,dmask=007 so the executable bit isn't set on everything.

  • Last modified: 2023-08-26 10:37