15 Apr 2014

Microsoft to Bring Back Start Menu in Future Windows 8.1 Update

Microsoft has made a lot of announcements at their Build Developer Conference this week, including the official unveiling of  Windows 8.1 Update, Windows Phone 8.1, and a number of development-related updates, including open-sourcing their 'Roslyn' compiler and introducing universal Windows apps. Keith Ward over at Visual Studio Magazine has a nice developer-focused recap of the big developer announcements at Build, and he argues that 2014 could be a watershed year for Microsoft developers.

Yet arguably one of the biggest bits of news to come out of Build 2014 was a brief mention (and demo) during the Day 1 keynote that went off like a bombshell: Terry Myerson, executive video president of Microsoft's Operating Systems Group, said that Microsoft was finally bringing back the start menu functionality that desktop users have been clamoring for. You can catch Myerson's comments about the new start menu beginning at the 2:08:55 mark in the recorded video of the Day 1 Build keynote on Microsoft's Channel 9. Yes, that's correct: That would be just past the two hour mark, as Microsoft clearly had a lot it wanted to share with Windows developers.

"There are more than 1.5 billion PC users, and hundreds of millions of PCs sold every year, and the primary experience for many users is the keyboard and mouse," Myers said. "We're going all-in with this desktop experience...for starters, we are going to enable universal windows applications to run in a window. And we're going to enable your users to find, discover, and run your windows applications with the new start menu."

Myerson then briefly demonstrated the new functionality of the future start menu, which allows users to find programs--including live tiles and modern applications--by using the same type of UI functionality that billions of PC users have become accustomed to. Myerson wasn't very clear about exactly when the update would be available, instead saying that Microsoft would "...be making this available to all Windows 8.1 users as an update. We think [there will be] a lot of happy people out there."

Myerson's comments seem to indicate that the new start menu wouldn't be part of the just-announced Windows 8.1 Update, but would likely be added in a future (and unnamed) update after that one. I'll update this post with new information as it become available.

Microsoft to Bring Back Start Menu in Future Windows 8.1 Update

Myerson then briefly demonstrated the new functionality of the future start menu, which allows users to find programs--including live tiles and modern applications--by using the same type of UI functionality that billions of PC users have become accustomed to. Myerson wasn't very clear about exactly when the update would be available, instead saying that Microsoft would "...be making this available to all Windows 8.1 users as an update. We think [there will be] a lot of happy people out there."

Microsoft to Bring Back Start Menu in Future Windows 8.1 Update

Myerson then briefly demonstrated the new functionality of the future start menu, which allows users to find programs--including live tiles and modern applications--by using the same type of UI functionality that billions of PC users have become accustomed to. Myerson wasn't very clear about exactly when the update would be available, instead saying that Microsoft would "...be making this available to all Windows 8.1 users as an update. We think [there will be] a lot of happy people out there."

What’s New in Windows 8.1 Update

Microsoft's latest update to Windows 8.1 -- which has now been officially christened Windows 8.1 Update -- continues Microsoft's efforts to file off the rough edges of the initial Windows 8 release. Although Microsoft won't describe it as such, Windows 8.1 Update can be viewed as yet another step backwards from the touch-optimized initial Windows 8 release and a step towards satisfying the needs of mouse and keyboard users.

Windows 8.1 Update: Improvements and Changes

Let's take a look at a few of the major changes and improvements in this update, most of which were mentioned by Microsoft's Joe Belfiore in a post on the Windows Phone blog during last week's Mobile World Congress in Barcelona. Given that some of this information is preliminary and from multiple sources, please check back regularly as I update the article with newer and potentially more accurate information.

Boot to Desktop by Default: Windows 8.1 introduced the ability to enable booting to desktop as an option, but Tom Warren at The Verge is reporting that the latest build "...only boots to the desktop on non-touchscreen PCs by default." This boot to desktop by default feature for keyboard and mouse users could go a long way to addressing some of the gripes that Petri IT Knowledgebase readers (and yours truly) have long had about Windows 8.

New Right-Click Context Sensitive Menus: A convenient feature for mouse and keyboard users is the ability to right-click on a UI element -- such as the Windows desktop, the task bar, or other interface elements -- and get a context-sensitive menu that provides additional options. While that functionality has always existed in the desktop mode of Windows 8/8.1, Paul Thurrott over at the Windows Supersite says that Microsoft is planning to a add that functionality to the Metro side of Windows 8.1.

Taskbar on the Start Screen: Another chance being discussed for this update is a change to how the desktop task bar behaves when switching between the desktop and Metro interfaces. In Windows 8.1, the task bar would vanish when you switched to the Metro-fied Start Screen. In Windows 8.1 Update, the taskbar remains onscreen when you switch to the start screen. I'll try to add a photo and/or video of this functionality in action in the near future. Regardless, this change should also help PC desktop users accustomed to the traditional start menu and task bar feel at home.

Search and Power Buttons on the Start Screen: Microsoft is adding some icons to make shutting down and searching easier for desktop and mouse users, namely by adding power and search buttons to the upper right corner of the Metro start screen. I can tell from watching friends and family members using Windows 8 for the first time that simply shutting down the machine and searching for content are not that intuitive, so adding visual icons for these should be helpful.

Pin Metro Apps to Desktop Taskbar: Another area where I've seen users stumble when using Windows 8 is when trying to find and open Metro apps from the desktop side. It's honestly a confusing mess, and Windows 8.1 Update should address this UI mistake as well. ZDNet's Mary Jo Foley says that the update will give users the ability to pin Metro apps to the Windows 8.1 desktop task bar, which will make it much easier to access Metro apps from the desktop side.

Improved  IE8 compatibility in Internet Explorer 11: Belfiore calls this new functionality out specifically in his post, saying that  the Windows 8.1 Update release will enhance IE8 compatibility for Internet Explorer 11 users "...which is especially critical for web-based line of business applications." ZDNet's Mary Jo Foley has recently reported a bit on this feature in the past, which has been referred to as IE 11 ' enterprise mode.'

Cheaper Windows 8 partner licensing costs: Belfiore mentions that Microsoft will "...enable our partners to build lower cost hardware for a great Windows experience at highly competitive price points." That can only mean that Microsoft plans to reduce the licensing costs that it charges hardware partners to

Improved mobile device management capability: Microsoft has steadily been building out the ability to more effectively manage mobile devices on the IT management and server side with impressive updates to Windows Intune and Microsoft System Center, so it was only logical that the company introduce additional hooks on the client side to facilitate easier management of Windows 8.1 and Windows Phone mobile devices on the client side. Belfiore didn't spell out exact details about what these enhanced mobile device management capabilities will be, so we'll update this section as more information is revealed.

Improved deployment options: Belfiore mentioned improved mobile device management and deployment options in the same sentence, and it's clear that Microsoft is bending over backwards to streamline and optimize the deployment of Windows 8.1 into the enterprise. It's been widely reported here and elsewhere that Windows 8 adoption in the enterprise is lagging, so anything Microsoft can do to make deployment easier for IT management should help their case.

3 Apr 2014

How to Enable Hyper-V Virtual Machine Processor Compatibility Mode

Windows Server 2008 R2 (W2008 R2) introduced live migration to Hyper-V. Live migration allows running virtual machines to move from one host to another with no perceivable downtime. There are some boundaries that are enforced by hardware on this type of virtual machine movement. In this article, I will show you how to enable processor compatibility mode in Hyper-V to allow a virtual machine to move between different generations of the same processor family.

How Processors Restrict Virtual Machine Movement

A hypervisor will reveal the capabilities of the physical processor to a virtual machine when that virtual machine boots up. The virtual machine will then use those features to run services. Over the years, AMD and Intel have added features, especially for virtualization, that enhance the performance and security of those virtual machines. Obviously neither Intel nor AMD can back-port their hardware enhancements to already deployed processors, so there is a potential issue. Let’s get something clear first: You cannot live migrate or restore saved virtual machines across different families of processor. This means, for example, that you cannot do the following:

    * live migrate from a host with Intel processor to a host with AMD processors
    * restore a virtual machine on an Intel host from a saved state created on a host with an AMD processor

The reason is quite simple: The processors are in different families and have completely different instructions and features. There is no way around this. So the advice is simple: Go all-Intel or all-AMD within your expected migration boundaries.

Imagine you have a virtual machine running on Host1. Host1 has a “Generation 1” processor from manufacturer X. You want to live migrate that virtual machine to Host2 that has “Generation 3” processors. The newer processors have a superset of features; in other words, all of the features on the older processor exist or are compatible on the newer processor. The live migration will work because the virtual machine is using features that will still work on the newer host. The newer processor has many more features that cannot be found on the older processor. Say you start another virtual machine on Host2. It will find all those lovely new features of the newer processor that do not exist on Host1. You will not be able to live migrate this second virtual machine to Host1 because the newer processor enhancements are not there to be used by the already running virtual machine. This incapability of features between different generations of a processor family also impacts restoring virtual machines.

Processor Compatibility Mode

We have had the ability since W2008 R2 to enable processor compatibility mode in the processor settings of a virtual machine. This setting will allow you to live migrate or restore a virtual machine across different generations of processor within the same family (Intel to Intel, or AMD to AMD). Enabling processor compatibility is easy. Simply open the settings of the required virtual machine and check the box.



There is a significant price to enabling this feature. The hypervisor will hide all of the advanced processor virtualization enhancements from the virtual machine when it boots up. This will reduce the performance of your services. My suggestion is that this feature should be used as a last resort. Instead, you should always try to keep your processors in the same generation. This is hard to do when you are adding servers over time and manufacturers keep adding new stock. So here are my ideas:
  • When you start a new cloud or host farm, buy the newest processor and server spec that you can afford. This will give you a longer window for buying more of the same spec later on.
  • When you need to add more host capacity, go back to that spec and get more of the same.
This won't be a complete solution if you're adding host capacity over multi-year periods because hardware does change. But it will increase the size of your live migration boundaries.

What Is Non-Uniform Memory Access (NUMA)?

Non-Uniform Memory Access (NUMA): Overview

Non-uniform memory access is a physical architecture on the motherboard of a multiprocessor computer. The architecture lays out how processors or cores are connected directly and indirectly to blocks of memory in the machine. Software such as Windows Server or Hyper-V must deal with this physical construction to offer the best possible performance for their services.

The below diagram illustrates a physical computer with two NUMA nodes. The cores and memory of the computer are split between these NUMA nodes. The cores (0-3) in Node 0 have direct access to half of the memory. The cores (4-7) in Node 1 have direct access to the other half of the memory. Note that the cores of each node have indirect access to the RAM in the other node.

Non-Uniform Memory Access illustration



An illustration of NUMA.

If any process running on the cores of node 0 requests memory, a NUMA-aware operating system (such as Windows Server or Linux) or application (such as SQL Server) will do its best to assign RAM from the same node. This is because direct access to RAM offers the best performance. For example, let’s say the above machine is running Hyper-V and a virtual machine is running on the logical processors (LP) in node 0. If that virtual machine requests RAM, Hyper-V will always try to assign RAM from node 0.

On the other hand, if there is no RAM available in the same node, the application, operating system, or Hyper-V will have no choice but to assign RAM from another node. If our virtual machine, running in node 0, needs more RAM, and the only place to get that RAM is node 1, then Hyper-V will assign that RAM by default. There is a penalty in performance of that RAM, but it was assigned.

Have you ever noticed the instructions for your server telling you how to match up RAM with your processors? That’s NUMA in action.

Detecting NUMA Architecture

The NUMA architecture of the most common Hyper-V hosts is usually pretty simple: dual sockets (processors) = 2 NUMA nodes. But there are other ways to tell including:

    * Running CoreInfo from Microsoft SysInternals
    * Using Performance Monitor to query NUMA Node Memory \ Total MBytes
    * Run the Get-VMHostNumaNode PowerShell cmdlet on a Hyper-V host



Hyper-V and NUMA

As you can see above, Hyper-V is designed to optimize how virtual machine processors and memory are assigned to get the best possible performance. There are a few features that have been added over the versions to optimize that performance:

    * Disable NUMA node spanning
    * Guest-aware NUMA
    * Customizable virtual processor NUMA topology (to be covered in a later article)

Disable NUMA Node Spanning

When you enable Dynamic Memory (W2008 R2 SP1 Hyper-V and later) there is a chance that you will have many virtual machines constantly adding and removing tiny amounts of RAM from the host’s capacity. Hyper-V will try to keep virtual machines within their NUMA node, but if that node’s block of RAM is fully used, Hyper-V will have to span nodes and assign RAM via indirect access from another NUMA node. That can impact not only the performance of the virtual machine, but of the entire host.

If you find a drop in performance in a host and can correlate that to NUMA node spanning via Performance Monitor (compare Hyper-V VM Vid Partition : Remote Physical Pages as a percentage of Hyper-V VM Vid Partition : Physical Pages Allocated per virtual machine) then you can disable NUMA node spanning in the host’s Hyper-V settings.



Guest Aware NUMA

Windows Server 2012 (WS2012) allowed us to create virtual machines with more than four (up to 64) virtual CPUs for the first time. However, this created a possible problem: The virtual CPUs (vCPUs) of larger virtual machines would be almost guaranteed to span NUMA nodes. How would the guest OS or guest services that are running in the virtual machine avoid spanning NUMA nodes?

A feature called Guest Aware NUMA or Virtual NUMA was added in WS2012. When you start a virtual machine (it must not have Dynamic Memory enabled) Hyper-V will reveal the physical NUMA architecture that the virtual machine is residing on to the virtual machine. The guest OS of the virtual machine will treat this virtual NUMA layout as if it was the NUMA architecture of a physical computer. The guest OS and any NUMA-aware services will assign RAM from within the virtual machine to align with the NUMA node of the associated processes.

Virtual NUMA is disabled in a virtual machine once you enable Dynamic Memory for that virtual machine.