Novell's Virtualization Partnership
Jane Walker writes "The push for a virtual data center and utility computing continued this week as Novell announced that SuSE Linux would have support for Virtual Iron out of the box." Novell has also guaranteed that 'that all existing independent software vendor (ISV) certifications will not be affected.' From the article: "'The applications certification [component] is huge,' said Novell director of data center applications Justin Steinman. 'Customers want to know that their existing applications are not going to break when they deploy their technology [on a virtual server].'"
In computing, virtualization is the process of presenting a logical grouping or subset of computing resources so that they can be accessed in ways that give benefits over the original configuration. This new virtual view of the resources is not restricted by the implementation, geographic location or the physical configuration of underlying resources. Commonly virtualized resources include computing power and data storage.
A good example of virtualization is modern symmetric multiprocessing computer architectures that contain more than one CPU. Operating systems are usually configured in such a way that the multiple CPUs can be presented as a single processing unit. Thus software applications can be written for a single logical (virtual) processing unit, which is much simpler than having to work with a large number of different processor configurations.
A new trend in virtualization is the concept of a virtualization engine which gives an overall holistic view of the entire network infrastructure.
Virtualization is a broad term that refers to the abstraction of resources across many aspects of computing. Some common applications of virtualization are listed below.
A virtual machine is an environment which appears to a "guest" operating system as hardware, but is simulated in a contained software environment by the host system. The simulation must be robust enough for hardware drivers in the guest system to work. With paravirtualization, the virtual machine does not simulate hardware but instead offers a special API. Operating System-level Virtualization is virtualizing a physical server at the operating system level, enabling multiple isolated and secure virtualized servers on a single physical server. Partitioning is the splitting of a single, usually large, resource (such as disk space or network bandwidth) into a number of smaller, more easily utilized resources of the same type. This is sometimes also called "zoning," especially in storage networks. Aggregation, spanning, or concatenation all combine multiple resources into larger resources or resource pools. For example, symmetric multiprocessing combines many processors; RAID and volume managers combine many disks into one large logical disk; RAIN and network equipment uses multiple links combined to work as though they offered a single, higher-bandwidth link. At a meta-level, computer clusters do all of this.
Wikipedia article
and another great article with an introduction to Virtualization
Don't anthropomorphize computers: they hate that.
When Novell bought SUSE, I thought that nothing appart from the name change would happen. Over the last months Novel turned out to be a big surprise for me. Those guys really push some inovation into the linux world. Just to remind you, there's Novell's xforms implementation, support of a large number of open source projects (i.e. Gnome), or among the current issues, the most wanted win/mac apps poll or the opening the Xgl.. pretty cool.
I've not really seen any reports of utility computing really being used on a regular basis. Is anyone actually using it on a regular basis? I can see how something like the Sun Grid would be used for special projects, but I'm not convinced that general-purpose utility computing is suitable for most companies in their ongoing operations.
That's not to say that virtualization isn't happening, and that it wouldn't also be useful for utility computing... but the real world examples I hear about aren't related.
500GB of disk, 5TB of transfer, $5.95/mo
Just a month ago, we got budgetary approval on migrating our entire Windows/Linux/BSD datacenter from individual machines to virtual. We selected VMware's ESX Server as our hypervisor platform. We'll be moving over 200 physical servers to about ten of what VMware calls "virtual infrastructure nodes". For storage, we'll be using our fiber-channel EMC Clariions (two CX700's) and some new iSCSI storage. I've been researching this for over a year now and the time is right. 2006 will be the year that virtualization really takes off and goes mainstream.
FYI: The only thing we're not moving to ESX will be our 8 and 16 CPU SQL Servers. As it stands right now, ESX only allows 2-way virtual SMP. With ESX 3.0 in Q2, they will up that to 4-way virtual SMP. Nonetheless, anything requiring a ton of throughput is best left to dedicated hardware as opposed to VM's. (for now, anyway)
"It sounds as if Novell will be shipping a variant of their standard kernel with the changes needed to support Virtual Iron," Haff said.
I had a virtual iron once, but I had to get rid of it because I became constantly worried that I had left the damn thing on.
He who knows best knows how little he knows. - Thomas Jefferson
VMware and ESX have different market fields. They both virtualize, but VirtualIron utilizes a dynamic linux cluster of machines (there is a compatability list of hardware as well as software, SuSE compatable means on the client side) that requires lots of specialized low lantancey hardware such as infiniband fiber components (starting in the $15k range for the very very low end VMware ESX runs on a single high end box. It has a much lower pricepoint. They really dont cross opertunities as much as you would think. BTW, i have my VCP for vmware and have also been working closley with VirtualIron for the past 6 months or so (they dont have official certs yet). Both are very good products. I cant wait for ESX3 and the next VI product in the following quarter (big stuff happening there)
Over the past week I think I have installed (or tried to install) every single freely-available open-source Linux virtualization technology available:
- Xen
- Linux-vserver
- OpenVZ
Or researched others:
- OpenVPS
- FreeVPS
And ones that are not open source:
- VMware Server (the new free Beta version of the old GSX Server product)
My personal recommendation is that you not bother unless you have a lot of time to kill and don't mind disappointment. I have nothing but respect for the fine (and very smart) people who are working on this technology for Linux, but it's not ready for simple people like myself.
I spent two full days (about 24 hours total) working on Xen and in the end I was never able to get iptables to work in a domain. The documentation was mostly incomplete and thus there was a lot of scurrying around trying to find bits and pieces of info that would allow me to get it together.
I had the most success with linux-vserver and it was by far the easiest to get running (after I had re-compiled the rpms (fc4) for my x86_64 smp target machine. My first vserver was pretty badly mangled once I was done with it and, wanting to remove it found that there was no actual *documented* process for deleting it. I dare you to try to find a description anywhere on how to remove a vserver...
Finally I pooched my system by trying OpenVZ.
Virtualization is a "good thing" in my opinion, and as an architect I build it into many of my designs. But in the free Linux space you might end up asking yourself the question "do I really need it." For me the answer is "yes" as I want to run multiple mail servers with different configurations on the same box. For you, unless you really need it, you might want to see if you can make do the old fashioned way.
I'm going to keep playing. If something you have tried works really well for you in a FC4/x86_64/SMP environment please let me know.
I am not interested in articles about life extension advancements.
More and more companies are getting into providing Virtual Private Server business for customers who aren't quite ready for colocation or dedicated server usage, but have outgrown the basic shared hosting or have special needs. This is a good environment for people who need a web hosting environment which they can configure and customize but don't want the overhead of an added machine. Furthermore, because of the nature of server load it is efficient to put lots of customers on one massive machine.
With the rise of the dual core Opteron offerings from AMD one can have a very nice server which can support a huge number of customers. It won't replace colocation for the people who want a very personalized setup or need lots of power but cheap virtual servers will likely gain a higher market share soon.
isomerica.net | Foonetic IRC
F R O S T P I S T ? Why put those letters in the first sentence in bold? I've been scratching my head trying to understand but for the life of me, I don't understand.
Novell has been doing some great things for the OSS community - releasing AppArmor and now this. Nice work, Novell!
ConsultingFair.com
If you're running on a supported OS, VMWare's awesome. But on nonsupported platforms I agree it's somewhat painful, I gave up getting it set up here with non-supported kernels; though it seems to gave given decent instructions on how to build the required kernel modules.
Someone must have taken your CFO out to a very nice lunch.
Seems like much of the rest of the industry (google, msft terraserver, etc) is moving the other direction, where they put applications that once needed ten large computers across 200 low-end commodity boxes.
Novell will be exhibiting at SCALE 4x this weekend.
Breakfast served all day!
In the old days before Intel and AMD put virtualization support in the hardware, it meant modifying the guest operatiing systems so the hypervisor could trap events of interest that weren't normally trapable, things like reading the real control register values. So if a guest OS wanted to modify a control register value by reading it and storing out a modifying value, having it read the real control register rather than its virtual control register was a bad thing. With virtualization support, the hardware can trap these without having to make a modified copy of the guest OS.
Other areas needing support are things like spin locks. If a virtual processor spins while waiting for a lock held by another virtual processor, it's going to waste cpu cycles and peformance will suffer. This is analogous to implementing a spin lock for user threads. It's a bad idea. The typical thing to do is preempt to the hypervisor if it's not known whether the lock holder is currently executing. The only awkward thing here the virtual execution environment, i.e. knowing if you are running in one and how to preempt, is not standard.
Dont confuse vanilla low-end boxes with vmware. ESX allows you to have no downtime, snapshots, use resources cost effectivly, etc. Some applications wont spread across boxes some will. You never look at 1 solution to a problem, you look and see what is the best. ESX or upcoming Virtual Iron has many cost savings many problems.
So no, the rest of the industy is not moving in the other direction.
Anyone failure with virtualization and Linux guests will know about Time Sync issues that are around. I have experienced this with SuSE Enterprise Linux guest running on VMWare ESX Server. My question is does anyone know if this virtualization system has taken care of this issue.
Basicly put, Linux guests loose or gain time, up to hours a day. Major issue in the enterprise.
The issue is described below, this is taken from the VMWare knowledge base.
Linux guest operating systems keep time by counting timer interrupts. Unpatched 2.4 and earlier kernels program the virtual system timer to request clock interrupts at 100Hz (100 interrupts per second). 2.6 kernels, on the other hand, request interrupts at 1000Hz -- ten times as often. Some 2.4 kernels modified by distribution vendors to contain 2.6 features also request 1000Hz interrupts, or in some cases, interrupts at other rates, such as 512Hz.
Furthermore, an SMP-capable Linux kernel requests additional timer interrupts from the virtual local APIC timer. An SMP-capable kernel running on a one-CPU system generates twice as many total timer interrupts as the corresponding UP kernel, while such a kernel running on a two-CPU system requests three times as many. In general, an SMP-capable kernel running on CPUs requests times as many interrupts per second as a UP kernel. For example, an unmodified 2.6 Linux kernel running on a two-CPU virtual machine requests a total of 3000 clock interrupts per second.
When a guest asks for more than 1000 clock interrupts per second, it can be difficult for the virtual machine to keep up, especially if other applications are running on the host at the same time. This can cause the clock in the guest operating system to fall so far behind real time that it is unable to catch up. The overhead of delivering so many virtual clock interrupts can also hurt guest performance and increase host CPU consumption.
It can also be difficult for the guest operating system to field 1000 clock interrupts per second. Even on real hardware, clock interrupts are sometimes lost because the operating system is busy for more than 1 millsecond and another clock interrupt comes in before the previous one was handled. Linux 2.6 contains code to detect such "lost ticks" and correct for them. Unfortunately, this code can trigger the correction spuriously in some cases, resulting in the Linux clock running more quickly than real time. This problem happens more often in a virtual machine than on real hardware, and can cause noticeable time gains. In some cases, the guest clock has been observed to run more than 10% more quickly than real time.
Interesting. So, instead of maintaining 10 pieces of hardware, you now have to maintain 200. And, those 200 boxes will be significantly underutilized (probably in the range of 2 to 5% CPU utilization). So, now, your electric bill goes up for TWO reasons:
1) You are using a larger data center, and
2) You are wasting a significant portion of your CPU
If you are working for a company that is not taking advantage of all of the virtualization technology out there, then you are working for a company that is wasting money.
I think you misunderstand how these systems work.
If your 200 boxes are in the range of 2% to 5% utilization, then you bought 20 times too many boxes. The fundemental idea behind any of these clusters is that adding low end (sub $1000) servers can be done incrementally to match your needs more closely than any single large server would allow.
Mercy me...
If you're running an ESX system (or other hypervisor-based VM solution), you buy a handful of big-iron servers and when you need to increase capacity, you buy another and spread the load. It's horizontal like that.
One of the things that nobody has mentioned is that virtualization makes disaster recovery a reality. For example, if your DR/BCP plan includes buying duplicates of these 200+ servers to put at an alternate facility (or, if your app is coded properly, a handful of duplicate servers) so you can restore an image from tape (or a slipstream install or whatever), then you don't have much of a plan. With VM's, I can sync disk images up to our remote facility. No need to have duplicate hardware as you just need the hypervisor. If your datacenter is worth a shit, if a catastrophic event were to happen, the routes will fail over to your secondary facility, where your VM's are already up and running in warm-standby. To top it off, if you run Asterisk inside of a VM, in theory your phones would be complete uninterrupted. If you do things with Terminal Servers for your knowledge workers, your BCP plan consists of simply driving across town to your secondary facility. Yeah, it's an inconvenience, but your voicemail and phones will work, and when they sit down, their apps are all there and ready to go.
Really, it's just naive to think that buying dozens of whiteboxes will have the same ends as virtualizing. It sounds more like a sysadmin who has never really worked in a (and yes, I am going to say it) "enterprise" environment. By enterprise, I mean you work with tons of data where downtime truly does equal loss of revenue on a mass scale. I don't mean "enterprise" in the sense that "if a few dozen blogs go down, tough titty, they'll be back up when we get around to pulling tapes."
Or, a sysadmin who just wants tons of servers because it's cool to show people row upon row of cabinets.
Once you've worked in a real enterprise environment and had to burden the responsibility of keeping information systems running, you will understand why virtualization is such a major deal. It commoditizes the computing environment in the same way that the SAN commoditized disk storage.
VM's bring so much to the table. To look away is not only naive, as I said above, but also ignorant.
I am currently implementing VMWare in our company. We are a development house and the advantages of VMs on high end boxes are a really good solution for us. At least I think so right now. We predefine VMs with certain patch levels, service packs, software versions, etc... and take snapshots. The plan is to move from about 60 servers of various platform types, Linux, Solaris, Winblows, to 6 running VMs. We bought a whole mess of SATA Raid storage to back up the VMs.
Of course none of our production servers are moving to VMs, but for the development department I think it's a great idea and so do the code monkeys. For bug cleaning it just makes sense.
It's also great for our customers because we can quickly create a VM that matches their exact configuration. This makes it easy to test customer reported problems with a duplicate of the system that our customers are running. Sweet!
Time will tell but IMHO I think it will work out very well for us.
Too bad you are an AC and will probably never see my reply.
I think you misunderstand how these systems work.I am presently working on the implementation of a virtualized environment.
If your 200 boxes are in the range of 2% to 5% utilization, then you bought 20 times too many boxes.Ok. You have a web server. It uses one CPU on a wintel box. That one CPU is being utilized at 2% to 5%. You can't necessarily add ANOTHER application to that physical server (because it is a production server). You don't want to risk your production environment. But, you are WASTING 95% of your CPU. You have spent 95% more than you should have.
Put that web server on a virtualized 8-way. On one 8-way, you can put approximately 30 individual virtualized partitions. Now, your virtualized 8 CPU box is doing the work of 30 individual sub $1000 servers. You are using significantly less physical space and less power. Also, you need fewer personnel to run the operation, since you don't need to maintain 30 different boxes. With VMWare, you can move applications from physical 8-way server to physical 8-way server with nearly no interrpution (the users don't see the difference). That allows you to bring a server down for repair without impacting the users. 8-way servers are expensive (you will spend alot more money on one 8 way than on 30 individual servers), but in the long run, your enterprise saves a ton of money.
You get a lot more performance per dolar on small X86 PC hardware than on any kind of big iron. I.e. SMP costs a premium. That premium multiplies as your CPU count goes up.
$1,000 for single CPU box
$5,000 for dual box
$30,000 for quad CPU box
$150,000 for 8 CPU box
This asumes same amount of RAM per CPU. Looking at this list you should see that you can get 8 chips for $8,000 or $150,000. Depending on how you virtualise.
--= Isn't it surprising how badly I spell ?
You've got it all wrong. Google and other big data centers use clustering of POTS components as a replacement for far more expensive big iron. In this scenario, all of the hardware should receive high utilization, because you're clustering because you're compute bound to begin with. Virtualization is the other way around, you've got many small tasks, none of which are compute bound. In this case, consolodation is the more efficient choice. IT is dynamic, and opposite solutions work in different situations.