This page tracks projects/ideas/features which are targeted towards GSoC 2017. We want to consolidate all the projects so that it is easier for people to choose.


Note to potential candidates: If you like any of the projects, shoot a mail to with the JIRA ID mentioned in it.


JIRA IDTitleShort DescriptionPotential Mentors

Candidates Interested


Add Cinder as a storage driver to Cloudstack

The idea is to add cinder support for managed storage. Cinder is *The* platform for doing Software defined storage. Every vendor has plugged in their device to Cinder. We can run Cinder standalone [1] . This would mean that once we integrate Cinder, we get all the other storage vendor support for free, NetApp, HP ... the list is huge [2]

Syed AhmedShanika Ediriweera
CLOUDSTACK-9778Replace custom console with NoVNC console

The idea is to relplace our old and crummy console with a NoVNC console.

There are a lot of advantages of using NoVNC

  • Uses websockets so connections are persistent
  • Can do operations like copy/paste
  • Has better browser compatibility
  • Overall is more responsive and has a nice feel to it
Syed AhmedShanika Ediriweera


Decouple Cloudstack UI


Just like cloudmonkey, decouple Cloudstack UI to a separate project.

It should be able to talk to any cloudstack endpoint

Rajani Karuturi Shanika Ediriweera


Use Ceph RBD storage pool for writing HA heartbeats

Just like NFS we should write a heartbeat for each Instance to RADOS.

Each hosts could write a simple object like: <pool>/<host ip>

They simply write the timestamp to the object encoded in JSON.

Other hosts can read that object and see if the host wrote the timestamp lately. If it did it means that it is still up and running and Fencing is not needed or required.

Wido den Hollander Sachin Patil


commit to commit db upgrades and db version control

Cloudstack currently uses a homegrown tool to do the database upgrades.
The challenges with the current one being, it can only do version to version but not commit to commit upgrades.
Due to this, when different people work on the same branch and have db changes, environment is broken untill you do fresh db deploy.

To achieve this, we can use existing and well tested tools like liquibase, flywaydb etc. or improve on the existing one.

Related discussions on dev lists

Rajani Karuturi  


Add TRIM/Discard support to Qemu

Thinly provisioned volumes on storage devices continue to grow because the storage device has no idea of which blocks are in use.

For SSDs the TRIM/Discard feature was invented to give free/unused blocks back to the flash device, but this can also be used for Qemu.

Ceph's RBD for example supports trimming so that volumes can shrink again when blocks are no longer in use.

This is supported since Qemu 1.5, but since 1.6 it also works for QCOW2 images.

It however requires the new virtio-scsi to work optimal, so it requires some changes.

For more information see:

Wido den Hollander Sachin Patil
  • No labels