Storage Spaces Direct Explained – Storage QOS & Networking

Storage QOS & NetworkingYo everyone…This is going to be a short blog post in this series. I am just covering Networking and Storage QoS as it pertains to S2D. There are the technologies the bind S2D together.
Storage QoS

S2D is using the Storage (QoS) Quality of Service that ships with Windows Server 2016 which provides standard min/max IOPS and bandwidth control. QoS policy can be applied at the VHD, VM, Groups of VMs, or Tenant Level. Benefits include:

  • Mitigate noisy neighbor issues. By default, Storage QoS ensures that a single virtual machine cannot consume all storage resources and starve other virtual machines of storage bandwidth.
  • Monitor end to end storage performance. As soon as virtual machines stored on a Scale-Out File Server are started, their performance is monitored. Performance details of all running virtual machines and the configuration of the Scale-Out File Server cluster can be viewed from a single location
  • Manage Storage I/O per workload business needs Storage QoS policies define performance minimums and maximums for virtual machines and ensures that they are met. This provides consistent performance to virtual machines, even in dense and overprovisioned environments. If policies cannot be met, alerts are available to track when VMs are out of policy or have invalid policies assigned.

Storage QOS & NetworkingWhat’s New in Networking with S2D?
In Windows Server 2016, they added Remote Direct Memory Access (RDMA) support to the Hyper-V virtual switch.
For those that don’t know what RMDA is it technology that allows direct memory access from one computer to another, bypassing TCP layer, CPU , OS layer and driver layer. Allowing for low latency and high-throughput connections. This is done with hardware transport offloads on network adapters that support RDMA.
Back to Hyper-V virtual switch support for RDMA.  This allows you to configure regular or RDMA enabled vNICs on top of a pair of RDMA capable physical NICs. They also added embedded NIC teaming or Switch Embedded Teaming (SET).
SET is where NIC teaming and the Hyper-V switch is a single entity and can now be used in conjunction with RDMA NICs, wherein Windows 2012 Server you needed to have separate NIC teams for RDMA and Hyper-V Switch.
The images below illustrates the architecture changes between Windows Server 2012 R2 and Windows Server 2016.
Storage QOS & Networking
Storage QOS & NetworkingNext up…Management and Operations…

Until next time, Rob

Nano Server…Revealed

Nano Server

Nano Server

At Microsoft Ignite, I had a chance to meet and talk with Jeff Snover…a great honor…and his latest project “Windows Nano Server” is very cool.  Windows Nano Server is designed to be as lightweight and compact as possible. ‘Nano Server is a deeply refactoring version of Windows Server with a small footprint and remotely managed installation, optimised for the cloud and a DevOps workflow,‘ as quoted by Jeffrey Snover, Andrew Mason and Alan Back in a joint blog post. ‘It is designed for fewer patch and update events, faster restarts, better resource utilization and tighter security.

The result: as compared to the equivalent Windows Server build, Nano Server offers a 93 percent reduction in storage requirements, 92 percent fewer critical security bulletins, and 80 percent fewer reboots during operation. This is great for Security and Network Admins….I spent a lot of nights during my times as a network admin around patching and worry about what might blow up and this is a welcome change, especially for a Hyper-V environment 😉  Go Microsoft…
Nano Server
Naturally, those benefits come at a cost. ‘To achieve these benefits, we removed the GUI stack, 32 bit support (WOW64), MSI and a number of default Server Core components,‘ the team explained. ‘There is no local logon or Remote Desktop support. All management is performed remotely via WMI and PowerShell. We are also adding Windows Server Roles and Features using Features on Demand and DISM.‘ Despite this, Nano Server remains API-compatible with other Windows Server variants – meaning it should, in theory, be relatively straightforward to port applications across to the platform.

Also, It ships with the baseline version of .NET called CoreCLR, which Microsoft in recent months made open source. The OS does not contain the binaries or metadata that typically increase the footprint and developers are expected to package applications along with dependencies in a single unit of deployment.
Core PowerShell, a minimalistic version of PowerShell refactored to run on CoreCLR, provides Remote management capabilities and Nano Server can be installed on physical hardware or virtualized infrastructure.

When Windows Server starts supporting Docker, Nano Server stands to become the become the preferred OS to run containers.
Nano Server
Windows Nano Server won’t be for everyone. Microsoft has indicated that it is targeting two prime markets for the new OS: cloud applications, which includes the ability to run multiple languages and runtimes in containers, virtual machines or physical servers; and of course its own Cloud Platform infrastructure, with support for Hyper-V compute clusters and Scale-out File Server storage clusters. It’s in virtualization where the biggest benefits will be found: with each virtual machine requiring only seven percent the storage space of previous Windows Server instances and consuming considerably fewer resources while running, the overhead of running a virtualized infrastructure is considerably lessened.

Flexibility is key to delivering a modern data center, and by using the combination of Nano Server and its new container technology Microsoft is making a big shift away from its previous monolithic server model to one that’s more aligned with the way we deliver cloud-scale services. That does mean that Nano Server won’t be for everyone. Customers are going to have to have made the shift to a DevOps model, and to using cloud-scale data center infrastructure practices of which I am a big believer in and frankly why I work for Nutanix.

Microsoft has not yet offered a release date or licensing information for Windows Nano Server. Beta bits are available via MSDN on the Windows Server Technical Preview 2 media. Instructions can be found here to get started, if you want to check it out.
In conclusion, with Nano Server, Microsoft stands a chance to blow them all out the water with keeping Windows relevant in the era of linux, containers and microservices.

Until next time, Rob…

Back to Basics….Hyper-V…What is it?

To start journey, one needs a foundation to start.  I assume everyone knows what a hyperviser is, but if you don’t check out Wikipedia.

VMware has been the leader for a number of years, along with another vendors and open source, like Xen and KVM. Microsoft also has a hand in Virtualization early on in the with Virtual Server, which was originally developed by Connectix, but no real traction and frankly it sucked.. For years, it had a bad rap compared to is competition until Hyper-V was introduced with Windows 2008.  Like any other product, it had it humble beginnings, but started to become a real threat.  With introduction of Windows 2012 and SMB 3.0, In my opinion, Hyper-V is as good, if not better than VMware’s ESXi. At this point, it is a numbers and education play.vmwarecompare Hyper-V

Hyper-V Overview (from Wikipedia with edits from me)

Hyper-V
Hyper-V implements isolation of virtual machines in terms of a partition. A partition is a logical unit of isolation, supported by the hypervisor, in which each guest operating system executes. A hypervisor instance has to have at least one parent partition, running a supported version of Windows Server (2008, 2008 R2, 2012 or 2012 R2). The virtualization stack runs in the parent partition and has direct access to the hardware devices. The parent partition then creates the child partitions which host the guest OSs. A parent partition creates child partitions using the hypercall API, which is the application programming interface exposed by Hyper-V.

A child partition does not have access to the physical processor, nor does it handle its real interrupts. Instead, it has a virtual view of the processor and runs in Guest Virtual Address, which, depending on the configuration of the hypervisor, might not necessarily be the entire virtual address space. Depending on VM configuration, Hyper-V may expose only a subset of the processors to each partition. The hypervisor handles the interrupts to the processor, and redirects them to the respective partition using a logical Synthetic Interrupt Controller (SynIC). Hyper-V can hardware accelerate the address translation of Guest Virtual Address-spaces by using second level address translation provided by the CPU, referred to as EPT on Intel and RVI (formerly NPT) on AMD.

Child partitions do not have direct access to hardware resources, but instead have a virtual view of the resources, in terms of virtual devices. Any request to the virtual devices is redirected via the VMBus to the devices in the parent partition, which will manage the requests. The VMBus is a logical channel which enables inter-partition communication. The response is also redirected via the VMBus. If the devices in the parent partition are also virtual devices, it will be redirected further until it reaches the parent partition, where it will gain access to the physical devices. Parent partitions run a Virtualization Service Provider (VSP), which connects to the VMBus and handles device access requests from child partitions. Child partition virtual devices internally run a Virtualization Service Client (VSC), which redirect the request to VSPs in the parent partition via the VMBus. This entire process is transparent to the guest OS.

Virtual devices can also take advantage of a Windows Server Virtualization feature, named Enlightened I/O, for storage, networking and graphics subsystems, among others. Enlightened I/O is specialized virtualization-aware implementation of high level communication protocols like SCSI to take advantage of VMBus directly, that allows bypassing any device emulation layer. This makes the communication more efficient, but requires the guest OS to support Enlightened I/O.
Also, check out the below poster, this highlights all the current features of Hyper-V
Windows_Server_2012_Hyper-V_Architecture

Hyper-V Install

The easiest way to start using Hyper-V is by adding the Hyper-V role in Windows Server (2008 & later). Roles are the services that a server provides and features are what a server does and by default all roles and features are disabled when you do a clean install of Windows Server.

Having done that (which requires a reboot) you get the hyper-V manager when you expand the role and then connect to you server and you are ready to create or import virtual machines (VMs).

This is not the only way to run Hyper-V, there is free version of Hyper-v called Hyper-V server which you can download here. This is based on server core, an install time option in Windows Server (2008 & later) that is the bare minimum operating system with no real graphical interface, and is either managed from the command line (e.g. with PowerShell, DOS, netsh, diskpart etc.)or remotely. Hyper-V server is even more cut down, it has all of the roles and features removed except hyper-V and so you need be pretty good at command line stuff or know who to connect and setup the remote administration tools for Windows.

So having got a Hyper-V environment setup, you can then use the create new virtual machine wizard in the virtual machine manager to create new virtual machines. This process is similar to the way you would specify your requirements for a physical server except that you are telling the wizard which resources you are using on the physical server the VM will run on. You can also import a VM from an export created on a another Hyper-V environment or complete the wizard but use a VHD that you have got from somewhere e.g. there are some on Microsoft to save you having to install and configure a Microsoft application in order to evaluate it.

If you are creating a new virtual machine, then the virtual hard disk will be empty and will need an operating system. Theoretically This can be anything that runs on x86 x64 hardware form DOS 3.3 to Windows 8, or even other OS’s like Unix, and Linux. However Microsoft will only support it’s operating systems and applications that are supported to run on physical hardware e.g. Windows 7 and not Windows 95 which is out of support. They word support here means you can get support from Microsoft and not a vague statement along the lines of “we got it to work but you’re on your own if you get stuck”. When it comes to Linux the latest versions of Red Hat SUSE and Centos are also supported because those distros have been made the subject of support arrangements between those Linux vendors and Microsoft so you can get support from Microsoft for them.

Will post a YouTube video soon on how to install Hyper-V…but take a test drive and see for yourself….

Until next time, Rob…