TM MooseFS
Description

A transfer manager for using MooseFS (http://www.moosefs.org/) as a backend storage.

MooseFS is a fault tolerant, network distributed file system. It spreads data over several physical servers which are visible to the user as one resource.

Benefits

With MooseFS as backend storage you can achieve shared storage for your OpenNebula hosts without using expensive NAS/SAN dedicated hardware server, but cheap hard drives instead, ensuring fault-tolerance in case of failure with data replication across many nodes.

Requirements

A working MooseFS volume mounted on every OpenNebula host under the same folder (ex: /srv/vms)

How to Configure MooseFS: http://www.moosefs.org/reference-guide.html

Configuration

Download package from https://github.com/libersoft/opennebula-tm-moosefs/tarball/master

Unpack the folder `tm_moosefs` in `/etc/one` or `$ONE_LOCATION/etc`

Unpack the folder `tm_commands/moosefs` in `/usr/lib/one/tm_commands` or `$ONE_LOCATION/lib/tm_commands`

Adjust some oned.conf parameters:

   VM_DIR=/srv/vms/deploy
   IMAGE_REPOSITORY_PATH = /srv/vms/images
   TM_MAD = [
       name       = "tm_moosefs",
       executable = "one_tm",
       arguments  = "tm_moosefs/tm_moosefs.conf" ]

Configure nebula host to use the new transfer manager:

   onehost create host01 im_kvm vmm_kvm tm_moosefs

If you move your `/var/lib/one` inside moosefs (ex: `/srv/vms/one`) and symlink it back, you can easily achieve database replication with sqlite for easy frontend switching:

mv /var/lib/one /srv/vms/one
ln -s /srv/vms/one /var/lib/one