The Multi-Arch SIG was formed in December 2019, so it has been a year since then. We generated this report to provide an update on what happened with multi-arch in the OpenStack community within the past year.
What is the Multi-arch SIG?
In short, the Multi-Arch SIG is targeting all of the below work so that OpenStack can have better integration with different CPU architectures. We had a lot of discussions when this SIG was just an idea during the Shanghai Summit (Nov. 2019). Discussions started from supporting ARM64 only and soon adopting ideas to support other CPU architectures as we found most CPU architecture support status are facing the same problems and require very similar changes (in a lot of cases, it requires the same set of changes). From there, the SIG appears to be the best place to gather experiences from one CPU architecture support to another. Those experiences can be documented and provided to the entire OpenStack community and to users who might be interested. So the Multi-Arch SIG was founded to support such goals. Remember, the SIG is a place for collaboration and extends across affiliations.
Join the Multi-Arch SIG!
We hope to help the community to reach better support for multi-arch, therefore we hope to have more help, more hands, and more resources to achieve that goal.
Please join us in the coming PTG (Our schedule and etherpad).
We have a SIG etherpad that launched on day one of the Multi-Arch SIG and will keep updated information and links on it. Also, you can go check on the Etherpad from the meeting of the Multi-Arch SIG at the VPTG in 2020. Those two etherpads should give you good initial information about this SIG and what this SIG is working on.
(screenshots from 2020 VPTG)
We will also try to compile community efforts (from this SIG or not) on the SIG’s StoryBoard. If you have any questions, ideas, or information about ongoing work regarding multiple-architecture support for OpenStack, feel free to reach out. Here are some places where you can find us:
Let us know what your interests are or your story about OpenStack multi-arch support is. We will try to continue generating reports (hopefully with your story or work shared inside) once more progress is made. So please stay tuned. : )
For those who don't know what multi-arch means…
What is multi-arch?
Multi-arch is a convenient name for the effort to have OpenStack work on any (desired) architecture. There are many distinct areas of focus within this effort.
We need to test OpenStack on multiple architectures. Ideally, there should be upstream CI for any relevant architecture. New test cases can also be considered.
Packages and containers should be built for all architectures. Keep in mind the Guidelines for Managing Releases of Binary Artifacts.
OpenStack deployment tools should support deploying on non-x86 architecture. In other words, tools should support any special steps needed for non-x86. Support for deploying a cloud with a mix of architectures may also be valuable. Note that deployment tools are typically opinionated about what content they deploy, so multi-arch support in deployment tools may be dependent upon the availability of artifacts.
Running OpenStack often means virtual machines managed by Nova. From a multi-arch perspective, this means awareness of Virt drivers. More specifically, the Libvirt KVM driver should work on non-x86 architectures (it already does) and the accuracy of the Feature Support Matrix should be maintained. There are also architecture-specific virtualization technologies such as PowerVM and z/VM with Virt drivers in Nova that are part of the multi-arch landscape.
The value of multi-arch should be made clear.
Why does support for multi-arch in OpenStack matter?
Testing of OpenStack is a great sandbox for proving capabilities of CPU architectures because OpenStack touches so many pieces of a linux system. It interacts with networking, virtualization, filesystems, disk management, python, web servers, database servers, amqp servers the list goes on (and on). If you can run OpenStack there is a good chance you can run most other software.
Also, x86 is seeing viable alternatives that may offer better performance per dollar, or better performance per watt, in some cases.
Testing of OpenStack is a great sandbox for proving capabilities of CPU architectures because OpenStack touches so many pieces of a linux system. It interacts with networking, virtualization, filesystems, disk management, python, web servers, database servers, amqp servers the list goes on (and on). If you can run OpenStack there is a good chance you can run most other software.
Also, x86 is seeing viable alternatives that may offer better performance per dollar, or better performance per watt, in some cases.
Where are we for multi-arch support?
Currently, the x86 CPU architecture is still the only one that has been fully tested by the OpenStack community; however, there are already cases showing OpenStack can be fully deployed on multiple CPU architectures in production. There are already vendors who deliver OpenStack with ARM64 nodes for production. Linaro even generously donated an ARM64 OpenStack environment to OpenInfra Foundation (Thanks to Marcin Juszkiewicz, Kevin Zhao, and the Infra team who made this happen). This is currently the only non-x86 CI environment we have in our community. For more information about this Linaro environment, you can check out the superuser article `How Arm is becoming a first class citizen in OpenStack`.
Regarding Arm64 CI resources, Oregon State University Open Source Lab (OSUOSL) is also generously donating about 15+ arm64 nodes to the community. And the environment is now ready for OpenStack community to use (system config is merged).
Summit Sessions
There were sessions for multi-arch in past summits. And the Multi-Arch SIG will try to keep providing presentations for multi-arch support status updates going forward. You can find most of the presentation videos online (like Arm64 related videos)
Some recommended sessions for beginners:
There are other great sessions that we didn't list here, like demo or marketing analysis sessions, so go ahead and find what suits you.
More Community Efforts
There are some community efforts that we know from OpenStack User Groups around the world.
For example, the China User Group hosted some online meetups for technical/community exchange about Open Infrastructure with ARM64. They also have a Wechat group to share ARM-related information (Let us know if you wish to join this WeChat group: Rico Lin [email protected], or Horace Li [email protected]). There are also efforts about OpenEuler with OpenStack (as mentioned above).
Korea User Group made a study group for `Open Infrastructure with ARM` to share and study from each other's experiences or community documentation. They study by searching and brainstorming. And they received a sponsorship for ARM servers from an ARM server manufacturer (XSLAB Inc.)
We believe there are more user groups that have efforts in multi-arch support for infrastructure. So please share your story with us!
Authors