Sunday, December 1, 2013

Using Gluster as Primary Storage in CoudStack

CloudStack could use a Gluster environment for different kind of storage types:
  1. Primary Storage: mount over the GlusterFS native client (FUSE)
    This post shows how it is working and refers to the patches that make this possible.
  2. Volumes for virtual machines: use the libgfapi integration in QEMU
    Next upcoming task, initial untested patch in the wip-branch.
  3. Secondary Storage: mount over the GlusterFS native client (FUSE)
The current work-in-progress repository on the Gluster Community Forge already has functional support for creating Primary Storage on existing Gluster environments:
  • Infrastructure -> Primary Storage -> Add Primary Storage
    Add Primary Storage
  • Infrastructure -> Zones -> Add Zone - [wizard]
    Add Primary Storage through the Zone Wizard
Via the Infrastructure -> Primary Storage menu, the details of the newly created storage can be displayed.
Primary Storage Details

After creating a virtual machine from the standard CentOS template, it can be verified that the Primary Storage Pool on the Gluster environment is functioning. On the hypervisor that runs the VM:

[root@agent ~]# mount | grep gluster
gluster.cloudstack.example.net:/primary on /mnt/dd697445-f67c-33bc-af52-386de3ff7245 type fuse.glusterfs (rw,default_permissions,allow_other,max_read=131072)

[root@agent ~]# ps -C qemu-kvm -o command | grep i-2-3-VM
/usr/libexec/qemu-kvm -name i-2-3-VM ... -drive file=/mnt/dd697445-f67c-33bc-af52-386de3ff7245/1afd48d2-c5e1-44ce-bcb3-051cc4d59716,if=none,id=drive-virtio-disk0,format=qcow2,cache=none ...

The changes to CloudStack that make this possible are located on the Gluster Community Forge and have been posted for review:
  • [#15932] Add support for Primary Storage on Gluster using the libvirt backend
  • [#15933] Add Gluster to the list of protocols in the Management Server
Post a Comment