OpenVZ is running on an ARM (Gumstix Overo)! 23 October 2008 @ 08:08 pm
Kir Kolyshkin
k001
[openvz]
When my colleague Pavel Emelyanov returned from the 2008 Linux kernel summit back in September he brought a small present for me -- a Gumstix Overo (every LKS participant got one for free; yet another reason to become a high-profile kernel developer!). Overo is a computer (well, actually a set of boards and cables) with a CPU board the size of a gum stick, featuring TI OMAP3 CPU, 128 megs of RAM and a microSD slot. It also has 802.11g Wi-Fi and Bluetooth but those happens to be completely dead as this the first beta release of hardware.

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.
Permanent Link4 comments | Leave a comment
Post a new comment
Dusty: sunflower[info]megagram on October 25th, 2008 - 12:05 am
I've been intending to use a BeagleBoard to do this same thing. Their URL is BeagleBoard.org. It's powered by an ARM Cortex-A8. It's quite a bit bigger than this little thing, but it's still only about 3" x 3".

I love the idea of such a tiny board (the Overo), but it seems like it would be difficult to use since there seems to be such a small number of connectors. I'm sure you could get away with using USB for everything, though. I think the BeagleBoard costs about the same ($150 USD). It's not nearly as small, but it's a barebones board with lots of on-board connectors.

By the way, I'm very happy to see that there is some OpenVZ activity on the ARM processor. Everything, and I really mean Everything, I do is inside of OpenVZ containers. If I need to move something around, I just migrate it to another box. I use it for firewalls, network routing, Asterisk servers, web hosting, email hosting, Debian repository caches, and pretty much everything else you can think of (except for standard graphical desktop environments, but I'm getting there soon I expect via X forwarding or the like). Thanks for pushing forward with OpenVZ.
Шуцемаў Кірыл[info]kiryl on June 17th, 2009 - 11:52 am
There is mistake in URL of third patch. One zero was missed.
Kir Kolyshkin[info]k001 on June 17th, 2009 - 01:40 pm
Fixed, thanks for reporting!
(Anonymous) on November 13th, 2009 - 08:27 pm
Have you ported openVZ for the Sheeva Plug Computer?
Having virtualization on the Sheeva Plug would be awesome to say the least. I am planning to get 5 Sheeva Plugs (http://plugcomputer.org/), a USB drive and want to create a Micro-data center with virtualization capability.

It would be simply cool to create such a micro-data center and let the user-community play with it.

Looking forward to your reply.
Thanks,
Raj.
nrajesh71
at-> gmail or yahoo