Google Summer of Code 2014
Here are our project ideas for Google Summer of Code 2014
It might be interesting to have a look at last year's ideas as well.
Improvements in the monitoring daemon
(language: Haskell) design
Implement additional data collectors, for example:
Optimize the currently existing collectors
Implement cache system to decouple between collection and retrieval
Allow different stateful collectors to be queried with different time intervals
Implement plugin interface
Use dynamic memory usage information in hbal/hail
Improvements to the instance bin-packing tool (hsqueeze)
(language: Haskell) design
- Add -X option to hsqueeze (actually executing the derived packing)
- Make hsqueeze use the dynamic CPU data that is now collected thanks to last year's summer of code project
(language: Haskell) Issue 564: Allow generic queries in ConfD
Ganeti confd supports a restrictive set of queries: we'd like to expand its language to be able to query any configuration value from the Ganeti config. Example interesting values could be names and UUIDs for nics and disks, network information, availability of IP addresses in pools.
Improve hypervisor support
- Support for kvm+cgroups for strict resource allocation
- Support for kvm+namespaces for added security
- Improve linux containers support
- Support for hugepages for kvm
- Improve htools (hail, hbal, hsqueeze etc) to provide location awareness, as discussed in GanetiCon.
- This would involve modeling better the relationships between different nodes and nodegroups (are they close or far latency-wise? is there a bottleneck?) and instances (which ones are redundancy-ones in a pool? which ones should live close to each other?) to provide better “service-level” allocation instead of simple per-instance one.
- This feature would allow to have primary and secondary nodes on different nodegroups, but also to specify which instances should and should not share point of failures (nodegroup, node) as much as possible.
Improve containers support
- Work with docker.io and LXC to provide strong Ganeti-based Linux containers
- Solve container problems like startup, storage, networking, which are different from how traditional VMs work
KVM resource constrainment
- cgroups integration for more reliable resource constrainment
- Linux containers integration for better control of what the qemu executable can access
- better segregation in case of virtualization/qemu breakup
- better resource accounting
Conversion between disk templates
Currently, Ganeti supports only disk conversions between LVM and DRBD. Introduce a generic mechanism to convert between other templates too. This mechanism will need to copy the disks' data for conversion to be possible.
Authnz support for RAPI
Currently the RAPI supports only coarse-grained permissions (read/write). It is easy to implement more fine-grained access control by implementing a pluggable authentication and authorization API. The authentication API will allow authenticating users against different backends, while the authorization API will authorize individual OpCodes before they are submitted to the job queue.