GFS consists of the following subsystems:
Cluster Configuration System (CCS)
Fence
Pool
LOCK_GULM
LOCK_NOLOCK
Table 1-1 summarizes the GFS Software subsystems and their components.
| Software Subsystem | Components | Description | 
|---|---|---|
| Cluster Configuration System (CCS) | ccs_tool | Command used to create CCS archives. | 
| ccs_read | Diagnostic and testing command that is used to retrieve information from configuration files through ccsd. | |
| ccsd | CCS daemon that runs on all cluster nodes and provides configuration file data to cluster software. | |
| ccs_servd | CCS server daemon that distributes CCS data from a single server to ccsd daemons when a shared device is not used for storing CCS data. | |
| Fence | fence_node | Command used by lock_gulmd when a fence operation is required. This command takes the name of a node and fences it based on the node's fencing configuration. | 
| fence_apc | Fence agent for APC power switch. | |
| fence_wti | Fence agent for WTI power switch. | |
| fence_brocade | Fence agent for Brocade Fibre Channel switch. | |
| fence_mcdata | Fence agent for McData Fibre Channel switch. | |
| fence_vixel | Fence agent for Vixel Fibre Channel switch. | |
| fence_rib | Fence agent for RIB card. | |
| fence_gnbd | Fence agent used with GNBD storage. | |
| fence_egenera | Fence agent used with Egenera BladeFrame system. | |
| fence_xcat | Fence agent used with xCAT-managed cluster. | |
| fence_manual | Fence agent for manual interaction. | |
| fence_ack_manual | User interface for fence_manual agent. | |
| Pool | pool.o | Kernel module implementing the pool block-device driver. | 
| pool_assemble | Command that activates and deactivates pool volumes. | |
| pool_tool | Command that configures pool volumes from individual storage devices. | |
| pool_info | Command that reports information about system pools. | |
| pool_grow | Command that expands a pool volume. | |
| pool_mp | Command that manages pool multipathing. | |
| LOCK_GULM | lock_gulm.o | Kernel module that is installed on GFS nodes using the LOCK_GULM lock module. | 
| lock_gulmd | Server/daemon that runs on each node and communicates with all nodes in GFS cluster. | |
| gulm_tool | Command that configures and debugs the lock_gulmd server. | |
| LOCK_NOLOCK | lock_nolock.o | Kernel module installed on a node using GFS as a local file system. | 
| GFS | gfs.o | Kernel module that implements the GFS file system and is loaded on GFS cluster nodes. | 
| lock_harness.o | Kernel module that implements the GFS lock harness into which GFS lock modules can plug. | |
| gfs_mkfs | Command that creates a GFS file system on a storage device. | |
| gfs_tool | Command that configures or tunes a GFS file system. This command can also gather a variety of information about the file system. | |
| gfs_quota | Command that manages quotas on a mounted GFS file system. | |
| gfs_grow | Command that grows a mounted GFS file system. | |
| gfs_jadd | Command that adds journals to a mounted GFS file system. | |
| gfs_fsck | Command that repairs an unmounted GFS file system. | |
| GNBD | gnbd.o | Kernel module that implements the GNBD device driver on clients. | 
| gnbd_serv.o | Kernel module that implements the GNBD server. It allows a node to export local storage over the network. | |
| gnbd_export | Command to create, export and manage GNBDs on a GNBD server. | |
| gnbd_import | Command to import and manage GNBDs on a GNBD client. | |
| Upgrade | gfs_conf | Command that retrieves from a cidev configuration information from earlier versions of GFS. | 
Table 1-1. GFS Software Subsystem Components