Using schroot instead of LXC containers

So, I have been using LXC to host my server services for a period of time, with a view to keeping things portable should I need to change provider. It’s very good in that it’s integrated into the Linux kernel and in Ubuntu at least it’s not too difficult to setup, however there are a number of problems with it.

First and foremost, every time the container operating system upgrades anything to do with init scripts, it won’t boot any more, so you are forced to hold back packages with varying amounts of success. Secondly, there does seem to be some overhead running things in an LXC container, and thirdly it isn’t as portable as it could be i.e. there is no live migration. and you will have to change config files if you move hoster to reflect you new IP address.

As I’m not selling containers as VPS, I only need to run 1 server instance, and therefore don’t really need containerisation at all, enter schroot. Schroot is like chroot without the hassle and with added flexibility, in a nutshell it will mount and start everything correctly for you to the point where you can automate startup and running of services in the chroot, it doesn’t suffer from init script borkage since the init system isn’t used at all, and it’s more portable as networking is irrelevant to a chroot (it simply uses the hosts networking).

Ok so where to start, well if you are already using LXC you can use the directory your container is stored in. I opted to move mine to a sane location before starting, in the interests of convention and easy administration. So, I created a “schroot” directory in the /home directory i.e.

mkdir /home/schroot

Continue reading Using schroot instead of LXC containers

Holy Cow – BTRFS!

Recently I have been experimenting with BTRFS. BTRFS is a relatively new filesystem which has modern features, high performance, scalability, supporting file-system snapshots and on-the-fly compression.

After spending the week running BTRFS on Ubuntu from within a Virtualbox VM I reinstalled my laptop using it. Ubuntu’s installer supports creating btrfs partitions, which is handy, and it is reported to work even as a boot partition. I had problems using BTRFS as the boot partition however, so elected to use ext2 for boot in the real install.

The installer doesn’t support enabling the on the fly compression, so once I had the system installed I edited /etc/fstab adding “compress=lzo”, I added “ssd” as I have an SSD and “space_cache” which is reported to improve performance. After I rebooted I ran a filesystem balance to compress any existing compressible data like so:-

btrfs fi balance /
btrfs fi balance /home

It’s worth pointing out here that there still isn’t a utility which can fix BTRFS filesystem corruption, so although BTRFS is considered stable, you may want to stay away from it just in case. There is also a nasty condition that can cause a kernel crash if the file-system runs out of space, so that is another one to watch for.

Continue reading Holy Cow – BTRFS!