Friday, November 2, 2007

MySQL and VMWARE

VMWARE keeps popping up in more and more clients I go to. Virtualized environments are continuing to evolve. Companies are looking for more ways to stream line costs and improve efficiency and virtualized environments are one way to accomplish this.

Observations on virtualized database environments is that this is still an area that needs to mature a lot before being put in production environments. Don't get seduced to the dark side unless you understand all the issues. Thoughts on virtualization for MySQL:
  • Production databases - No way, nope, nyet, nien, bu shi, iie.
  • Test databases - When bench marking and performance tuning are not factors at the time, virtualized environments can play a role here. Has to be used in a controlled environment.
  • Development databases - Extremely efficient and cost effective.
I personally run Apple MacBook Pros and enjoy working with VMWare Fusion and Parallels. In my simple test environments I am running MySQL Servers, Oracle Servers, Eclipse, JDeveloper, Apache, JBoss and the Oracle Application Server in Solaris, Enterprise Linux and Fedora 7 environments. I'll eventually load a version of Vista. I save my VMs and then it is really easy for me to create a new copy of my VM from a backup. VM is a great environment for new MySQL DBAs to play around with different configurations, running multiple servers, etc. DBAs can also use VM's to create a new test or development database environment in a matter of minutes.

Definition of Virtualization

We are all seeing that virtualization will be an area of continued growth. Virtualization from Wikipedia:
In computing virtualization is a broad term that refers to the abstraction of computer resources. One useful definition is "a technique for hiding the physical characteristics of computing resources from the way in which other systems, applications, or end users, interact with those resources. This includes making a single physical resource (such as a server, an operating system, an application, or storage device appear to function as multiple logical resources; or it can include making multiple physical resources (such as storage devices or servers) appear as a single logical resource."

As you are well aware, each vendor has their own definition of virtualization. In the Wikipedia definition (above), they define platform virtualization, resource virtualization as well as some good virtualization examples.

The Role of MySQL in Virtualization

As databases continue their rapid growth and proliferation, organizations are looking for more ways to reduce hardware and software costs. Large vendors don't want customers to look at hardware and software from a commodity perspective. However, powerful open source solutions are giving organizations a lot more flexibility in purchase decisions. Open source solutions offer much more cost effective solutions with MySQL, Linux, Intel (and AMD) hardware with muliple CPUs. We can definitely expect that solutions like MySQL and Linux will play a large role in virtualized environments today and in the future.

There is also a new forum at http://forums.mysql.com on discussing VMWare and MySQL if you have comments.

8 comments:

K. Brian Kelley said...

I pretty much echo the same thoughts with respect to SQL Server (SQL Server Express being an exception).

George Trujillo said...

I haven't worked with SQL Server Express, I'd welcome any insights and feedback you have related to the product.

Mark Robson said...

We do exactly that - vmware is used extensively in our development, testing (except performance / benchmarking) but not production.

I agree.

OracleOnEsx said...

What's your rational for not running a database on ESX in a production environment? I'd be interested in hearing the objective issues people are seeing.
The advantages appear to be hardware failover and hardware upgrades without downtime.
There seems to be a lot of FUD around virtualized databases.
We've been running ESX with Oracle and MSSQL for a while and have had no issues. The only thing that sucks is Oracle's licensing regarding virtualized environments. We're considering MySQL as a replacement to Oracle for some systems due to the licensing headaches.

George Trujillo said...

ESX

Using VMWare in database server environments is going to require the database and application vendors providing support for production environments running VMWare.

I have not used VMWare in a production environment. I also have not run across any clients running VMWare in production environments.

The above mentioned are needed for me to have a warm fuzzy about VMWare in production environmens. I will say that in test and development environments I have seen a lot of success.

Niramit Soonthawong said...

Well, for me I use vmware and install linux + oracle on it. I myself think vmvare is not for the purpose of testing or developing purpose,no offense. I use to train my 10+ clients to connect to my laptop with vmvare+linux+oracle running, it worked just fine. The only thing you need to do is use the right machine for the right task and set it for the same purpose.

Dan Osipov said...

Apparently the key low point in VMware is disk IO, which makes MySQL slow. However, using a dedicated physical drive for a virtual machine solves that problem. I haven't tried it, but during testing I also discovered that MySQL is painfully slow.

George Trujillo said...

As we all know, disk I/O is always a bottleneck with database servers. I always hear how Oracle, SQL Server, MySQL, DB2 are slow for testing. Its hard to respond to that because to understand performance we have to understand the environment used for testing. MySQL is used by some of the top web companies in the world due to its fast performance. VM is definitely on the upswing. Right now Sun Containers and Oracle VM solutions are the two enterprise solutions. Other than those two I would keep VMs with databases to test and development environments.