Schooling the Old School
Virtualization of Intel-based computers is becoming increasingly common with the maturation of products from VMware, the virtualization market leader, and competing products including Microsoft's Virtual Server. But Scangas, who has the most hands-on responsibility for Welch's VMware environment, says he still runs up against "old school thinking" from managers who feel more secure running their applications on a separate server.
The idea that each application needs to run on its own server may seem alien to desktop computer users, who have grown used to running many programs at the same time in different windows of a multitasking operating system. But one application per server has become the default deployment for Windows and Linux servers in many data centers. That simplifies life for data center operators by keeping a crash in one application from shutting down others on the same machine, while allowing operating system parameters to be tuned for the best performance of that one application. But this setup can also be very wasteful, with many servers running at 5% or 10% of their processor and memory capacity. Isolation of applications on one computer within a virtual machine or partition has been available for years on mainframes and high-end Unix systems, but is relatively new on Intel-based servers.
Not every application lends itself to this treatment. The Oracle enterprise resource planning system that Welch's is in the midst of deploying will run on physically separate servers, for example, because the software is so demanding in terms of database access and processor utilization. But several other Oracle database applications run on virtual machines and do just fine. Applications that have worked well on virtual machines at Welch's include the Cognos data analysis and reporting server, Microsoft SQL Server, Microsoft Exchange and the webMethods integration server, as well as domain controllers, File Transfer Protocol servers and other basic network services.
Scangas says it's not really the importance of the application that makes him hesitate to put it on a virtual machine. In fact, several of Welch's most critical systems, including databases that manage its juice formulas and grower records, run in the virtual environment. Rather, it's the behavior of the software itself that has to be evaluated before it is loaded onto a virtual machine.
For example, software with heavy input/output (I/O) requirements may not run well because it is constantly issuing read and write instructions, which aren't as efficient in a virtual machine environment. Instead of talking directly to the device driver for a storage system, for example, the software communicates with a simulated representation of the device, and the virtual server software redirects that request to the actual hardware. For most applications, the added delay is insignificant. But when Welch's tried to run sales forecasting software from Demantra, a planning software vendor, on VMware, the virtual machine was quickly overloaded.
"The box just wasn't keeping up," Scangas says. The Demantra application never came close to exhausting the memory he had allocated to it, but the heavily customized analytic model Welch's had created required too many read and write commands for VMware to handle, he explains. The application has since been moved onto its own IBM pSeries server.
Jerry Normandin, a Welch's Linux specialist, says he has learned to create a profile of processor use and other resource demands before virtualizing an application. The types of applications that work well are "not ERP, but smaller systems," he says. "If an application doesn't use a lot of I/O, it's a good candidate for a virtual machine. If it's not a heavily threaded Java application, if it's something with light to intermediate use, it's a good candidate."
Welch's originally deployed VMware's GSX Server, which uses Windows as the base operating system on which the virtual machines run. But the company quickly graduated to ESX Server, which it judged to be better for enterprise-scale deployment. ESX uses as its host environment a slimmed-down, proprietary operating systemessentially a thin layer that contains the device driver, juggles the other "guest" operating systems and incorporates elements of Linux. With either the ESX or GSX products, the guest operating systems within the virtual machines can be Linux, Windows or one of several others that run on Intel processors.