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.
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.
I am in need of a little help or a point in the right direction with some SSH & RSYNC stuff I'm trying.
Using CentOS 5 I am trying to automate some rsync tasks through ssh. I have CentOS5 on the destination too. I have a DSA and RSA key generated and scp'd onto the destination server. Essentially I am trying to do a host authentication to get around the password. The destination server is a production system so I can't lax much on the security or this would be much easier.
I have been trying to use some instruction from the rsync site as well as linuxquestions but I'm not making any real headway. The usernames are different for the source and destination systems but that shouldn't really matter for RSA/DSA authentication, should it?
Any help or refernces you could give me would be hot!
On another note, eventually I'll get to one of the LUG meetings. At least this month I made it to MSO but forgot my directions to Sean Kelly's. 8^p
"only the strong of heart can win to the place of the Vision!"
IN GHOSTLY JAPAN
I use the SystemRescueCD a lot at work. My work study scoffed at me for actually running it from CD rather than a USB stick... because the USB stick is much faster. I bought a three pack of SanDisk Cruzer Micro 2GB USB thumb drives from CostCo for about $50. I followed the SystemRescueCD instructions and bingo it worked. Ok, it boots up a lot faster now.
I applied the Fedora method to the recently released CentOS 5.1 LiveCD and that worked too. I guess the same principle would apply to any LiveCD .iso you'd want to throw at it... including regular distro install media. They even have a program for Windows users.
I noticed a blog posting by Daniel Veillard on Fedora People about initial support for OpenVZ being added to libvirt. If you aren't familiar with libvirt, it is an underlying library/API that can be used by higher level tools to create, manage, and monitor virtual machines. libvirt is trying to be technology agnostic by supporting several virtualization technologies. They started off with Xen and QEMU but have since added KVM. libvirt is used by the GUI tool Virtual Machine Manager which first appeared in Fedora Core (now Fedora) but became part of Red Hat Enterprise Linux 5.
Looking at some of the postings in the libvirt mailing list archive for this month, it is mentioned that adding OpenVZ support is a bit different than previous technologies because the OpenVZ tools are already GPLed, "simple and straight forward", and than OpenVZ additions to libvirt "ends up looking very close to the original". I don't know how far away complete support for OpenVZ is in libvirt nor when it will show up in Virtual Machine Manager but I definitely look forward to it... although I doubt it would completely replace vzctl and the other OpenVZ tools for me.
If one knows of the hype about Ubuntu, and it is almost unavoidable, one is led to believe that it is the most popular Linux distribution for desktop users. I have yet to see hard data that shows evidence of that claim so that will remain unresolved for now. One of the reasons touted for Ubuntu's popularity is that it comes on a single CD. Debian, upon which Ubuntu is based, also has fans because it too has a very light-weight install option (among other reasons) which will install the base system and allow one to install all the desired software post-install by downloading only what is needed. While Debian is huge, 27 CDs for the full distro or 3 DVDs (not counting the source CDs), virtually no one downloads all of the
Since I'm a Red Hat fan (which includes Fedora Core and CentOS), I'm aware of the complaints people have about "having to download multiple CDs" before they can start installing. In fact, the recently released CentOS 5 is 6 CDs (
i386, or 7 CDs for
x86_64). To counter those complaints, I thought I'd try a single CD install of the recently released CentOS 5 "Debian style" and then add everything in post-install. Join me if you will...
Just a quick note to say that CentOS 5 has been released... 6 CDs or 1 DVD. I've downloaded all 6 CDs and am burning now. DVD is about 45% done downloading.
Official announcement should happen in an hour or so.
I got a bit farther with Xen this time. I did another CentOS 5 Beta install and made sure to add the Virtualization package set. It's not like I needed to do another install but I've been doing a few installs just to test out differences with the various package sets.
I originally tried out Xen about a year and a half ago on a Fedora Core 4 host on rather underpowered hardware and a lot has changed since then.
I discovered that CentOS announced a public release of CentOS 5 beta this morning. I quickly downloaded the 6 .iso images for the CDs and gave it a spin. The DVD iso is only available via .torrent and I can't do bittorrent at work.
Added to this release are package sets for:
Follow along with me as I do installs on both a physical machine and in VMware. Feel free to go directly to the screenshot gallery.
This weekend I finally got around to checking out OpenVZ. With lots of prodding from Scott, not to mention lots of help from Scott, I got this thing installed rather quickly. I pretty much followed Scott's latest article Intro to OpenVZ: Part II. I started with installing CentOS 4.4 using the custom minimalist install and updated everything. BTW this machine is an old Dell 2Ghz with 512MB RAM and 40GB drive.