/
Arm’d  OpenStack John Studarus Arm’d  OpenStack John Studarus

Arm’d OpenStack John Studarus - PowerPoint Presentation

reese
reese . @reese
Follow
66 views
Uploaded On 2024-01-03

Arm’d OpenStack John Studarus - PPT Presentation

johnjhlconsultingcom JOHNOPENSTACKSANDIEGOORG JOHNSTUDARUS Agenda Project Goals Whats Arm all about Build Methodology Terraform Installer Options amp Fixes Hardware Configurations ID: 1037596

consulting jhl arm llc jhl consulting llc arm compute openstack x86 cloud arm64 packet bare metal terraform worksonarm nova

Share:

Link:

Embed:

Download Presentation from below link

Download Presentation The PPT/PDF document "Arm’d OpenStack John Studarus" is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.


Presentation Transcript

1. Arm’d OpenStackJohn Studarusjohn@jhlconsulting.comJOHN@OPENSTACKSANDIEGO.ORG@JOHN_STUDARUS

2. AgendaProject GoalsWhat’s Arm all about?Build Methodology – TerraformInstaller Options & FixesHardware ConfigurationsTesting MethodologyTesting ResultsWhat’s next?(c) JHL Consulting LLC

3. Who is John?President, JHL ConsultingTechnical Risk ManagementSecurity Product AdvisorSoftware Security AuditsCloud/Product EvangelismGitHub Projectsgithub.com/WorksOnArm/OpenStackWorksOnArmgithub.com/OpenStackSanDiego/SecurityServiceChainsgithub.com/OpenStackSanDiego/magnum-container-cloudgithub.com/OpenStackSanDiego/CloudStorageWorkshop(c) JHL Consulting LLC

4. Project GoalsDoes the default OpenStack install on Arm?Upstream, non vendor specific code baseAre there any showstoppers?Can OpenStack functionally run on OpenStack?All the baseline OpenStack servicesDoes it make sense to run OpenStack on Arm?Can we benefit from a $/performance perspective?Can we mix AMD64 & ARM64 in a cloud?Across compute and controller nodesMake it all available online!https://github.com/WorksOnArm/OpenStackWorksOnArmMake patches available upstrem(c) JHL Consulting LLC

5. What is Arm?Processor architectureOriginally designed for device/phones and now in serversLower cost & power consumptionScale Up versus Scale OutAMD64/x86 “scales up” through speed increasesArm “scales out” through more coresMultiple vendors of Arm processors and systemshttps://www.arm.com(c) JHL Consulting LLC

6. Cloudflare CEO on ARM(c) JHL Consulting LLCCan we replicate this success on our clouds?Can OpenStack “scale out” with Arm?With containers and edge computing, is “scale out” the future?

7. Why Packet Host?Bare Metal Service ProviderAPI based hardware provisioning (REST)Bare Metal billed by the hourVariety of OS installs provisioned in minutesSupplier of Arm and AMD/x86 bare metalAutomation of provisioning via:REST, Terraform, Ansible, Python, Java, etc…Rapid setup/tear down of physical cloudsIn a highly replicated manner…https://www.packet.net(c) JHL Consulting LLC

8. Bare Metal Menu ala PacketCode NameFamilyProcessorTDP(W)CoresGHzRAM (GB)DiskNetwork(Gbps)T0t1.small.x86AMD64Atom1442.48SSD2 x 1T1c1.small.x86AMD64E3-1240 v58043.532SSD2 x 1C2.mediumAMD64AMD EPYC 7401P155242.264SSD2 x 10T2Ac1.large.armArm64Cavium ThunderX120962.0128SSD2 x 10T2A2 c1.xlarge.armArm64Hisilicon Huawei Hi1616110642.4128SSD2 x 10T2A5Arm64Qualcomm Centriq110402.396SSD2 x 10(c) JHL Consulting LLC

9. Steps to build the cloud…Clone repoDefine cloud make-upEdit vars.tfInstall TerraformPull in require terraform pluginsTerraform initSetup Packet TokensCopy from Packet website into environment variablesSetup SSH keysExecute the terraformTerraform applyWait 10 minutes…Log into the cloud(c) JHL Consulting LLC

10. Our Terraform InstallerCapabilitiesArbitrary number of AMD64 & ARM64 serversBare metal provisioning via Packet API Terraform ProviderRepeatable, consistent installations of full stackFast installations due to concurrencyNo L2/DHCP/PXE support requiredOpenStack Install StepsVerbatim(*) from https://docs.openstack.org/pike/install/Multiple host typesController Node = {Keystone, Neutron, Nova}Compute Node = {Neutron, Nova}Dashboard Node = {Horizon}(c) JHL Consulting LLC

11. Bare Metal ProviderPacket Terraform Provider – glue between Terraform & APIPacket API Credentials ~/.bashrcexport TF_VAR_packet_auth_token=<TOKEN>export TF_VAR_packet_project_id=<PROJECT_ID>Or manually set in vars.tf(c) JHL Consulting LLC

12. Physical Host SelectionController, Dashboard, and Compute Bare Metal TypesOne each Controller and Dashboard per cloudMultiple compute nodes using Terraform “count”DashboardHorizonControllerKeystoneNova ControllerNeutron ControllerComputeNova ComputeNeutron Compute(c) JHL Consulting LLC

13. Cloud TopologiesHomogeneous Clouds3 physical hosts all the same bare metal type {T0, T1, C2, T2A2, T2A5}Dashboard, Compute, and ControllerHeterogeneous CloudsMultiple Compute nodes of different bare metal typesSeven different clouds were builtSome clouds were running concurrently…Tagging physical hosts with meta data to track(c) JHL Consulting LLC

14. Tagging Hosts to Clouds(c) JHL Consulting LLCRunning multiple cloud concurrently…Tags identify the associated cloudGenerated by Terraform via random_idTagged via Terraform Packet ProviderViewable on Packet website

15. Cloud & VM EnvironmentsLocal DatacenterAll physical hosts in the same data centerLocal NetworkNo DNS (Hostfile)Private backend networkCloud Images loadedCentOS-7-x86Cirros-{Arm,x86}Xenial-16_04-ArmFedora-26-Arm(c) JHL Consulting LLC

16. Cloud Setup via Terrform Vars.tfDefine type and number of bare metal (AMD64, Arm64)https://github.com/WorksOnArm/OpenStackWorksOnArm/blob/master/vars.tf#L15-L43SSH KeysDistributed across new bare metal and VMshttps://github.com/WorksOnArm/OpenStackWorksOnArm/blob/master/vars.tf#L45-L53(c) JHL Consulting LLC

17. Terraform Workflow(c) JHL Consulting LLCTime

18. Terraform OutputCompute ARM IPs = [ 157.75.73.186]Compute ARM Type = baremetal_2aCompute x86 IPs = [ 157.75.106.151]Compute x86 Type = baremetal_0Controller SSH = ssh root@157.75.79.194 -i ./packet-keyController Type = baremetal_0Horizon dashboard available at = http://157.75.106.119/horizon/ <username>/<password>(c) JHL Consulting LLC

19. Patches to the InstallerWhat changes were required from the stock x86 install?(c) JHL Consulting LLC

20. ETCD updatedHardcoded for x86 – check proc type and install correct versionhttps://github.com/WorksOnArm/OpenStackWorksOnArm/blob/master/ControllerKeystone.sh#L53-L59Configuration file update to enabled arm64 supporthttps://github.com/WorksOnArm/OpenStackWorksOnArm/blob/master/ControllerKeystone.sh#L79(c) JHL Consulting LLC

21. Firmware and KVM configurationhttps://github.com/WorksOnArm/OpenStackWorksOnArm/blob/master/ComputeNova.sh#L70-73cpu_mode host-passthrough & kvm mode(c) JHL Consulting LLC

22. Serial Console Support – Disable VNChttps://github.com/WorksOnArm/OpenStackWorksOnArm/blob/master/NovaConsole.tfhttps://github.com/WorksOnArm/OpenStackWorksOnArm/blob/master/ComputeNova.sh#L67-L69(c) JHL Consulting LLC

23. Install Arm VM ImagesCirros, Fedora, etc…https://github.com/WorksOnArm/OpenStackWorksOnArm/blob/master/Cirros-ARM-Image.sh(c) JHL Consulting LLC

24. Functional TestingDo x86 and Arm64 VMs startup successfully?Do OpenStack services install & run on Arm64?Can x86 and Arm64 VMs “talk” to each other (TCP/IP)?(c) JHL Consulting LLC

25. Cloud Validationroot@controller:~# openstack compute service list+----+------------------+----------------+----------+---------+-------+----------------------------+| ID | Binary | Host | Zone | Status | State | Updated At |+----+------------------+----------------+----------+---------+-------+----------------------------+| 1 | nova-consoleauth | controller | internal | enabled | up | 2017-10-16T20:08:45.000000 || 2 | nova-scheduler | controller | internal | enabled | up | 2017-10-16T20:08:46.000000 || 3 | nova-conductor | controller | internal | enabled | up | 2017-10-16T20:08:47.000000 || 6 | nova-compute | compute-x86-00 | nova | enabled | up | 2017-10-16T20:08:42.000000 || 7 | nova-compute | compute-arm-00 | nova | enabled | up | 2017-10-16T20:08:50.000000 |+----+------------------+----------------+----------+---------+-------+----------------------------+(c) JHL Consulting LLCSuccess! A mix of compute architectures…

26. Cloud Validation - Hypervisorsroot@controller:~# openstack hypervisor show compute-arm-00 -f table -c service_host \ -c vcpus -c memory_mb -c running_vms+--------------+----------------+| Field | Value |+--------------+----------------+| memory_mb | 128873 || running_vms | 2 || service_host | compute-arm-00 || vcpus | 96 |+--------------+----------------+(c) JHL Consulting LLCSuccess! Arm compute node with 96 vcpus!

27. Cloud Validation - VMsroot@controller:~# openstack server list+--------------------------------------+--------------+--------+-----------------------------------------------+-----------------+----------+| ID | Name | Status | Networks | Image | Flavor |+--------------------------------------+--------------+--------+-----------------------------------------------+-----------------+----------+| 161c63bc-7a15-4f1a-bed9-727c371ed8ae | fedora-arm64 | ACTIVE | sample-workload=192.168.100.13 | Fedora-26-arm64 | m1.small || d5ad6fe5-317c-4e81-ad33-48070970a810 | xenial-arm64 | ACTIVE | sample-workload=192.168.100.11 | xenial-arm64 | m1.small || fde4add6-391f-4597-8cf5-0f151f732203 | centos-x86 | ACTIVE | sample-workload=192.168.100.5, 192.168.100.15 | CentOS-7-x86_64 | m1.small || 9288f3f3-dd10-4cd5-8bd3-ec0fe1ac3025 | cirros-x86 | ACTIVE | sample-workload=192.168.100.8, 192.168.100.12 | cirros-x86_64 | m1.small |+--------------------------------------+--------------+--------+-----------------------------------------------+-----------------+----------+(c) JHL Consulting LLCSuccess! Mix of AMD64 and Arm64 VMs running!

28. Performance TestingWhat’s the 95th percentile time (sec) for common cloud tasks?Account Management Task (Keystone)user create/deleteVirtual Machine Deployment (Nova, Neutron, Keystone, Glace)VM spin-up/spin-down – multiple API/system callsTesting ParametersConcurrent (10) queries repeated 1000 timesZero errorsMust pass Rally defined SLARally provides a framework for performance analysis and benchmarking of individual OpenStack components as well as full production OpenStack cloud deployments(c) JHL Consulting LLC

29. Rally Testing(c) JHL Consulting LLCcreate-and-delete-user.jsonboot-and-delete.json

30. Performance ResultsCode NameFamilyProcessorTDP(W)Cost($/Hr)Acct Mgmt(sec)VM Mgmt(sec)T0t1.small.x86AMD64Atom14$0.076.1N/AT1c1.small.x86AMD64E3-1240 v580$0.405.1N/AC2.mediumAMD64AMD EPYC 7401P155$1.002.015.9T2Ac1.large.armArm64Cavium ThunderX120$0.503.080.3T2A2 c1.xlarge.armArm64Hisilicon Huawei Hi1616110$0.502.531.8T2A5Arm64Qualcomm Centriq110$1.002.524.5(c) JHL Consulting LLC

31. Project Goals - ResultsIs OpenStack Ready for Arm?YES! No showstoppers. Just some minor installer tweaks.Does it make sense to run OpenStack on Arm?YES! OpenStack functions just as on AMD64 platformsCan we mix AMD64 & ARM64 in a cloud?YES! Mixed clouds worked fine!(c) JHL Consulting LLC

32. Where have we gone from here?Additional VM (OS) imagesArtful 17.10, Bionic-18.04, Trusty 14.04CentOS 7(**) Work in ProgressExternal NetworkingSupport for floating IPs with Packet elastic IpsAllows for Arm CI/CD environmentsWhat’s next?Dynamic bare-metal host add/removeStress testing – load limitsConsole logging…(c) JHL Consulting LLC

33. Questions?Don’t hide!(c) JHL Consulting LLC

34. Get Involved!Give it a try!Clone and spin up your own cloudFree Packet credits availableProject DevsSee me about Arm CI/CD resourcesTHANKS!(c) JHL Consulting LLC