The patch series is missing Makefile entries for test data, so I will just
fix this on a per-patch basis rather than doing another review cycle.

Cheers,
Riba


On Wed, Jul 30, 2014 at 6:36 PM, Yuto KAWAMURA(kawamuray) <
[email protected]> wrote:

> Ganeti supports LXC as one of its hypervisor but it is outdated and broken.
> This patch series fixes existing broken implementation of LXC hypervisor.
>
> First, fix existing broken implementation of LXC hypervisor to make it
> working.
> Fix around storage mount, instance start, instance stop, daemonized process
> handling and add unit tests.
> These changes are expecting LXC >= 1.0.0 is installed, but the old
> implementation was totally broken so I believe adding this requirement
> won't
> be a problem.
>
> Second, improve around cgroup management to support various environment.
> Existing implementation of cgroup functions in hv_lxc is very poor because
> it assuming cgroup fs is already mounted, and also assuming first mount
> point
> of cgroup fs that appeares in /proc/mounts, containing all subsystems in
> it.
> We should mount required cgroup fs manually if needed and respect cgroup
> hierarchy that is currently belonging.
>
> Third, change location of lxc-start log file for usability.
> - Add instance uuid to lxc-start log file name to keep it isolated between
>   old/new instances having same name.
> - Move lxc-start log file location from var/run/ganeti/lxc/*.log
>   to var/log/ganeti/lxc/*.log. It is more handy if we could do something
> like:
>   tail -F /var/log/ganeti/{,lxc/}*.log
>
> Yuto KAWAMURA(kawamuray) (24):
>   Fix quote style in hv_lxc
>   Fix broken StopInstance in hv_lxc
>   Fix GetAllInstanceInfo in hv_lxc
>   Add functions to perform block device partition mapping
>   Add functions to manage instance stash file in hv_lxc
>   Mount rootfs by LXC container
>   Change StartInstance behavior in hv_lxc
>   Add _IsInstanceAlive method in hv_lxc
>   Change GetInstanceInfo to use _IsInstanceAlive in hv_lxc
>   Change StopInstance to use _IsInstanceAlive in hv_lxc
>   Add RunResultOk helper to hv_lxc unit test
>   Add unit tests for _IsInstanceAlive of hv_lxc
>   Add unit tests for GetInstanceInfo of hv_lxc
>   Extend failed_by_timeout flag to RunResult
>   Improve starting process of LXC container
>   Rename functions _Instance*File to _Instance*FilePath
>   Changed strategy of cgroup fs management in hv_lxc
>   Add _GetCgroupInstanceValue in hv_lxc
>   Respect cgroup hierarchy currently belonging in hv_lxc
>   Add unit tests for cgroup management functions of hv_lxc
>   Add function _EnsureCgroupMounts in hv_lxc
>   Include the instance uuid in the lxc instance log filename
>   Move lxc-start log file location to var/log/ganeti/lxc
>   Add additional verification procedure to hv_lxc
>
>  lib/hypervisor/hv_lxc.py                           | 531
> +++++++++++++++++----
>  lib/utils/process.py                               |   6 +-
>  lib/utils/storage.py                               |  69 ++-
>  man/gnt-instance.rst                               |  32 ++
>  src/Ganeti/Constants.hs                            |  18 +-
>  .../cpuset/some_group/lxc/instance1/cpuset.cpus    |   1 +
>  .../devices/some_group/lxc/instance1/devices.list  |   1 +
>  .../memory/lxc/instance1/memory.limit_in_bytes     |   1 +
>  test/data/proc_cgroup.txt                          |   4 +
>  test/py/ganeti.hypervisor.hv_lxc_unittest.py       | 185 +++++++
>  test/py/ganeti.utils.process_unittest.py           |  10 +
>  11 files changed, 762 insertions(+), 96 deletions(-)
>  create mode 100644
> test/data/cgroup_root/cpuset/some_group/lxc/instance1/cpuset.cpus
>  create mode 100644
> test/data/cgroup_root/devices/some_group/lxc/instance1/devices.list
>  create mode 100644
> test/data/cgroup_root/memory/lxc/instance1/memory.limit_in_bytes
>  create mode 100644 test/data/proc_cgroup.txt
>
> --
> 1.8.5.5
>
>


Hrvoje Ribicic
Ganeti Engineering
Google Germany GmbH
Dienerstr. 12, 80331, München

Registergericht und -nummer: Hamburg, HRB 86891
Sitz der Gesellschaft: Hamburg
Geschäftsführer: Graham Law, Christine Elizabeth Flores
Steuernummer: 48/725/00206
Umsatzsteueridentifikationsnummer: DE813741370

Reply via email to