Linux supports several file systems. The Virtual File System
Interface allows Linux to support many file systems via a common interface. It
is designed to allow access to files as fast and efficiently as possible.
Ex2fs was the original file system, and it became widely
popular allowing typical file operations such as to create, update, and delete
files, directories, hard links, soft links, device special files, sockets, and
pipes. It suffered from one limitation that if the system crashed, the entire
file system would be validated and corrected for inconsistencies before it is
remounted. This was improved with journaling where every file system operation
is logged before the operation is executed and the log is replayed to bring the
file system to consistency.
Linux Volume Managers and Redundant Array of Inexpensive
Disks (RAID) provide a logical abstraction of a computer’s physical storage
devices and can combine several disks into a single logical unit to provide increased
total storage space as well as data redundancy. Even on a single disk, they can
divide the space into multiple logical units, each for a different purpose.
Linux provides four different RAID levels. RAID-Linear which
is a simple concatenation of disks that comprise the volume. Raid-0 is a simple
striping where the data that is written is interleaved in equal-sized “chunks”
across all disks in the volume. RAID-1 is mirroring where all data is replicated on all disks in the
volume. A RAID-1 volume created from n disks can survive the failure of n-1 of
those disks. RAID-5 is striping with parity which is similar to RAID-0 but with
one chunk in each stripe containing parity information instead of data. RAID-5
can survive the failure of any single disk in the volume.
A Volume-Group could be used to form a collection of disks
also called Physical-Volumes. The storage space provided by these disks is then
used to create Logical-Volumes. It is also resizable. New volumes are easy to add as extents and
the Logical Volumes can be expanded or shrinked and the data on the LVs can be
moved around within the same Volume-Group.
Beyond the hard disk, keyboard and console that a Linux
system supports by default, a user-level application can create device special
files to access other hardware devices. They are mounted as device nodes in the
/dev directory. Usually, these are of two types: a block device and a character
device. Block devices allow block-level access to the data residing on a device
and the character devices allow character-level access to the devices. The ls
-l command will show a ‘b’ for block device and a ‘c’ for character device in
the permission string. The virtual file system devfs is an alternative to these
special devices. It reduces the system administrative task of creating device
node for each device. A system
administrator can mount the devfs file system many times at different mount
points but changes to a device node is reflected on all the mount points. The
devfs namespace exists in the kernel even before it is mounted which makes the
device node, to become available independently of the root file system.
No comments:
Post a Comment