An Overview of Virtualization
IndioMan writes to point us to an overview of virtualization — its history, an analysis of the techniques used over the years, and a survey of Linux virtualization projects. From the article: "Virtualization is the new big thing, if 'new' can include something over four decades old. It has been used historically in a number of contexts, but a primary focus now is in the virtualization of servers and operating systems. Much like Linux, virtualization provides many options for performance, portability, and flexibility."
IndioMan writes to point us to an overview of virtualization -- its history, an analysis of the techniques used over the years, and a survey of Linux virtualization projects.
That article had the virtue of being a virtual cornucopia of information.
The theory of relativity doesn't work right in Arkansas.
I love virtualization. What else will let me squeeze yet another virtual server onto my kick ass server.
The kick ass server being a Celeron 2ghz machine with 256 megs of ram. A few more virtual servers and I might get usage up to 10% of the CPU. One of these days I might even let some users access it.
Virtually anyone can do it!
Just wanted to point out that qemu can also do virtualisation on Linux, just like Vmware, with a closed-source kernel module. It works quite well too. http://fabrice.bellard.free.fr/qemu/qemu-accel.htm l
This article is an okay overview of many of ways virtualization is now being used. As an aside, has anyone else noticed Apple seems to be missing the boat this time? They're certainly benefitting from virtualization with several players in the market providing emulation solutions and tools now that they are on Intel, but Apple themselves seem to have done nothing and not even provided a strategy. Servers are moving to more virtual servers on one real machine, but OS X's license forbids it from fulfilling that role. Tools for using OS X as a thin client for accessing remote virtual machines are likewise weak. Apple hasn't even provided a virtual machine for their customers to emulate old macs so that users can run OS 9 apps on the new intel machines and they restrict redistribution of their ROM files to make 3rd parties unable to do this. No mention of adding VM technology to OS X has been heard, despite its inclusion in the Linux kernel among others.
Does Apple have something against VM technology? Are they simply behind the times and failing to see the potential?
Since I'm not a server admin, I've always wondered about the use and importance of this "virtualization" I've been hearing so much about. TFA is a pretty useful overview of the topic, and I'm glad it was posted here.
No, it's not red-hot, breaking news, but valuable stuff like this is why I keep coming back to this mess (/., I mean). If you're like me and spend most of your Slashdot time reading the comments, take time to read this TFA.
You are welcome on my lawn.
"Virtualization is the new big thing, if 'new' can include something over four decades old."
You just wait. Next thing you know we'll be running Lisp machines under our virtualization software. And then there's going to be a new remake of ADVENT and the Great Worm. And a new AI summer.
Please correct me if I got my facts wrong.
I work at a small ISV which just bought SourceForge, Enterprise Edition which is an Apache/JBOSS/PostgreSql/CentOS app for managing SDLC. For a company of our size, they package this as a VMWare image. Installation is incredibly easy. I can definitely see how free virtualization can be a big boon to companies selling and/or consuming web applications for small deployments.
I love being able to run virtual machines on my single desktop. It makes troubleshooting issues much simpler, I just wish they ran faster.
Sig?
The article seems a bit light on qemu too.
An idea that I've been toying with lately is what if we got operating systems targeting virtual machines, especially ones that expose a simplified interface rather than trying to emulate a real machine. Instead of having to duplicate drivers for every piece of hardware in every OS, drivers would only need to be developed for the virtualization environment, and operating systems would only have to support the interface exposed by the VM.
Please correct me if I got my facts wrong.
Don't forget...to pay your $699 licensing fee you cock-smoking teabaggers.
Sure SCO troll, here's an orange virtual $500 bill, a peach-colored virtual $100 dollar bill, a blue virtual $50 bill, two green virtual $20 bills, a pink virtual $5 bill, and four white virtual $1 bills. Now we're all squared up.
MOL is a true work of genius. Even on pretty old PPC hardware it functions with almost no slowdown. (Linux host, OS X and Linux clients). Compared to contemporaries it had no equal - the current generation of products on x86 are just starting to catch up. I'm most impressed with the way my powerbook can sleep (close the lid) under Linux and all of the hosted sessions quietly pause themselves with no problems. They even resume a network connection perfectly on waking up.
It'm glad to see similar happening on x86, finally, as it's one of the things that really made PPC based machines special. (There is some documentation for MOL and Kubuntu here.)
Think of the Children; Sleep with your Sister
Is it theoretically possible to virtualize a few copies of the OS+BIOS+etc. for each program launched to further isolate one program from crashing/infecting others? Or maybe that'd be way too resource intensive?
Virtual appliances will drastically change the way tech sales is handled in 2007. Instead of a sales rep promising their product can perform, they'll now be immediately asked to put their VM where their mouth is.
I for one look forward to vendors coming in and pitching me their software. The ones that can instantly show me the product in a virtualized session running on their laptop will be the ones that we write the check out to.
I for one look VERY MUCH forward to placing our systems on virtualized resources. It'll make us look like a million bucks while saving a million bucks.
This is also great for small businesses who need a quick deployment. I love being able to instantly expand my hardware to accommodate new setups.
Free childcare classifieds: www.carebrite.com
You can't spell "cock-smoking teabaggers" without SCOX.
But in theory, it bothers me. The basic idea (as I see it) is to provide an isolated environment for applications to run. But that's what the OS was/is supposed to do in the first place, and typesafe languages (like Java) also do much of the same thing once again! (E.g. I see no inherent reason for virtual to physical address translation when running Java applications). The biggest commercial application I see for virtualization is server consolidation. Why not just run all those server processes within the same OS? Yes there are good reasons, but is virtualization really the most efficient solution to those problems?
Maybe virtualization is the best compromise given the legacy that computing currently has, but I wonder if some clever researchers have expressed a vision of how all the same ends could be accomplished much more simply and consistently. Or do all these layers upon layers of abstraction really provide necessary degrees of freedom?
and had serious issues with stability and networking. I detailed my experience at my blog if anyone is interested. I also tried using the Linux version of Parallels and had similar issues. If anyone has gotten Vista to run under Xen I would be very interested in your feedback
My experience (limited though it is) with virtualization makes me doubt the objectivity of TFA. Specifically, the comments regarding VMWare appear to be pretty far off given my experience that MSWindows (XP at least) runs fatster in a virtual environment than it does natively, which is the opposite of what the article claims.
Fight psychopharmacological mccarthyism. http://www.norml.org/
This may be a little off-topic, but I noticed that the article claims that Xen runs on FreeBSD. I was under the impression that Xen support on FreeBSD was still a work in progress, which the Wikipedia article seems to confirm. Can anybody comment on this?
Works fine in VMware. VMware server is free by the way.
I have a hard time coming up with cases where virtualization is that useful. If you run an ISP and want to give root-level access to your hosted accounts, sure. If you want to run a few different OSs on your desktop, sure.
But, virtualization is so often touted as a way to consolidate servers. I keep asking myself "Who are these people that have that many servers with so little load, that many servers that they could consolidate (making a single COMPLETE point of failure), and haven't already done so?" Sure, they have a web server, mail server, and DNS server. If they don't mind the single point of failure, why haven't they already put them on the same machine?
In all of the places where I've worked, it's been a race to keep hardware fast enough that a single machine could handle even a single task - putting multiple tasks on the machines would just be lunacy. From small ISPs with overloaded web and news servers to health care companies throwing millions of dollars at single machines to online retail where we're throwing in a half-dozen more dual-CPU machines into the load-balanced pool every year, replacing quad-Opteron database machines with eight-ways, and about to have to go bigger than the eight-way, I've never personally seen a need for something like virtualization.
So... help me wrap my feeble brain around this. Give me some really cool examples.
steve
Oh, you're not stuck, you're just unable to let go of the onion rings.
Uhm... I started using it on the PC platform in 1998/99 with VMWare on RedHat 7. I was amazed when I saw I could boot a Windows 98 system simultaneously with my already running Linux system on a lowly Pentium MMX 233 with 32 megs of RAM. Then I found out that what I thought was new back then was something the big iron world had enjoyed for decades and originated in the 60s. It was just new to x86 is all come 1998/99. Since then, I've moved onto Xen for Linux which is rather amazing in terms of performance and flexibility if you paravirtualize the system. I've got three VMs running on an old Pentium II era Celeron at 400 MHz with 384 megs of RAM. That system has enough horsepower to do the following for my network:
Internal: DHCP, DNS, postfix SMTP server for internal clients, Squid proxy, OpenVPN MySQL DB, DBMail IMAP services that use MySQL as the backend. All in 128 megs of RAM. And they all perform smoothly and quickly.
External: DNS, postfix SMTP server for spam filtering and relaying to the virtual internal SMTP server, OpenVPN server. All in 64 megs of RAM.
I plan to add an Asterisk PBX to that same box for a third VPN so I can have private VoIP with my OpenVPN users (all friends and family as I'm talking about a system at home, not at work).
I've, of course also played with Virtual PC, Virtual Server, QEMU and poked at OpenVZ. For me, a decent virtualization solution has to be able to run other OSes to count as good which is why certain virtualization solutions don't do much for me. If I need access to Windows, I want to be able to do it without wasting good hardware on it. That's why UserMode and Linux Virtual Servers (more akin to chroot jails) do absolutely nothin for me other than when I'm building a Gentoo box. But, this is not the big new thing. It's only that MS is making waves with it now... typical.
-"...bad old ideas look confusingly fresh when they are packaged as technology" - Jaron Lanier (Digital Maoism on Edge.o
I, for one, welcome our virtualized overlords. And their virtualized management systems.
"I've spent my whole life figuring out crazy ways to do things. It'll work." -- Montgomery Scott, "Relics"
I'm looking forward to virtualized klik packages. As a former Mac user I like dropping current software from debian unstable branch into a stable distro as a self contained bundle. With decent virtualization I could also start using third party klik packages, that would be great for introducing new and commercial software onto my distro without risk. And for developers, as it would require the creation of a debian package of your software anyway it makes it easy to go all the way some day, which would be great for the community.
To me, these virtualization schemes are very cool, and I've toyed with QEMU running w2k under mandriva.
But they all have one major showstopper of a problem: I can't use accelerated 3D on the latest graphics cards under virtualized OSs. Often there's emulation of some dinky graphics card from the 1980s, but that just doesn't cut it.
To me, that basically nixes any "real" use they might have had. Turns 'em into toys, cool to look at, but not all that useful in real life.
If I could run both mandriva and XP simultaneously as two virtualized OSs on one machine, I'd be all OVER that action.
The original plan for microkernels was to create more componentized runtime environments, so you could dynamically create virtualized OS's as a collection of the active componenets you needed. Very much like chroot, but pervading way beyond file systems and in to running libraries kernel modules and devices. The tooling was never here, but many people had stary eyes for esssentially a mix-and-match environment that would let you configure and cobble together operating environments at will, and maintain strong privledge seperation.
It really is a pity we gave the whole project up and decided to just implement YET ANOTHER page table in hardware, rather than try to solve the PIC code layout, IPC performance issues, and wrestle with building a new dynamical component based environment. I think we'd see virtualization on a much more pervasive level and a much stronger conception of mobile code, stretching all the way to embedded devices. As it is, the hardware virtualized environments are so insular from each other that there is a) no reason to run it on embedded systems (since integration is all application level, tracing through pretty meaty stacks) (watchdog systems aside) and b) it would impose colossal power consumption needs for mobile devices since it has to run each OS seperately.
Virtualization as we know it is a terrible terrible excuse for unix never having built itself a sufficiently dynamical and configurable environment. Two thumbs down. As cool as running multiple OS's is, it should not have been necessary in the first place.
LordMyren
I have long advocated that, but, for some reason, it won't happen. There are _some_ standards, like VESA, ATA, and various USB device classes (yay!), but everywhere else be dragons: accelerated video, Ethernet, WLAN, ... all need drivers written for every card out there.
That's not a big problem as we move towards PCI Express and similar peripheral connects; they use standardized protocols that can be easily virtualized. Of course, the guest OS still may need hardware-specific drivers, but that's no different from virtualizing USB or Firewire.
Ok, I thought CTSS was a task switching layer on top of the basic OS, FMS. The article goes on to talk about OS-level virtualization and yet doesn't mention TopView or DESQview?
Hands-up who doesn't remember running up QEMM and DESQview to run their BBSes back in the 80's?
Amdahl was the first to offer physical machine partitioning in the mid to late eighties. IBM finally came out with PR/SM (Processor Resource/Systems Manager) some years later. MDF provided complete isolation of resources between two or more partitions. There were no shared channels, intercommunication was done with a Channel-To-Channel connector. This provided a secure, isolated development/test/QA systems at a reasonable price. It was all managed at the macrocode level, which had a Unix-like shell.
Slashdot: Where nerds gather to pool their ignorance
The article describes VMware as a full virtualization solution. "A hypervisor sits between the guest operating systems and the bare hardware as an abstraction layer." Is this really how it works? The hypervisor runs on the bare hardware? I thought VMware was launched as an application under the hosting OS. Then it is able to load guest OS's. So it does not sit between the bare hardware and the guest OS, but rather between the host OS and the guest OS. See the PDF datasheet for VMware Server which shows this architecture.
Is there a different kind of VMware than what I am familiar with? One that runs on the "bare hardware" as described in the article?
I have been toying with this idea for a long time. I would love to see a service where i can upload a vmware image and have them host it for me. Its my blackbox running whatever i want it to run. They wouldnt need to or care to know about it. I would love to see such a service pop up.
It could be like conventional hosting as far as billing goes.(charge for disk space/bandwidth) But I would like to have complete control of whats inside the blackbox.
I find many uses for it. Like moving my home Asterisk server to take advantage of the bandwidth (incoming is ok but outgoing sucks on home connections) and not have to worry about the damn cable company messing up.
I am sure there could be more applications.
Today there are datacenters which offer to give you your own virtual server but its not an option to just upload a server image and have it running instantly.
And sold it on : http://www.vitanuova.com/inferno/
It's great and you can learn Denis Ritchie's favourite language : Limbo
There are places where the networks are not touching,and there are places where they are-Boeing's Lori Gunter
The next step for virtualization will be to processors that make the instruction set virtual. Most importantly specific hardware acceleration for this that makes it practical. The processors will obviously be designed for an x86 default instruction set. But it will be possible to execute foreign instruction sets like PowerPC or 68000. What can't be handled by the processor will be handled in a hypervisor processes though much slower obviously. The big impact of this is that VM byte code can be run directly on the processor.
Also hence forth proprietary instuction set extentions hardwired into the processor can no longer be vender locked. So MMX12 and SSE8 instructions will be translated and executed in a compatable manor. General purpose processors like the x86 will truely become general purpose. Think of it like the old DirectX paradigm. Whatever hardware acceleration exists, it is used, otherwise it's software emulated. It's all byte code and it runs nominally just as fast as hardware instuctions.
And yes much of this is has been done before but not on this scale or envisioned quite like this.
Its your lucky day.
Let me introduce you to EC2
"Inside VMware - How VMware, VirtualPC and Parallels actually work":s /1592.en.html
i -mitschnitte/vmware-t4s2.wmv
http://events.ccc.de/congress/2006/Fahrplan/event
It was really interesting, though not too deeply (including some hilarious throw-in questions from Dan Kaminsky).
An unofficial recording of it is here: ftp://ftpmirror.sectoor.de/ccc/congress/2006/grop
Official recordings of the streams should come anytime soon (read: when it's done).
It took me 2 years to get 5 members of my family to use Linux. Why would I now want them to start using Windows again on the desktop?
... The same concept was used in the 1960s for Basic Combined Programming Language (BCPL), an ancestor of the C language.
And here I thought BCPL stood for Bitchin' Camaro Propulsion Language...