GEOM
Encyclopedia
GEOM is the main storage framework for the FreeBSD
FreeBSD
FreeBSD is a free Unix-like operating system descended from AT&T UNIX via BSD UNIX. Although for legal reasons FreeBSD cannot be called “UNIX”, as the direct descendant of BSD UNIX , FreeBSD’s internals and system APIs are UNIX-compliant...

 operating system
Operating system
An operating system is a set of programs that manage computer hardware resources and provide common services for application software. The operating system is the most important type of system software in a computer system...

. It is available in FreeBSD 5.0 and higher 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 will provide RAID1 or mirroring functionality to the system. A wide range of modules are already available, and new ones are always in active development by various FreeBSD developers.

GEOM was developed for the FreeBSD Project by Poul-Henning Kamp
Poul-Henning Kamp
Poul-Henning Kamp is a Danish FreeBSD developer, responsible for implementation of the widely used MD5 password hash algorithm, a vast quantity of systems code, including the FreeBSD GEOM storage layer, GBDE cryptographic storage transform, part of the UFS2 file system implementation, FreeBSD...

 and NAI Labs, the Security Research Division of Network Associates, Inc. under DARPA/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 consumer is the 'source' of the geom module, often a physical harddrive but sometimes a virtualized disk such as a memory disk. The geom module in turn provides an 'output' device called a provider. Other geom modules can use this provider to create a chain of modules connected to each other.

Source → geom module → Output

is referred to as:

Consumer(s) → geom module → Provider

For example, the geom_mirror module may have the following consumers: /dev/ad0, /dev/ad1, while it creates a new provider 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 harddrive and as such can contain filesystems such as FreeBSD's native Unix File System (UFS
Unix File System
The Unix file system is a file system used by many Unix and Unix-like operating systems. It is also called the Berkeley Fast File System, the BSD Fast File System or FFS...

).

Available modules

Storage modules
  • geom_stripe (RAID0)
  • geom_mirror (RAID1)
  • geom_raid (Supports RAID functionality on "software raid" controllers)
  • geom_raid3 (RAID3)
  • geom raid5
    Geom raid5
    geom_raid5 is a storage module created for the FreeBSD operating system. It facilitates RAID5 functionality without the need of a hardware RAID controller....

     (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
    Geli (software)
    geli is a block device-layer disk encryption system written for FreeBSD, introduced in version 6.0. It utilises the GEOM disk framework. It was designed and implemented by Pawel Jakub Dawidek.- Design details :...

    , provides traditional encryption using AES
    Advanced Encryption Standard
    Advanced Encryption Standard is a specification for the encryption of electronic data. It has been adopted by the U.S. government and is now used worldwide. It supersedes DES...

    , Blowfish
    Blowfish (cipher)
    Blowfish is a keyed, symmetric block cipher, designed in 1993 by Bruce Schneier and included in a large number of cipher suites and encryption products. Blowfish provides a good encryption rate in software and no effective cryptanalysis of it has been found to date...

    , Triple DES
    Triple DES
    In cryptography, Triple DES is the common name for the Triple Data Encryption Algorithm block cipher, which applies the Data Encryption Standard cipher algorithm three times to each data block....

     or Camellia
    Camellia (cipher)
    In cryptography, Camellia is a 128-bit block cipher jointly developed by Mitsubishi and NTT. The cipher has been approved for use by the ISO/IEC, the European Union's NESSIE project and the Japanese CRYPTREC project...

     algorithms. It can support data authentication using MD5
    MD5
    The MD5 Message-Digest Algorithm is a widely used cryptographic hash function that produces a 128-bit hash value. Specified in RFC 1321, MD5 has been employed in a wide variety of security applications, and is also commonly used to check data integrity...

    , SHA1, SHA256, SHA384, SHA512 or RIPEMD160)
  • geom_bde (also called GBDE
    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 and Network Associates Inc...

    , leading edge encryption with four cryptographic barriers)
  • geom_shsec (shared secret
    Shared secret
    In cryptography, a shared secret is a piece of data, known only to the parties involved, in a secure communication. The shared secret can be a password, a passphrase, a big number or an array of randomly chosen bytes....

     encryption module)
  • geom_uzip (read-only ZIP
    ZIP (file format)
    Zip is a file format used for data compression and archiving. A zip file contains one or more files that have been compressed, to reduce file size, or stored as is...

     compressed images)


Filesystem modules
  • geom_label (allows providers to have their own name labeled for easy partitioning)
  • geom_journal (adds journaling
    Journaling file system
    A journaling file system is a file system that keeps track of the changes that will be made in a journal before committing them to the main file system...

     support to the Unix File System (UFS
    Unix File System
    The Unix file system is a file system used by many Unix and Unix-like operating systems. It is also called the Berkeley Fast File System, the BSD Fast File System or FFS...

    ))
  • geom_cache (adds caching
    Cache
    In computer engineering, a cache is a component that transparently stores data so that future requests for that data can be served faster. The data that is stored within a cache might be values that have been computed earlier or duplicates of original values that are stored elsewhere...

     support for increased performance using RAM
    Ram
    -Animals:*Ram, an uncastrated male sheep*Ram cichlid, a species of freshwater fish endemic to Colombia and Venezuela-Military:*Battering ram*Ramming, a military tactic in which one vehicle runs into another...

     as buffercache)
  • geom_mbr


Virtualization
  • geom_md (creates virtual disks using file, swap or memory back-end)
  • 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
    Logical Volume Manager (Linux)
    LVM is a logical volume manager for the Linux kernel; it manages disk drives and similar mass-storage devices, in particular large ones. The term "volume" refers to a disk drive or partition thereof...

    volumes)

External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK