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