In recent years, the concept of self-service IT has gone mainstream. While the process of VM provisioning fell solely within the IT professional’s domain, it’s now relatively common for power users to create their own VMs on an as-needed basis.
This self-service, VM provisioning approach helps to free up virtualization admins, allowing them to focus on more important tasks. Users also don’t need to wait for someone else to get around to creating the VM they request.
Despite all its benefits, though, self-service VM provisioning carries one very significant risk. If left unchecked, a well-intentioned user can use virtualization resources excessively or neglect to stop them after use, dramatically driving up an organization’s running costs.
In this article, I’ll explain how you can use quotas to limit the number and type of VMs a self-service user can create. Here, I’m focusing this discussion on Microsoft Hyper-V and System Center Virtual Machine Manager (VMM), the basic concepts that apply to other virtualization platforms.
Before all that, let’s talk about what quotas are.
What are Quotas?
In VM, quotas are essentially just limits placed on the virtualization resources that a user can consume. You can apply quotas to both users and groups of users, or independently. You can also break these quotas down into 3 separate types, which I’ll describe below.
1. Resource Quotas
The first option is to assign quotas based on resource use. Resources can include virtual CPUs, memory, or storage. If you were to assign a user a memory quota of 128 GB for example, that would mean the user’s virtual machines could collectively consume no more than 128 GB of RAM.
2. Virtual Machine Quotas
VM quotas are the simplest type of quota. A virtual machine quota is just a limit on the total number of VMs a user can create. For example, a quota value of 5, would allow a user to create up to 5 VMs.
3. Quota Points
The final method to create quotas is something called quota points. The basic idea behind quota points is that VM provisioning isn’t done equally. For example, a VM running a microservice will typically consume far fewer resources than a VM running a large SQL database.
If you create a VM quota, you don’t know what types of virtual machines a user will create. They might create tiny VMs or huge VMs. That said, you can assign quota points to VMs based on the resources they consume, with larger VMs having a higher point value. A user who has 10 quota points can conceivably create several smaller VMs or a couple of large ones. The default quota point value for a VM is 1. You can adjust the quota points associated with a VM or a VM template by following these steps:
1. Open the VMM console and locate the VM or VM template.
2. Right-click the VM and select the Properties command from the shortcut menu.
3. Select the Settings tab when the VM Properties Sheet appears.
4. Assign a New Quota point value and click OK.
Creating Self-Service Quotas
Quota values are tied directly to self-service users. To assign one or more quotas, follow these steps:
1. Go to the Settings Workspace in the VMM console.
2. Select the User Role for which you wish to assign quotas. If no user role exists, click the Create User Role button on the Toolbar to create one.
3. Right-click the selected role and choose the Properties command from the Shortcut Menu.
4. Select the Quotas for the Private Cloud tab when the Role Properties Sheet appears.
5. Locate the Quota you want to assign.
6. Deselect the Use Maximum checkbox for that quota.
7. Assign the New Quota value.
8. Repeat the process as necessary and click OK.
Applying quotas can be a great way to prevent self-service users from creating an excessive number of VMs. It can also help stop users from creating VMs that are excessively large. This can help you to curb costs and prevent system-wide performance issues. These issues include depleting a virtualization host’s hardware resources. By setting the correct quotas and VM limits, you can push your finite IT resources further.
Have more questions? Check out the FAQs and Resources section below!
Do quotas have any practical use besides controlling costs?
Yes, quotas can also help prevent users from depleting your virtualization infrastructure of resources. This results in slow VM performance for everyone or even an unintentional denial of service.
Do quotas also act as resource reservations?
In VMM, quotas act as limits, nothing more. That means if you were to assign a particular user a 5 virtual CPU limit, you’re allowing that user to use up to 5 virtual CPUs, but you’re not reserving 5 virtual CPUs for that user.
How do I know how many quota points to assign to a virtual machine (VM)?
Quota points are arbitrary values. It’s up to you to choose how many quota points to assign to a VM. But as a general rule, you would leave small VMs with a quota point value of 1 and assign larger values to larger VMs. If a small VM contains 4 GB of RAM and has 1 quota point, then a VM with 8 GB of RAM might be assigned 2 quota points.
What is the difference between a role level quota and a member level quota?
A role level quota applies collectively to all of the members of that specific role. The role members share the quota with one another. This is useful for example if you wish to limit a department’s resource usage. A member-level quota applies to each user who has been assigned to the role.
How can you configure who owns a quota?
Select the Self Service User Properties sheet’s Members tab. This tab allows you to add users or groups to the role. It’s worth noting that adding a group to the membership list will cause all of the group members to share their overall quota points.
Microsoft’s Self-Service Creation Guide
Read Microsoft’s documentation on setting up self-service quotas in VMM here.
Microsoft’s Create a Private Cloud Guide
Read more on how to create a private cloud in VMM here.
Microsoft’s VMM Roles and Permissions Guide
Discover more about managing VMM roles and permissions here.
TechGenix’s Manage VMM User Roles With PowerShell Article
Learn how to manage user role quotas from PowerShell here.
TechGenix’s Understanding VMM Errors Article
Find out what to do when a VMM job produces an error here.
TechGenix’s Problem Deploying VMM Agents Article
Discover why you may occasionally have problems deploying agents in VMM here.