16

We are studying implementing some virtualized servers here, but we don't know what will be better suitable for us. Some folks are saying better have two huge servers, and others are saying have like a ten middle-end servers.

We have a legacy Visual Foxpro application, which nowadays run on Dual Xeon E5405 @ 2GHz and 16Gb of RAM. The currently server its getting too slow due the number of active users and process running on it. Virtualizing this server will give us the benefit of an faster disaster recovery.

So the question is, having like ten physical servers running at 1.7GHz and 4Gb of RAM, we could virtualize one server into 4 machines, and have one virtualized server running at 6.8GHz and 16Gb of memory? If yes, there is some how if one machine stops, automatically manage this virtual machine to another one, and execute the appropriate maintenance on it, and later back to it again?

mattdm
  • 6,600
  • 1
  • 26
  • 48
Danniel Magno
  • 295
  • 2
  • 8
  • 2
    FoxPro? Wow. Could you not have one, for example, HP Server with dual sept-core CPUs and a ton of RAM instead of a lot of machines clustered togther? You power bill would likely be less, if anything else. – tombull89 Oct 18 '12 at 14:56
  • The answer for the question in your third paragraph is in most circumstances **NO**, it does not work like that. You cannot normally take 4 1.7Ghz 4GB machines and use virtualization to create a single a 6.8Ghz 16GB machine. However, if you have a single server with two 3.4Ghz processors and 16GB of RAM, you can easily run 4 separate instances of Windows Server on that machine. – Joel Coel Oct 18 '12 at 16:14
  • 1
    I think that this is going to be the next phase in virtualization. I could care less about putting more virtual machines on a physical machine.. I'd LOVE to be able to take 10 desktops and combine their resources into a single Virtual Server. – Aaron Kempf Oct 18 '12 at 18:39
  • it is not the next Phase, it already there. For - hm - more than 50 years. Mainframes pretty much work like that. And today there is one Company already offering it. – TomTom Oct 18 '12 at 18:51
  • 1
    so I can run one instance of Windows across 20 mainframes? I didn't think so! – Aaron Kempf Oct 18 '12 at 21:23
  • Caution: Even it is possible to combine multiple hosts to one big host, the main memory is physically distributed! This means that memory transfers must be virtualized over network. Even if you have a high-end network like Infiniband, you will not have by far 16GB of RAM as if you would have on _one_ host with 16GB. Same applys to GHz: You will end up having multiple cores but not 6.8 GHz. And this is very very application specific: Your application might scale good with multiple cores and might not use more than 4GB of RAM, (but then why the big machine?), mostly this is not the case! – math Dec 17 '12 at 07:28

2 Answers2

38

Yes, you can combine multiple x86 machines into a larger virtual x86 machine, with ScaleMP. Compatible with Xen and KVM Hypervisors, you can then create VMs that will span multiple physical machines.

You could then run a large windows VM within your Xen or KVM hypervisor on top of your ScaleMP cluster.

Here's a write up that's a bit easier to read than their website: http://www.readwriteweb.com/solution-series/2011/10/cost-effective-clustering-with.php

Tim Kennedy
  • 1,214
  • 10
  • 13
  • 3
    +1 for being one of the fhew that know what they talk about - this is definitely not mainstream tech, but it IS possible. This pops up regualrly and most of the time most answers just point out how clueless people can be - they simply do not know what is possible. – TomTom Oct 18 '12 at 15:51
  • 1
    While technically correct, this would be totally inappropriate for what the OP is trying to accomplish, at least based on the information available. – Joel Coel Oct 18 '12 at 16:18
  • 2
    how so? OP requested a way to have one virtual server span multiple physical machines. also, he mentioned a legacy Virtual FoxPro application, which mean he'd need to run Windows as the Virtual Server OS. Running Windows, in Xen or KVM, on top of ScaleMP would EXACTLY enable what the OP was requesting. – Tim Kennedy Oct 18 '12 at 16:33
  • This is awesome! I had no idea this existed. I was assuming the answer is "no, this flat out isn't possible because performance would be terrible" – Earlz Oct 18 '12 at 19:50
  • 2
    @Earlz "Possible" and "Bad Performance" are two rather different things, though ;) – Izkata Oct 18 '12 at 20:54
  • @Izkata well, when performance is bad enough, developing the software to make use of such a thing would be pointless because it'd have no purpose – Earlz Oct 18 '12 at 20:58
  • @TimKennedy Thanks for the answer. I'll check it out and see if it fits to our needs. Thank you again. – Danniel Magno Oct 23 '12 at 12:08
2

You have a fundamental misunderstanding of virtualization. You can not take one virtual machine and spread it across multiple virtualization hosts. Virtualization lets you run multiple virtual machines on a single host.

enter image description here

Danniel Magno
  • 295
  • 2
  • 8
longneck
  • 23,082
  • 4
  • 52
  • 86
  • 2
    To be more precise: disks can be combined in this way (it makes sense, as network speed usually greatly exceeds disk access speed), while memory and CPUs cannot (the resulting virtual memory and virtual CPU would be too slow). – reinierpost Oct 18 '12 at 14:42
  • 16
    -1. Learn before talking. See, yo uare right regarding MOST commercial level hypervisors. Seriously. But this is not how it HAS to work, and yes, the other side is possible - there is at least one vendor out that does that. Takes serious hardware, though (infiniband to handle the memory bandwidth), comes with overhead, and hte price is steep, but it basically simulates a NUMA machine where every physical machine is a NUMA node. Google is your friend ;) Yes, there is one. Or you read the correct answer by Tim Kennedy ;) – TomTom Oct 18 '12 at 15:50