Project title:
--------------
FreeBSD GEOM Storage Virtualisation Layer (gvirstor)

Author:
-------
Ivan Voras <ivoras@gmail.com>

Mentor:
--------
Poul-Henning Kamp?

Synopsis:
---------
A FreeBSD kernel GEOM class providing storage virtualisation facility, 
regardless of type of underlying devices or its usage.

Project Description:
--------------------
When doing server consolidation a popular step is storage
virtualisation, the goal of which is to provide storage space on demand.
The purpose of gvirstor module is to provide this facility by offering
the ability to create a virtual storage device of arbitrarily large size 
(typically several terabytes) which consists of an arbitrary number of
physical storage devices (actually any lower-level GEOM providers, 
including RAID devices) of arbitrary size (typically 50 GB - 400 GB
hard drives). Storage space from these components is carved into small 
chunks (for example 4 MB) and allocated (committed) to the virtual 
device on as-needed basis. For example, two writes to a freshly
created device: one at the beggining of virtual storage device and one 
at the end will commit two chunks from physical device components, chosen
at the convenience of the GEOM module. When all available physical storage 
is exhaused, no new chunks can be allocated until more physical 
components are added. In this way, storage space can be managed
with flexibility and forethought for future needs.

This work will be licensed under the BSD license.

Technical Details:
------------------

Basically, gvirstor would be an important part of a logical volume manager.
Existing GEOM classes in FreeBSD offer RAID functionality, but up to
now there is no native GEOM storage virtualisation class.
The facility will be implemented as a GEOM class in a kernel-loadable 
module, with accompanying userland utility that controls it (using
facilities provided by the GEOM framework). Special consideration is
to be given to monitoring and notification of available physical
storage so the administration staff can react and add additional
devices/components on time. The virtual storage device
can be used for arbitrary purposes, including hosting file systems.

More information on the GEOM framework can be found here:
http://www.freebsd.org/cgi/man.cgi?query=geom&sektion=4

Benefits for FreeBSD:
---------------------
Storage virtualisation is an important component in new enterprise
data centres, and several expensive commercial products have emerged
that offer this functionality on various storage systems (for example
Fibre Channel). Virtual storage module included with FreeBSD will
allow usage of inexpensive direct attached storage devices (a.k.a.
disk drives) in virtual storage configurations, or even creation 
of dedicated or embedded devices for this purpose based on a
inexpensive Open-source operating system with a business-friendly 
license.

About me:
---------
I'm a student at the final year at Faculty of Electrical Engineering 
and Computing (FER) in Zagreb, Croatia. I'm a full-time FreeBSD user 
and developer (with some kernel knowledge) and also administrate 
several FreeBSD servers and a few desktop systems. My homepage 
is http://ivoras.sharanet.org/.