OpenVZ and KVM are Linux based virtualization programs, both are part of the Proxmox VE distribution. The goal of this article is to provide some knowledge on moving physical machines to virtual containers (OpenVZ) or fully virtualized machines (KVM). This article is not specific to Proxmox VE and the principles outlined and scripts provided should work on "stock" KVM or OpenVZ machines with a few minor changes to path settings.
I am fairly new to OpenVZ although I have played with it on Centos. I really like OpenVZ, it seems fairly straight forward and "containers" or guests are light weight and easy to deploy. Backups are much smaller the saving a 5 Gb VMWare disk ....
I have been waiting for OpenVZ to be ported to Ubuntu (I seem to spend a lot of time on Ubuntu).
Well, it is here and they have ported OpenVZ to current kernels
Previous kernels are broken :(
Please note that the OpenVZ kernel is a product of the OpenVZ Project and is NOT supported by CentOS. The OpenVZ Project follows the RHEL kernels closely and provides updates in a somewhat timely fashion after updated Red Hat (and CentOS) kernels are released. As a result the RHEL-based OpenVZ kernels are well suited for use on RHEL and CentOS hosts with support for (almost) all of the same hardware. Please note though that the OpenVZ kernel is less modular than the stock Red Hat / CentOS kernels with some hardware support being compiled in. It is recommended you read this HOWTO in its entirety before attempting any of the operations shown in it.
What is OpenVZ?
OpenVZ is operating system-level virtualization based on a modified Linux kernel that allows a physical server to run multiple isolated instances known as containers, virtual private servers (VPS), or virtual environments (VE). The preferred term these days is container. Containers are sometimes compared to chroot or jail type environments but containers are really much better in terms of isolation, security, functionality, and resource management.
OpenVZ consists of a custom Linux kernel (available from the OpenVZ Project) and some user-level tools. OpenVZ is very portable, does not rely on VT support in the CPU, and as a result it is available for a number of CPU families including x86, x86-64, IA-64, PowerPC and SPARC.
OS-level virtualization is quite different from machine / hardware virtualization products such as VMware Server, Parallels Workstation, VirtualBox, QEMU, KVM, and Xen in that with OpenVZ you can only do Linux on Linux virtualization.
OpenVZ modifies the Linux kernel to add advanced containerization features which allow for isolated groups of processes under a parent init along with about twenty dynamic resource management parameters for controlling container resource usage. The OpenVZ Project maintains three stable kernel branches:
- RHEL4 / CentOS4 2.6.9 based
- RHEL5 / CentOS 5 2.6.18 based
- Vanilla 2.6.18 based
There are a number of unstable branches based on newer versions of the Linux kernel that may eventually reach stable status.
Proxmox VE is an example of the end product being greater than the sum of parts. All the technologies used to build Proxmox VE are not unique however putting them all together and adding a nice interface is. Overall I am very impressed with the ease of use and quality of the software. The flexibility that is provided by virtualization plus the ease of administration provided by Proxmox VE is a great combination for anybody looking to use virtualization.
I'm all done with making the slides for my presentation on OS Virtualization vs. Hardware Virtualization for the Linuxfest Northwest 2008 conference.
Update: Ok, here's the video of my presentation.
I decide to create an OpenVZ OS Template for Fedora 9 Preview. I hope to use it at the Linuxfest Northwest 2008. Creating an OS Template wasn't too hard. Actually, I created two OS Templates. One was a "minimal" and the other was a "withGUI". The "withGUI" includes KDE, GNOME, XFCE, all of the desktop apps like OpenOffice.org, GIMP, Inkscape, etc. Creating an OS Template that includes one or more desktop environments can be tricky. Admittedly, not very many people would want to use the Fedora 9 Preview after the official release comes out but these instructions should also apply to the final release if you replace the Preview DVD .iso image with the final release .iso. Read the full article for all of the details.
The Linuxfest Northwest 2008 show is quickly approaching - April 26 & 27 in Bellingham, Washington. It happens to be the closest Linux show to Montana that I'm aware of. Last year Warren, Donnie, Ken and I went. It was a blast. Check out my report from last year if you missed it.
Anyhoo... several of us are going and I've even signed up for a presentation entitled OS Virtualization vs. Hardware Virtualization. I haven't put together the presentation yet but I have done about a half dozen related presentations over the last two years. I think with this one though, I'm going to concentrate less on specific products and more on how OS Virtualization has been making its way into the mainline Linux kernel (called CGroups or control groups).
If anyone is interested in attending the conference, please let me know ASAP. We currently have one vehicle going and one room... but we could easily expand that if need be.
Warren and I have attended three different Linux conferences in the past: Linux World Conference and Expo (once last year), Colorado Linux User Expo (twice back in the 90s - now defunct), and the Linuxfest Northwest (last year). Of the three LFNW, is the only completely free one and as such it has the strongest community feel to it. The schedule has been finalized... so check it out to see just how many things interest you... and don't forget about the exhibits either. There is a LOT there!
Did you hear? A while back SWsoft decided to change its name to that of its partner company, Parallels. Parallels makes a commercial product very similar to VMware Server... but it seems to be most popular on the Mac. With SWsoft's Virtuozzo and their sponsoring of the OpenVZ project, is it any wonder that there would be a hybrid product that tries to compete with VMware ESX?
I haven't had a chance to watch the full video yet, and although it is mostly of a commercial nature, it advances discussion about Virtualization so I'm sharing it. They had it as a Windows Media file on their site and I've converted it to Flash so Linux users will have an easier viewing time.
Kir posted a blog entry regarding Andrew Morton's keynote from the LinuxWorld Expo 2007 keynote (from August as seen a few items below) wanting to get a transcript of what Andrew said about containers and OpenVZ... so I spent about 30 minutes making it so. Here's what Andrew said:
"The one prediction I am prepared to make... is that over the next 1 to 2 years there'll be quite a lot of focus in the Linux kernel on... the core of the Linux kernel... on the project which has many names. Some people call it containerization... others will call it operating system virtualization... other people will call it resource management. It's a whole cloud of different features which have different applications.
I had the opportunity to be part of the OpenVZ booth at the recent LinuxWorld Expo in San Francisco where I met the OpenVZ Project Manager, Kir Kolyshkin. He was kind enough to answer some questions for me via email.
About the OpenVZ Project
While in the university I had a chance to work and play with not only boring DOS/Windows, but also OS/2, HP-UX, SCO, Novell Netware, and some other operating systems, including Linux of course. My first Linux distro was some ancient version of Slackware, I only remember it came with kernel 1.0.9 and the CD also contained patches for up to 1.1.50. I immediately fell in love with Linux and free software model.
Before I became the project manager for OpenVZ, I worked at a few companies, including positions at Deutsche Bank and at the Russian natural gas giant Gazprom. As for SWsoft, I did a few projects there -- a search engine (ASPseek, now mostly in oblivion), a few projects for Virtuozzo (lead development of vzctl, then kernel testing, then template tools).