成功案例

首页 - 成功案例 - 成功案例

【案例】基于Arm架构的云计算最新进展

2021-03-09 发布

近年来,Arm服务器被广泛使用,上层软件生态系统也得到了极大的发展。特别是一些公有云厂商已经开始提供基于Arm架构的云计算产品。华为、易捷行云EasyStack和Linaro等公司和组织,投入了大量资源来加速Arm架构在云计算中的应用。 接下来,我们将分享云计算领域Arm架构软件生态系统的最新进展、基于Arm的服务器落地面临的挑战以及生产就绪的经验分享。
开源软件的全栈支持

图片

如上图所示,基础架构层只是整个软件栈的一小部分,为了让该层在Arm平台上功能正常、性能更好,开发者在OS、驱动、库等底层项目上也做了很多。另一方面,最终用户也关心在基础设施上运行的软件,它们能否在Arm平台上运行是考虑使用Arm平台作为基础设施关键考虑因素之一。

接下来,让我们从更大的视角来看Arm平台的使能工作。 在开源世界,开发流水线对上游开发人员尤为重要。目前大部分开源项目都只有基于x86的开发流水线,所以整个开发过程和结果对Arm用户不是很友好,在Arm平台上运行之前可能会有一些额外的工作:

图片


为了让Arm平台成为开源世界的一等公民,第一步就是为开源项目提供一条开发流水线,让开发者有资源在Arm平台上进行开发和测试,最后输出的产品也将原生支持Arm:

图片

基于这一理念,华为在50多个顶级开源社区中启用了Arm CI,涵盖6个主要领域,包括云和SDS、大数据、数据库、Web、Libs & Middleware以及人工智能。目前,有很多开源项目已经支持Arm平台,用户现在在这些领域有多种选择,读者可以参考Arm CI全景图,以便了解更多的详细信息。(https://kunpengcompute.github.io/arm-landscape/) 除了赋能,华为在提升Arm平台开源项目性能、缩小x86平台功能差距等方面也做了很多工作。

例如,我们在Arm平台上在Libvirt里启用了CPU信息观察和主机CPU对比功能,目前正在使用它们,以便在OpenStack中获得更好的迁移体验。 有了这些功能和改进,Arm平台对用户和上游开发人员更具竞争力和吸引力。

Linaro在ARM64云计算生态系统上的工作

Linaro是一个Arm64生态系统上的开源组织,主要专注于上游开发和维护,如Linaro内核、工具链、Android,以及数据中心等一些指定领域。

图片

Linaro通过为Arm64 OpenStack使能、部署(维护Arm64 Kolla镜像)和维护Arm64 OpenDev CI资源,深入参与了开放基础设施社区。同时,基于OpenStack和Ceph,建立了Linaro Developer Cloud,不仅可以在云计算中测试成员公司的硬件,还可以帮助开发人员使用Arm64资源。

图片

如上图所示,Linaro Developer Cloud完全基于OpenStack和Ceph。现在,它可以提供基于Nova/Ironic的VM/BM服务以及基于Magnum支持的Arm64 Kubernetes服务。生产级OpenStack集群由Kolla容器镜像部署,操作升级更加灵活。为了支持这一点,包括许多上游工作:
 

  • Arm64上的Nova/Ironic/disk-image-builder启用和错误修复

  • Arm64 OpenStack的Devstack启用支持

  • Kolla 镜像构建、Kolla-ansible 部署支持和 OpenStack 版本升级的错误修复。

  • Arm64上的Magnum多架构支持和K8s云提供商支持


图片

Linaro Developer Cloud K8s服务现已上线约一年,K8s服务版本v1.17、v1.18已通过CNCF一致性测试认证。这是Arm64在开源云计算领域一个很好的例子。
 硬件自动化是近年来的另一个热门话题。相当多的工作负载需要运行在裸金属上(例如裸金属上的云原生K8s、HPC ) , 才能实现更好的网络和存储性能或绕过虚拟化限制(Arm64不支持嵌顿虚拟化 ) , 因此快速的硬件预置、标准的硬件管理框架在Arm64上是必不可少和重要的。 为了满足这些要求,Linaro在Arm64上提出了无磁盘引导解决方案,该解决方案利用OpenStack Ironic进行裸机管理,并使用Ceph iSCSI提供卷启动。使用Ceph卷作为磁盘可以大大缩短裸机提供时间,并提高RootFS安全性,所有数据可靠性将由Ceph保证。

图片

如上图所示,工作流程的控制路径依赖于来自卷的PXE ISCSI 引导、Cinder Ceph ISCSI 驱动程序和 Ceph ISCSI 网关。Linaro贡献了几项功能,以使Arm64支持无磁盘引导: 

  • PXE iSCSI支持Ironic 引导

  • Cinder Ceph ISCSI驱动程序支持

  • Ceph iSCSI客户端错误修复和稳定增强

我们相信硬件自动化解决方案将有利于Arm64开发和CI系统。我们将在Linaro Developer Cloud中快速上线BM服务支持,为外部应用程序提供更多资源。

在Arm服务器上运行云的最佳实践


易捷行云EasyStack作为一家专注于云计算的公司,自成立以来已服务超过1000名客户。公司于2019年4月开始支持Arm服务器,2020年2月发布了技术预览版,并于2021年1月31日发布了正式的GA版本,在功能覆盖和测试强度方面已经达到了产品级的支持。到目前为止,近30家客户已经在生产环境中部署了Arm版云计算产品。

在人们心目中,Arm生态没有x86那么广泛。有许多未知问题需要解决,包括硬件、固件、操作系统、软件等。
其实,这种印象持续了相当长的时间,在过去的5年里,Arm生态系统有了很大的发展,事情发生了迅速的变化。CPU核心数量不断增加,单个核心的处理能力也在增强。我们已经看到,基于Arm的分布式存储的性能甚至高于x86架构。 生态也得到了很大发展。越来越多的操作系统支持Arm。云计算中的开源软件对Arm架构也有更好的支持,比如在正常开发过程中使用Arm CI作为验证手段。

Arm架构在能效方面具有优势,这也是吸引公有云厂商设计自己的Arm CPU以提供云计算服务的驱动力之一。总之,Arm在云计算领域的应用和x86架构的差异大大缩小。 


在整个适配阶段,易捷行云EasyStack的工程师们适配了10多种类型的服务器。这些服务器在BIOS/固件上存在差异,导致相同的操作系统可以在一些服务器上运行,但无法运行在另一些服务器。工程师们分析了差异,并进行了相应的维修。最后,操作系统可以在所有Arm服务器上稳定运行。

上层软件版本的选择也尤为重要。易捷行云EasyStack的产品使用Kubernetes作为基础,其他服务以pod形式运行,包括OpenStack组件。这使得Arm版本产品使用与x86架构相同的软件堆栈,易于维护。在此过程中,libvirt的CPU特定错误、Openvswitch的稳定性和MariaDB的稳定性得到解决。总之,Kubernetes、OpenStack和其他组件可以在Arm平台上完美运行。 经过适配工作,开始支持产品层面的严格测试。在x86上有的功能都经过了全面测试。这份测试工作被集成到日常的CI/CD流程中,以确保任何代码更改都不会损坏x86和Arm 平台的功能。比如,在Arm平台上做网络带宽测试时,带宽值没有达到预期值,通过绑定特定的中断对应CPU来解决;发现VNC控制台在一些guest OS中没有输出,这主要与设置guest OS grub启动参数tty0有关;一些Arm服务器不支持硬件watchdog,有时无法正常工作。

我们完成了完整的测试,与x86架构产品相比,只有四个区别:

1.它不支持Windows客户操作系统;

2.Arm架构上的GPU驱动程序和SDK支持不够好,暂时无法支持GPU。

3.由于Arm架构的限制,每台虚拟机支持的磁盘和网卡都比x86少;

4.由于IPMI的限制,无法获得磁盘速度等一些监控指标,这就是Arm和x86架构之间的区别。 使用Arm服务器进行生产的客户越来越多。这个阶段我们需要完成x86架构应用向Arm架构的迁移,从x86平台到Arm平台的资源规格转换等。对于易捷行云EasyStack来说,总共有近

个客户,基于Arm架构的云计算物理节点超过500个,用于生产并运行良好,其中运行时间最长的客户超过一年。

生产就绪是大规模推广的基础,包括社区内各公司的大力支持。目前,我们已经看到了黎明。我们相信,在不久的将来,更多的企业会采用Arm架构作为云计算的基础,提供云服务。

原文链接:https://superuser.openstack.org/articles/the-progress-for-cloud-computing-on-arm-architecture/

关于绿色计算产业联盟
自2016年成立以来,绿色计算产业联盟以协同构建绿色、开放、自主、共享生态体系为目标,致力于推动绿色计算产业发展,建设产业交流与合作平台,以促进企业在PC、服务器、存储、操作系统、数据库等领域提升,推动在计算领域的合作共赢。目前已经成为拥有包括天津飞腾、海思、Marvell、Ampere等全球最完整的Arm 基础架构服务器芯片伙伴的全球联盟。