File systems: Multiple choice

We store 1000+ of files on our devices including videos, audio, pictures, e-books, and many others. They all have different purposes and this is why they differ in terms of their format.

We also love order in things we have, so do both the software and the hardware. In a nutshell, a file system aims to organize your data while specifying the path to one or another file to hierarchical directories. A file system access data via a file-based API and for storing and retrieving data, a file format uses metadata in the form of date created, date modified and file size. We use our file system hundreds of times a day not even knowing that.

A file system is structured data representation and associated metadata describing the stored information. A file system serves for both the whole storage and as a part of an isolated storage segment i.e. disk partition. Usually, the file system operates blocks which present groups of sectors that optimize storage addressing. File systems vary, but they have the same purpose — to divide storage space into blocks and specify how files are laid out, organized, indexed, and how metadata is associated with them.

The examples of such file systems are Ext4, ZFS, Btrfs, etc.

A closer look at file systems:

Ext4 (fourth extended file system) is an improved version of previous Ext2, Ext3 file systems. Introduced in 2008, it provides a wide range of features including large file system, extents, backward compatibility, persistent pre-allocation, delayed allocation, unlimited number of subdirectories, journal checksumming, metadata checksumming, faster file system checking, multiblock allocator, improved timestamps, transparent encryption.

Ext4 is more modern and faster and it’s the default file system on most Linux distributions now (Windows and Mac don’t support these file systems — you’ll need a third-party tool to access files on these platforms).

Ext4 is a journaling FS. It means that it keeps a journal (log) of the changes being made to the file system during disk writing that can be used to rapidly recreate corruptions that may occur due to crash or power loss. In ext4, you also have the option of turning the journaling feature off.

Ext4 benefits:

  • Large file sizes (up to 16 terabytes).
  • Larger file system (size up to 1 exabyte).
  • More subdirectories (up to 64,000 subdirectories).
  • Journaling optional.
  • Overall performance (aforementioned features ensure seamless performance in many file system operations).

ZFS (Zettabyte File System) is an open-source file system and logical volume manager designed in 2005 by Sun Microsystems. ZFS features include pooled storage, copy-on-write, snapshots, data integrity verification and automatic repair, RAID-Z, a maximum 16 exabyte file size, and a maximum 256 Quadrillion Zettabytes storage with no limit on a number of datasets or files.

A simplified administration model is one of the greatest features of ZFS. A hierarchical file system layout, property inheritance, and automatic management of mount points with NFS share semantics, give the possibility to create and manage file systems without requiring multiple commands or the editing configuration files.

ZFS file system designed for Linux-based operating systems, however, for Linux distribution maintainers, license incompatibilities prevent providing native support for ZFS in their products. It is due to the GPL license that does not allow the redistribution of the resulting product as a derivative work.

We recommend working with ZFS because of:

  • Endless scalability.
  • Transactional Semantics.
  • Checksums and Self-Healing Data.
  • ZFS Snapshots.
  • Maximum integrity.
  • Drive pooling.
  • Different RAID levels.

Btrfs is a file system based on copy-on-write (COW) principle, originally designed by Oracle, but now owned by Red Hat. It is still in beta, however, it has the potential to replace Ext4 one day. Its goal is to provide additional features (space-efficient packing of small files, space-efficient indexed directories, dynamic inode allocation, writable snapshots, read-only snapshots, subvolumes, compression, SSD awareness, and optimization, etc.) that allow Linux to scale to larger amounts of storage.

Btrfs is a great file system to protect files from hard drive corruption. But this requires at least two disks in raid1 profile. Without at least two copies of data, corruption can be detected but not corrected.

Btrfs is a trustworthy file storage for the following reasons:

  • It is becoming progressively important to the future of Linux systems.
  • Filesystems can span physical volumes with optional RAID support.
  • Physical volumes can be added to and removed from mounted filesystems.
  • Metadata mirroring and increased data availability.
  • Automatic corruption detection and repair.
  • Compression.
  • Snapshots and seeds.

Define your requirements to choose which file system will be good for you. If you need a journaled file system, you can choose Ext4, for snapshotting and speed you can work with ZFS (it’s available on *BSD), Btrfs is great for scaling amounts of storage for Linux. Only you know what is more important for your project.

And we are here to suggest you some options and reveal the most popular file systems today. We hope our article will help you!

Would you like to find out more about the File systems: Multiple choice? We’d be happy to answer your questions!

Thank you for your message. It has been sent!