3

I'm planning on building a new PC and as I will be using it mainly for Virtual Machines. I would like information on what components should be focused on the most. I know RAM will need to be higher than on a normal PC, but due to cost it could be easy to fulfill.

The thing that does confuse me is that Intel has a lot of VM extensions on their highest end, whereas AMD pretty much offers the same extensions for all processors, but I'm not sure that the extensions are needed I would like to run Hyper-V, which I've heard has higher requirements then Linux solutions.

So summing it up, what components should I focus on when doing the build, what are the CPU virtual machine extensions, and how will they benefit me?

6
  • This is an impossible to answer question with the information provided. VMs are computers, they still require CPU, Memory, and disk.
    – Keltari
    Aug 26, 2013 at 14:33
  • @Keltari I don't think OP was planning on building a VM host with no disks in it. There's nothing special about disks and VMs. Obviously memory is an important when running multiple VMs, the more the merrier. The features of the CPU is probably the biggest question here. Seems answerable enough to me.
    – rtf
    Aug 26, 2013 at 14:40
  • Though I will say about disks: get large ones. You'll be surprised how much space snapshots take up.
    – rtf
    Aug 26, 2013 at 14:40
  • 1
    @Tanner disks are extremely important for VMs. Have you tried running 5 VMs all trying to access disk resources at the same time off of one controller?
    – Keltari
    Aug 26, 2013 at 14:41
  • @Keltari Ah, can't say I've run in to that. Reviewing this post may be in order when planning disk I/O: serverfault.com/questions/339128/… An SSD might solve disk I/O bottlenecks as well.
    – rtf
    Aug 26, 2013 at 14:51

2 Answers 2

3

I think there's a few things to look at.

Firstly you need to decide between a VM software that runs on a general purpose host (VMware workstation/player, the 'desktop' Hyper-V varient or Virtualbox for example) or on a special purpose host (Hyper-V server or ESXi)

Firstly, AMD and Intel have broadly compatible virtualisation extentions.

VT-X (Intel) and AMD-V (AMD) are the 'basic' virtualisation extensions. All Modern AMD processors have this. Some Intel processors don't. You want this. If nothing else, if you get a processor without this you are cheaping out.

VT-D/IOMMU on the other hand is 'nice to have' IF you have a host that supports PCI passthrough and some other features. If you need to ask, you probably don't need it.

Ram is nice to have. The rule of thumb I follow is whatever my host normally uses (I assume 4 gb) + 2gb spare + whatever I need for my guests.

Number of cores might be a factor as well - depending on load and the number of guests. If you're going to be running a lot of VMs with heavy workloads you might want more cores - in my case I tend to run one or two, and even a dual-core machine does alright. A good rule of thumb might be one processor core per VM (though you can experiment with more, naturally). If the VMs are idle most of the time, naturally you can scale up.

Finally, VMs take up a lot of disk space, and obviously may be bottlenecked by throughput. I find a standard consumer grade HDD makes a good storage drive - tho some folk do need, and use much faster storage. Once again, depends on what your needs are. If speed's an issue, there's no reason you can't host your VMs on a SSD, or a SAN via a fast interface. You might also want to experiment with RAID, JBOD or simply having VMs on seperate disks and interfaces. I tend to use single VMs transiently, so my single large disk is sufficient

1

The only extension you really need is the basic virtualization, called AMD-V by AMD and VT-x by Intel, which allows a processor to be virtualized (as opposed to emulated). These technologies might need to be enabled in your BIOS.

The other extensions are typically virtualization of additional hardware components, such as disk access and network access. These usually don't matter too much if you're just wanting to run a VM or two on your local machine for personal use, but can have a much bigger impact on large solutions commonly found with VPS providers where VMs are being sold as a service.

If the processor does not support network or I/O virtualization, that simply means that the VM will have to emulate them on the CPU, not that you can't use them.

The Wikipedia page on X86-based virtualization has a decent overview of the technologies that major CPUs provide, and from there you can read up on particular technologies (and form more specific questions to ask here, if you need to).

3
  • I do recall virtualising without VT-X. VT-X only seemed to be necessary for running 64 bit guests on a 32 bit host. It does, supposedly, speed things up a lot
    – Journeyman Geek
    Aug 26, 2013 at 14:45
  • I'm not an expert, but I figured it was the base virtualization extention, i.e., without it at best you can run software-emulated guests. Aug 26, 2013 at 14:47
  • You can do it without it. The only 'true' emulators I recall were the old VPC (which let you run windows on pre-intel macs) and QEMU - which is impressively flexible, and horridly slow ;p
    – Journeyman Geek
    Aug 26, 2013 at 14:48

Not the answer you're looking for? Browse other questions tagged .