HOME

TheInfoList



OR:

GEOM is the main storage framework for the FreeBSD
operating system An operating system (OS) is system software that manages computer hardware, software resources, and provides common services for computer programs. Time-sharing operating systems schedule tasks for efficient use of the system and may also i ...
. 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 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 lar ...
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 GitHub, Inc. () is an Internet hosting service for software development and version control using Git. It provides the distributed version control of Git plus access control, bug tracking, software feature requests, task management, continu ...
. GEOM was developed for the FreeBSD Project by
Poul-Henning Kamp Poul-Henning Kamp (; born 1966) is a Danish computer software developer known for work on various projects including FreeBSD and Varnish. He currently resides in Slagelse, Denmark. Involvement in the FreeBSD project Poul-Henning Kamp has been c ...
and NAI Labs, the Security Research Division of Network Associates, Inc. under
DARPA The Defense Advanced Research Projects Agency (DARPA) is a research and development agency of the United States Department of Defense responsible for the development of emerging technologies for use by the military. Originally known as the Ad ...
/ SPAWAR 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 A hard disk drive (HDD), hard disk, hard drive, or fixed disk is an electro-mechanical data storage device that stores and retrieves digital data using magnetic storage with one or more rigid rapidly rotating platters coated with magne ...
but sometimes a virtualized disk such as a memory disk. 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 In computing, file system or filesystem (often abbreviated to fs) is a method and data structure that the operating system uses to control how data is Computer data storage, stored and retrieved. Without a file system, data placed in a storage me ...
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 The Unix file system (UFS) is a family of file systems supported by many Unix and Unix-like operating systems. It is a distant descendant of the original filesystem used by Version 7 Unix. Design A UFS volume is composed of the following ...
(UFS).


Available modules

Storage modules * geom_stripe ( RAID0) * geom_mirror (
RAID1 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 lar ...
) * geom_raid (Supports RAID functionality on "software raid" controllers) * geom_raid3 ( RAID3) * geom_raid5 (
RAID5 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 lar ...
, not present in -CURRENT yet) * geom_concat (concatenating, also called spanning or
JBOD The most widespread standard for configuring multiple hard disk drives is RAID (Redundant Array of Inexpensive/Independent Disks), which comes in a number of standard configurations and non-standard configurations. Non-RAID drive architectures a ...
) * 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,
Blowfish Tetraodontidae is a family of primarily marine and estuarine fish of the order Tetraodontiformes. The family includes many familiar species variously called pufferfish, puffers, balloonfish, blowfish, blowies, bubblefish, globefish, swellfis ...
,
Triple DES In cryptography, Triple DES (3DES or TDES), officially the Triple Data Encryption Algorithm (TDEA or Triple DEA), is a symmetric-key block cipher, which applies the DES cipher algorithm three times to each data block. The Data Encryption Standa ...
or
Camellia ''Camellia'' (pronounced or ) is a genus of flowering plants in the family Theaceae. They are found in eastern and southern Asia, from the Himalayas east to Japan and Indonesia. There are more than 220 described species, with some controv ...
algorithms. It can support data authentication using MD5,
SHA1 In cryptography, SHA-1 (Secure Hash Algorithm 1) is a cryptographically broken but still widely used hash function which takes an input and produces a 160-bit (20-byte) hash value known as a message digest – typically rendered as 40 hexadecim ...
,
SHA256 SHA-2 (Secure Hash Algorithm 2) is a set of cryptographic hash functions designed by the United States National Security Agency (NSA) and first published in 2001. They are built using the Merkle–Damgård construction, from a one-way compression ...
, SHA384, SHA512 or RIPEMD160) * geom_bde (also called
GBDE GBDE, standing for GEOM Based Disk Encryption, is a block device-layer disk encryption system written for FreeBSD, initially introduced in version 5.0. It is based on the GEOM disk framework. GBDE was designed and implemented by Poul-Henning Kamp an ...
, leading edge encryption with four cryptographic barriers) * geom_shsec (
shared secret In cryptography, a shared secret is a piece of data, known only to the parties involved, in a secure communication. This usually refers to the key of a symmetric cryptosystem. The shared secret can be a password, a passphrase, a big number, or ...
encryption module) * geom_uzip (read-only ZIP 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 support for increased performance using
RAM Ram, ram, or RAM may refer to: Animals * A male sheep * Ram cichlid, a freshwater tropical fish People * Ram (given name) * Ram (surname) * Ram (director) (Ramsubramaniam), an Indian Tamil film director * RAM (musician) (born 1974), Dutch * ...
as buffercache) Disk partitioning * geom_flashmap (partition parts of e.g. Flash memory using either offsets or context) * geom_part (supports Disk partitioning of GEOM providers) * geom_part_apm (support Apple Partition Map) * geom_part_bsd (supports
BSD disklabel In BSD-derived computer operating systems (including NetBSD, OpenBSD, FreeBSD and DragonFly BSD) and in related operating systems such as SunOS, a disklabel is a record stored on a data storage device such as a hard disk that contains informatio ...
) * geom_part_bsd64 (supports the 64-bit variant of BSD disklabels, as used by
DragonFly BSD DragonFly BSD is a free and open-source Unix-like operating system forked from FreeBSD 4.8. Matthew Dillon, an Amiga developer in the late 1980s and early 1990s and FreeBSD developer between 1994 and 2003, began working on DragonFly BSD in ...
) * geom_part_ebr (supports
Extended boot record An extended boot record (EBR), or extended partition boot record (EPBR), is a descriptor for a logical partition under the common DOS disk drive partitioning system. In that system, when one (and only one) partition record entry in the master boot ...
) * geom_part_gpt (supports
GUID Partition Table The GUID Partition Table (GPT) is a standard for the layout of partition tables of a physical computer storage device, such as a hard disk drive or solid-state drive, using universally unique identifiers, which are also known as globally unique i ...
) * geom_part_ldm (supports
Logical Disk Manager The Logical Disk Manager (LDM) is an implementation of a logical volume manager for Microsoft Windows NT, developed by Microsoft and Veritas Software. It was introduced with the Windows 2000 operating system, and is supported in Windows XP, Wind ...
) * geom_part_mbr (supports Master boot record) * geom_part_vtoc8 (supports Sun/Solaris VTOC8 disk labels) Virtualization * geom_mountver (enables mount verification) * geom_multipath (support
Multipath I/O In computer storage, multipath I/O is a fault-tolerance and performance-enhancement technique that defines more than one physical path between the CPU in a computer system and its mass-storage devices through the buses, controllers, switches, and ...
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 volumes) * geom_zero (creates a dummy provider that absorbs all writes and returns zeros on reads)


External links

* *


References

{{FreeBSD FreeBSD