OpenStack
Open Source Cloud Computing Software
Alexandru Coman | Cloud Engineer
Agenda
Windows hypervisor (Hyper-V) OpenStack
Windows as a guest Rude Questions
OpenStack
An open source IaaS project (Apache 2 license) Managed by the OpenStack Foundation
• More than 150 companies joined it including:
• AMD, Intel, Canonical, SUSE Linux, Red Hat, Cisco, Dell, HP, IBM, NEC, VMware
• Second largest OSS foundation after Linux
Portable (Mostly used on Linux) Written in Python
Contribution Summary (Liberty)
• Commits: 1278 • LOCs: 282293
• Looks good for core (+2): 468 • Approve: 291
• Patch Sets: 5177
• Resolved Bugs: 275
Releases
Essex: April 2012 Hyper-V removed)
Folsom: October 2012 (Hyper-V re-included) Grizzly: April 2013 Havana: October 2013 Icehouse: April 2014 Juno: October 2014 Kilo: April 2015 Liberty: October 2015
Reasons for success
Most cloud providers want a platform to embed and extend (E.g. Rackspace, HP)
Most cloud engineers want a platform which is easy to maintain and troubleshoot
• Python, due to it’s dynamic nature, fits the role and is widely known by Linux admins
Great scalability
Great support for multiple hypervisors
• Nowadays hypervisors are “simple” components in the global architecture, not the focal point anymore
Great support for virtual networking (OpenVSwitch is becoming the “standard de facto” in SDN)
Compatibility with EC2 and S3 API
Drawbacks
Terrible setup experience
• Lack of unified deployment tools • Lack of proper documentation
Some “youth” issues
• The project is anyway maturing really fast The UI is not at the level of the competition
Components
Compute (Nova)Object Storage (Swift) Block Storage (Cinder) Image Service (Glance) Networking (Quantum)
Dashboard (Horizon) Identity (Keystone)
Metering (Ceilometer) Orchestration (Heat)
file cloud service Access Control Virtual Network VHD storage blob
Portal
Network
Block
Blob
Image
Compute
Identity
Component interaction
• AMQP • RabbitMQ • Apache Qpid • API • RESTful services • Database• Any Python SQLAlchemy provider • Mostly MySQL
Gerrit
Originally developed by Google for Android Stand-alone patch review system
Manages:
• Git Repositories • Code Review
• Event Stream
Gerrit checks
• Gerrit triggers:• Pep8 / Flake8 tests • Unit tests
• Integration tests with multiple environments (e.g. Nova):
• KVM
• Hyper-V • VMWare • XenServer • etc
Integration tests
• Each CI results can vote +1 / -1 or be neutral
• At the moment both errors and failures account for -1
• Hard to distinguish between them
Windows as a guest
Can be executed on any hypervisor used in Nova
No differences compared to Linux for image handling (glance etc) Images are typically sysprepped
Synthetic drivers
Modern Hypervisors provide drivers to replace emulated devices with synthetic ones (Network adapters, etc)
Hyper-V > Integration components / LIS
KVM > VirtIO
VMWare > VMWare Tools
Cloudbase-Init
100% Python codeWrapped in a Windows service Plugin based architecture:
• Each plugin can be executed once or more times at boot • Status for each plugin is maintained in the registry
Plugin modules
Users / groups management StorageWinRM
Licensing
User Data (PowerShell, Heat, etc) NTP, MTU, LocalScripts and more
Multi-cloud support
OpenStack (HTTP) OpenStack (ConfigDrive) Amazon EC2 CloudStack OpenNebula Ubuntu MAASSupported Windows versions
Windows 7, 8, 8.1, 10 x86 / x64Windows Server 2008 / 2008 R2 / 2012 / 2012 R2 x64
Windows Server 2016 (TP) NanoServer 2016 (WiP)
OpenStack WS2012 R2 eval
images
• Complete with:
Drivers / Tools (VirtIO, etc.) Cloudbase-Init
Sysprepped
• Eval edition can be upgraded with a simple uder_data script:
DISM /online /Set-Edition:ServerStandard /ProductKey:XXXXX-XXXXX-XXXXX-XXXXX-XXXXX /AcceptEula
How to build an image?
• https://github.com/cloudbase/windows-openstack-imaging-tools • We get lots of questions about how to build those images
Does Microsoft support Hyper-V in
OpenStack?
• Yes!
• Microsoft supports Hyper-V regardless of the management stack!
• Any supported licensing model works (Volume Licensing, SPLA, etc)
Windows Openstack components
• Nova Hyper-V Compute driver• Neutron agent (Hyper-V SDN, OVS) • Cinder Volume drivers (iSCSI, SMB3) • Manila SMB3 driver
• Windows Cloud-Init • Ceilometer Agent
Hyper-V
• Setup is very easy
• Our Nova driver is at it’s 7th release!
• Folsom, Grizzly, Havana, Icehouse, Juno, Kilo, Liberty
• Support for Hyper-V 2012, 2012 R2, 2016 • VHDX support
• Ceilometer support • Much more…
Hyper-V 2012 R2 / 2016
availability
• FREE edition
• Full Hypervisor
• You need to license Windows guests only!
• Windows Server 2012 / 2012 R2 / 2016
• Just enable Hyper-V
• Windows 8.1 / Windows 10
• For workstation / testing / development usage • Nested Hyper-V available today
Hyper-V Nova Compute
• Seamless OpenStack experience, just like on Linux
• OpenStack compute utilizes key features baked into the Hyper-V Virtualization Platform
• Some key differentiators:
• Shared nothing live migration out of the box • RemoteFX (amazing VDI experience)
• Shielded VMs (2016)
CI
• Hyper-V is fully CI tested with Tempest tests reporting to Gerrit • One of the largest CI contributors with 10 active CIs!
• Nova
• Neutron (Hyper-V SDN, OVS - coming soon) • Networking-hyperv, Compute-hyperv
• Cinder (iSCSI, SMB3 - Windows, SMB - Linux) • Manila (Linux, Windows)
Neutron
• Hyper-V plugin is part of Neutron since Jan 2013
• Project originally called Quantum, renamed Neutron since Havana
• Supported network types:
• VLAN
• NVGRE • Flat
Neutron
• Plugin / agent model
• ML2 Plugin runs in neutron-server (controller) • Agent runs on each Hyper-V compute node
Neutron OVS interop
• Neutron ML2 mechanism driver is compatible with OpenVSwitch! • You can use the OVS with Hyper-V agents
• Limited to compatible protocols: Flat / VLAN • Possible NVGRE support
• You can use the L3 and DHCP agents with the Hyper-V plugin
Hyper-V
OpenVSwitch
Cinder
• iSCSI Windows Server driver
• SMB3 / SoFS Windows Server driver
• Great companion for Hyper-V
Manila
• SMB3 driver
• Included in Liberty
Dashboard integration
• Hyper-V uses RDP for accessing the console instead of VNC • By default it accepts connections on port 2179
Not the RDP connection on 3389
Access to any guest: Windows, Linux, FreeRDP etc.
• The VM id is provided as part of an RDP protocol additional buffer called PCB (Pre Connection Buffer)
Puppet, Chef, Salt, etc
Hyper-V compute nodes can be installed via Puppet or Chef as well
Puppet:
https://github.com/openstack-hyper-v/puppet-openstack_hyper_v
Chef:
Nano Server
• Leightweight• Windows without windows
• Very small footprint
• Fast deployment and boot
Orchestration
• Heat templates
• Juju charms
Heat
• Heat and Windows are a great mix • Templates for:
• Active directory
• Exchange (multi server) • Sharepoint (multi server) • SQL Server
• IIS
Cloudbase
Windows
Juju charms
Active Directory
Nova – Hyper-V Exchange SharePoint
Failover Clustering
VDI Windows Server Update Services
Skype for Business (coming soon) Windows File
Server (SMB) SQL Server Express SQL Server AlwaysOn Cinder – Windows