Cari di RHE Linux 
    Red Hat Enterprise Linux Manual
Daftar Isi
(Sebelumnya) 4 : Chapter 4. Use Case Scenar ...5 : Chapter 2. GFS2 Configurat ... (Berikutnya)

Global File System 2

Red Hat Global File System 2

Edition 7

Legal Notice

Copyright © 2013 Red Hat, Inc. and others.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution-Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, JBoss, MetaMatrix, Fedora, the Infinity Logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
All other trademarks are the property of their respective owners.


1801 Varsity Drive
RaleighNC 27606-2072 USA
Phone: +1 919 754 3700
Phone: 888 733 4281
Fax: +1 919 754 3701

Daftar Isi

Abstract

This book provides information about configuring and maintaining Red Hat GFS2 (Red Hat Global File System 2) for Red Hat Enterprise Linux 6.
Introduction
1. Audience
2. Related Documentation
3. We Need Feedback!
4. Document Conventions
4.1. Typographic Conventions
4.2. Pull-quote Conventions
4.3. Notes and Warnings
1. GFS2 Overview
1.1. New and Changed Features
1.1.1. New and Changed Features for Red Hat Enterprise Linux 6.0
1.1.2. New and Changed Features for Red Hat Enterprise Linux 6.1
1.1.3. New and Changed Features for Red Hat Enterprise Linux 6.2
1.1.4. New and Changed Features for Red Hat Enterprise Linux 6.3
1.1.5. New and Changed Features for Red Hat Enterprise Linux 6.4
1.2. Before Setting Up GFS2
1.3. Differences between GFS and GFS2
1.3.1. GFS2 Command Names
1.3.2. Additional Differences Between GFS and GFS2
1.3.3. GFS2 Performance Improvements
2. GFS2 Configuration and Operational Considerations
2.1. Formatting Considerations
2.1.1. File System Size: Smaller is Better
2.1.2. Block Size: Default (4K) Blocks Are Preferred
2.1.3. Number of Journals: One for Each Node that Mounts
2.1.4. Journal Size: Default (128MB) Is Usually Optimal
2.1.5. Size and Number of Resource Groups
2.2. File System Fragmentation
2.3. Block Allocation Issues
2.3.1. Leave Free Space in the File System
2.3.2. Have Each Node Allocate its Own Files, If Possible
2.3.3. Preallocate, If Possible
2.4. Cluster Considerations
2.5. Usage Considerations
2.5.1. Mount Options: noatime and nodiratime
2.5.2. DLM Tuning Options: Increase DLM Table Sizes
2.5.3. VFS Tuning Options: Research and Experiment
2.5.4. SELinux: Avoid SELinux on GFS2
2.5.5. Setting Up NFS Over GFS2
2.5.6. Samba (SMB or Windows) File Serving over GFS2
2.6. File System Backups
2.7. Hardware Considerations
2.8. Performance Issues: Check the Red Hat Customer Portal
2.9. GFS2 Node Locking
2.9.1. Issues with Posix Locking
2.9.2. Performance Tuning With GFS2
2.9.3. Troubleshooting GFS2 Performance with the GFS2 Lock Dump
3. Getting Started
3.1. Prerequisite Tasks
3.2. Initial Setup Tasks
4. Managing GFS2
4.1. Making a File System
4.2. Mounting a File System
4.3. Unmounting a File System
4.4. Special Considerations when Mounting GFS2 File Systems
4.5. GFS2 Quota Management
4.5.1. Configuring Disk Quotas
4.5.2. Managing Disk Quotas
4.5.3. Keeping Quotas Accurate
4.5.4. Synchronizing Quotas with the quotasync Command
4.5.5. References
4.6. Growing a File System
4.7. Adding Journals to a File System
4.8. Data Journaling
4.9. Configuring atime Updates
4.9.1. Mount with relatime
4.9.2. Mount with noatime
4.10. Suspending Activity on a File System
4.11. Repairing a File System
4.12. Bind Mounts and Context-Dependent Path Names
4.13. Bind Mounts and File System Mount Order
4.14. The GFS2 Withdraw Function
5. Diagnosing and Correcting Problems with GFS2 File Systems
5.1. GFS2 File System Shows Slow Performance
5.2. GFS2 File System Hangs and Requires Reboot of One Node
5.3. GFS2 File System Hangs and Requires Reboot of All Nodes
5.4. GFS2 File System Does Not Mount on Newly-Added Cluster Node
5.5. Space Indicated as Used in Empty File System
A. GFS2 Quota Management with the gfs2_quota Command
A.1. Setting Quotas with the gfs2_quota command
A.2. Displaying Quota Limits and Usage with the gfs2_quota Command
A.3. Synchronizing Quotas with the gfs2_quota Command
A.4. Enabling/Disabling Quota Enforcement
A.5. Enabling Quota Accounting
B. Converting a File System from GFS to GFS2
B.1. Converstion of Context-Dependent Path Names
B.2. GFS to GFS2 Conversion Procedure
C. GFS2 tracepoints and the debugfs glocks File
C.1. GFS2 tracepoint Types
C.2. Tracepoints
C.3. Glocks
C.4. The glock debugfs Interface
C.5. Glock Holders
C.6. Glock tracepoints
C.7. Bmap tracepoints
C.8. Log tracepoints
C.9. References
D. Revision History
Index

Introduction

This book provides information about configuring and maintaining Red Hat GFS2 (Red Hat Global File System 2), which is included in the Resilient Storage Add-On.

1. Audience

This book is intended primarily for Linux system administrators who are familiar with the following activities:
  • Linux system administration procedures, including kernel configuration
  • Installation and configuration of shared storage networks, such as Fibre Channel SANs

2. Related Documentation

For more information about using Red Hat Enterprise Linux, refer to the following resources:
  • Installation Guide - Documents relevant information regarding the installation of Red Hat Enterprise Linux 6.
  • Deployment Guide - Documents relevant information regarding the deployment, configuration and administration of Red Hat Enterprise Linux 6.
  • Storage Administration Guide - Provides instructions on how to effectively manage storage devices and file systems on Red Hat Enterprise Linux 6.
For more information about the High Availability Add-On and the Resilient Storage Add-On for Red Hat Enterprise Linux 6, refer to the following resources:
  • High Availability Add-On Overview - Provides a high-level overview of the Red Hat High Availability Add-On.
  • Cluster Administration - Provides information about installing, configuring and managing the High Availability Add-On.
  • Logical Volume Manager Administration - Provides a description of the Logical Volume Manager (LVM), including information on running LVM in a clustered environment.
  • DM Multipath - Provides information about using the Device-Mapper Multipath feature of Red Hat Enterprise Linux.
  • Load Balancer Administration - Provides information on configuring high-performance systems and services with the Load Balancer Add-On, a set of integrated software components that provide Linux Virtual Servers (LVS) for balancing IP load across a set of real servers.
  • Release Notes - Provides information about the current release of Red Hat products.
High Availability Add-On documentation and other Red Hat documents are available in HTML, PDF, and RPM versions on the Red Hat Enterprise Linux Documentation CD and online at http://docs.redhat.com/docs/en-US/index.html.

3. We Need Feedback!

If you find a typographical error in this manual, or if you have thought of a way to make this manual better, we would love to hear from you! Please submit a report in Bugzilla: http://bugzilla.redhat.com/ against the product Red Hat Enterprise Linux 6 and the component doc-Global_File_System_2. When submitting a bug report, be sure to mention the manual's identifier:
rh-gfs2(EN)-6 (2013-2-15T15:15)
If you have a suggestion for improving the documentation, try to be as specific as possible when describing it. If you have found an error, please include the section number and some of the surrounding text so we can find it easily.

4. Document Conventions

This manual uses several conventions to highlight certain words and phrases and draw attention to specific pieces of information.
In PDF and paper editions, this manual uses typefaces drawn from the Liberation Fonts set. The Liberation Fonts set is also used in HTML editions if the set is installed on your system. If not, alternative but equivalent typefaces are displayed. Note: Red Hat Enterprise Linux 5 and later includes the Liberation Fonts set by default.

4.1. Typographic Conventions

Four typographic conventions are used to call attention to specific words and phrases. These conventions, and the circumstances they apply to, are as follows.
Mono-spaced Bold
Used to highlight system input, including shell commands, file names and paths. Also used to highlight keys and key combinations. For example:
To see the contents of the file my_next_bestselling_novel in your current working directory, enter the cat my_next_bestselling_novel command at the shell prompt and press Enter to execute the command.
The above includes a file name, a shell command and a key, all presented in mono-spaced bold and all distinguishable thanks to context.
Key combinations can be distinguished from an individual key by the plus sign that connects each part of a key combination. For example:
Press Enter to execute the command.
Press Ctrl+Alt+F2 to switch to a virtual terminal.
The first example highlights a particular key to press. The second example highlights a key combination: a set of three keys pressed simultaneously.
If source code is discussed, class names, methods, functions, variable names and returned values mentioned within a paragraph will be presented as above, in mono-spaced bold. For example:
File-related classes include filesystem for file systems, file for files, and dir for directories. Each class has its own associated set of permissions.
Proportional Bold
This denotes words or phrases encountered on a system, including application names; dialog box text; labeled buttons; check-box and radio button labels; menu titles and sub-menu titles. For example:
Choose SystemPreferencesMouse from the main menu bar to launch Mouse Preferences. In the Buttons tab, click the Left-handed mouse check box and click Close to switch the primary mouse button from the left to the right (making the mouse suitable for use in the left hand).
To insert a special character into a gedit file, choose ApplicationsAccessoriesCharacter Map from the main menu bar. Next, choose SearchFind . . . . . . from the Character Map menu bar, type the name of the character in the Search field and click Next. The character you sought will be highlighted in the Character Table. Double-click this highlighted character to place it in the Text to copy field and then click the Copy button. Now switch back to your document and choose EditPaste from the gedit menu bar.
The above text includes application names; system-wide menu names and items; application-specific menu names; and buttons and text found within a GUI interface, all presented in proportional bold and all distinguishable by context.
Mono-spaced Bold Italic or Proportional Bold Italic
Whether mono-spaced bold or proportional bold, the addition of italics indicates replaceable or variable text. Italics denotes text you do not input literally or displayed text that changes depending on circumstance. For example:
To connect to a remote machine using ssh, type ssh username@domain.name at a shell prompt. If the remote machine is example.com and your username on that machine is john, type ssh [email protected].
The mount -o remount file-system command remounts the named file system. For example, to remount the /home file system, the command is mount -o remount /home.
To see the version of a currently installed package, use the rpm -q package command. It will return a result as follows: package-version-release.
Note the words in bold italics above - username, domain.name, file-system, package, version and release. Each word is a placeholder, either for text you enter when issuing a command or for text displayed by the system.
Aside from standard usage for presenting the title of a work, italics denotes the first use of a new and important term. For example:
Publican is a DocBook publishing system.

4.2. Pull-quote Conventions

Terminal output and source code listings are set off visually from the surrounding text.
Output sent to a terminal is set in mono-spaced roman and presented thus:
books Desktop   documentation  drafts  mss photos   stuff  svnbooks_tests  Desktop1  downloads  images  notes  scripts  svgs
Source-code listings are also set in mono-spaced roman but add syntax highlighting as follows:
package org.jboss.book.jca.ex1;import javax.naming.InitialContext;public class ExClient{   public static void main(String args[]) throws Exception   {  InitialContext iniCtx = new InitialContext();  Object ref = iniCtx.lookup("EchoBean");  EchoHome   home   = (EchoHome) ref;  Echo   echo   = home.create();  System.out.println("Created Echo");  System.out.println("Echo.echo('Hello') = " + echo.echo("Hello"));   }}

4.3. Notes and Warnings

Finally, we use three visual styles to draw attention to information that might otherwise be overlooked.

Note

Notes are tips, shortcuts or alternative approaches to the task at hand. Ignoring a note should have no negative consequences, but you might miss out on a trick that makes your life easier.

Important

Important boxes detail things that are easily missed: configuration changes that only apply to the current session, or services that need restarting before an update will apply. Ignoring a box labeled 'Important' will not cause data loss but may cause irritation and frustration.

Warning

Warnings should not be ignored. Ignoring warnings will most likely cause data loss.

Chapter 1. GFS2 Overview

The Red Hat GFS2 file system is included in the Resilient Storage Add-On. It is a native file system that interfaces directly with the Linux kernel file system interface (VFS layer). When implemented as a cluster file system, GFS2 employs distributed metadata and multiple journals. Red Hat supports the use of GFS2 file systems only as implemented in the High Availability Add-On.

Note

Although a GFS2 file system can be implemented in a standalone system or as part of a cluster configuration, for the Red Hat Enterprise Linux 6 release Red Hat does not support the use of GFS2 as a single-node file system. Red Hat does support a number of high-performance single node file systems which are optimized for single node and thus have generally lower overhead than a cluster file system. Red Hat recommends using these file systems in preference to GFS2 in cases where only a single node needs to mount the file system.
Red Hat will continue to support single-node GFS2 file systems for mounting snapshots of cluster file systems (for example, for backup purposes).

Note

Red Hat does not support using GFS2 for cluster file system deployments greater than 16 nodes.
GFS2 is based on a 64-bit architecture, which can theoretically accommodate an 8 EB file system. However, the current supported maximum size of a GFS2 file system for 64-bit hardware is 100 TB. The current supported maximum size of a GFS2 file system for 32-bit hardware is 16 TB. If your system requires larger GFS2 file systems, contact your Red Hat service representative.
When determining the size of your file system, you should consider your recovery needs. Running the fsck.gfs2 command on a very large file system can take a long time and consume a large amount of memory. Additionally, in the event of a disk or disk-subsystem failure, recovery time is limited by the speed of your backup media. For information on the amount of memory the fsck.gfs2 command requires, see Section 4.11, "Repairing a File System".
When configured in a cluster, Red Hat GFS2 nodes can be configured and managed with High Availability Add-On configuration and management tools. Red Hat GFS2 then provides data sharing among GFS2 nodes in a cluster, with a single, consistent view of the file system name space across the GFS2 nodes. This allows processes on different nodes to share GFS2 files in the same way that processes on the same node can share files on a local file system, with no discernible difference. For information about the High Availability Add-On refer to Configuring and Managing a Red Hat Cluster.
While a GFS2 file system may be used outside of LVM, Red Hat supports only GFS2 file systems that are created on a CLVM logical volume. CLVM is included in the Resilient Storage Add-On. It is a cluster-wide implementation of LVM, enabled by the CLVM daemon clvmd, which manages LVM logical volumes in a cluster. The daemon makes it possible to use LVM2 to manage logical volumes across a cluster, allowing all nodes in the cluster to share the logical volumes. For information on the LVM volume manager, see Logical Volume Manager Administration
The gfs2.ko kernel module implements the GFS2 file system and is loaded on GFS2 cluster nodes.

Note

When you configure a GFS2 file system as a cluster file system, you must ensure that all nodes in the cluster have access to the shared storage. Asymmetric cluster configurations in which some nodes have access to the shared storage and others do not are not supported. This does not require that all nodes actually mount the GFS2 file system itself.
This chapter provides some basic, abbreviated information as background to help you understand GFS2. It contains the following sections:

1.1. New and Changed Features

This section lists new and changed features of the GFS2 file system and the GFS2 documentation that are included with the initial and subsequent releases of Red Hat Enterprise Linux 6.

1.1.1. New and Changed Features for Red Hat Enterprise Linux 6.0

Red Hat Enterprise Linux 6.0 includes the following documentation and feature updates and changes.
  • For the Red Hat Enterprise Linux 6 release, Red Hat does not support the use of GFS2 as a single-node file system.
  • For the Red Hat Enterprise Linux 6 release, the gfs2_convert command to upgrade from a GFS to a GFS2 file system has been enhanced. For information on this command, see Appendix B, Converting a File System from GFS to GFS2.
  • The Red Hat Enterprise Linux 6 release supports the discard, nodiscard, barrier, nobarrier, quota_quantum, statfs_quantum, and statfs_percent mount options. For information about mounting a GFS2 file system, see Section 4.2, "Mounting a File System".
  • The Red Hat Enterprise Linux 6 version of this document contains a new section, Section 2.9, "GFS2 Node Locking". This section describes some of the internals of GFS2 file systems.

1.1.2. New and Changed Features for Red Hat Enterprise Linux 6.1

Red Hat Enterprise Linux 6.1 includes the following documentation and feature updates and changes.

1.1.3. New and Changed Features for Red Hat Enterprise Linux 6.2

Red Hat Enterprise Linux 6.2 includes the following documentation and feature updates and changes.

1.1.4. New and Changed Features for Red Hat Enterprise Linux 6.3

For the Red Hat Enterprise Linux 6.3 release, this document contains a new chapter, Chapter 2, GFS2 Configuration and Operational Considerations. This chapter provides recommendations for optimizing GFS2 performance, including recommendations for creating, using, and maintaining a GFS2 file system.
In addition, small clarifications and corrections have been made throughout the document.

1.1.5. New and Changed Features for Red Hat Enterprise Linux 6.4

For the Red Hat Enterprise Linux 6.4 release, Chapter 2, GFS2 Configuration and Operational Considerations has been updated with small clarifications.

1.2. Before Setting Up GFS2

Before you install and set up GFS2, note the following key characteristics of your GFS2 file systems:
GFS2 nodes
Determine which nodes in the cluster will mount the GFS2 file systems.
Number of file systems
Determine how many GFS2 file systems to create initially. (More file systems can be added later.)
File system name
Determine a unique name for each file system. The name must be unique for all lock_dlm file systems over the cluster. Each file system name is required in the form of a parameter variable. For example, this book uses file system names mydata1 and mydata2 in some example procedures.
Journals
Determine the number of journals for your GFS2 file systems. One journal is required for each node that mounts a GFS2 file system. GFS2 allows you to add journals dynamically at a later point as additional servers mount a file system. For information on adding journals to a GFS2 file system, see Section 4.7, "Adding Journals to a File System".
Storage devices and partitions
Determine the storage devices and partitions to be used for creating logical volumes (via CLVM) in the file systems.

Note

You may see performance problems with GFS2 when many create and delete operations are issued from more than one node in the same directory at the same time. If this causes performance problems in your system, you should localize file creation and deletions by a node to directories specific to that node as much as possible.
For further recommendations on creating, using, and maintaining a GFS2 file system. refer to Chapter 2, GFS2 Configuration and Operational Considerations.

1.3. Differences between GFS and GFS2

This section lists the improvements and changes that GFS2 offers over GFS.
Migrating from GFS to GFS2 requires that you convert your GFS file systems to GFS2 with the gfs2_convert utility. For information on the gfs2_convert utility, see Appendix B, Converting a File System from GFS to GFS2.

1.3.1. GFS2 Command Names

In general, the functionality of GFS2 is identical to GFS. The names of the file system commands, however, specify GFS2 instead of GFS. Table 1.1, "GFS and GFS2 Commands" shows the equivalent GFS and GFS2 commands and functionality.

Table 1.1. GFS and GFS2 Commands

GFS CommandGFS2 CommandDescription
mountmountMount a file system. The system can determine whether the file system is a GFS or GFS2 file system type. For information on the GFS2 mount options see the gfs2_mount(8) man page.
umountumountUnmount a file system.
fsck
gfs_fsck
fsck
fsck.gfs2
Check and repair an unmounted file system.
gfs_growgfs2_growGrow a mounted file system.
gfs_jaddgfs2_jaddAdd a journal to a mounted file system.
gfs_mkfs
mkfs -t gfs
mkfs.gfs2
mkfs -t gfs2
Create a file system on a storage device.
gfs_quotagfs2_quotaManage quotas on a mounted file system. As of the Red Hat Enterprise Linux 6.1 release, GFS2 supports the standard Linux quota facilities. For further information on quota management in GFS2, refer to Section 4.5, "GFS2 Quota Management".
gfs_tool
tunegfs2
mount parameters
dmsetup suspend
Configure, tune, or gather information about a file system. The tunegfs2 command is supported as of the Red Hat Enterprise Linux 6.2 release. There is also a gfs2_tool command.
gfs_editgfs2_editDisplay, print, or edit file system internal structures. The gfs2_edit command can be used for GFS file systems as well as GFS2 file system.
gfs_tool setflag jdata/inherit_jdatachattr +j (preferred)Enable journaling on a file or directory.
setfacl/getfaclsetfacl/getfaclSet or get file access control list for a file or directory.
setfattr/getfattrsetfattr/getfattrSet or get the extended attributes of a file.

For a full listing of the supported options for the GFS2 file system commands, see the man pages for those commands.

1.3.2. Additional Differences Between GFS and GFS2

This section summarizes the additional differences in GFS and GFS2 administration that are not described in Section 1.3.1, "GFS2 Command Names".

Context-Dependent Path Names

GFS2 file systems do not provide support for context-dependent path names, which allow you to create symbolic links that point to variable destination files or directories. For this functionality in GFS2, you can use the bind option of the mount command. For information on bind mounts and context-dependent pathnames in GFS2, see Section 4.12, "Bind Mounts and Context-Dependent Path Names".

gfs2.ko Module

The kernel module that implements the GFS file system is gfs.ko. The kernel module that implements the GFS2 file system is gfs2.ko.

Enabling Quota Enforcement in GFS2

In GFS2 file systems, quota enforcement is disabled by default and must be explicitly enabled. For information on enabling and disabling quota enforcement, see Section 4.5, "GFS2 Quota Management".

Data Journaling

GFS2 file systems support the use of the chattr command to set and clear the j flag on a file or directory. Setting the +j flag on a file enables data journaling on that file. Setting the +j flag on a directory means "inherit jdata", which indicates that all files and directories subsequently created in that directory are journaled. Using the chattr command is the preferred way to enable and disable data journaling on a file.

Adding Journals Dynamically

In GFS file systems, journals are embedded metadata that exists outside of the file system, making it necessary to extend the size of the logical volume that contains the file system before adding journals. In GFS2 file systems, journals are plain (though hidden) files. This means that for GFS2 file systems, journals can be dynamically added as additional servers mount a file system, as long as space remains on the file system for the additional journals. For information on adding journals to a GFS2 file system, see Section 4.7, "Adding Journals to a File System".

atime_quantum parameter removed

The GFS2 file system does not support the atime_quantum tunable parameter, which can be used by the GFS file system to specify how often atime updates occur. In its place GFS2 supports the relatime and noatime mount options. The relatime mount option is recommended to achieve similar behavior to setting the atime_quantum parameter in GFS.

The data= option of the mount command

When mounting GFS2 file systems, you can specify the data=ordered or data=writeback option of the mount. When data=ordered is set, the user data modified by a transaction is flushed to the disk before the transaction is committed to disk. This should prevent the user from seeing uninitialized blocks in a file after a crash. When data=writeback is set, the user data is written to the disk at any time after it is dirtied. This does not provide the same consistency guarantee as ordered mode, but it should be slightly faster for some workloads. The default is ordered mode.

The gfs2_tool command

The gfs2_tool command supports a different set of options for GFS2 than the gfs_tool command supports for GFS:
  • The gfs2_tool command supports a journals parameter that prints out information about the currently configured journals, including how many journals the file system contains.
  • The gfs2_tool command does not support the counters flag, which the gfs_tool command uses to display GFS statistics.
  • The gfs2_tool command does not support the inherit_jdata flag. To flag a directory as "inherit jdata", you can set the jdata flag on the directory or you can use the chattr command to set the +j flag on the directory. Using the chattr command is the preferred way to enable and disable data journaling on a file.

Note

As of the Red Hat Enterprise Linux 6.2 release, GFS2 supports the tunegfs2 command, which replaces some of the features of the gfs2_tool command. For further information, refer to the tunegfs2(8) man page. The settune and gettune functions of the gfs2_tool command have been replaced by command line options of the mount command, which allows them to be set by means of the fstab file when required.

The gfs2_edit command

The gfs2_edit command supports a different set of options for GFS2 than the gfs_edit command supports for GFS. For information on the specific options each version of the command supports, see the gfs2_edit and gfs_edit man pages.

1.3.3. GFS2 Performance Improvements

There are many features of GFS2 file systems that do not result in a difference in the user interface from GFS file systems but which improve file system performance.
A GFS2 file system provides improved file system performance in the following ways:
  • Better performance for heavy usage in a single directory
  • Faster synchronous I/O operations
  • Faster cached reads (no locking overhead)
  • Faster direct I/O with preallocated files (provided I/O size is reasonably large, such as 4M blocks)
  • Faster I/O operations in general
  • Faster execution of the df command, because of faster statfs calls
  • Improved atime mode to reduce the number of write I/O operations generated by atime when compared with GFS
GFS2 file systems provide broader and more mainstream support in the following ways:
  • GFS2 is part of the upstream kernel (integrated into 2.6.19).
  • GFS2 supports the following features.
    • SELinux extended attributes
    • the lsattr() and chattr() attribute settings via standard ioctl() calls
    • nanosecond timestamps
A GFS2 file system provides the following improvements to the internal efficiency of the file system.
  • GFS2 uses less kernel memory.
  • GFS2 requires no metadata generation numbers.
    Allocating GFS2 metadata does not require reads. Copies of metadata blocks in multiple journals are managed by revoking blocks from the journal before lock release.
  • GFS2 includes a much simpler log manager that knows nothing about unlinked inodes or quota changes.
  • The gfs2_grow and gfs2_jadd commands use locking to prevent multiple instances running at the same time.
  • The ACL code has been simplified for calls like creat() and mkdir().
  • Unlinked inodes, quota changes, and statfs changes are recovered without remounting the journal.
(Sebelumnya) 4 : Chapter 4. Use Case Scenar ...5 : Chapter 2. GFS2 Configurat ... (Berikutnya)