If you’ve ever lived in a multitenant building like a condo or apartment complex (or flats, as they’re called where I grew up in England), then you know all about the problem of noisy neighbors. One reason many enterprises are leery of public clouds is the same issue: in some multitenant infrastructures, the bad behavior of other tenants can affect the performance of your systems. In fact, it’s more insidious than that: when you’re buying a virtual server instance in an infrastructure cloud, you may not actually get what you pay for due to other tenants stealing physical server resources.
This typically happens because the hypervisor used to virtualize the service makes each VM think it has exclusive access to the physical server hardware, yet places few limitations on how those resources can be consumed. So a VM generating a lot of network traffic gets as much as it can use – at the expense of other VMs from other tenants of the service. The same goes for other types of I/O, especially storage. If you are unlucky enough to have your VM land on the same physical server as one of these noisy neighbor VMs from another tenant, then you won’t get the virtual machine instance you paid for.
If this weren’t bad enough, another consequence is complete lack of predictability – you have no idea what the performance of a given VM will be, since that depends on the other tenants of the service. Some of my cloudy colleagues spent time with IT teams who were running tests to guess the physical server size of their cloud service provider, so they could buy virtual server instances of the same size – guaranteeing that they wouldn’t have any noisy neighbors. It’s a bit like renting an entire building in the apartment complex to make sure you can get a good night’s sleep.
Ensuring that the resource consumption of one VM doesn’t affect others that happen to be located on the same physical server is a key function of vSphere. Any VMware virtualized service is capable of delivering this capability, and in vCloud Datacenter we took it a step further by defining two virtual data center (VDC) classes that offer guaranteed server resources for your VMs. The Committed VDC allows you to subscribe to a set of compute, memory and storage resources that are guaranteed to be available for your virtual machines, even though the underlying hardware is shared with other tenants.
The service also offers the Dedicated VDC, which provides physically separate hardware – ideal for meeting security or regulatory requirements where physically sharing isn’t an option. This is also sometimes known as virtual private cloud. The difference is the ease of mobility between VDCs within the service – you can quickly move VMs between VDCs as requirements change. One less thing to lose sleep over, and you don’t need to buy out the building to do it.