OpenStack & Hyper-V Alessandro Pilo- CEO Cloudbase Solu.ons @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 J
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 Python Application installed as an application/service on the Hyper-V node. OpenStack compute utilizes key features baked into the Hyper-V Virtualization Platform Does not require windows clustering services Does not require shared storage
Hyper-V Nova Compute Supported features (anything missing? J ) 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
Volume Attach/Detach Requirements Windows iscsi initiator service enabled and running on hyper-v compute node. Configuration can be scripted Create, attach detach volumes using the OpenStack Dashboard or Nova commands. OS must be installed directly onto the created volume for boot from volume instances
Live Migration Requirements Each compute node must have Active Directory Domain Membership Nova-compute service must be running under an Active Directory Domain account. Shared nothing live migration can be enabled via simple powershell commands or from the Hyper-V management GUI. Live Migration initiated via nova livemigration commands
Resize / cold migration Resize / cold migration are supported in Grizzly The root VHD is resized to the size specified by the flavor CoW VHD disks are automatically merged with the base disk as VHD differencing disks cannot be resized. This will not be required by VHDX (Havana)
Glance Integration Native glance client support on Windows. Upload images directly from the windows compute node VHDx support planned for Havana
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 Quantum Server TenantCNet2 10.0.1.0/24 VLAN ID:3 L2 Agent Nova Services Nova Compute Keystone... Controller Node Management Network Compute Node Data Network VLAN Network Node External Network 30.0.0.0/24 eth0 L3 Agent DHCP Agent L2 Agent TenantANet1 10.0.0.0/24 VLAN ID:1 TenantANet1 10.0.0.0/24 VLAN ID:2
Controller ENABLE_TENANT_VLANS=True TENANT_VLAN_RANGE=2000:3000 PHYSICAL_NETWORK=physnet1 OVS_ENABLE_TUNNELING=False MULTI_HOST=True Q_USE_SECGROUP=False disable_service n-net disable_service n-cpu SCREEN_LOGDIR=$DEST/logs/screen enable_service q-svc enable_service quantum DATABASE_PASSWORD=Passw0rd RABBIT_PASSWORD=Passw0rd SERVICE_TOKEN=Passw0rd SERVICE_PASSWORD=Passw0rd ADMIN_PASSWORD=Passw0rd
Network server HOST_IP=192.168.209.196 ENABLED_SERVICES=quantum,q-agt,q-dhcp,q-l3,q-meta SERVICE_HOST=192.168.209.195 MYSQL_HOST=$SERVICE_HOST RABBIT_HOST=$SERVICE_HOST GLANCE_HOSTPORT=$SERVICE_HOST:9292 SCREEN_LOGDIR=$DEST/logs/screen OVS_BRIDGE_MAPPINGS=physnet1:br-eth1 OVS_PHYSICAL_BRIDGE=br-eth1 PUBLIC_INTERFACE_DEFAULT=eth2 GUEST_INTERFACE_DEFAULT=eth1 SERVICE_TOKEN=Passw0rd SERVICE_PASSWORD=Passw0rd ADMIN_PASSWORD=Passw0rd OVS_ENABLE_TUNNELING=False RABBIT_PASSWORD=Passw0rd
Compute KVM HOST_IP=192.168.209.197 ENABLED_SERVICES=n-cpu,quantum,q-agt,n-novnc,nxvnc,n-cauth SERVICE_HOST=192.168.209.195 MYSQL_HOST=$SERVICE_HOST RABBIT_HOST=$SERVICE_HOST GLANCE_HOSTPORT=$SERVICE_HOST:9292 Q_HOST=$SERVICE_HOST SCREEN_LOGDIR=$DEST/logs/screen OVS_BRIDGE_MAPPINGS=physnet1:eth1 GUEST_INTERFACE_DEFAULT=eth1 SERVICE_TOKEN=Passw0rd SERVICE_PASSWORD=Passw0rd ADMIN_PASSWORD=Passw0rd RABBIT_PASSWORD=Passw0rd
VLAN drivers issues BEWARE: Some Windows NIC drivers disable VLAN access by default! HKEY_LOCAL_MACHINE\SYSTEM \CurrentControlSet\Control\Class\{4d36e972- e325-11ce-bfc1-08002be10318} 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.
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!
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
Dashboard integration We extended Horizon to provide support for multiple protocols (not only VNC) based on the compute node host requirements wsgate has been extended with a plugin based architecture Tokens validated with nova-consoleauth (like NoVNC does) to get the connection parameters Hyper-V host, port and VM id Python runtime executed in our C++ wsgate plugin Better performance
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)
Nova Compute Installer Enables and configures Hyper-V Live Migration (optional ) FreeRDP for Hyper-V console access Installs a command prompt shortcut in the applications menu for a ready made OpenStack prompt (optional) Can be executed fully unattended and automated
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 J
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? J 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/server-cloud/ hyper-v-server/
Q & A