GEOM is the main storage
framework
A framework is a generic term commonly referring to an essential supporting structure which other things are built on top of.
Framework may refer to:
Computing
* Application framework, used to implement the structure of an application for an op ...
for the
FreeBSD
FreeBSD is a free and open-source Unix-like operating system descended from the Berkeley Software Distribution (BSD), which was based on Research Unix. The first version of FreeBSD was released in 1993. In 2005, FreeBSD was the most popular ...
operating system. It is available in FreeBSD 5.0 and later releases, and provides a standardized way to access storage layers. GEOM is modular and allows for ''geom modules'' to connect to the framework. For example, the geom_mirror module provides
RAID1 or mirroring functionality to the system. A number of modules are provided as part of FreeBSD and others have been developed independently and are distributed via (e.g.)
GitHub.
GEOM was developed for the FreeBSD Project by
Poul-Henning Kamp and
NAI Labs
McAfee Corp. ( ), formerly known as McAfee Associates, Inc. from 1987 to 1997 and 2004 to 2014, Network Associates Inc. from 1997 to 2004, and Intel Security Group from 2014 to 2017, is an American global computer security software company hea ...
, the Security Research Division of Network Associates, Inc. under
DARPA/
SPAWAR
The Naval Information Warfare Systems Command (NAVWARSYSCOM), based in San Diego, is one of six SYSCOM Echelon II organizations within the United States Navy and is the Navy's technical authority and acquisition command for C4ISTAR, C4ISR (Command ...
contract N66001-01-C-8035 ("CBOSS"), as part of the DARPA CHATS research program. The name symbolizes its impact on disk geometry.
Stacked design
Because of geom's modular design, modules can be 'stacked' together to form a chain of geom layers. For example, on top of the geom_mirror module an encryption module can be added, such as geom_eli to provide a mirrored and encrypted volume. Each module has both consumers and providers. A provider is the 'source' of the geom module, often a physical
hard drive but sometimes a
virtualized disk such as a
memory disk
Memory is the faculty of the mind by which data or information is Encoding (memory), encoded, stored, and retrieved when needed. It is the retention of information over time for the purpose of influencing future action. If Foresight (psycholo ...
. The geom module in turn provides an 'output' device. Other geom modules, called consumers, can use this provider to create a chain of modules connected to each other.
''Source → geom module → Output''
is referred to as:
''Provider → geom module → Consumer(s)''
For example, the geom_mirror module may use (as a consumer) the following providers: /dev/ada0, /dev/ada1, while it creates (as a provider) a new device called /dev/mirror/gm0. At the end of the geom chain, often a
filesystem is applied to actually use the geom provider for something useful. The provider created by geom modules behaves just like a physical hard drive and as such can contain filesystems such as FreeBSD's native
Unix File System (UFS).
Available modules
Storage modules
* geom_stripe (
RAID0
In computer storage, the standard RAID levels comprise a basic set of RAID ("redundant array of independent disks" or "redundant array of inexpensive disks") configurations that employ the techniques of striping, mirroring, or parity to create la ...
)
* geom_mirror (
RAID1)
* geom_raid (Supports RAID functionality on "software raid" controllers)
* geom_raid3 (
RAID3
In computer storage, the standard RAID levels comprise a basic set of RAID ("redundant array of independent disks" or "redundant array of inexpensive disks") configurations that employ the techniques of striping, mirroring, or parity to create l ...
)
*
geom_raid5 (
RAID5, not present in -CURRENT yet)
* geom_concat (concatenating, also called spanning or
JBOD)
* geom_vinum (legacy volume manager with RAID0/1/4/5 support)
* geom_ccd (legacy volume manager with RAID0 and rudimentary RAID1 support)
Encryption and compression modules
* geom_eli (also called
GELI, provides traditional encryption using
AES
AES may refer to:
Businesses and organizations Companies
* AES Corporation, an American electricity company
* AES Data, former owner of Daisy Systems Holland
* AES Eletropaulo, a former Brazilian electricity company
* AES Andes, formerly AES Gener ...
,
Blowfish,
Triple DES or
Camellia algorithms. It can support data authentication using
MD5,
SHA1,
SHA256,
SHA384,
SHA512 or
RIPEMD160
RIPEMD (RIPE Message Digest) is a family of cryptographic hash functions developed in 1992 (the original RIPEMD) and 1996 (other variants). There are five functions in the family: RIPEMD, RIPEMD-128, RIPEMD-160, RIPEMD-256, and RIPEMD-320, of w ...
)
* geom_bde (also called
GBDE, leading edge encryption with four cryptographic barriers)
* geom_shsec (
shared secret encryption module)
* geom_uzip (read-only
ZIP
Zip, Zips or ZIP may refer to:
Common uses
* ZIP Code, USPS postal code
* Zipper or zip, clothing fastener
Science and technology Computing
* ZIP (file format), a compressed archive file format
** zip, a command-line program from Info-ZIP
* Zi ...
compressed images)
Filesystem modules
* geom_label (allows providers to have their own name labeled for easy partitioning)
* geom_journal (adds
journaling support to the Unix File System (
UFS))
* geom_cache (adds
caching
In computing, a cache ( ) is a hardware or software component that stores data so that future requests for that data can be served faster; the data stored in a cache might be the result of an earlier computation or a copy of data stored elsewher ...
support for increased performance using
RAM as buffercache)
Disk partitioning
* geom_flashmap (partition parts of e.g.
Flash memory
Flash memory is an electronic non-volatile computer memory storage medium that can be electrically erased and reprogrammed. The two main types of flash memory, NOR flash and NAND flash, are named for the NOR and NAND logic gates. Both us ...
using either offsets or context)
* geom_part (supports
Disk partitioning
Disk partitioning or disk slicing is the creation of one or more regions on secondary storage, so that each region can be managed separately. These regions are called partitions. It is typically the first step of preparing a newly installed disk ...
of GEOM providers)
* geom_part_apm (support
Apple Partition Map)
* geom_part_bsd (supports
BSD disklabel)
* geom_part_bsd64 (supports the 64-bit variant of BSD disklabels, as used by
DragonFly BSD)
* geom_part_ebr (supports
Extended boot record)
* geom_part_gpt (supports
GUID Partition Table)
* geom_part_ldm (supports
Logical Disk Manager)
* geom_part_mbr (supports
Master boot record
A master boot record (MBR) is a special type of boot sector at the very beginning of partitioned computer mass storage devices like fixed disks or removable drives intended for use with IBM PC-compatible systems and beyond. The concept of MBR ...
)
* geom_part_vtoc8 (supports Sun/Solaris VTOC8 disk labels)
Virtualization
* geom_mountver (enables mount verification)
* geom_multipath (support
Multipath I/O to underlying disks)
* geom_nop (creates a transparent module used for debugging and testing)
* geom_gate (creates a virtual disk using network disk back-end)
* geom_virstor (allows overloading a geom provider by creating a provider larger than its consumer)
* geom_linux_lvm (reads Linux
LVM2
In Linux, Logical Volume Manager (LVM) is a device mapper framework that provides logical volume management for the Linux kernel. Most modern Linux distributions are LVM-aware to the point of being able to have their root file systems on a log ...
volumes)
* geom_zero (creates a dummy provider that absorbs all writes and returns zeros on reads)
External links
*
*
References
{{FreeBSD
FreeBSD