On Wed, Feb 3, 2016 at 1:09 PM, James Page <james.p...@ubuntu.com> wrote: > Hi All > > I've been using Juju 2.0 (built from source with an in-flight patch for LXD > 2.0 right now - but that should be resolved soon) with the local LXD > provider on Ubuntu Xenial development to test some work we've been doing to > get OpenStack running on-top of LXD in a single machine. > > That's now working quite well (a few rough edges), but is not the main topic > for my post.
This is solid, thanks for sharing here. -Antonio > > 1) Multiple models, single controller > > Alongside LXD support, you can also create multiple models against a single > controller, so I've been creating models to deploy, test and review specific > pieces of work (reviewing the midonet charms right now for example): > > juju bootstrap > juju create-model midonet-review > juju switch midonet-review > > .... and then deploy away; Not having to re-bootstrap a controller > every-time I want to tear-down and redeploy, or push something new up for > test optimizes my workflow nicely. > > 2) Tweaking container profiles > > For each model, Juju creates a profile in LXD (named juju-<model name>)- and > its quite possible to make additions to that profile for your specific model > requirements - here's the one we wrote for openstack-on-lxd: > > name: juju-openstack-on-lxd > config: > boot.autostart: "true" > linux.kernel_modules: openvswitch,nbd,ip_tables,ip6_tables > security.nesting: "true" > security.privileged: "true" > devices: > eth0: > mtu: "9000" > name: eth0 > nictype: bridged > parent: lxcbr0 > type: nic > eth1: > mtu: "9000" > name: eth1 > nictype: bridged > parent: lxcbr0 > type: nic > kvm: > path: /dev/kvm > type: unix-char > root: > path: / > type: disk > tun: > path: /dev/net/tun > type: unix-char > > This adds a-lot to the default profile, but at a high level ensures that > each container gets two network interfaces with a high mtu to avoid packet > fragmentation, can access a few devices required for virt networking and > process management - and also switches the container into 'privileged' mode > that we need for Open vSwitch support in a container right now (Tycho is > working on fixing that so we can run unprivileged). Read more about LXD > profiles here: > > https://github.com/lxc/lxd/blob/master/specs/configuration.md > > Editing is super easy - 'lxc profile edit <profile-name>'. > > 3) Pause/Resume containers > > I've found a few bits that LXD provides outside of Juju quite useful as well > - specifically I've been away from regular power for the last few days, so > I've been using the 'pause' feature of containers to freeze containers, > stopping CPU consumption and making my battery last a alot longer without > destroying and re-deploying the environment (which would consume far more > battery anyway) - here's 'pause-juju': > > for container in `lxc list | grep RUNNING | grep juju | awk '{ print $2 > }'`; do > lxc pause $container > done > > and 'resume-juju': > > for container in `lxc list | grep FROZEN | grep juju | awk '{ print $2 > }'`; do > lxc start $container > done > > I'm doing this outside of Juju right now - but I think it would make a great > feature! > > All container processes still consume memory, but stop consuming cpu cycles > until resumed. > > Oh - and use the ZFS backend for LXD - its superfast!: > > > https://insights.ubuntu.com/2015/11/06/using-lxd-with-a-file-based-zfs-pool-on-ubuntu-wily/ > > Hope people find that all useful! > > Cheers > > James > > > > -- > Juju mailing list > Juju@lists.ubuntu.com > Modify settings or unsubscribe at: > https://lists.ubuntu.com/mailman/listinfo/juju > -- Antonio Rosales Ecosystem Engineering Canonical -- Juju mailing list Juju@lists.ubuntu.com Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/juju