OpenStack & Hyper-V Alessandro Pilotti CEO Cloudbase Solutions @cloudbaseit Cloudbase Solutions • Company started in Italy as .Net / Linux interop dev and consulting • Branch started in Timisoara in 2012 to hire devs and provide colocation services • Started using OpenStack for the internal IDC • Added Hyper-V support • OpenStack business exploded Agenda • • • • • • • • OpenStack + Hyper-V integration FreeRDP HTML5 dashboard OpenVSwitch on Windows Cloudbase-Init Windows Server 2012 Eval Image Crowbar integration Cross Cloud Migration Havana plans Hyper-V 2012 availability • FREE edition – Full Hypervisor – Minimum OS support • Minimum impact on security updates, etc • Windows Server 2012 – Just enable the related role • Windows 8 – For workstation / testing / development usage Hyper-V / Windows Openstack components • • • • • Nova Compute driver Quantum plugin Cinder Volume driver Windows Cloud-Init Ceilometer Agent (Havana) Hyper-V Nova Compute • Supported features (anything missing? ) – – – – – – – – – – – – Launch / reboot / terminate Resize Pause / unpause Suspend / resume Attach / detach volume Live migration Snapshot Guest / host info Glance integration Config Drive Rescue (Havana) RDP console (instead of VNC) • Deprecated Nova network is not supported beyond “flat” networking – All Hyper-V networking features are part of Quantum Quantum • Hyper-V plugin is part of Quantum since Jan 2013 • Supported network types: – – – – VLAN Flat Local NVGRE (Havana) • Plugin / agent model – Plugin runs in quantum-server (controller) – Agent runs on each Hyper-V compute node Quantum OVS interop • Quantum plugin / agent AMQP RPC protocol is compatible with OpenVSwitch!! • You can use the OVS plugin with Hyper-V agents (or vice versa) – Limited to compatible L2 protocols: Flat / VLAN • You can use the L3 and DHCP agents with the Hyper-V plugin – Using the OVS L2 agent on the networking nodes • Great for interoperability (e.g. KVM + Hyper-V) Hyper-V OpenVSwitch! We officially started porting OpenVSwitch to Windows!! Why OpenVSwitch? • De facto standard for SDN • Great interoperability – Hyper-V / KVM / etc • OpenFlow • Tunnelling – VXLAN – GRE • Quantum OVS plugin – No need for a different one OpenVSwitch porting • • • • Porting Posix calls to Windows API Same CLI as on Linux Open Source Windows kernel drivers – NDIS Hyper-V extensions • VXLAN, GRE – Best performance • Support for Hyper-V 2012 and above OpenVSwitch Windows Kernel drivers Typical Quantum setup VLAN drivers issues • BEWARE: Some Windows NIC drivers disable VLAN access by default! • HKEY_LOCAL_MACHINE\SYSTEM\CurrentCont rolSet\Control\Class\{4d36e972-e325-11ce-bfc108002be10318} • Look in all the child keys xxxx, e.g. 0001, 0002 etc for a value "VLanFiltering". Make sure that if present it's set to 0. • In case of changes, reboot the server or restart the corresponding adapters. FreeRDP • FreeRDP is an amazing RDP open source client. – Apache 2 license – Multiplatform • Linux • Mac OS X • Windows • It provides support for the PCB parameter required by Hyper-V • We are using it as a standalone client on the free Hyper-V server and on Linux, Mac OS X FreeRDP-WebConnect • An HTML5 RDP client based on canvas and websockets – Similar to NoVNC • Uses a C++ demon (wsgate) to handle websocket connections and connect to the RDP server – Better performance compared to the Python proxy used by NoVNC • We provided support for Hyper-V Nova Compute Installer • Independent Python environment to avoid conflicts with existing applications • Installs and registers all the required dependencies • Generates dynamically a nova.conf file based on the parameters provided by the user Nova Compute Installer • Creates a new Hyper-V external switch if required • Registers nova-compute as a service and starts it • Registers quantum-hyperv-agent as a service and starts it (optional) • Enables the Microsoft iSCSI Initiator service (optional) Unattended mode • Can be installed in fully unattended mode, great for: – Chef, Puppet, Group Policies… • msiexec /i HyperVNovaCompute.msi /qn /l*v log.txt ADDLOCAL=HyperVNovaCompute,QuantumHyperVAgent,iSCSI SWInitiator,OpenStackCmdPrompt INSTALLDIR=C:\OpenStack\Nova GLANCEHOST=glancehost GLANCEPORT=9292 RABBITHOST=rabbithost RABBITPORT=5672 RABBITPASSWORD=12345678 NOVASQLCONNECTION=mysql://user:password@host/nova INSTANCESPATH=C:\HyperV ADDVSWITCH=0 VSWITCHNAME=external1 LIMITCPUFEATURES=”" USECOWIMAGES=1 LOGDIR=C:\log ENABLELOGGING=1 VERBOSELOGGING=1 QUANTUMURL=http://quantumhost:9696 QUANTUMADMINTENANTNAME=service QUANTUMADMINUSERNAME=quantum QUANTUMADMINPASSWORD=12345678 QUANTUMADMINAUTHURL=http://keystonehost:35357/v2.0 Nova Compute Installer From our web site Windows Cloud-Init • Cloudbase-init (aka Windows Cloud-Init) – Similar to the Linux cloud-init – License: Apache 2 • Porting Cloud-Init to Linux was not possible – It requires some major refactoring • Supported data sources: – OpenStack HTTP metadata – ConfigDrive V2 – EC2 HTTP metadata (contributed by Mirantis) Windows Cloud-Init • Plugin based architecture • Supported plugins: – – – – – – SetHostNamePlugin CreateUserPlugin NetworkConfigPlugin SetUserSSHPublicKeysPlugin UserDataPlugin ResizeFSPlugin Userdata format • • • • Windows Batch Powershell Bash Multi-part (Havana) – Heat support Password generation • New Grizzly feature 1. Password is randomly generated – Can be forced to the value injected by Nova 2. Password in encrypted with the SSH public key 3. Password is POSTed to the metadata service 4. Password can be retrieved by the client and decrypted with the SSH private key – nova get-password vm1 .ssh/id_rsa Windows Installer Unattended mode • Like all our installers, it can be executed in fully unattended mode: • msiexec /i CloudbaseInitSetup.msi /qn /l*v log.txt NETWORKADAPTERNAME="Intel(R) PRO/1000 MT Network Connection" OpenStack Windows Server 2012!! OpenStack WS2012 • WS 2012 Standard - Evaluation edition – Testing only!! • Available for: – Hyper-V – KVM – XenServer / XCP • www.cloudbase.it OpenStack WS2012 • Complete with: – Drivers / tools: • VirtIO / XenServer Tools – 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!! Cinder Windows installer • Cinder includes a driver for Windows Storage Server 2012 • We created an installer that deploys a complete Python environment with all the required dependencies • Registers and starts cinder-volumes • Key community contributor: – Pedro Navarro Perez (Tx! ) Crowbar • • • • Big part of Dell’s cloud strategy Bare-metal deployment vendor independent PXE booting – Sledgehammer image boots and gets configuration • Provisioning via Crowbar web site • Barclams – Configuration – Chef recipes Crowbar + HyperV Cross Cloud migration • Vendor lock-in anybody? • Just a few clicks to migrate virtual workloads to and from: – Amazon AWS – Azure – OpenStack • Including RackSpace – VMWare vSphere – MS System Center • Currently in beta Havana!! • Planning for Havana now! – – – – – – – – – – – – More Quantum: NVGRE, security groups, etc Ceilometer Hyper-V agent Heat Windows Cloud-Init support VHDX support Ephemeral storage Support for more image formats (e.g. AMI/ARI/AKI) Nova rescue Active Directory Keystone scalability VDI support Fibre channel VM dynamic memory support Cinder improvements… Resources • Cloudbase Solutions – http://www.cloudbase.it – @cloudbaseit • Hyper-V – http://www.microsoft.com/en-us/servercloud/hyper-v-server/ Q&A