Tag: Hypervisor

Windows Sandbox

Windows Sandbox – Isolated Windows Desktop

Today Microsoft announced a new feature called Windows Sandbox. Windows Sandbox is built based on Windows Container technology, which allows you to spin up an isolated, temporary, desktop environment where you can run untrusted software. The software you run and install in the Windows Sandbox does not affect the host. If you shut down the Windows Sandbox all changes and all software you installed in the Sandbox are gone again. This sounds very similar to the technology Windows Defender Application Guard already used to build a sandbox environment for Microsoft Edge.

Windows Sandbox Overview

Windows Sandbox

Windows Sandbox has the following properties:

  • Part of Windows – everything required for this feature ships with Windows 10 Pro and Enterprise. No need to download a VHD!
  • Pristine – every time Windows Sandbox runs, it’s as clean as a brand-new installation of Windows
  • Disposable – nothing persists on the device; everything is discarded after you close the application
  • Secure – uses hardware-based virtualization for kernel isolation, which relies on the Microsoft’s hypervisor to run a separate kernel which isolates Windows Sandbox from the host
  • Efficient – uses integrated kernel scheduler, smart memory management, and virtual GPU

Windows Sandbox brings the advantages of Windows Containers and also adds a desktop. If you compare this to a Windows 10 Virtual Machine, the Windows Sandbox will consume much fewer resources, it starts up match faster and will be much more efficient with hardware resources. You can think of it like a lightweight virtual machine, which can share the same hardware but also the same kernel and memory as the host system (like a container).



Install Hyper-V on Windows 10 using PowerShell

Install Hyper-V on Windows 10 using PowerShell

On since Windows 8 you can run Hyper-V on your desktop, laptop or Windows tablet. To install or enable Hyper-V on your Windows 10 machine, you just need to have the following requirements:

  • Windows 10 Enterprise, Professional, or Education (Home does not have the Hyper-V feature included)
  • 64-bit Processor with Second Level Address Translation (SLAT)
  • CPU support for VM Monitor Mode Extension (VT-c on Intel CPU’s)
  • Minimum of 4 GB memory

The easiest way to enable Hyper-V on Windows 10 is to run the following PowerShell command as an administrator:

Enable-WindowsOptionalFeature -Online -FeatureName:Microsoft-Hyper-V -All

or you can use the following CMD DISM command:

DISM /Online /Enable-Feature /All /FeatureName:Microsoft-Hyper-V

If you are looking for installing Hyper-V on Windows Server, check the following blog post: Install Hyper-V on Windows Server using PowerShell



Containers PowerShell

First steps with Windows Containers

At Microsoft Ignite 2015 back in Chicago Microsoft announced Windows Containers. With the release of the Technical Preview 3 (TP3) for Windows Server 2016 we are finally able to start using Windows Containers, and we can finally test them. But first let use check a little what containers are.

The concept of containers is nothing new, in the Linux world containers are a well known concept. If you have a look at the Wikipedia description for Linux Containers, Wikipedia describes it as follows: LXC (Linux Containers) is an operating-system-level virtualization environment for running multiple isolated Linux systems (containers) on a single Linux control host. Containers provide operating system-level virtualization through a virtual environment that has its own process and network space, instead of creating a full-fledged virtual machine. With Windows Server 2016 more or less the same concept comes the Windows world. This makes containers much more light-weight, faster and less resource consuming than Virtual Machines, which makes it perfect for some scenarios, especially dev-test scenarios or for worker roles.

Container Ecosystem

If we have a look at the concept of containers you have several things in the container ecosystem:

Container Ecosystem

First you have the Container Run-Time which builds the boundaries between the different containers and the operating system. To make deployment easier, faster and more efficient you build Container Images which Include the application frameworks as well as the applications on top of the OS used for the container. To use, store and share Container Images you can use an Image Repository.

The question most people will ask is how are containers different than Virtual Machines etc.

Physical Server

Physical Host

At the beginning what we did is, we installed an operating system on physical hardware and in that operating system we installed applications directly.

Virtual Machines

Virtual Machines

With virtual machines we created simulated some virtual hardware on top of the operating system of the physical server. We installed an operating system inside the virtual machine on top of the virtual hardware and installed application inside the VM. In this case, each virtual machine has its own operating system.

Containers

Containers

With container we use an operating-system-level virtualization environment which create boundaries between different applications. This is so efficient you can run multiple applications side by side without effecting each other. Since this is operating-system-level virtualization you cannot only directly on the operating system on the physical hardware, you can also use operating-system-level virtualization inside a virtual machine. This is by the way the way I see most of the deployments of containers.

Windows Containers vs. Hyper-V Containers

Hyper-V Containers

Microsoft will provide two different types of Container Run-Times. One is Windows Containers and the other one will be Hyper-V Containers (not Hyper-V Virtual Machines). In some cases it is maybe not compliant that some applications share the same operating system. In this case Hyper-V Containers will add an extra boundaries of security. Hyper-V Containers are basically Windows Containers running in a Hyper-V Partition, so with that you gain all the stuff you get with Windows Containers but with another layer of isolation.The great thing here, is that both Container Run-Times use the exam same image format. This means if an image is created in a Windows Container Run-Time it also works as a Hyper-V Container and vice versa.

Hyper-V Containers Nested Virtualization

The other great side effect of Hyper-V Containers is, that in order to run Hyper-V Containers inside a Virtual Machine we need nested Virtualization, which will be included in Windows Server 2016 Hyper-V. Btw. Hyper-V Containers are not part of the Technical Preview 3.

(Pictures from the Microsoft Ignite 2015 presentation of Taylor Brown and Arno Mihm (Program Managers for Containers)

Deploy Windows Containers

With the release of the Technical Preview 3 of Windows Server 2016, Microsoft made Windows Containers available to the public. To get started you can download a install Windows Server 2016 inside a Virtual Machine or even bare-metal. If the virtual machine has internet connection you can use the following command to download the configuration script, which will prepare your container host.

 
wget -uri https://aka.ms/setupcontainers -OutFile C:\ContainerSetup.ps1

Install Windows Container Host

After that you can run the C:\ContainerSetup.ps1 script, which will prepare your container host. This can take some time depending on your internet connection and hardware.

 
C:\ContainerSetup.ps1

The VM will restart several times and if it is finished you can start using Windows Containers inside this Virtual Machine.

Managing Windows Containers

Containers PowerShell Module

After you have logged in to the Virtual Machine you can start managing Containers using PowerShell:

Containers PowerShell

Get Container Images, by default you will get a WindowsServerCore Image. You can also create your own images, based on this image.

 
Get-ContainerImage

Create a new Container

 
$container = New-Container -Name "MyContainer" -ContainerImageName WindowsServerCore

Start the container

 
Start-Container -Name "MyContainer"

Connect to the Container using Enter-PSSession

 
Enter-PSSession -ContainerId $container.ContainerId -RunAsAdministrator

Of course you an also use the docker command to make your containers.

Windows Containers Docker

Deploy a Container Host in Microsoft Azure

If you don’t want to go trough all the installation process you can also use a Template in Microsoft Azure to deploy a new Container Host Virtual Machine.

Microsoft Azure Windows Server Container Preview

If you need some more information on Windows Containers check out the Microsoft Resources on MSDN about Windows Server Containers.

 



VMware Esxi 6.0 Enable SSH

Enable SSH on VMware ESXi 6.0

 

I already wrote some blog posts how you can enable SSH access for older VMware ESXi versions such as VMware ESXi 4.1, VMware ESXi 5.0, VMware ESXi 5.1 and VMware ESXi 5.5. This post now shows you how you can enable SSH on the VMware ESXi 6.0 host. As in the other versions this is pretty simple. By enabling SSH allows you to remote troubleshoot your VMware ESXi host and also coping files on your server.

On the Login screen of your VMware ESXi host press “F2”

VMware ESXi Logon Screen

It will ask you about username and password to login to the VMware ESXi server:

VMware ESXi 6.0 Login

After the login go to the Troubleshooting Options on the System Customization page.

VMware ESXi 6.0 Troubleshooting Options

You can now enable SSH on your VMware ESXi 6.0 host. After you have enabled SSH you can connect to the ESXi host via your favorite SSH client.

VMware Esxi 6.0 Enable SSH

If you want to enable SSH on your VMware ESXi host directly from the VMware vSphere Client you should have a look at the following post: Enable SSH on VMware ESXi 6.0 via VMware vSphere Client

If you are running Windows, you should also check out my blog post about how to install SSH on Windows 10 or SSH on Windows Server. I also blogged about how you can use SSH with PowerShell.



Hyper-V Share

Hyper-V is eating VMware’s lunch

During the WPC 2014 Keynote Microsoft COO Kevin Turner showed the following slide and commented it:

Hyper-V is eating VMware’s lunch

 

Hyper-V has now 30,6% market share in x86 Server Virtualization which means Microsoft won 4.6% since the release of Windows Server 2012. VMware is now at 46.4% market share which means they lost 5.1% market share since the release of Windows Server 2012 Hyper-V.

And this because of good reasons, like great features and 4 times lower cost than VMware. So if you are still running VMware you should definitely have a look at Hyper-V now!



Activate SSH on VMware ESXi 5.1

I already wrote a blog post how you can enable SSH on VMware ESXi 5.0 and VMware ESXi 4.1. As before enabling SSH on VMware ESXi 5.1 or VMware vSphere Hypervisor 5.1 is pretty easy.

  1. On the start screen press F2 for “Customize System”
    VMware ESXi 5.1 startscreen
  2. Login with the local password, and on the settings page select and enter Troubleshooting Options
    VMware ESXi 5.1 Settings
  3. Click on Enable SSH to activate SSH on your VMware ESXi 5.1 host
    VMware ESXi 5.1 enable SSH

If you are running Windows, you should also check out my blog post about how to install SSH on Windows 10 or SSH on Windows Server. I also blogged about how you can use SSH with PowerShell.



Hyper-V vs. VMware vSphere – Host Deployment

Windows Server 2012 RC Logo

VMware vSphere Enterprise Plus offers  a solution for centralized deployment of VMware Hypervisor hosts on physical hardware.

How does the deployment of Microsoft Hyper-V Server work? Microsoft Hyper-V can be deployed as Windows Server role or as Microsoft Hyper-V Server. Both setups are based on the normal Windows setups and you can use the same deployment processes.

  • DVD
  • USB
  • Windows Deployment Services (WDS)
  • Microsoft Deployment Toolkit (MDT)
  • System Center Configurations Manager

or my favorite deployment method: Bare-Metal Deployment with System Center Virtual Machine Manager. Blogger and Microsoft Consultant Michel Lüscher wrote a great blog post about how you can use the bare-metal deployment feature in SCVMM.