OpenStack on AArch64 Marcin Juszkiewicz About me ● ARM developer since 2004 ● AArch64 developer since 2012 ● Had own consulting company ○ OpenEmbedded related services ● Worked for Canonical ○ Assigned to Linaro since April 2010 to June 2013 ● Currently Senior Software Engineer Red Hat ○ Assigned to Linaro since April 2016 ● Developer in several distributions ○ OpenZaurus, , , Fedora, RHEL, CentOS Agenda ● AArch64? ● OpenStack: what is it? ● OpenStack and Debian/CentOS ● Deploying OpenStack ● Linaro Developer Cloud AArch64 ● 64-bit ARM architecture ○ Also called ARMv8, ARM64 ■ But there are ARMv8 32-bit only processors ● 32-bit ARM support is optional ● Virtualization support is mandatory ○ Requires GIC2 or newer OpenStack: what is it OpenStack and Debian/CentOS ● Debian ○ Packages for several versions ○ Done by Debian OpenStack team

● CentOS ○ Packages for several versions ○ Done by RDO project developers

● RDO ○ RPM Distribution of OpenStack. It's a group of Rediculously Dedicated OpenStackers who are here to help you Rapidly Deploy OpenStack, in a way that is Really Darned Obvious. RDO is Rebuilt Daily, Regularly Delivered, OpenStack. Deploying OpenStack ● Devstack ○ Upstream way ○ Ugly shell script ○ Grabs source code, builds, installs

● Packstack ○ RDO way ○ Another shell script ○ Uses RDO packages

● Automation ○ Ansible etc Test configuration Linaro Developer Cloud v1.0 ● Based on OpenStack ‘Liberty’ ● Manually setup on Debian ‘jessie’ ○ Used Debian packages ○ Moved to virtualenvs ● No API or Horizon access ● Basic networking ● Direct kernel/initrd boot ● VMs managed by Linaro admins Linaro Developer Cloud v2.0 ● Based on OpenStack ‘Newton’ ● Debian ‘jessie’ based ○ Our virtualenv packages used ● Setup done using Ansible ● API and Horizon access ● OpenVSwitch based networking ● UEFI support ● Users can admin their VMs ● Shared storage with Ceph ● Live migration ● Docs: http://bit.ly/LEG-ERP Reference architecture Internet

ovs_agent keystone mysql l3_agent glance rabbitmq dhcp_agent memcached ceph-mon metadata_agent -api data controller ceph-mon nova-computenova-compute neutron-server network controller cinder-volumenova-compute cinder-volumenova-compute horizon cinder-volume ceph-OSD cinder ceph-OSDcinder-volume ceph-OSD ceph-mon computecomputeceph-OSD node node compute node api controller compute node

management net tenants private net Linaro Developer Cloud (plans) ● Move to OpenStack ‘Pike’ ● Debian ‘stretch’ based ● Containers for OpenStack components ○ Using Kolla for building ● Automated tests ● Better documentation ● Setup CI to automate OpenStack tests on AArch64 TripleO? ● No nested virtualization ○ Available in ARMv8.3 specification ■ No cpus yet ○ TCG emulation is slow

● Workarounds ○ Deploy on bare metal ○ Use TCG emulation from Qemu ■ Usable only for development Questions? Thank You