Best Practice - Hardware Setup for Virtual Server

I am a small web hosting company. I am well versed in Linux / Apache etc. I have had experience with Virtual Machine environments and enjoy my experience.

I am desiring to use a single server to host as many as 4 or 5 Virtual Machines.  The Host is Linux and Guests will be Linux as well.

Will all these VM's run best on one drive, each on their own drive but sharing data from a large drive ?

I have heard drives can be the weak point and I don't want to do this twice to find out.

I need an expert in multiple VM configuration to give me their thoughts on the best setup for multiple VMs on one machine.

Thanks.

Jay Lepore
Owner
CompuMatter
Jay LeporeAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

TripyreCommented:
This all depends on several things:

1. what type of applications will be housed by the VMs (databases server, web server, file server, etc)?
2. what kind of disk array are you going to keep the VMs on? Raid 5, Raid 10, Raid 6, etc.
3. How many disks are you going to use (spindles)? the higher the better.

I run 30-40 VMs on a 1TB LUN that is RAID 5.  Now most of these are small app servers of file servers. My big SQL DB servers I have dedicated storage becuase of the high IO.
0
conradjonesCommented:
personally i would use ESXi as it is a single host, there is litle benefit from buying ESX.

you gain the benefit of a mature commerically supported but FREE product.

It is insanely stable, and very easy to manage although you will need a windows box to manage it
0
Jay LeporeAuthor Commented:
TYPES OF APPS:
2 VM's will be web servers. (Development and Live) both will use Apache, Mysql, etc and use the resource intensive Magento eCommerce database application.  Heavy SQL useage.

1 will be a mail server also running Apache MySQL.

1 will be be Apache based with Mysql that will be our backup server.

DISK ARRAY:
This is major question as IO is a factor.  Are separate drives with one VM per drive better than raid drives and if the latter, how best to install in that environment?

As for conradjones ESXi, I want to do Linux on Linux VM's with no Windows required thank you. I am considering KVM is it takes advantage of some aspects of the host OS thereby minimizing VM memory needs.

Thanks.

Jay
0
Powerful Yet Easy-to-Use Network Monitoring

Identify excessive bandwidth utilization or unexpected application traffic with SolarWinds Bandwidth Analyzer Pack.

andyalderCommented:
Unless you know ther precise I/O patern for each app it's generally best to make one big array of all your disks and let everything share, then when one app is not busy the other apps get the benefit of having more spindles. Unless you're short of space use RAID 10 as it's faster than RAID 5.
0
bbnp2006Commented:
Check out this post on some very good best practice on sizing your LUN.
http://www.las-solanas.com/storage_virtualization/esx_san_performance_guide.php

There's also a recent discussion on this topic:
http://www.experts-exchange.com/Software/VMWare/Q_25354821.html?cid=1133#a27655849

hope this helps.
0
uberkind9Commented:
Using a single server, you'll definitely want an independent disk for the SQL Database bits...

The MAIL VM might be okay in shared space, but also might take a performance hit sometimes (if you get bombarded with mail)...

Honestly, I'd consider a separate PHYSICAL machine to host ALL your Databases (it wouldn't need to be as beefy as your Virtual Host box), then just point all your virtual web servers at it during configuration of the web front ends.

0
andyalderCommented:
Why would you want seperate disks for SQL? Shouldn't it get the performance boost of having more disks available?

And "As for conradjones ESXi, I want to do Linux on Linux VM's with no Windows required thank you." doesn't make sense; ESX and ESXi are both cutdown versions of Linux so using ESXi on a USB stick is has no Windows requirement unless you happen to use a windows app on your laptop to download it from the website and make the image.
0
Jay LeporeAuthor Commented:
If you read the rest of conradjones comment it says "It is insanely stable, and very easy to manage although you will need a windows box to manage it".   That contradicts the ESXi / Linux thoughts.  

Your thoughts
0
conradjonesCommented:
ESXi needs VSphere Client to manage the host, which is a .net based windows application.

It doesn't need windows to run the host but it does to manage it.

My comment stands ESXi is insanely stable
0
andyalderCommented:
You generally need a Windows box to manage ESX as well as ESXi, there isn't a vSphere client for Linux. There is vCentre for Linux but you're going to have to use Oracle for the database on that.
0
uberkind9Commented:
As a general rule, high activity databases will utilize more disk I/O...
I've setup test databases all on the same disk without issue, but anything approaching enterprise level activity will suffer when under a full load...
If you can utilize a SAN solution, then yes, Databases will be able to leverage multiple disks...
0
Jay LeporeAuthor Commented:
It's not an 'enterprise' size system yet, but that potential is certainly there so I want to prepare for it.

The database I/O seems to be a common concern.  So to get to the point do I run something that looks like this?

Host Linux
   VM 1 = Linux Install with Apache and all websites
   VM 2 = Linux Install with Mail Application
   VM 3 = Linux Install with MySQL running all databases

And, if this is the architecture, how best to structure the hard drives.
Do I run Raid 5 or 10 on a stack of drives?  
Do I run just a standard TB drive for the VM 1 & VM 2 and a separate physical drive for the MYSQL?
Do I just format a larger drive but partition it into 3 Partitions and install each VM on its own Partition or perhaps just VM 3 on its own partition?

What sayeth the group ?
0
uberkind9Commented:
That looks like a good VM setup as long as you can get VM 3 to use a disk/array different than the first two...

I'd say NO RAID on a small disk for your Hypervisor/Host OS...
RAID1 on another pair of medium sized disks for VMs 1 & 2...
RAID1 on a third pair of a BIG disks for your Database VM...

Partitioning a BIG disk/array won't give you the performance you're hoping for...

For flexibility and REAL scalability though, you'd benefit from some kind of iSCSI or NAS solution (instead of shoving it all into a single box... not to say it can't be done)...


 
0
uberkind9Commented:
That looks like a good VM setup as long as you can get VM 3 to use a disk/array different than the first two...

I'd say NO RAID on a small disk for your Hypervisor/Host OS...
RAID1 on another pair of medium sized disks for VMs 1 & 2...
RAID1 on a third pair of a BIG disks for your Database VM...

Partitioning a BIG disk/array won't give you the performance you're hoping for...

For flexibility and REAL scalability though, you'd benefit from some kind of iSCSI or NAS solution (instead of shoving it all into a single box... not to say it can't be done)...


 
0
Jay LeporeAuthor Commented:
I am totally lost as to how one would have what looks like 2 raids arrays and one non raid array running on the same linux box using VM's.

Let's talk about an NAS or ISCSI solution for a moment.  
How would you hook those into a Linux box to give you the configuration you spoke of?

Would Ubuntu automatically recognize each RAID box (NAS/iSCSI) as a disk?

0
uberkind9Commented:
For NAS, you would setup a file system and a persistent mount point on the Linux box...
For iSCSI, you would setup an iSCSI initiator (to connect to an iSCSI target)...

NAS would appear kind of like a "mapped drive"...
iSCSI would appear as a disk...

The configuration I spoke of was just for shoving it all into one box...

With NAS/iSCSI, your underlying array can be whatever you want it to be (although, I'd suggest RAID-10 or RAID-50) and you just connect to it...  kind of like a macro version of what I described (gerenic, no raid linux OS connecting to a big array of disks)...
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Virtualization

From novice to tech pro — start learning today.