På det sidste har jeg været på kig efter hvad jeg skulle bruge fremad rettet for at virtuelisere mine private linux box'e, historien er at forrig gang jeg flyttede skiftede jeg hardware fra rigtig server-hardware dvs. minimum 100 - 200W til intel atom pladformen ca. 40W som på det tidspunkt kun understøttede 2GB ram, nu hvor jeg/vi er flyttet igen tænker jeg på at konsolidere de Intel Atom maskiner jeg har kørrende ned på en atom box, da der sjældent er sammenfald mellem high-load perioder, udfordringen er som skrevet at mine nu ældre atom motherboards kun understøtter 2GB ram, derfor ser jeg udfordringer i at benytter hypervisore som KVM,XEN,Vserver med flere, da jeg ikke har ram i overskud. Under min jagt på hypervisor er jeg løbet ind i LXC som ser udtil at kunne løse min udfordring med meget få ram resourcer og ingen virtuelisering understøttelse fra CPU'en.

LXC vil jeg ikke kalder virtuelisering, men mere process seperering, eller chrooting, da en LXC er en selv stændig instrans med egen ip, mac, bruger database osv. det eneste er at den køre på den kernel som hosten stiller tilrådighed, derfor kan denne ikke modificeres, hvilket også er yderst sjældent at jeg har behov for, men fordelen er at jeg ikke skal bruge RAM på at køre en kernel for VM0 + VM1 + VM2 hvilket er ren overhead, specielt når jeg kun har 2GB at arbejde med.

For at få LXC til at virke rigtig skal vi bruge Debian Squeeze, hvilket jo ikke endnu er gået i stable, men ellers er det meget nem at komme igang med.

Installer de nødvendige binaries.

apt-get install lxc debootstrap bridge-utils

Lav Cgroup og tilføj denne til fstab.

mkdir /cgroup

vi /etc/fstab

cgroup        /cgroup        cgroup        defaults    0    0

mount cgroup

Tilpas netværks indstillingerne, sådan vi kan bridge vores netværks kort.

vi /etc/network/interfaces


auto eth0

iface eth0 inet manual

auto br0
iface br0 inet dhcp
bridge_ports eth0
bridge_fd 0
bridge_maxwait 0
bridge_stp off
/etc/init.d/networking restart
Lav en mappe som LXC placeres i.
mkdir -p /var/lib/lxc/vm0
Start bootstrap scriptet som danne en "virtuelle" instans.
lxc-debian -p /var/lib/lxc/vm0
Efter instancen er dannet skal configurationen ændres lidt, da vi mangler netværks opsætningen i bunden af denne instans config file skal følgende angives.
vi /var/lib/lxc/vm0/config
lxc.utsname = vm0
lxc.network.type = veth
lxc.network.flags = up
lxc.network.link = br0
#lxc.network.ipv4 = 192.168.0.10
# lxc.network.name = eth0
#lxc.network.hwaddr = 01:23:45:67:89:FF

start instansen er nem.
lxc-start -n vm0  
eller 
lxc-start --name vm0
Default ser det udtil at default bliver root password root, så husk at ændre dette !
Skal instancen stoppes inde fra gørres dette via init.
init 0
skal maskinen stoppes fra "hosten" er det lxc-stop
lxc-stop -n vm0

Læs mere her:
http://blog.foaa.de/2010/05/lxc-on-debian-squeeze/
http://lxc.sourceforge.net/
http://wiki.debian.org/LXC
http://nigel.mcnie.name/blog/a-five-minute-guide-to-linux-containers-for-debian