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.
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.
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
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