For the last few days I was digging into a project to make OpenVZ running on this Overo thing. That involved patching OpenVZ kernel to support ARM architecture, building vzctl package (.ipk) for ARM using bitbake, and creating a template.
It was amazingly easy to port the OpenVZ kernel to ARM; you can see here that besides a big-all-in-one-openvz-for-2.6.27 patch I only had to add 4 tiny ARM-specific patches (1, 2, 3, 4). For vzctl, it was even easier -- all I had to do is to add openvz syscall numbers for ARM which were added, and create a bitbake recipe file.
Creating a template for ARM architecture was tougher but I managed to win that fight, too -- you can find a Debian Lenny template here.
Here is an except from a terminal session showing OpenVZ on Overo:
root@overo:~# uname -a
Linux overo 2.6.27-omap1 #1 Tue Oct 21 21:19:40 MSD 2008 armv7l unknown unknown GNU/Linux
root@overo:~# cat /proc/vz/version
037test001
root@overo:~# vzlist
CTID NPROC STATUS IP_ADDR HOSTNAME
777 5 running - -
root@overo:~# vzctl enter 777
entered into CT 777
-bash-3.2# ps axf
Unknown HZ value! (0) Assume 100.
PID TTY STAT TIME COMMAND
310 ? Ss 0:00 vzctl: pts/0
311 pts/0 Ss 0:00 \_ -bash
313 pts/0 R+ 0:00 \_ ps axf
1 ? Ss 0:00 init [2]
208 ? Sl 0:00 /usr/sbin/rsyslogd -c3
227 ? Ss 0:00 /usr/sbin/cron
Please note that all this is still in very alpha stage -- there are errors, bugs, ugly warnings, you have to modify some things in place etc. But it's working. If someone is interested in running OpenVZ on ARM hardware, please let me know -- leave a comment here or email kir (A) openvz (.) org.
Update: comments disabled due to spam

