Hyper-V Architecture -2

Enable Hardware settings in BIOS to run Hyper V

Terms & Concept 

A good blog to start with to understand some of the Hyper-V Terminology.

Data Execution Prevention (DEP)

  • Enlightenments

Enlightened I/O is a specialized virtualization-aware implementation of high level communication protocols (such as SCSI) that utilize the VMBus directly, bypassing any device emulation layer. This makes the communication more efficient but requires an enlightened guest that is hypervisor and VMBus aware. Hyper-V enlightened I/O and a hypervisor aware kernel is provided via installation of Hyper-V integration services.

How to turn on Hardware Assisted Virtualization

Modern processors (CPUs) from Intel and AMD include extensions to provide the ability to load a hypervisor virtualisation platform in between the computer hardware and the main, or host, operating system. This is currently implemented in the Intel VT and AMD-V line of processors.

Interface for communication with the hypervisor – The hypercall interface accommodates access to the optimisations provided by the hypervisor.

A layer of software that sits between the hardware and one or more operating systems. Its primary job is to provide isolated execution environments called partitions. The hypervisor controls and arbitrates access to the underlying hardware.

Hyper-V: Integration Components and Enlightenments

Unit of isolation within the hypervisor that is commonly referred to as a virtual machine. A partition is allocated physical memory address space and virtual processors.

  •  Root Partition – Manages machine-level functions such as device drivers, power management, and device hot addition/removal. The root (or parent) partition is the only partition that has direct access to physical memory and devices.
  •   Child Partition – Partition that hosts a guest operating system – All access to physical memory and devices by a child partition is provided via the Virtual Machine Bus (VMBus) or the hypervisor.

 

A good read;

Hyper-V Virtual Machine Snapshots: FAQ

Managing Snapshots with Hyper-V

It is a technique for abstracting the physical characteristics of computing resources and presenting them as logical resources, sometimes with different characteristics, to operating system(s) that interact with those resources  for more details; please check this , I didn’t find any better explanation of this however this may help.

Introduction to Virtualisation 

Virtualization

  • Virtual Machine

A virtual machine is a super-set of a child partition.  A virtual machine is a child partition combined with virtualisation stack components that provide functionality such as access to emulated devices, and features like being able to save state a virtual machine.  It is  an  essentially a  specialised partition, I (and many members on the team) tend to use the terms “partition” and “virtual machine” interchangeably.  But, while a virtual machine will always have a partition associated with it – a partition may not always be a virtual machine.

Basic Components of Virtualisation

  • Scheduler

The scheduler manages timing-based access to physical resources by different virtual machines. The scheduler’s behavior can normally be controlled at a high level by virtual machine configuration options that are available to administrators.

  • Memory management

The memory manager manages the virtual memory for virtual machines and provides them with an abstracted contiguous view of the computer’s physical memory.

  • State machine

A state Machine maintains information about the running state of a virtual machine, including its CPU, memory, and devices, etc. and manages state transitions.

  • Storage and networking

Storage and networking functionality enable shared access to resources by multiple virtual machines. To accomplish this, multiplexing is used to access the physical devices, such as network interface cards, from the virtual machines. This multiplexing occurs in a manner that is consistent, isolated, and secure.

About VHD

Networking WhitePaper

  • Virtualised devices

Virtualized devices provide operating systems running in virtual machines with representations of devices that behave the same as their physical counterparts. These devices are accessed by applications as if the applications were running on physical servers (i.e. using device driver software.)

  • Virtual device drivers

Virtual device drivers are installed in virtualized (guest) operating systems running inside virtual machines so that applications can access the virtual representations of hardware and I/O connections the same way that they access physical hardware and I/O connections on physical hardware.

  • Binary Translation

Binary translation was required in the earliest generations of virtual machine implementations for the x86 architecture, which was not designed for virtualization. Traditionally, virtual machine platforms performed a translation or emulation procedure every time a guest operating system attempted to execute a “privileged” instruction, which is a low-level instruction that only the host operating system has the right to perform. More recently, Intel and AMD introduced extensions in their processors to assist virtualization. These extensions enable multiple virtual machines to issue privileged instructions that can be detected and processed directly in hardware. As a result, it is no longer necessary for virtual machine platforms to perform this function in software.

  • Management Interfaces

A virtual machine platform has to provide a variety of interfaces for managing its operation, and for controlling the virtual machines running on a host. This interface has to cover numerous operations, such as creating, configuring, and monitoring virtual machines. It is also necessary to provide both interactive interfaces, or those used by administrators, and programmatic interfaces, or those used by other software through an Application Programming Interface (API). It is important that the management interface is fully accessible over the network so that the virtual machine host and its virtual machines may be configured and operated remotely.

—————————————————————————————————————————————–

Hypervisor Top-Level Functional Specification: Windows Server 2012 R2

Logical Processor count changes after enabling Hyper-V role on Windows Server 2012 

 

Windows 2012 R2 Performance tuning

Performance tuning guidelines for Windows Server 2016

 

If you are interested in being involved – key links to be aware of are:

 

—————————————————————

Hvboot.sys

https://technet.microsoft.com/en-us/magazine/2008.03.kernel.aspx

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HvHost

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\hvservice

 

hvservice.sys (Microsoft Windows Hypervisor (Hyper-V) Boot Driver)

Get-ItemProperty  C:\Windows\system32\vmsp.exe | fl VersionInfo

VersionInfo : File:             C:\Windows\system32\vmsp.exe

              InternalName:     vmsp.exe

              OriginalFilename: vmsp.exe.mui

              FileVersion:      10.0.14393.0 (rs1_release.160715-1616)

              FileDescription:  Virtual Machine Security Process

              Product:          Microsoft® Windows® Operating System

              ProductVersion:   10.0.14393.0

              Debug:            False

              Patched:          False

              PreRelease:       False

              PrivateBuild:     False

              SpecialBuild:     False

              Language:         English (United States)

Get-ItemProperty  C:\Windows\system32\vmwp.exe | fl VersionInfo

              VersionInfo : File:             C:\Windows\system32\vmwp.exe

              InternalName:     Virtual Machine Worker Process

              OriginalFilename: vmwp.exe.mui

              FileVersion:      10.0.14393.0 (rs1_release.160715-1616)

              FileDescription:  Virtual Machine Worker Process

              Product:          Microsoft® Windows® Operating System

              ProductVersion:   10.0.14393.0

              Debug:            False

              Patched:          False

              PreRelease:       False

              PrivateBuild:     False

              SpecialBuild:     False

              Language:         English (United States)

 

Get-ItemProperty  C:\Windows\system32\vmms.exe | fl VersionInfo

VersionInfo : File:             C:\Windows\system32\vmms.exe

              InternalName:     Virtual Machine Management Service

              OriginalFilename: vmms.exe.mui

              FileVersion:      10.0.14393.206 (rs1_release.160915-0644)

              FileDescription:  Virtual Machine Management Service

              Product:          Microsoft® Windows® Operating System

              ProductVersion:   10.0.14393.206

              Debug:            False

              Patched:          False

              PreRelease:       False

              PrivateBuild:     False

              SpecialBuild:     False

              Language:         English (United States)

 

Get-ItemProperty  C:\Windows\system32\hvhostsvc.dll | fl VersionInfo

VersionInfo : File:             C:\Windows\system32\hvhostsvc.dll

InternalName:     hvhostsvc.dll

OriginalFilename: hvhostsvc.dll.mui

FileVersion:      10.0.14393.0 (rs1_release.160715-1616)

FileDescription:  Microsoft Hypervisor Host Service

Product:          Microsoft® Windows® Operating System

ProductVersion:   10.0.14393.0

Debug:            False

Patched:          False

PreRelease:       False

PrivateBuild:     False

SpecialBuild:     False

Language:         English (United States)

 

Get-ItemProperty  C:\Windows\system32\drivers\hvservice.sys | fl VersionInfo

VersionInfo : File:             C:\Windows\system32\drivers\hvservice.sys

InternalName:     HvService.sys

OriginalFilename: HvService.sys.mui

FileVersion:      10.0.14393.0 (rs1_release.160715-1616)

FileDescription:  Hypervisor Boot Driver

Product:          Microsoft® Windows® Operating System

ProductVersion:   10.0.14393.0

Debug:            False

Patched:          False

PreRelease:       False

PrivateBuild:     False

SpecialBuild:     False

Language:         English (United States)