How Much Memory Does My Hyper-V Host Require?

If you are trying to figure out how much RAM you have left for virtual machines then this is the post for you.

When Microsoft launched Dynamic Memory with W2008 R2 SP1, we were introduced to the concept of a host reserve (nothing to do with the SCVMM concept); the hypervisor would keep so much memory for the Management OS, and everything else was fair game for the VMs. The host reserve back then was a configurable entry in the registry (MemoryReserve [DWORD] in HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Virtualization). Things changed with WS2012 when we were told that Hyper-V would look after the reserve and we should stay away from it. That means we don’t know how much memory is left for VMs. I could guess it roughly but I had no hard facts.

And then I saw a KB article from about a month ago that deals with a scenario where it appears that a host has free memory but VMs still cannot start.

There’s two interesting piece of information in that post. The first is how to check how much RAM is actually available for VMs. Do not use Task Manager or other similar metrics. Instead, use PerfMon and check Hyper-V Dynamic Memory Balancer\Available Memory (instance: System Balancer). This metric shows how much memory is available for starting virtual machines.

The second fact is is the size of the host reserve, which is based on the amount of physical RAM in the host. The following table is an approximation of results of the algorithm:

image

Microsoft goes on to give an example. You have a host with 16 GB RAM:

  • The Mangement OS uses 2 GB.
  • The host reserve is up to 2.5 GB.
  • That leaves you with 11.5 GB RAM for VMs.

So think about it:

  1. You log into the host with 16 GB RAM, and fire up Task Manger.
  2. There you see maybe 13.5 GB RAM free.
  3. You create a VM with 13 GB RAM, but it won’t start because the Management OS uses 2 GB and the host reserve is between 2-2.5 GB, leaving you with 11.5-12GB RAM for VMs.

Picking an Azure Virtual Machine Tier

This post is a part of a series:

If you are looking at deploying an A-Series virtual machine in Azure then there are two tiers to choose from:

  • Basic
  • Standard

There are a few differences between the two tiers.

Load Balancing

You can load balance Standard tier virtual machines for free. This includes external and internal load balancing. Note that this is port-level load balancing, not application layer. If you want to do load balancing at the application layer then look in the Azure marketplace for some appliances. There you’ll find well known names such as Kemp, Citrix, and more.

There is no load balancing with Basic tier VMs.

Auto-Scaling

Say a business needs to handle unpredictable peak capacity, without human effort or lost business opportunities. This might be a few times a day or every few weeks. How do they do it? The old way was to deploy lots of machines, load balance them, and eat the cost when there was no peak business … no seriously … they deployed enough for normal demand and lost business during periods of peak demand. Auto-scaling says:

  • Deploy the Standard tier VMs you need to handle peak demand
  • Power up VMs based on demand
  • Power down VMs when demand drops
  • And it’s all automatic using rules you define

VMs are billed based on storage consumed (very cheap) and hours running. So those VMs that aren’t running incur very little cost, and you only generate more costs when you are generating more business to absorb those costs.

There is no auto-scaling with Basic tier VMs.

IOPS

A virtual machine can have 1 or more data disks, depending on the spec of the VM. Basic tier VMs offer a max IOPS of 300 per data disk. Standard tier VMs offer a max IOPS of 500 per data disk. If a VM has more than one data disk then you can aggregate the IOPS potential of each data disk of that VM by mirroring/striping the disks in the guest OS.

Higher Specs

The highest spec Basic A-Series VM is the Basic A4 with 8 vCPUs (AMD processor on the physical host), 14 GB RAM, and up to 16 data disks. Basic VMs can only have 1 vNIC.

Standard A-Series VMs include similar and higher specs. There are also some higher spec Standard A-Series that offer Xeon processors on the host, a lot more RAM, and even an extra Infiniband (RDMA) 40 Gbps NIC.

Examples

I need a pair of domain controllers for a mid-sized business. I’ll probably opt for Basic tier VMs, such as the Basic A2, because I can’t use load balancing or auto-scaling with domain controllers. I don’t need much IOPS for the data disk (where SYSVOL, etc  will be stored) and DC’s have a relatively light workload.

What if I want an application that has no software-based load balancing and will need somewhere between 2 and 10 VMs depending on demand? I need load balancing from the Azure fabric and it sounds like I’ll need auto-scaling too. So I’ll opt for a Standard A-Series VM.

Microsoft News – 30 September 2015

Microsoft announced a lot of stuff at AzureCon last night so there’s lots of “launch” posts to describe the features. I also found a glut of 2012 R2 Hyper-V related KB articles & hotfixes from the last month or so.

Hyper-V

Windows Server

Azure

Office 365

EMS

Clarifying Some Of Yesterday’s Azure Announcements

Yesterday, Microsoft marketing published a blog post where they said a lot of things about new services, features, and locations for Azure. Let’s just say that some content in the announcement was less … correct or clear than one might hope for. I’m not saying that this was deliberate, but there is a history of this in Microsoft – Mary Jo Foley and Paul Thurrott joke that this is why they have jobs!

Microsoft announced that 3 new regions went live in India yesterday. I tried a few times to create stuff in those regions, but none of the new regions appeared in my personal subscription (MSDN) or my work one (Open VL). I guessed that “ went live today” meant at some time during the day in the PDT time zone, so I decided to wait until the next morning (Irish time) but India was still not there. So I went looking.

image

So the India regions are live, but like the Australian and New Zealand regions, they are not available to me because I do not have a business presence in India (or Australia and New Zealand).

The announcement also said:

The general availability of Azure Backup of application workloads. Included as part of Microsoft Operations Management Suite, Azure Backup now supports direct backup of SQL Server, SharePoint, and Microsoft Dynamics.

There are three things that I could have read from that statement (please note that both of the following are incorrect):

  1. Azure Backup MARS agent now can backup applications without DPM and without Project Venus
  2. This service is live now
  3. Azure Backup only comes with OMS

I asked my contacts for some clarification. Project Venus is still happening and it is the only way that Azure Backup will be eventually able to directly backup applications. Project Venus is not GA yet, but will be soon – you can bet that I’ll blog about it! I’ve stung Marketing before over the hints that Azure Backup is only available in OMS – that is simply not true; yes, AB credit is included in the add-on, but the full AB service is available to anyone with an Azure subscription.

There might be more incorrect information in that announcement that I’m currently unaware of.

I wish these announcements were more clear and correct. If you’re honest and describe the plans with some sort of timeline then we’ll forgive things that aren’t perfect. But if we are lead on a wild goose chase, wasting time and money, to find contradicting facts buried elsewhere, then we think less of the company making the announcement.

News for IT Pros from AzureCon

Microsoft announced a bunch of new stuff in the Azure world today for AzureCon. Here’s a summary of the stuff relevant to IT pros. Azure is growing still:

image

Azure Container Service

Microsoft describes this as:

… an open source container scheduling and orchestration service which builds on our partnerships with both Docker and Mesosphere, as well as our contributions to open source projects in this space.

This gives you Docker service delivery and Apache Mesos orchestrator. Other pieces included are Marathon for launching/scaling container-based application and Chronos, offering distribute cron job and batch workload management.

Azure Container Service will be in preview before the end of 2016.

image

Note that in the above slide (presented at AzureCon by Scott Guthrie) mentions the future on-premises Azure Stack.

More Regions

Three new regions just opened in India:

  • Central Indi (Pune)
  • South India (Chennai)
  • West India (Mumbai)

That should add about 60 new jobs to the Indian economy – it doesn’t take much labour to run one of these regions! Azure is available now, O365 will be there in October, and Dynamics CRM will come in H1 2016.

Azure Security Center

This is similar to something that was launched for O365 recently. Azure Security Center is:

… an integrated security solution that gives customers end to end visibility and control of the security of their Azure resources, helping them to stay ahead of threats as they evolve.

This solution integrates with partner solutions from the likes of Barracuda, Checkpoint, Cisco, CloudFlare, F5 Networks, Imperva, Incapsula, and Trend Micro.

You’ll get the usual monitoring and policy management, but ASC will also use information about global threats and your environment to make recommendations; that’s an interesting development! ASC will be broadly available by the end of 2016.

image

Guthrie said at AzureCon that there is DDOS detection built into this service.

image

Easier deployment of security appliances. And there’s best practices and scanning of network security groups (Extended Port ACLs in Azure). There is security alerting, that ingests data from the various partner vendors. Hadoop is analysing this data. SQL injection and DDOS attacks will appear in the alerts, maybe even pinpointing the location of those attacks.

This is a huge achievement of integrated advanced services.

N-Series VMs

This had to come – N-Series VMs can be thought of as the NVIDIA VMs, because that’s exactly what they are, VMs with GPU capabilities. GPUs are great for graphic and compute intensive workloads. N-Series will be available in preview in the coming months, and will feature:

… NVIDIA Tesla Accelerated Computing Platform as well as NVIDIA GRID 2.0 technology, providing the highest-end graphics support available in the cloud today.

image

I think I heard Guthrie say that N-Series has Infiniband networking.

DV2 D-Series Virtual Machines

DV2 is D-Series Version 2 virtual machines. These VMs use a customized 2.4 GHz Intel Zeon E5 v3. With turbo boost 2.0 the clock can run up to 3.2 GHz, making it 32% faster than current D-series VMs.

Other News

Some bullets:

  • The general availability of ExpressRoute for O365 and Skype for Business, as well as the ability to connect to Microsoft Azure’s Government Cloud via ExpressRoute.
  • New pricing plans for ExpressRoute. Effective Oct 1st 2015, customers will have two different data plans for their ExpressRoute connections.
  • A8-A11 VM instances will be reduced in price by as much as 60%, starting Oct 1st. They needed this – it’s been much cheaper to run big workloads in traditional hosting or on-premises.
  • Azure File Storage is GA. Whoah – it’s based on SMB 3.0!
  • The general availability of Azure Backup of application workloads … Hmm, I’m reading this in-between the lines as the start of Project Venus, and “direct” might not be “direct”.  [EDIT] It was confirmed to me that this is Project Venus, and it is not live yet.
  • Upcoming availability of Azure Resource Health, a new service that exposes the health of each of Azure resources such as Virtual Machines, websites and SQL Databases to help customers quickly identify the root cause of a problem.

Lots of stuff there to keep the Azure bigwigs busy in their AzureCon keynotes.

Understanding Microsoft’s Explanation of Azure VM Specs

This post is a part of a series:

I have a great laugh when I am in front of a room and explaining Microsoft’s Azure VM specs to people. Take a look at this screenshot from the pricing site:

imageLet me ask you a few questions about the Basic A1 VM:

  1. How much disk space does that VM have?
  2. How many data disks can that VM be allocated?
  3. What is the max IOPS of each data disk?
  4. What are the maximum number of virtual NICs can that VM have?

Let me give you a clue:

  1. The answer is not 40 GB
  2. You don’t have enough information
  3. You don’t have enough information
  4. You don’t have enough information

We have answered 1/4 questions from the pricing site.

Let’s go dig for information on the Sizes For Virtual Machines page. Here we get a different set of information:

imageLet’s try answer those questions about the Basic A1 again:

  1. The answer is not 1063 (1023 + 40) GB
  2. A maximum of 2 data disks is correct
  3. Each data disk can have up to 300 IOPS. With 2 data disks, we can have an aggregate of 600 IOPS using Storage Spaces, etc, in the guest OS
  4. You still don’t have enough information.

OK, we now can answer 2/4 questions correctly! Let’s go to a reliable tool: Google. I found Create A VM With Multiple NICs. There I have found the below:

image

Now I can update my answers:

  1. The answer is not 1063 (1023 + 40) GB
  2. A maximum of 2 data disks is correct
  3. Each data disk can have up to 300 IOPS. With 2 data disks, we can have an aggregate of 600 IOPS using Storage Spaces, etc, in the guest OS
  4. A Basic A1 VM can have 1 virtual NIC

OK, would someone please tell me how much storage space will be consumed if I deploy a Basic A1 VM with Windows Server?!?!?!?!

The answer is that the C: drive of any Windows Server VM that is deployed from the Marketplace is 127 GB. The D: drive (a temporary drive that you should not store persistent data on) is indicated in the pricing. So, the Basic A1 VM will deploy a 127 GB C: drive and a 40 GB D: drive.

    1. How much disk space does that VM have? 167 GB.
    2. How many data disks can that VM be allocated? 1 maximum of 2.
    3. What is the max IOPS of each data disk? 300 IOPS.
    4. What are the maximum number of virtual NICs can that VM have? It can have 1 vNIC.

[EDIT]

I found another nugget of information today while pricing up DS-Series and GS-Series virtual machines. Microsoft says that DS-Series cost the same as D-Series. That’s no longer the case; D-Series was reduced in price on Oct 1st 2015, and DV2-Series was introduced as an upgrade. Now DS-Series costs the same as Dv2-Series at this time. GS-Series is still (at this time) the same price as G-Series.

If only there was a website with that information!

DataON Gets Over 1 Million IOPS using Storage Spaces With A 2U JBOD

I work for a European distributor of DataON storage. When Storage Spaces was released with WS2012, DataON was one of the two leading implementers, and to this day, despite the efforts of HP and Dell, I think DataON gives the best balance of:

  • Performance
  • Price
  • Stability
  • Up-to-date solutions

A few months ago, DataON sent us a document on some benchmark work that was done with their new 12 Gb SAS JBOD. Here are some of the details of the test and the results.

Hardware

  • DNS-2640D (1 tray) with 24 x 2.5” disk slots
  • Servers with 2x E5-2660v3 CPUs, 32 GB RAM, 2 x LSI 9300-8e SAS adapters, and 2 x SSDs for the OS – They actually used the server blades from the CiB-9224, but this could have been a DL380 or a Dell R7x0
  • Windows Server 2012 R2, Build 9600
  • MPIO configured for Least Blocks (LB) policy
  • 24 x 400GB HGST 12G SSD

Storage Spaces

A single pool was created. Virtual disks were created as follows:

image

Test Results

IOMeter was run against the aggregate storage in a number of different scenarios. The results are below:

image

The headline number is 1.1 million 4K reads per second. But even if we stick to 8K, the JBOD was offering 700,000 reads or 300,000 writes.

I bet this test rig cost a fraction of what the equivalent performing SAN would!

Upgrade An Azure-Hosted Service By Moving A VIP To A New Cloud Service

Last Friday I talked about how you could reserve and manipulate cloud service VIPs. In this post I’m going to show you how to “upgrade” a service by moving to a new installation of that service running in a new cloud service – this can be done by moving the VIP of the original cloud service to the new cloud service.

Have you wondered how you will upgrade your WS2012 R2 VMs to WS2016 in Azure? The answer is that you won’t. You will have to migrate services to new VMs. Here’s a way to do that migration. This process will keep the original installation running while the new service is being built. Once ready, the VIP (the public IP of the original service) is migrated to the newer cloud service. If all goes well, you remove the old cloud service. If all sucks, you migrate the VIP back to the original cloud service.

In my lab I have two cloud services:

  • OldWeb: This runs a WS2012 R2 VM with IIS
  • NewWeb2016: This runs a WS2016 VM with IIS

image

image

Let’s say I have a site called http://www.joeelway.com. The A records for joeelway.com and http://www.joeelway.com will point to this VIP of the OldWeb cloud service; this is what allows a browser to connect to that site. If I don’t have a reserved VIP then I can create one easily enough with:

New-AzureReservedIP -ReservedIPName "WebsiteVIP" -Location "North Europe" -ServiceName "OldWeb"

This will reserve the existing IPv4 address that is used by OldWeb with the cloud service. This is a non-disruptive change that simply fixes the existing IP address with the cloud service. I can continue to browse to the website using the same VIP as when it was dynamic.

image

image

Now I can build up a new web application using the NewWeb2016 cloud service. This has zero impact on the OldWeb cloud service, running side-by-side but using a different (probably dynamic) VIP:

image

The A records for the joeelway.com domain continue to point at the reserved VIP for OldWeb, so users are still going to the old service.

And then we plan a switchover, with all of the necessary data copy/replication/synchronisation, change controls, reviews, communications, etc. How do I make the change? It’s simple; we run two cmdlets to change the reserved IP association.

The first cmdlet will remove the association of the reserved VIP from the OldWeb cloud service. This forces the old service to get a new dynamic VIP:

Remove-AzureReservedIPAssociation -ReservedIPName "WebsiteVIP" -ServiceName “OldWeb”

This cmdlet takes a few minutes to run so plan for the associated outage that will be caused. The A records for the joeelway.com domain continue to point at the reserved VIP, which is no longer associated with a service. If you browse to the VIP the connection will time out:

image

We want to avoid such a time out experience for the site’s users so we will very quickly associate the VIP with the new cloud service to minimise downtime (scripting is perfect for this!):

Set-AzureReservedIPAssociation -ReservedIPName "WebsiteVIP" -ServiceName "NewWeb2016"

The A records continue to resolve to the reserved VIP, and now the VIP is associated to the new cloud service:

image

If all goes well, you can decommission the old cloud service (VMs, etc), but you can leave them running for a little while as a rollback plan:

  1. Remove the VIP association from the new cloud service
  2. Set the VIP association with the old cloud service

You have to admit that, even if you are a PowerShell hater, this is a nice way to switch clients to a new version of a service.

Microsoft News – 28 September 2015

Wow, the year is flying by fast. There’s a bunch of stuff to read here. Microsoft has stepped up the amount of information being released on WS2016 Hyper-V (and related) features. EMS is growing in terms of features and functionality. And Azure IaaS continues to release lots of new features.

Hyper-V

Windows Client

Azure

System Center

Office 365

EMS

Security

Miscellaneous

AzureCon – A Free Online Azure Conference

Microsoft is hosting a free online conference featuring Azure called AzureCon, starting tomorrow (Tuesday 29th) at 5pm UK/IE time, 9am PDT.

image

There is a mixture of level 200 and 300 content that is aimed at IT Pros, including:

  • Azure for IT implementors (Mark Russinovich): By now you will have heard of Azure and probably have been lost in a plethora of terminology: virtual networks, web apps, worker roles, virtual machines, Azure Active Directory, compute, REST APIs, blobs—the list goes on and on. Doesn’t it just make your head hurt? Come to this session and understand what Azure is, what can be done with it, and what role you can take as an IT pro. Gain a thorough understanding of the components of Azure. Learn how you can integrate on-premises and cloud services, creating solutions for the future. The session is packed with demos.
  • Azure IaaS: proper sizing and cost (Robert Davis): Two of the most frequently asked questions about moving to Azure IaaS are “How do I size it?” and “What will it cost me?” These questions aren’t easy to answer. Many tools will tell you how to move an on-premises computer to an Azure virtual machine assuming that what you have now is exactly what you need in Azure. In this session, you’ll learn that it is possible to accurately determine what size Azure virtual machines you need and how to calculate the most cost-effective way to move to Azure. You’re moving to better, faster hardware, so why would you need the exact same number of virtual machines with the exact same memory and CPUs? Servers can be consolidated and sized appropriately when the recommendations are based on analysis of the actual performance of the existing servers with a mind for consolidation using very precise calculations of the performance capabilities of the Azure environment. In addition to performance, you can accurately determine your best options based on costs for Azure in terms of storage, storage transactions, networking, and Microsoft SQL Server licensing. Would you be better off moving 5 on-premises servers on a standard A7 virtual machine or would 3 servers on a standard A5 and the other 2 on a basic A3 be more cost effective? This can be calculated.
  • Deciding between different virtual machine sizes (Kenaz Kwa): Azure provides a wide range of virtual machine sizes for any workload that you might want to run. Trying to decide which size is right for your workload can seem challenging. Join this session to find out about some of the considerations for selecting virtual machine sizes and learn the differences between different virtual machine size families and their regional availability.
  • Bring Azure to your datacenter with Azure Stack (Anant Sundaram): Modernization of on-premises infrastructure, hybrid approaches, and new models for application delivery all make it possible for IT to help drive business value and transformation. Learn how, with the recently announced Azure Stack, to bring the innovation from our hyper-scale datacenters into yours, enabling agility and productivity for application owners, with flexibility and control for IT.
  • Increase productivity and enhance security with enterprise mobility (Adam Bresson): The rapid growth of mobile devices combined with ubiquitous access to cloud services is changing the way people use devices to get work done. In this session, learn how to deliver enterprise mobility with consistent experiences that enable users to work on the devices they choose, while providing a unified infrastructure for managing applications and protecting corporate data.

This event is starting late for us Europeans. I wish MSFT would repeat this at Euro time zones. Note that the upcoming cloud road show has an audience reach that is too limited.

Register & tune into this event and catch what you can – it should prove to be a learning experience.