15 managing disks - file system difference
Understanding different filesystems
At the time of writing this, there are over 60 different filesystems available for Linux.
The following is a brief overview of the common ones you may frequently encounter:
- Btrfs: B-tree filesystem is a copy-on-write filesystem developed by Oracle in 2007.
It is still in the developmental stage and considered experimental. The intention
of Btrfs is to allow the filesystem to scale as drives get larger and larger. Because
of its benefits, it is being considered as the filesystem to replace ext4.
- ext2: It was introduced in 1993. This filesystem does not have journaling and hence,
has fewer writes per cycle, making it a good choice for flash drives.
ext3: It is very similar to ext2 with the addition of journaling, which improves
reliability, especially after an unclean shutdown.
- ext4: Being released in 2008, it is considered the successor of ext3. It can handle
volumes up to 1 exbibyte and files up to 16 tebibytes. This filesystem uses extents
to replace the traditional block mapping scheme used by earlier versions of ext.
It has enhancements allowing for faster filesystem checks (fsck).
- FAT: This is the abbreviation of File Allocation Table and the format was originally
used by DOS, OS/2, and Windows. It is available in the kernel mainly to provide
support for external devices such as USB flash drives.
- ReiserFS (or Reiser3): It is a general purpose filesystem with journaling, originally
designed and written by Hans Reiser. When it was created, it contained many
features that were not yet available at the time including journaling, online growth,
and a scheme to limit internal fragmentation.
- Reiser4: It is the successor of ReiserFS (due to the conviction of the designer
Hans Reiser for murder, future development is uncertain).
- XFS - default in RHEL7, but also in other recent Linux distributions
- Ext4
- btrfs
- vfat
- GFS2
- Gluster
XFS
based on a mature file system and has a healthy open source community behind it.
based on a B-tree database
btrfs
Future promise
copy-on-write(CoW) file system (before writing to a file, original file is being copied)
Makes journaling unnecessary
Makes undelete unnecessary(you can rollback to previous version of file)
Support subvolumes
A subvolume looks like a normal directory, with some additional operations described below. Subvolumes can be renamed or moved, nesting subvolumes is not restricted but has some implications regarding snapshotting.
A subvolume in btrfs can be accessed in two ways:
like any other directory that is accessible to the user
like a separately mounted filesystem (options subvol or subvolid)
RHEL 7 FCS - first customer shipment
ext4
Pro:
- supported by all distro's, commercial and not, and based on ext3, so it's widely tested, stable and proven
- all kinds for nice features (like extents, subsecond timestamps) which ext3 does not have.
- based on 1993 Ext2 file system
- Uses H-tree scaling
- Not very scalable
- rumor has it that it is slower than ext3, the fsync dataloss soap
Pro:
- support for massive filesystems (up to 8 exabytes (yes, 'exa') on 64-bit systems)
- online defrag
- supported on upcoming RHEL6 as the 'large filesystem' option
- proven track record: xfs has been around for ages
- wikipedia mentions slow metadata operations, but I wouldn't know about that
- potential dataloss on power cut, UPS is recommended, not really suitable for home systems
Pro:
- said to be fast (I have little experience with JFS)
- originated in AIX: proven technology
- used and supported by virtually no-one, except IBM (correct me if I'm wrong; I have never seen or heard about JFS used in production, though it obviously must be, somewhere)
Pro:
- fast with small files
- very space efficient
- stable and mature
- not very active project anymore, next generation reiser 4 has succeeded it
- no online defragmenter
Pro:
- very fast with small files
- atomic transactions
- very space efficient
- metadata namespaces
- plugin architecture, (crypto, compression, dedup and meta data plugins possible)
- Reiser4 has a very uncertain future and has not been merged yet
- main supporting distro (SuSE) dropped it years ago
- Hans Reiser's 'legal issues' are not really helping
compatible with other OS
useful for removable media
GFS2
For Active/Active HA cluster environments
Only required if multiple nodes need to write to the same file system simultaneously
Regular file systems can be used in Active/Passive HA clusters
Gluster
distributed file system
storage is in "bricks" that are spread over different servers. Bricks use XFS as their back-end file system.
useful in cloud environments
Comments
Post a Comment