[TOC]

# Google Summer of Code 2016

Here are our project ideas for Google Summer of Code 2016

It might be interesting to have a look at ideas in [2015](SummerOfCode2015Ideas.md), [2014](SummerOfCode2014Ideas.md) and [2013](SummerOfCode2013Ideas.md).

# Project proposals

## Optimize balancing speed by accounting for migration speed

hbal usually performs a complex sequence of moves during cluster balancing in order to achieve local optimal cluster state. Unfortunately, some moves may take significant amount of time. In cases where balancing is periodically performed to optimize cluster performance, disk moves can be prohibitively slow (which can be avoided using the `--no-disk-moves` or `--avoid-disk-moves` options). However, instances can be slow to migrate for other reasons, such as a heavily used instance which updates its memory at high speed. Thus, we'd like to have the following features:

  * move/migration time estimation in HTools;
  * time limits for cluster balancing steps; overall balancing sequence time limit;
  * an option `--avoid-long-moves` similar to `--avoid-disks-moves`

This project would be based on [the implementation introduced in 2.17](http://docs.ganeti.org/ganeti/2.17/html/design-migration-speed-hbal.html).

## Improve KVM live migration

Live migration on KVM clusters could be improved by adding the following features:

  * Timeouts or live migrations to handle the case of memory being updated faster than it can be copied. If the memory copy isn't completed before that timeout, the VM will be paused and the remainder copied over. This is related to the current migration downtime option, but approaches it from the other end.
  * Implement KVM postcopy migration support. Refs:
    * http://wiki.qemu.org/Features/PostCopyLiveMigration
    * http://grivon.apgrid.org/quick-kvm-migration
    * https://www.redhat.com/archives/libvir-list/2014-December/msg00093.html