25
Grizzly/Hyper-V Preview PETER POULIOT, CISSP MICROSOFT N.E.R.D. - CAMBRIDGE, MA

Hyper-V support for OpenStack Grizzly

Embed Size (px)

DESCRIPTION

With the Grizzly release of OpenStack comes many new features for Hyper-V and Windows platforms. This was the work that was done for the Grizzly the release, and get an early preview before the Havana Summit in Portland. Come and see Grizzly running on Hyper-V and supporting new features such as: Quantum Quantum Agent for Hyper-V VLAN and Routing Support Cinder Windows as a Storage Server Nova Resize/Cold Migration HTML5 Canvas/RDP Gateway Cloudinit functionality for Windows guests.

Citation preview

Page 1: Hyper-V support for OpenStack Grizzly

Grizzly/Hyper-V

PreviewPETER POULIOT, CISSP

MICROSOFT N.E.R.D. - CAMBRIDGE, MA

Page 2: Hyper-V support for OpenStack Grizzly

Intro Peter Pouliot, CISSP

[email protected]

Education:

BA Philosophy - Rhode Island College

Certificate Windows NT Administration - Boston University CEC

Oracle DBA 8i – Oracle University

MS Telecommunication Security - Boston University MET College

Graduate Certificate Digital Forensics - Boston University MET College

Certifications:

CISSP, MCSE+I, MCT (NT4/2000), OCP (8i), Network+

Spent last 9 years working on Datacenter Operations and Linux/Windows interoperability for Ximian/Novell/SuSE.

May 2011 Deployed first Openstack/Hyper-V cloud while working in the Novell/Microsoft Joint Interoperability Lab

March 2012 Started working to OpenStack for Micrsoft

Page 3: Hyper-V support for OpenStack Grizzly

Hyper-V Compute

OpenStack can utilize the key features of Windows Server

2012 Virtualization Platform

Page 4: Hyper-V support for OpenStack Grizzly

OpenStack Grizzly Hyper-V

Nova Grizzly Compute for Hyper-V

Quantum Agent for Hyper-V

Cloudinit functionality for Windows Workloads

Cinder for Windows Storage Server

FreeRDP Gateway

Puppet Windows PE Provisioning.

Page 5: Hyper-V support for OpenStack Grizzly

Architecture 1

Page 6: Hyper-V support for OpenStack Grizzly

Hyper-V driver

WMI

Currently V1 namespace (root/virtualization)

V2 namespace used for live migration

Complete migration to V2 for Havana

Grizzly OS support

Windows Server / Hyper-V 2008 R2, 2012

Windows 8 supported for development

Havana OS Support

New features will target 2012 and above only

Page 7: Hyper-V support for OpenStack Grizzly

Hyper-V driver disks

Copy on write (CoW) implemented with differencing disks

Reconnected and merged during snapshots

Reconnected and merged on resize

Not necessary for VHDX (Havana)

Page 8: Hyper-V support for OpenStack Grizzly

Architecture 2

Page 9: Hyper-V support for OpenStack Grizzly

Quantum

Network connectivity as a service

Plugin based architecture

Official plugins:

Open vSwitch

Cisco UCS/Nexus

Linux bridge

Nicira NVP

Ryu OpenFlow

NEC OpenFlow

Big Switch OpenFlow

Hyper-V

Page 10: Hyper-V support for OpenStack Grizzly

Hyper-V plugin

Quantum plugin

Runs in quantum-server

Database based configuration

Networks, subnets, ports

Quantum agent

Runs on any compute node

Supports:

Local (private vSwitch)

Flat

VLAN

NVGRE (Havana)

Communicates with plugin via AMQP

L3 support:

Using the Linux L3 and DHCP plugins

Page 11: Hyper-V support for OpenStack Grizzly

Hyper-V plugin

Nova compute driver

Creates the vNics (one per network)

Does not connect them

Quantum agent

Creates the vswitch ports

Sets the VLAN ID and proper vswitch mode

For NVGRE creates instances of:

MSFT_NetVirtualizationLookupRecordSettingData

etc

Page 12: Hyper-V support for OpenStack Grizzly

Horizon

Main UI

Implemented in Python with Django

Typically deployed on Apache with mod_wsgi

Includes console access

Currently only VNC

RDP to be added for Havana

Page 13: Hyper-V support for OpenStack Grizzly

Hyper-V console

Hyper-V provides console access via RDP, but using additional settings

compared to a standard RDP connection

Port: 2179 (instead of 3389)

PCB: preconnection blob, contains the VM ID (a GUID)

Passing the PCB is possible using:

The Microsoft remote Desktop ActiveX control

FreeRDP

Page 14: Hyper-V support for OpenStack Grizzly

FreeRDP

Our solution is based on FreeRDP

Fork is going to be merged with main repository

Open Source RDP client (Apache 2)

https://github.com/FreeRDP/FreeRDP

Works on Linux, Windows and Mac OS X

Web gateway based on FreeRDP-WebConnect

https://github.com/FreeRDP/FreeRDP-WebConnect

Page 15: Hyper-V support for OpenStack Grizzly

Web Gateway

Client

HTML5

Works on any modern browser

Web sockets for data transfer

Canvas for painting

Can be embedded in any web site

Server proxy

(wsgate) written in C++

Currently working on Linux

can work on Windows

Page 16: Hyper-V support for OpenStack Grizzly

Dashboard integration

Decoupling from VNC

Create plugin that embed the canvas in the Dashboard

Authentication layer

Keystone token validation

Logic for retrieving VM id from OpenStack instance ID

Ask Nova about the instance details, in particular the Hyper-V host running it

Get cached hypervisor credentials from keyring or similar

Query the Hyper-V host about the RDP console port (2179 by default)

Retrieve the VM id from the host given the instance name

Perform connection via wsgate

Alessandro Pilotti, Cloudbase Solutions, Webcast: http://bit.ly/VgwMvs

Page 17: Hyper-V support for OpenStack Grizzly

Instance initialization

Guests require cloud specific customization on startup, e.g.:

Hostname

SSH keys

Users / groups, password management

Partition resize

Static network configuration

Custom scripts

On Windows: Powershell, cmd.exe, bash

Page 18: Hyper-V support for OpenStack Grizzly

Metadata access

Metadata needs to be provided to the guest:

Metadata API, accessed via 169.254.169.254

Openstack or EC2 format

ConfigDriveV2

Page 19: Hyper-V support for OpenStack Grizzly

Cloud-Init

Project provided by Canonical

Currently Linux specific

GPL

Windows Cloud-Init (cloudbase-init)

Written in Python

Apache 2

Very easy to install

Supports any Hypervisor

Page 20: Hyper-V support for OpenStack Grizzly

Windows Cloud-Init

Page 21: Hyper-V support for OpenStack Grizzly

Windows images

Create VM

Install OS

Manual or unattended setup

On KVM include VirtIO drivers

Keep partition sizes as small as possible

Apply SP / updates

Install Windows Cloud-Init

Sysprep

Shutdown

Copy instance to Glance

Page 22: Hyper-V support for OpenStack Grizzly

Nova Compute Installer

Page 23: Hyper-V support for OpenStack Grizzly

Nova Compute Installer

Provides a very simple way to install OpenStack on a Windows

compute node

Can be executed fully unattended

Installs a complete Python environment

Generates Nova and Quantum configuration files

Based on user input:

Creates external virtual switches

Installs the Quantum Hyper-V agent

Enables live migration

Enables the iScsi initiator service

Page 24: Hyper-V support for OpenStack Grizzly

Puppet Manifests for Windows/Linux

Provisioning

Puppet manifests for complete windows pxe deployment

Compute pxe infrastructure to programmatically boot all openly

available linux distributions

Integration from wireline provisioning through configuration

management.

Page 25: Hyper-V support for OpenStack Grizzly

OpenStack/Hyper-V Demo

Nova Compute Installer

Hyper-V Quantum Agent

RDP Gateway

Windows Provisioning Automation