Linux Gains Two New Virtualization Solutions
An anonymous reader writes "The upcoming 2.6.23 kernel has gained two new virtualization solutions. According to KernelTrap, both Xen and lguest have been merged into the mainline kernel. These two virtualization solutions join the already merged KVM, offering Linux multiple ways to run multiple virtual machines each running their own OS."
just asking...
Wouldn't it be enough with one? Or maybe they could have merged all the features into one VM.
I think this will confuse users. Choice is good, yes, but 3 VMs in the kernel? Sounds like overkill.
What are the pro's for heaving two implementations of, seemingly, the same solution?
If you mod this up, your slashdot background will turn into a beautiful sunset!
FYI, Xen hasn't required VT since the beginning either. The only problem was you needed a specially patched kernel because linus didn't like how xen implemented their hooks into the stock kernels. It looks like that has been resolved however.
Competition is a wonderful thing!! I suspect three solutions probably will quickly end the vmware / XEN disagreements that went on for so long... :-)
A number of reasons. One is to be able to run different linux distros on the same machine for testing purposes. Another is to set up two completely different environments that run tasks at different times.
I used to work for a search engine company (not Google) that has thousands of linux servers. After doing a bit of research they discovered that the vast majority of these machines are idle for a good amount of time. Rather than buy new servers they simply installed Xen and intellegently divided up the physical hardware to perform their different tasks. Now instead of separate physical servers to do web spidering, data analysis, log processing, etc. they've combined these tasks onto the same physical hardware but kept them as individual virtual servers.
it might be worth remebering that the _kernel_ part of these VM solutions have been merged into the kernel, and not the userland tools (they are seperate packages). A VM needs certain kernel hooks for the hardware virtualization, hence the need for a kernel 'driver(s)', and the VM scheduling happens there too.
:-)
So the comparisment with emacs is very inaccurate, emacs is a userland tool, and doesn't have kernel modules
...why should virtualization technology be incorporated into the kernel, and not kept outside, as a "3rd" party app? Shouldn't the kernel be essentially a library and some low level support (multi-tasking, handle certain interrupts, that sort of stuff)? I've never really even considered bash, or even ls as part of the kernel. Am I just really mistaken, or is the word kernel used more broadly than that?
"You will do foolish things, but do them with enthusiasm." - S. G. Colette
I don't have any idea what you mean by "VMWare Player doesn't work with my wireless card". VMWare doesn't know ANYTHING about your underlying networking hardware. All it uses is the IP stack.
I once considered writing a kernel emacs accelerator module, but later decided it would be easier to just run Linux inside of emacs!
It's a big help for software developers needing to support multiple platforms/versions. At my company we provide support for the past 5 or 6 versions of our software, so I have a VM for each version that I fire up when I need to check something or patch a bug. Lots easier than dealing with multiple physical machines.
"The best argument against democracy is a five minute chat with the average voter."
--Winston Churchill
If kqemu want to integrate their kernel components into the kernel they can. It's not the Linux developers going out looking for things to add to the Linux kernel... or them developing their own solutions.. or anything like that. All of these technologies have been added to the kernel tree by the people who maintain them.
How we know is more important than what we know.
Please review Robert Frost: "The Road Not Taken".
Help stamp out iliturcy.
Why should it be the job of a particular kernel or it's VM component to satisfy specific requirements of a specific version of another kernel (the Vista kernel?). Besides, how exactly did these developers get access to the Vista kernel specs? Should it not be the other way round - i.e. for closed-source Vista to be compatible and optimised for the open-source Linux kernel?
That Linus chose the GPL as a matter of convenience was well known, his antipathy to the FSF is also well chronicled; but this aligning to the interests of specific closed-source kernels from Microsoft is a dangerous new development.
If you keep throwing chairs, one day you'll break windows....
So do any of these solutions support 3D graphics (nvidia) hardware?
The only reason I currently have a windows partition at all is for gaming.
Being able to run Windows 3D games in a VM would allow me to move to a Linux-only box and also give me a nice way of:
* managing the way windows keeps grabbing diskspace
* remove the need to go through reinstalling/reactivating windows every 6 months or so
* limiting the damage Windows virusses can do
* limiting all the phone-home comms with Microsoft that windows keeps doing
If you still need access to Adobe products like Photoshop for print production, like my GF does, there's nothing available on Linux that will do the job.
Linux + Xen + W2K lets her leave the windows desktop and still use these tools.
Pretty straightforward.
Yes.
-1 Uncomfortable Truth
I have vmware installed and use it on a regular basis. Here's what for:
I've talked about it elsewhere, but I also envision a system using UML (or now, lguest) to separate servers (or groups thereof) away from the main system to reduce security risks. It would let you use selinux with a fairly restrictive policy on your controlling system, and if one of the subsystems is compromised it could easily be discarded and rebuilt.
"You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
Why have virtualization on the desktop? Good question. Here are a few answers I can think of:
* Software development, as it has been mentioned in this thread.
* Testing "stuff", a sandbox to play in before messing with the system, "stuff" being other operating systems, applications, services.
* security, the secure vm and the unsecure vm running on the same physical hardware.
* Corporate environments, the user's machine is a vm that can be ran on any of the physical PCs on the network.
moi
Each of Xen, KVM, lguest, and UML can be considered virtualization products but they are all vastly different. Below I describe each of these products in relation to their inclusion to the Linux kernel.
Xen - the Linux kernel supports code allowing it to be run as a guest underneath the Xen kernel, all through software. Linux's support for Xen does not make Linux a virtualization platform, only a GUEST for the Xen kernel which sits at Ring-0. (though a "dom0" Linux system can interact intimately with the Xen kernel, it actually sits at Ring-1). I should note that the Xen kernel also supports hardware virtualized domains, though this is unrelated to the patches to Linux.
KVM - the Linux kernel supports virtualization of guests through hardware extensions, this requires supported hardware. Linux becomes the Ring-0 kernel.
lguest - (my understanding is) an unmodified Linux kernel can act as a hyper-supervisor through loading Linux kernels as modules. Linux sits as both Ring-0 (supervisor) and Ring-1 (guests). This is experimental with limited features and only supports Linux guests.
UML - the Linux kernel becomes a userspace program. This allows Linux to run as an executable application/program. With UML, Linux can be compiled for a Linux or Microsoft Windows target. The executing OS sits at Ring-0 and the UML program sits at Ring-1. This has the advantage of requiring no modifications to the host OS and is very portable (you could email an entire Linux system to a friend without requiring anything installed to their system), but the disadvantage of poor performance.
From a high-level, the products UML, Xen, and lguest are actually very similar in function. They act as architectures to which Linux can be compiled in order to make it a guest OS of another Ring-0 kernel. These architectures provide the targets of a kernel module (lguest), a userspace program (UML), or a xen-domU guest (Xen). On the other hand, KML is the only patch that is intended to add support to Linux to act as a Ring-0 kernel on behalf of guest systems -- and even then, KML can be viewed more as a hardware driver for the processor extensions.
But will it run on... nevermind!
The game.
Breach of software license? Possibly... if I recall correctly, the EULA for Vista forbids running in a virtualised environment. I believe it is perfectly legitimate to run XP this way as long as the license key has been purchased legally and is not currently in use in another installation (obviously with the exception of multi-user licenses). For other versions of Windows, it depends on the EULA but I think Vista is the only one to forbid it.
I do. It's delightfully convenient if you do development work, because you can run tests in something a lot more realistic than a chroot build directory. It's particularly nice if you're doing kernel work. For cluster testing, the only alternative involves $20k worth of hardware.
So, Joe user may not need this, but it's a major feature for the people who work on improving the Linux kernel. That alone justifies including these features.
There's no failure quite as dissatisfying as a complete and total solution to the wrong problem.
I understand the desire for VM's so this question really isn't about that, but why can't you have 5 or 6 versions of your software on 1 box? When I worked for an ERP company it was pretty common for our servers to have multiple versions of the software.
Why what? Why multiple virtualization solutions? Because each solution has its own advantages and disadvantages. Use the solution that fits your needs best.
AFAIK, Direct3D support is highly experimental in VMware, and I haven't heard of it being available in any of Xen or KVM (Lguest can only run Linux guests, so Direct3D support is a moot point). So the answer is probably no.
Try running your games under Wine instead. It would probably be a safer bet, but it isn't guaranteed to work especially not without hitches. I've read it has improved a lot since I tried it 4-5 years ago, but it isn't 100% complete yet.
Then Lguest is not for you, since it requires a guest kernel with Lguest support, which Windows most certainly don't have, or will ever have.
KQemu hasn't been GPL for very long, so it hasn't so there hasn't been very many people looking at it for very long. Also the developer of KQemu probably hasn't even ASKED it to be merged (or maybe he has, I don't read the LKML). It's also possible he submitted it to be merged and theres a few things they want him to work out first (Xen has been trying to be merged for a LONG time now).
I think all the xen users out there will agree with me when i say "yes!!!!!!!!!!!". I'm actually quite impressed, given what is involved in maintaining xen in the kernel, that this happened as soon as it did.
BTW, Lguest only runs Linux on Linux, so it is similar to Xen.
KVM can run Linux on Linux or Windows on Linux, but it needs special hardware, just like Xen.
Soooooo, if you wish to do Windows on Linux and you don't have special hardware, then you are pretty much limited to VMware Server and Qemu (Virtualbox).
Excuse me, but please get off my Pennisetum Clandestinum, eh!
At least the Enterprise and Ultimate editions are okay per the EULA to run in a virtualized environment, but I'm not sure about the rest. I faintly recall Microsoft being opposed to using the same copy of the cheaper editions as both the host and the guest OS. It is possible that it is legal to run a separately purchased copy as a guest in a virtual machine.
IANAL though, and I don't have Vista, so I cannot check its EULA.
There are cases where virtualization is very handy. Instead of creating a 'do everything' server where the configuration of Apache, PHP and Perl can interfere with Amavisd-new, CLamAV and SpamAssassin - you upgrade the one and break the other - one can keep things separated by running two virtual servers - one for Apache and the other for email. Then you can even stop and start the one without influencing the other. Once you start playing with VMs you can build up a collection of basic installed systems for rapid deployment: Keep DVDs with images for Windows 2003 Server, Windows XP Pro, various versions of Linux, all pre-installed (registered/activated) and ready to go. You can even have complete solutions for email, groupware, web servers, CRM and what not as virtual appliances to deploy at a moment's notice. Some systems are extremely hard to install - this way you can do that once and keep a copy. As business requirements grow, you can transfer a virtual machine very easily from an old slow server to a new faster one, without having to reconfigure anything. Lastly, once you have your laptop set up and everything working properly, you can use a VM to experiment with something - even run multiple servers and clients at the same time, without fscking up your real system. I suggest that you go and try VMware Server. It is easy to set up and will make you discover a whole new world of productivity. Once comfortable with VMware, you can try the other systems which are still somewhat more difficult to get going.
Excuse me, but please get off my Pennisetum Clandestinum, eh!
Virtual machines can be very useful in the server room, especially those with advanced features such as live migration. A guest can be migrated between different hosts without shutting the guest down. It was previously quite common to run each service on its own computer, and still is, but now we can run these services on its own virtual machines instead, making each system fairly clean and only used for one service.
Several different virtual machines can run on one host, making it possible to aggregate many low-load services onto one host, removing the necessity to have a large amount of nearly idle computers. If you find that you need more computing power, just buy a new computer and configure it as a host. Then you can move guests there or create new guests for new services.
That was a perfectly legitimate question (and one that I'd have asked, too). Right now, most people install VMWare to run Windows on their Linux hosts. I'd be quite pleased to be able to run it using standard, Free, built-in functionality.
Dewey, what part of this looks like authorities should be involved?
Three choices, but none of them gives the optimal solution, which is unmodified guest OSs on processors lacking specific hardware support.
This is apparently hard or impossible on many i386 processors due to the difficulty of intercepting certain instructions. But since Linux updates the processor microcode at boot time, would it be possible to modify the processor microcode to change the way the offending instructions operate ?
(just invalidating them would proably be enough)
Yes I use virtualisation a lot.
I run Debian's unstable branch (sid), but I still need to build packages against Sarge & Etch. With virtualisation I can have both those systems running with X, etc, installed upon them. Whilst you can get by with chroot()s having a fully running system, with networking etc, is a much nicer experience.
It is also very handy for testing deployments and system upgrades. Prior to upgrading several remote servers from Sarge -> Etch I was able to fully test this on a virtual install, to make sure that I would run into no problems.
There are many more reasons why you might want to use this kind of system on an average desktop, but these are enough for me.
Actually, adding the complexity of all this virtualization into the kernel is a little scary to me.
I just upgraded my wife on Debian Sarge testing with a Win4Lin 2.4-27 kernel. Web designer who demanded PhotoShop, Illustrator, Flash, and IE but the Win98 Win4Lin base and apps were getting dated. Did a dist upgrade to Etch Stable and installed XP Pro on QEMU with kqemu. Was good. The kqemu performance was very adequate, net, samba share and got her apps working.
But then I upgraded to Etch testing. First, qemu itself had changed -- blog rumor says he changed the base virtualized hardware and my XP didn't start. Downgraded and pinned that. Couldn't use the 2.6-21 kernel with nvidia. I understand it has been a function issue within the paravirtualization. Could work around that an easy way -- in which case qemu wouldn't work again. Or I understand a person can hack some source. Also, I let a bochsbios upgrade slip in. Another package that killed qemu that I had to downgrade and pin.
So I ended up with sort of a Debian Etch testing but with several packages pinned back to stable that works fine but it has been a bit of a minefield. And it is my understanding that the virtualization built into the kernel is at the heart of the problem.
Um, you know, that is basically what virtualization is meant for, and it's common practice in *every* company with more than 5-10 servers. I'm a bit surprised this makes for a "+4, Informative" on a technical site like the dot.
I wonder why all the Linux priests here on the dot don't get that Virtualization is the magic key to drive Linux adoption among the typical Windows luser crowd. Since VMware Server was free, I've converted almost *everybody* I help with computers to kubuntu with VMware running a XP VM for the few things that people "need to keep" like say Quicken or their exotic label printers' proprietary software or whatnot. I notice that people don't panic because Windows is "still around", but when I give them a short introduction to their new system, I use Linux software all the time, and present Windows at the end with the comment "oh and if you need your label printer, just fire up this windows button (VMware link on desktop) and off you go.
Just snapshot their Windows VM after configuring it, and when it unavoidably fubars, you just login remotely via ssh with X forwarding, launch the VMware console and revert the VM to the snapshot.
This takes around half an hour longer than giving them Windows-only, but it will save you a *ton* of grief even short-term. I have relatives who fuck up their Windows installations at least biweekly. I've shown them the 'revert' button and put the snapshot on "protected", so they can never fuck up beyond all repair anymore. None of them has managed to do *any* harm to the k|ubuntu I gave them, and there are real boneheads among them.
Who is General Failure and why is he reading my hard disk?
I've slowed worked Linux into everything else I do on a computer, now just let me never have to switch out of it and I'll be set.
KQEMU (and indeed QEMU) releases are relatively infrequent, the latest pair of releases was in February.
QEMU has so far been a solid foundation for a handful of other FOSS virtualisation solutions, KVM use a modified Qemu (Does anyone know if KVM support is going upstream into the next QEMU release?) and Virtualbox incorporated QEMU to establish full system emulation on top of their own hypervisor. If anything I'd like to see the Virtualbox OSE kernel module merged, which imo is far superior to raw QEMU+KQEMU at the moment.
QEMU is far from dead though, there seems to be quite a bit of activity regarding patches on the qemu-devel mailing list.
How is someone who has "converted almost *everybody* I help with computers to kubuntu with VMware running a XP VM" NOT a Linux Priest?
That's probably the worst thing you could possibly do to a home user, if someone wants Linux they can decide for themselves, pushing it on people even if you help them resolve problems, is a bad idea, one that i hope doesn't need to be explained to you.
That little snapshot trick you have taught them is also ripe for "where the fuck did my report go?"
You run linux on your wife ? Cool!!
I'm guessing that wasn't on their radar screen...
I keep an old PII clunker kicking around to run Galactic Civilizations V2.5, an OS/2-only game. I'd really like to get rid of it, but keep OS/2 for the game. With QEMU and Virtualbox, I've occasionally managed to "install OS/2" but the VM crashes when trying to do much more than merely bring up the OS/2 desktop. I'd be interested in any working solutions. TIA.
I'm not repeating myself
I'm an X window user; I'm an ex-Windows user
Anyone attempting to compile a full Linux kernel with every conceivable feature that doesn't clash with another turned on, non-moduluar, will be able to measure the build time in months...
:-)
Unless they're running a virtualized cluster of machines!
+++OK ATH
In any definition it is more legal than the way most people run Windows to begin with.
--Duuuude... You just made my Friends list for that. :)
.
== WolfriderV6 == I'm willing to admit that *I just might* be wrong... Are you??
--That's what BACKUPS are for... With Win2k / XP Pro, you can use ntbackup. Failing that, you can always install vsftpd on the host and FTP your files over.
.
== WolfriderV6 == I'm willing to admit that *I just might* be wrong... Are you??
--Install Nomachine NX on their Linux host, and your remote experience will be even better.
http://www.nomachine.com/
.
== WolfriderV6 == I'm willing to admit that *I just might* be wrong... Are you??
No idea, probably not, but really I couldn't care less. All DX gamers I know are teens, and I'd *never* help one of those. They're young enough to either learn how to run a Windows machine or go dual-boot. I've explained the latter to some, but won't support it. I've got enough with the old folk already.
Who is General Failure and why is he reading my hard disk?
Probably not, no idea, but I couldn't care less. All DX gamers I know are teens, and I don't help those beyond some pointers on what to google. They're young enough to either learn how to run a Windows machine or go dual-boot. I've helped some with the latter, but won't support it. I've got enough already with the older folks.
Who is General Failure and why is he reading my hard disk?
No, I'm not a Linux priest at all. I'm just being pragmatic and going the way of the highest maintainability. Plus, I'm fed up with repairing stuff that broke because people keep downloading warez to perform basic stuff every other fricking OS has legally available for free.
And I think you're not considering my target audience enough. We're talking about people who have no clue whatsoever and just want to surf the web, write e-mail, rip their music CDs to MP3s and listen to them, and maybe some misc stuff like converting their vinyl to CDs or burning DVDs of the family holiday videos. They don't know how to do it at all, and I'll rather keep them warez-free and get a maintainable system as a bonus. For them it doesn't make a difference what they use, as they couldn't tell Windows from Linux anyways.
Who is General Failure and why is he reading my hard disk?
Aw, c'mon, spare the strawman. That's a no-brainer. You don't keep their "My Documents" in the VM but link it to someplace in the Linux file system where it's regularly backed up. (You DO know that all Windows system directories can be easily symlinked or moved, yes?) Add in Subversion and you can even have something similar to the Time Machine feature the upcoming OSX 10.5 will have, even if it won't be as accessible for the lusers. (But as they always refer to me first when they lose something instead of even searching for it locally... you get the point.)
Who is General Failure and why is he reading my hard disk?
I looked at the features and liked the management console, but apart from that, what does it give me over a ssh -CX user@host? Everyone I support has at least 6 MBits with 768kBits upstream, and that's *very* responsive with plain vanilla compressed X forwarding as offered by OpenSSH, available for Linux (bummer), OSX, the BSDs and even for Windows through Cygwin-X-on-USB-stick-no-installation-required-tha nk-you.
Mind you, I'm curious, not trolling.
And: My pet peeve is that the VMware Server console on the remote machine sometimes runs shitty through X forwarding, but you can always just tunnel a connection for a locally running VMWare Server console, that works like a charm.
Who is General Failure and why is he reading my hard disk?
Oh, my second three-digit-fan. :) Reciprocal.
I just hope you didn't friend me as a Linux priest, because I'm not. I'm from the "use the best tool for the job" crowd and just getting *very* pragmatic with age. Personally, I use OSX at work and Linux/FreeBSD at home, but that's really only because they fit my usage patterns best. I was on Windows quite a long time, and still use it at work for, say, 10-20% of the time. I'm just getting sick and tired of it, because compared to the alternatives, it has really lost a lot of ground, and Vista is not making it better. Mac OS and Linux have improved significantly in the last 7 years while Windows has actually gotten worse. IMHO Microsoft has a serious problem here. Maybe Vista will *really* be a huge flop and get them working on a completely new OS, designed from the ground with security in mind, that would be great. I mean, with their monopoly, they also have the power to force the market to the new version, if they have the balls to take the flak just this once. Apple has done it with OSX, and there is no reason why Microsoft couldn't.
That was my Microsoft rant of the day. If you feel like dancing or getting naked, don't worry about me.
Who is General Failure and why is he reading my hard disk?
Interesting. I accidently closed the tab directly after clicking "submit", but it did go through. Why does it take several seconds from submit to response page then?
Who is General Failure and why is he reading my hard disk?
--Try it on (1) remote install. Trust me. I'm all up on Linux and Vmware, and NX is the ONLY thing that makes Server remote console usable over Internet for me. Plus, you get a full terminal-server desktop along with the bargain. (I use Icewm or XFCE.) // Haven't had to use anything that slow in years, but I heard it also works 1/2way decent over DIALUP.
.
== WolfriderV6 == I'm willing to admit that *I just might* be wrong... Are you??
--'Sall good. I'm very much eclectic** myself.
** 1 : selecting what appears to be best in various doctrines, methods, or styles
2 : composed of elements drawn from various sources; also : HETEROGENEOUS
( Courtesy m-w.com )
.
== WolfriderV6 == I'm willing to admit that *I just might* be wrong... Are you??
I've got a couple VMWare VMs on my laptop. I'm running Windows XP (boo hiss, I know...).
The first is Linux system, Ubuntu, for running tools that aren't available for Windows and web site testing. Technically the OSS DBs, PHP, and Apache have Windows builds, but the pathing and other differences are bothersome, especially if the ultimate goal is to run the site on a Linux server.
The second is a bare bones Windows partition where I test suspect websites or software. Clients ask me to quickly evaluate a program that they want to buy. I'm not about to use my computer as a guinea pig (any more) now that VMWare is free and the hardware requirements are low enough (by todays standards).