In this chapter, we will cover:
- Understanding each component for a real-world implementation
- Planning for high availability
- Designing the VMM server, database, and console implementation
- Specifying the correct system requirements for a real-world scenario
- Licensing the System Center VMM 2016
- Troubleshooting VMM and supporting technologies
This chapter has been designed to provide an understanding of the underlying Virtual Machine Manager (VMM) modular architecture, which is useful to improve the implementation and troubleshooting VMM.
The first version of VMM was launched in far 2007 and was designed to manage virtual machines and to get the most efficient physical server utilizations. It has been dramatically grown from the basic tool to the one of the most advanced tool, with abilities to work even with different type of clouds.
The new VMM 2016 allows you to create and manage private clouds, retain the characteristics of public clouds by allowing tenants and delegated VMM administrators to perform functions, and abstract the underlying fabric to let them deploy the VM's applications and services. Although they have no visibility into the underlying hardware, there is a uniform resource pooling which allows you to add or remove capacity as your environment grows. Additionally, it supports the new Windows Server 2016 capabilities including software-defined storage, networks and shielded VMs (simply put, Software-Defined Datacenters (SDDC's)). VMM 2016 can manage private clouds across supported hypervisors, such as Hyper-V and VMware, which can be integrated with Azure public cloud services as well.
The main strategies and changes of VMM 2016 are as follows:
- Application focus: VMM abstracts fabric (hosts servers, storage, and networking) into a unified pool of resources. It also gives you the ability to deploy web applications and SQL Server profiles to configure customized database servers along with data-tier applications. However, virtual application deployment based on Server App-V, which was available in older versions of VMM, is no longer existing in VMM 2016. Although, if you upgrade VMM 2012 R2 to VMM 2016, your current service templates with Server App-V will continue to work with some limitations related to scale-out scenarios.
- Service deployment: One of the powerful features of VMM is its capability to deploy a service to a private cloud. These services are dependent on multiple VMs tied together (for example, web frontend servers, application servers, and backend database servers). They can be provisioned as simply as provisioning a VM, but all together.
- Dynamic optimization: This strategy will balance the workload in a cluster, while a feature called power optimization can turn off physical virtualization host servers when they are not needed. It can then turn them back on when the load increases. This process will automatically move VMs between hosts to balance the load. It also widens and replaces the VM Load Balancing feature that is available for Windows Server 2016 Failover Clusters.
- Software-Defined Datacenter: Network virtualization (software-defined networking or simply SDN) was introduced in VMM 2012 SP1 and quickly became popular due to a possibility to define and run multiple isolated networks on a single physical network fabric. It was based on NVGRE abstraction mechanism. VMM 2016 goes beyond and brings Azure's network model closer to your datacenter by introducing network controller as a central point, VXLAN for abstraction from the underlying physical network and integration with software load-balancers and gateways. In addition to SDN, Windows Server 2016 features like Storage Spaces Direct (S2D), Storage Replica, and Quality of Service (QoS) complement each other and are also supported by VMM 2016.
- Advanced Security: Modern data center requires protection for customer's sensitive data from hackers and even technical staff or other persons who can somehow access such data without your permission. To help protect against that problem, VMM supports managing and creating a new guarded fabric with a set of shielded VMs, guarded hosts and hosts with guardian services.
- Multivendor hypervisor support: If we compare the list of managed hypervisors in VMM 2012 R2 to VMM 2016, it's been cut. VMM 2016 now manages only Hyper-V and VMware, covering all of the major hypervisors on the market so far. Support for Citrix XenServer has been removed:

This is the first step. You need to do an assessment of your current environment to find out how and where the caveats are. You can use the Microsoft MAP toolkit (download it from http://www.microsoft.com/en-us/download/details.aspx?id=7826) or any other assessment tool to help you carry out a report assessment by querying the hardware, OS, application, and services. It is important to define what you can and need to address and, sometimes, what you cannot virtualize.
Note
Microsoft MAP toolkit will assess your environment using agentless technology to collect data (inventory and performance), and provide reports. Server Consolidation Report, VMware Discovery Report, Microsoft Workload Discovery and Microsoft Private Cloud Fast Track Onboarding Assessment Report are some of the useful reports that will enable your IT infrastructure planning. For more information, refer to http://social.technet.microsoft.com/wiki/contents/articles/1640.microsoft-assessment-and-planning-toolkit.aspx.
Currently, Microsoft supports the virtualization of all MS infrastructure technologies (for example, SQL, Exchange, AD, Skype for Business, IIS, and File Server).
With the assessment report in hand, it is recommended that you spend a reasonable amount of time on the solution design and architecture, and you will have a solid and consistent implementation. The following figure highlights the new VMM 2016 features and others, which have been carried over from older versions, for you to take into consideration when working on your private cloud design:

In VMM, before deploying VMs and services to a private cloud, you need to set up the private cloud fabric.
There are three resources that are included in the fabric in VMM 2016:
- Servers: These contain virtualization hosts (Hyper-V and VMware servers) and groups, PXE, update servers (that is, WSUS), and other servers.
- Networking: This contains the network fabric and devices configuration (for example, gateways, virtual switches, network virtualization); it presents the wiring between resource repositories, running instances, VMs, and services.
- Storage: This contains the configuration for storage connectivity and management, simplifying storage complexities, and how storage is virtualized. For example, you can configure the SMI-S and SMP providers or a Windows 2016 SMB 3.0 file server.
If you are really serious about setting up a private cloud, you should carry out a virtualization assessment using MAP, as discussed above and work on a detailed design document covering hardware, hypervisor, fabric, and management. With this in mind, the implementation will be pretty straightforward.
System Center 2016 will help you install, configure, manage, and monitor your private cloud from the fabric to the hypervisor and up to service deployment. It can also be integrated with public cloud services( for instance, Azure Site Recovery to protect and replicate your VMs to Azure public cloud).
System Center 2016 VMM has six components. It is important to understand the role of each component in order to have a better design and implementation.
For small deployments, test environments, or a proof of concept, you can install all of the components in one server, but as is best practice in production environments, you should consider separating the components.
Let's start by reviewing each component of VMM 2016 and understanding the role it plays:
- VMM console: This application connects to the VMM management server to allow you to manage VMM, to centrally view and manage physical and virtual resources (for example, hosts, VMs, services, the fabric, and library resources), and to carry out tasks on a daily basis, such as VM and services deployment, monitoring, and reporting.
By using the VMM console from your desktop, you will be able to manage your private cloud without needing to remotely connect it to the VMM management server.
Note
It is recommended to install the VMM console on the administrator desktop machine, taking into account the OS and prerequisites, such as a firewall and preinstalled software. See the Specifying the correct system requirements for a real-world scenario recipe in this chapter.
Think of VMM management server as the heart, which means that you need to design your computer resources accordingly to accommodate such an important service.
Note
For high availability, VMM Management Server must be deployed as a HA service on a Windows Server Failover Cluster. Note though that the SQL Server where the VMM database will be installed and the file share for the library share must also be highly available. For more info, check Planning for high availability recipe in this chapter and the Installing a Highly Available VMM recipe in Chapter 4, Installing a Highly Available VMM Server.

As is the best practice for medium and enterprise production environments, keep the VMM management server on a separate cluster from the production cluster, due to its crucial importance for your private cloud.
Note
When running VMM in a cluster, you cannot install SQL Server in one of the VMM management servers. Instead, you will need to have it on another machine.
- VMM library: The VMM library servers are file shares, a catalog that stores resources, such as VM templates, virtual hard drive files, ISOs, scripts, and custom resources with a .cr extension, which will all be visible and indexed by VMM and then shared among application packages, tenants, and self-service users in private clouds.
The library has been enhanced to support services and the sharing of resources. It is a store for drivers for Bare Metal deployments, SQL data-tier apps, (SQLDAC), and web deploy packages.
In a distributed environment, you can group equivalent sets of resources and make them available in different locations by using resource groups. You can also store a resource in a storage group that will allow you to reference that group in profiles and templates rather than in a specific virtual hard disk (VHD); this is especially important when you have multiple sites and VMM will automatically select the right resource from a single reference object. This essentially enables one template that can reference an object that can be obtained from multiple locations.
You can also have application profiles and SQL profiles(answer files for configuration of the application or SQL) to support the deployment of applications and databases to a VM after the base image is deployed. Application profiles can be web applications, SQL data-tier, or a general for deploying both application types and running any scripts.
- Self-service portal: The web-based self-service portal, was removed from SC 2012. In System Center 2012 SP1/R2, App Controller was being used as a replacement to the self-service portal, however, it was also finally removed in System Center 2016.
As you may have noticed, although VMM management is the core, each component is required in order to provide a better VMM experience. In addition to this, for a real-world deployment, you also need to consider implementing other System Center family components to complement your design. Every System Center component is designed to provide part of the private cloud solution. The Microsoft private cloud solution includes the implementation of VMM 2016 plus the following utilities:
- System Center 2016 Configuration Manager: This provides comprehensive configuration management for the Microsoft platform that can help users with the devices and applications they need to be productive while maintaining corporate compliance and control
- System Center 2016 Data Protection Manager: This provides unified data protection for the Windows and also VMware environment, delivering backup and restore scenarios from disk, tape, off-premise, and from the cloud
- System Center 2016 Endpoint Protection: This is built on the System Center Configuration Manager and provides threat detection of malware and exploits as part of a unified infrastructure for managing client security and compliance to simplify and improve endpoint protection
- System Center 2016 Operations Manager: This provides deep application diagnostics and infrastructure monitoring to ensure the predictable performance and availability of vital applications, and offers a comprehensive view of the datacenter, private cloud, and public clouds
- System Center 2016 Orchestrator: This provides the orchestration, integration, and automation of IT processes through the creation of runbooks to define and standardize best practices and improve operational efficiency
- System Center 2016 Service Manager: This provides flexible self-service experiences and standardized datacenter processes to integrate people, workflows, and knowledge across enterprise infrastructure and applications
When deploying System Center, there are some other systems and configurations you need to consider. There are some old components that have also been described here in order to help you to understand your current infrastructure before, for instance, migration to the new VMM from older versions.
WAP is a free solution to manage resources that integrates with System Center and Windows Server to provide a customizable self-service portal for managing services such as websites, Virtual Machines, SQL or MySQL servers, and Service Bus; it also includes capabilities for automating and integrating additional custom services. For more info see http://www.microsoft.com/en-us/server-cloud/products/windows-azure-pack/.
Service Provider Foundation (SPF) is provided with System Center Orchestrator, a component of System Center since 2012 SP1. Service Provider Foundation exposes an extensible OData web service that interacts with Virtual Machine Manager (VMM). It's main interface for communication between WAP, SCOM, and VMM.
Service Reporting, an optional component of System Center 2012 R2, enables IT (particularly hosting providers) to create detailed views, for each customer (tenant), of the virtual machine's consumption of the resources (CPU, memory, storage, and networking). For more info see http://technet.microsoft.com/en-us/library/dn251058.aspx.
Although the domain controller is not part of the System Center family and it is not a VMM component, it plays an important role in the deployment of a private cloud as VMM requires it to be installed on a domain environment.
WSUS plays an important role with reference to the private cloud as it is used to update the Hyper-V hosts, library servers, or any other role for compliance and remediation.
The App Controller provides a self-service experience through a web portal that can help you easily configure, deploy, and manage VMs and services across private, third-party hosters (that support Microsoft Hyper-V) and public clouds (Azure). For example, moving a VM from a private cloud to Azure, creating checkpoints, granting access, scaling out deployed services, and so on.
The App Controller has been used as a replacement of the VMM self-service portal since SC 2012 SP1. It was deprecated in the SC 2012 R2 time and finally removed in SC 2016. As noted above, you should plan Azure Pack deployment instead of current App Controller instance.
Azure Stack is a hybrid-cloud platform, bringing core public Azure services to your datacenter. These services are mostly dedicated to Azure PaaS and IaaS and help you out with building unified ecosystems between private and public clouds. Azure Stack is delivered as an integrated system, with software installed on the hardware built by partners like HPE and Cisco. Azure's familiar pay-as-you-go model is mainly being used in Azure Stack and you can stretch the same subscriptions out for both Azure and Azure Stack clouds. If you have unstable or restricted connection to Azure, you may choose to use Azure Stack in disconnected mode with a capacity model pricing package - a fixed fee annual subscription based on the number of physical cores. It's important to note that you can manage WAP VMs from Azure Stack using a special connector, though it's under review and not recommended for production use: https://aka.ms/wapconnectorazurestackdlc.
Note
To try Azure Stack for free, you can use its development kit and Azure VM with nested virtualization enabled (this option is tested, but not actually supported) or your own physical resources for a single-server deployment. For more info see https://docs.microsoft.com/ru-ru/azure/azure-stack/azure-stack-run-powershell-script.
The following table will guide you through choosing which System Center component is necessary as per your deployment:
Note
Although Configuration Manager (SCCM) is not mentioned in the following table, it plays an important role when it comes to patching Virtual Machine and you can use SCCMTask Sequence(TS) on a single process to deploy an OS to aVirtual Hard Disk (VHD). For more info see http://technet.microsoft.com/en-us/library/dn448591.aspx. You should also check Service Management Automation, which will enable Orchestrated offline VM Patching. For more info see http://blogs.technet.com/b/privatecloud/archive/2013/12/07/orchestrated-vm-patching.aspx.

