OpenStackan open-source IaaS cloud platform
Alexandru Coman
Cloud Engineer
Agenda
Cloudbase family
OpenStack
Windows as a guest
Rude Questions
Friendly Questions
OpenStack
OpenStack
An open source IaaS project (Apache 2 license)
Managed by the OpenStack Foundation
• More than 200 companies joined it including:
• AMD, Intel, Canonical, SUSE Linux, Red Hat, Cisco, Dell, HP, IBM, NEC,
VMware, and Cloudbase
• Second largest OSS foundation after Linux
Portable (Mostly used on Linux)
Written entirely in Python
Contribution Summary (Liberty)
• Commits: 1278
• LOCs: 282293
• Looks good for core (+2): 468
• Approve: 291
• Patch Sets: 5177
• Resolved Bugs: 275
http://stackalytics.com/?release=liberty&metric=loc&company=cloudbase%20solutions
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
Mitaka: Under development
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
Excellent project lifecycle
• Code review
• Unit / System / integration tests
Drawbacks
Very difficult 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
• E.g. Cloudstack
Components
Compute (Nova)
Object Storage (Swift)
Block Storage (Cinder)
Image Service (Glance)
Networking (Neutron)
Identity (Keystone)
Dashboard (Horizon)
Metering (Ceilometer)
Orchestration (Heat)
Bare metal deployment
(Ironic)
File shares (Manila)
Containers (Barbican)
file
cloud service
Access Control
Virtual Network
VHD storage blob
Portal
Network
Block
BlobImageCompute
Identity
Component interaction
• AMQP
• RabbitMQ
• Apache Qpid
• API
• RESTful services
• Database
• Any Python SQLAlchemy provider
• Mostly MySQL
• SQL Server required various bug fixes
Development cycle
Gerrit
Originally developed by Google for Android
Stand-alone patch review system
Manages:
• Git Repositories
• Code Review
• Event Stream
• Privileges (propose / merge code, manage git repositories)
Gerrit Workflow
Gerrit UI
Gerrit checks
• Gerrit triggers:
• Pep8 / Flake8 tests
• Unit tests
• Integration tests with multiple environments (e.g. Nova):
• KVM
• Hyper-V
• VMWare
• XenServer
• etc
NUC Tempest stack
reBot
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
• In case of failures users can issue a “recheck”
Queue monitoring
Windows as a guest
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 tipically 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
XenServer / XCP > XenServer Tools
Sit destinat cloudbase-init
http://www.cloudbase.it/cloud-init-windows/
Documentație
http://cloudbase-init.readthedocs.org/
Codul sursă
https://github.com/openstack/cloudbase-init
Cloudbase-Init
Cloudbase-Init
100% Python code
Wrapped in a Windows service
Plugin based architecture:
• Each plugin can be executed once or more times at boot
• Status for each plugin is mantained in the registry
Plugin modules
Users / groups management
Storage
WinRM
Licensing
User Data (PowerShell, Heat, etc)
NTP, MTU, LocalScripts and more
Multi-cloud support
OpenStack (HTTP)
OpenStack (ConfigDrive)
Amazon EC2
CloudStack
OpenNebula
Ubuntu MAAS
Ordered list specified in config file
Supported Windows versions
Windows 7, 8, 8.1, 10 x86 / x64
Windows Server 2008 / 2008 R2 / 2012 / 2012 R2 x64
Windows Server 2016 (TP)
NanoServer 2016 (WiP)
Works also on XP and 2003 (unsupported)
OpenStack WS2012 R2 evalimages
• 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
Make sure to respect the eval license!!
OpenStack WS2012 R2 eval
How to build an image?
• https://github.com/cloudbase/windows-openstack-imaging-tools
• We get lots of questions about how to build those images
• This open source project automates the entire process
Does Microsoft support Hyper-V in OpenStack?
• Yes!
• Microsoft supports Hyper-V regardless of the management stack!
• Related to OpenStack support, that’s where we jump in.
• Any supported licensing model works (Volume Licensing, SPLA, etc)
• Questions? Email: [email protected]
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
• Windows containers (nova-docker / magnum, coming 2016)
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)
• Storage Spaces Direct (2016) – hyper-convergence
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
• Local
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
• Using the OVS L2 agent on the networking nodes
Hyper-V OpenVSwitch
We ported OpenVSwitch to Windows!
Cinder
• iSCSI Windows Server driver
• SMB3 / SoFS Windows Server driver
• Great companion for Hyper-V
• Can be used with any hypervisor
Manila
• SMB3 driver
• Included in Liberty
• Windows File Server or Linux
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)
• Authentication is performed against the host, not the guest!
Nova Compute Installer
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:
https://github.com/cloudbase/barclamp-hyperv-compute
Nano Server
• Leightweight
• Windows without windows
• Very small footprint
• Fast deployment and boot
• Included with Windows Server 2016
Heat
• Heat and Windows are a great mix
• Templates for:
• Active directory
• Exchange (multi server)
• Sharepoint (multi server)
• SQL Server
• IIS
• No need to know the provisioning details
Windows Juju support
CloudbaseWindowsJuju charms
Active DirectoryNova –Hyper-V Exchange SharePoint
Failover ClusteringVDIWindows Server
Update Services
Skype for Business
(coming soon)
Windows File
Server (SMB) SQL Server AlwaysOnSQL Server Express
Cinder –Windows
Server Storage
dream. code. commit.
cloudbase.it