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.
2. Intro
Peter Pouliot, CISSP
PPouliot@microsoft.com
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
4. 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.
6. 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
7. 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)
9. 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
10. 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
11. 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
12. 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
13. 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
14. 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
15. 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
16. 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
18. Metadata access
Metadata needs to be provided to the guest:
Metadata API, accessed via 169.254.169.254
Openstack or EC2 format
ConfigDriveV2
19. 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
21. 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
23. 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
24. 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.
25. OpenStack/Hyper-V Demo
Nova Compute Installer
Hyper-V Quantum Agent
RDP Gateway
Windows Provisioning Automation