How to: Chroot, How to: OpenStack Quickstart

I’ve uploaded to a personal Wiki page

How to create a chroot on openSUSE 12.3
Translation version added to my Unofficial openSUSE Documentation Alternative Translation Project

Assumes the User has no prior knowledge what a chroot is
Very recent information how to invoke the chroot with systemd-nspawn
Updated and current information for installing OpenStack Folsom (with optional Quickstart) into the chroot.

So, why should people consider a chroot?

  1. If you want to run some type of virtualization within an isolated environment (eg OpenStack, KVM, Virtualbox, Xen, VMware, Wine, etc) running virtualization within virtualization can make the environment dog-slow. Chroot is isolation but without paravirtualization which means a virtualization layer is removed so it’s as fast as expected.

  2. You can install multiple instances of openSUSE and even other distros simultaneously. sharing the same kernel but running in their own isolated file system.

  3. almost zero overhead. Whereas even launched but inactive VMs will eat up resources, chroot shares the Host processes directly so processes spin up or shutdown only as needed as happens on a regular system. This is besides the benefits afforded by systemd today.

  4. Although not in this document, it’s possible for the chroot to be an ARM system on an x86 host by using a QEMU modified kernel.


the instructions on how to implement a chroot and the latest, current “best method” using systemd-nspawn are still valid.

I have since discovered some issued deploying OpenStack specifically in a chroot and also because of current kernel issues supporting LXC that may not be advisable as well. For the moment, until these issues are resolvable, OpenStack is best deployed in a paravirtualized for full emulation VM, eg using VirtualBox, KVM, VMware, Hyper-V, etc. The OpenStack repo URIs described in this Guide work perfectly fine in a virtualized or bare metal install.

The specific issues running OpenStack in a chroot are

  • Require “real” root access to run the Quickstart script. Since a chroot root is jailed, it isn’t granted sufficient access to modify modules which are shared with the Host.
  • Require access to Networking to configure special network interfaces. Since chroot shares the same networking as the Host, this is not possible. LXC does virtualize networking, but has its own kernel implementation issues at the moment (user namespace and cgroup memory management)