- GEOM
GEOM is the storage framework available in the
FreeBSD Operating 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 provideRAID1 or mirroring functionality to the system. A wide range of modules are available and new ones are being developed by several FreeBSD developers.GEOM was developed for the FreeBSD Project by
Poul-Henning Kamp andNAI Labs , the Security Research Division of Network Associates, Inc. underDARPA /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 provides 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).
Available modules
Storage modules
* geom_stripe (RAID0 )
* geom_mirror (RAID1 )
* geom_raid3 (RAID3 )
*geom_raid5 (RAID5 , not present in -CURRENT yet)
* geom_concat (concatenating, also called spanning orJBOD )
* 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 calledGELI , traditional encryption using AES,Blowfish or3DES algorithms)
* geom_bde (also calledGBDE , leading edge encryption with four cryptographic barriers)
* geom_shsec (shared secret encryption module)
* geom_uzip (read-onlyZIP compressed images)Filesystem modules
* geom_label (allows providers to have their own name labeled for easy partitioning)
* geom_journal (addsjournaling support to the Unix File System (UFS ))
* geom_cache (addscaching support for increased performance usingRAM as buffercache)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 volumes)External links
* [http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/geom.html FreeBSD handbook Chapter 19 GEOM: Modular Disk Transformation Framework]
* [http://phk.freebsd.dk/pubs/bsdcan-04.slides.geomtut.pdf Poul-Henning Kamp's GEOM tutorial slides at BSDCan 2004]
Wikimedia Foundation. 2010.