The first step in virtualizing your development environment is making sure your hardware can handle what you’re about to throw at it. Plan before you make this leap. Doing it right can make you much more productive. Doing it wrong can end up with reinstalling corrupt operating systems and possibly losing valuable data.
Modern processors can handle some level of virtualization, but please check your specs before you spend time and effort for naught. See the links below to make sure you have a processor capable of virtualization before you get started.
If you have a multi-core processor, this can come in handy when creating your virtual machines. If you’re not sure, check your specs.
RAM going to be divided among running VMs in the amounts you specify. If you have 16G of RAM in your host machine, your host OS requires 2G, it stands that you have (roughly) 14G to play around with. This isn’t the total amount of RAM you can allocate across all of your virtual machines. Rather, this is a limiter only on the running machines. It seems obvious, but I’ve certainly hit the occasional fault by trying to spin up several VMs that require more RAM than is available. Continuing with the example of 14G of available RAM, VirtualBox will allow you to create a virtual machine to use all of the available RAM. In fact, you can create as many of these as you want… as long as only one is running at a time.
Say you have a laptop with 16G RAM. You need a Windows 7 development VM up with 8G RAM and your host requires 2G.
Unless you’re running very stripped down linux distros, most modern operating systems with a GUI desktop will consume at least 1G of RAM. Double that for Windows. Take that into consideration before you get started. If you only have 4G of physical RAM running Windows as a host OS, you’re going to have a hard time getting a VM running. If you manage to get it started, performance will be challenging at best. The more physical RAM available, the more you can allocate to a VM or the more VMs you can have running concurrently. RAM is like garlic, you can never have enough.
Physical Hard Drives
Disk is cheap these days which is why I place this at the end of the list. Most laptops these days come with hundreds of gigabytes of space; more than most people will ever use. Depending on how you allocate your virtual machines and what you install where, you shouldn’t have an issue with disk space. If you plan to run Windows as a host OS, I don’t recommend drives less than 120G. 256G and higher should be plenty to run a couple of virtual machines. A few additional thoughts before moving on:
No external drives! It’s almost instinct for some of us to store large files, such as those created by a virtual machine, on an external drive. A laptop HDD hard drive can transfer data at up to 600 MB/s for SATA 3.0. An external USB drive can only transfer data at about half that speed. This means it’ll take longer to load the OS, load any program, and save files. In short, it makes development and normal activity slower and more complicated.
More SSD! Solid State Drives can perform up to 100x faster than spindle drives (HDD). They provide nearly instant access to data with boot times in seconds. This applies to VMs as well. Having an SSD to run a virtual machine means there’s virtually no difference in performance between the host OS and the VM. It’s truly the only way to really enjoy the experience, but it can be pricey. SSDs with 256G and up are still on the pricey side. It all depends on your need for performance and willingness to spend a little extra for it. It’s a very worthy investment for this type of effort IMHO.
Backup often! While this isn’t directly related to the physical hard drive segment, it’s important to remember than everything that’s on your internal drive should be backed up to something external. If you purchase a monster internal drive and load it full of vital VMs, you’ll need something equally massive for backups.