New processor technology expected from Intel and AMD will one day make database workload virtualization on x86...
platforms a more practical affair than ever before. In the meantime, companies that want to virtualize database workloads will be looking to database administrators (DBAs) for answers to some fairly tough questions, according to experts.
First off, said Tony Iams, a senior operating systems analyst and virtualization expert with Ideas International in Port Chester, New York, Oracle DBAs working in x86 shops need to identify which of the benefits of virtualization their organization is hoping to achieve -- whether it's database consolidation, greater availability, better workload management or load balancing, or improved disaster recovery capabilities. Then, keeping those goals in mind, DBAs need to decide which of their organization's database workloads are appropriate for virtualization -- and on x86 platforms, that can be the tricky part.
"You have to be careful because the support for I/O virtualization is the least well-developed on x86 right now," Iams explained. "Both Intel and AMD are continually being refined and improved, and they're adding support for virtualized I/O, but that's not there yet and it will be showing up in the next 18 months to two years. Until then, you'll want to be careful, and the key is to understand the behavior of your database over time."
Deciding what to virtualize
Generally speaking, the more intensive a database workload is, the greater the performance cost associated with virtualization, Iams said. Therefore, he added, DBAs in x86 shops are currently better off virtualizing databases that aren't very heavily used, and there may be many of those.
"You may have database services that are lightly trafficked, that don't have very demanding workloads, and then there's no reason why you shouldn't use virtualization to consolidate those if you want to get better use out of your hardware," Iams said. "It's just that you have to understand the behavior of [those workloads] over time in as much detail as possible. That means understanding how many resources they require in terms of CPU, memory, I/O and really understanding how demanding those applications are. Then you can make an informed decision about whether it's appropriate to virtualize."
But if the DBA's goal is to use virtualization for consolidation, it's important to remember that database consolidation is a category in and of itself, and it may be more prudent to consolidate in a more traditional fashion -- such as merging database tables onto a larger host -- which may be cheaper and easier. Deciding between virtualization and a more traditional method of consolidation means weighing the performance costs against the benefits of each approach, he said.
"If you want to consolidate databases it may make more sense to do that by just consolidating the databases, rather than consolidating the servers on which the databases are running," Iams said. "On the other hand, if you really want to make sure that those databases are fully isolated from each other and are managed separately for whatever reason, then it makes sense to use virtualization. But again, you need to be aware of any performance overhead that virtualization is going to produce."
But what if I work in a Unix shop?
On Unix systems, Iams explained, virtualization software today is being used to dynamically change the resources assigned to database partitions, which in many cases are very similar to virtual machines. The reason for this is organizations need to be highly flexible in order to accommodate spikes in workloads that occur at certain times of the year. For instance, he said, a large retailer might see a spike in transactions at Christmas time.
"On Unix systems there are some very sophisticated functions for adjusting the resources available to partitions online without shutting down the database," Iams said. "So, there the database administrator is going to have to become familiar with workload management software or virtualization management software to develop the policies to assign resources on a changing basis like that. That's going to require some overhead for the DBA."
The rise of virtualized data
With more organizations looking to service-oriented architecture (SOA) -- a development methodology that promises greater flexibility through deployment of individual pieces of application functionality as services -- there is a lot of talk about breaking the bonds of previously "stovepiped" or "siloed" applications.
And that's all well and good, says Noel Yuhanna, a database market analyst with Cambridge, Mass.-based Forrester Research Inc., but what more companies should be thinking about is how to get accurate and up-to-date data to these increasingly service-enabled applications. It's a huge problem, he said, especially when one considers the large amount of data duplication and the resulting data mistakes that tend to happen within an organization.
One way to make sure that the applications or services are getting the right information quickly and efficiently is to actually virtualize data, Yuhanna explained. It's a process that Forrester refers to as "building an information fabric" or "creating data services," and the analyst firm reports that an increasing number of organizations are starting to consider it.
"The problem with SOA is that it talks about the application but it doesn't talk about the data services. How you get the data to the application is a big challenge out there," Yuhanna said. "The fact is that you have to virtualize the data and [in doing so] the middleware is going to become important. The middleware is going to become like a virtualized database which will integrate structured, unstructured and semi-structured data and provide a single point of contact for the application."
A database virtualization success story
Despite the potential for a negative impact on performance when virtualizing database workloads, some people are having great success with database virtualization today -- people like Steve Davidek, the system administrator for the city of Sparks, Nevada.
Davidek, who also serves as the director of advocacy for Encompass, a Hewlett-Packard users group, has been leading the city's virtualization initiative since January of last year. Davidek and his crew are in the process of virtualizing all of the city's servers using HP Proliant hardware and the HP Technology Forum & Expo 2007 in Las Vegas next week, said that overall the system seems to be working better than it did when it ran on a standalone database server.
"The people actually noticed a speed increase of their applications and their database," said Davidek, who works primarily in a Microsoft SQL Server shop. "I think the virtualized server actually uses memory and CPU [resources] better than just a standalone server in a lot of instances."
Davidek said the overriding goal of the project is to achieve full business continuity and better use of resources. The system administrator had some advice for folks who decide to go with the VMWare ESX platform.
"Make sure you're on the latest version of it when you begin because it's harder to upgrade later," he said.