Recently I’ve had the experience of working with an F5 Networks Big IP 6800 load balancer, and been able to connect this with System Center Virtual Machine Manager (SCVMM) 2012. The overall scenario here is automating datacenter and application management for a global enterprise. In this article I’ll share some of the steps needed to setup your load balancer for use with SCVMM 2012.
The steps I’m describing here were done with the SCVMM 2012 Release Candidate. SCVMM is bringing about one of the big changes in automated datacenter management which is this notion of managing the compute/network/storage fabric within the datacenter. With SCVMM you can fully automate Hyper-V host deployments, storage and network setup and other elements. Along with this, keeping with the Microsoft mantra that Its All About the Application!, we can define service templates which can fully automate service deployment and application management. There are so many great innovations in the System Center 2012 wave that I can’t stop thinking about the possibilities !
Load Balancer setup
The first part of load balancer setup was fairly easy, I downloaded the F5 provider (see References below), and installed it. Setting up the load balancer in VMM is straight forward, it includes the IP address of the device, a RunAs account (provide the credentials to connect and manage the device), selecting the Host Groups and Logical Networks that can access the device, etc.
At the final page of the setup you can test the load balancer connection from SCVMM.
Logical Networks and IP Address Pools
The other key to configuring your SCVMM environment is to set up IP address pools on one or more logical networks. In order to use a load balancer in a service template the VMs must have static TCPIP addressing. But rather than hard-coding addresses, it means the VMs will pull their addresses from a pool of addresses maintained on SCVMM. Think of this as a mini-DHCP environment only for VMs.
Your IP Address Pool consists of:
- a network site with CIDR notation, I used 10.6.14.0/23. This notation will be familiar to those of you who have set up Active Directory subnet boundaries. Along with the network site you associate this site to one or more VMM Host Groups.
- IP Address ranges and VIPs – VIPs are Virtual IPs which will be assigned to a service when you use the load balancer in a service template. More on that directly below.
- Gateway, DNS, and WINS info, just like setting up a DHCP scope.
Virtual IP (VIP) Templates
Then you’ll need a VIP Template. This consists of:
- Template Type – usually will be specific to a particular load balancer configuration
- Protocol – including HTTPS Pass-through or Terminate. These will be important if the application being deployed uses SSL.
- Persistence – if the application uses session state the load balancer will be able to keep a particular client connected to a particular server (VM) in the farm.
- Load balancing method
- Health monitors – this is the method by which the load balancer can detect the state of a member of the server farm and determine if its healthy. These monitors can be simple or more complex depending on what constitutes healthy for the environment and application.
The Service Template
the template was simple in this case, just a 1-tier app layer with multiple web servers. In this case we had already deployed the SQL Server database for the application so it was not defined as part of the service. SCVMM and SQL Server 2008 R2 can be combined to create fully automated database deployments, but we haven’t implemented that yet.
In the Service template designer we have this. The non-intuitive part is you have to draw the connections from the load balancer Server connection to the NIC, and from the Client connection to the logical network. Note the IP address in configured as Static, this is important.
When you’re ready to Configure Deployment, SCVMM will map your service template onto the fabric and allow you to deploy the entire service in a fully automated fashion. This entire process can be Powershell-scripted of course, and in this case the requirement was to monitor for a Change Request in Service Manager, and then execute Powershell script from within an Opalis workflow.
(In the figure below the Red X’s indicate some issue with VM placement, in actual practice these can be easily fixed).
The Proof is in the Pudding
After deploying the service template I was able to go into the load balancer UI (using the F5 web admin tool) and see the configuration items that SCVMM created. Undoubtedly one can customize the Powershell statements to enforce some different naming conventions, or other changes.
One other note, F5 Networks also has a Powershell provider so you can manage your load balancer directly from Powershell. SCVMM presents a higher-level view of the network fabric. But if you need this lower level of control you can find the provider and sample code at http://devcentral.f5.com.
Some resources you can peruse to learn more about fabric management:
SCVMM on Technet - http://technet.microsoft.com/en-us/library/gg610610.aspx.
SCVMM blog posting - Integrating Load balancers into SCVMM 2012 Beta
F5 Networks provider for SCVMM 2012 - LINK; (note, you must sign in on F5’s web site to get the download).
The Microsoft Private Cloud blog - http://blogs.technet.com/b/privatecloud/
I love being a hands-on architect.
Glenn Walton | Senior Infrastructure Architect, Microsoft Services