42 Messaging Solutions in a Linux Environment
Figure 2-4 Linux Virtual Server
For more information about the project and download, please visit:
http://www.linuxvirtualserver.org/
2.3 Linux technologies for high availability
This section discusses some technologies that are relevant for making a Linux
solution scalable.
2.3.1 Journaled file systems
Journaling file systems offer much faster system recovery in the event of system
failure than nonjournaled file systems such as HPFS and ext2. Instead of relying
on boot time utilities like fsck to examine the file system’s metadata in order to
restore the file system to a consistent state, they simply read and apply a
transaction log.
The Journaled File System
The Journaled File System (JFS) for Linux is an IBM open source project
licensed under the GNU GPL. It has been developed with transaction-oriented,
high performance systems in mind. It is scalable and robust, providing a
LAN/WAN
Real Server 1
Real Server 2
Real Server 3
Load Balancer
Internet
Chapter 2. Linux systems and advanced technologies 43
log-based, byte-level file system that was designed to include fully integrated
journaling from the beginning rather than adding the journaling feature to an
existing file system. Its journaling techniques were originally developed for
databases, which log operations performed on the data records, although JFS
only implements logging of metadata. Some of its other features include:
򐂰 Dynamic disk inode allocation
JFS dynamically allocates space for disk inodes as required and frees the
space when it is no longer required. This approach eliminates the need for
reserving a fixed amount of space for disk inodes at the file system creation
time, hence it will not be necessary for users to estimate the maximum
number of files and directories on a file system.
򐂰 Variable block size
Block sizes of 512, 1024, 2048 and 4096 are supported on an individual file
system basis, allowing a user to select the appropriate size for his application
set. A smaller block size reduces file fragmentation and is more
space-efficient. On the other hand, space allocation occurs more often than if
a large block size were to be used, reducing performance.
JFS is included in most of the major distributions: Red Hat, SUSE, Debian and
Turbo Linux. For free download and more information about the JFS file system
and its features, visit:
http://www-124.ibm.com/developerworks/opensource/jfs/
General Parallel File System for Linux
GPFS is IBM’s high performance cluster file system. Its main features are:
򐂰 Scalable file system
The system is designed for clusters where the number of nodes and the file
system size can be large. It allows expansion of file system throughput and
capacity as service demands increase.
򐂰 Parallel file system
Employs multiple nodes of a cluster to store blocks of a single file. Exploits
parallel I/O to circumvent bottlenecks that might be present if a file resided on
a single node.
򐂰 Journaling file system
Logs information about operations performed on the file system metadata as
atomic transactions that can be replayed. Provides rapid restoration of file
system to consistent state after system crash.
44 Messaging Solutions in a Linux Environment
򐂰 Shared file system
Implemented so that multiple clients can concurrently access a file and
includes a sophisticated token management system to ensure data
consistency. Allows nodes running parallel applications to concurrently
access a file and thereby reduces processing time.
򐂰 High availability file system
Provides for automated recovery from events that would normally interrupt
data availability. Applications and users can continue without interruption.
򐂰 Client side data caching
Keeps records of recent I/Os in client memory. Improves performance by
reducing need for repetitive processing of requests for frequently accessed
files and also hides write latency by using "write behind".
򐂰 Large Blocksize options
Blocksizes of 16K, 64K, 256K, 512K or 1024K can be defined. Provides for
efficient use of disk bandwidth and disk space, particularly important for RAID
devices.
򐂰 Access pattern recognition and deep prefetch
Detects access pattern as sequential, random, fuzzy sequential or strided,
and prefetches striped data in parallel. Enables high throughput to be
sustained, by overlapping disk latencies.
򐂰 Data protection
Both metadata and user data can be replicated in the GPFS installation.
Provides protection from loss of data and metadata.
GPFS supports two separate models of disk attachment and a combination of
the two is also allowed. This is very useful if, for example, you wanted to create a
disaster recovery site by duplicating your data across two physical sites.
Directly attached model
All the nodes are directly connected to the storage with a SAN switch, for
example. See Figure 2-5 on page 45.

Get Messaging Solutions in a Linux Environment now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.