从“一云多芯”支持,看多元算力的全栈云方案
本文分享自华为云社区《从“一云多芯”支持,看多元算力的全栈云方案》,作者:徐安 华为云 Stack 资深架构师。
背景
华为云 Stack 作为华为云在政企市场的品牌,是政企客户智能升级的首选平台。随着政企客户数字化的不断深入,上云要求越来越多,给华为云 Stack 也带来了很多不一样的挑战和新问题。
分析来看,目前从宏观上看,技术对抗的大背景下,IT 安全越来越引起重视,需要在核心芯片、基础硬件、操作系统、中间件、云等领域实现国产替代。发展预计将按照:党政等封闭市场、重点行业市场(如电信、轨交、电力等)、消费市场,三步进行。政企客户,即为目前的首要市场。
从微观上看,政企客户上云趋势是:会将协同办公 OA 系统、电子公文等非涉密系统部署在电子政务外网上,采用传统虚拟机、物理机部署方式,基础 IaaS 即可满足业务部署需求。未来,也会有大数据、数据库、容器、AI 等高阶诉求。
因此在这个前提下,IaaS 云平台向下需屏蔽不同 CPU 架构的硬件差异,向上需提供服务化的算力模型封装,把算力相关的存储、网络、操作系统、监控运维等以服务化的方式提供。所以 IaaS 云平台支持不同的 CPU 架构,解决“一云多芯”问题,是最基础的能力要求。
针对“一云多芯”的解决办法
一、不同 CPU 架构的特点分析
目前主流的新创 CPU 架构有以下几个:
考虑到各 CPU 架构的成熟度和性能,我们以鲲鹏、海光、飞腾作为华为云 Stack 支持 CPU 的首选。这些 CPU 架构又有各自的技术特点:
1、鲲鹏
CPU 核心通过环形架构互联,通过扩展计算单元数量来支持众核架构,采用 7nm 工艺,Die 内均等内存和 IO 访问能力。
2、海光
CPU 核心通过 Die 之间互联架构来连接,采用 12nm 工艺,一个 CPU 有 4 个 Die 或者 2 个 Die,一个 Die 固定有 2 个计算单元,一个计算单元内有 4 个海光核。
3、飞腾
Die 之间通过 2D Mesh 方式互联,一个 CPU 支持 8 个 Die,一个 Die 与两个或者三个 Die 以 2D Mesh 方式互联。
二、华为云 Stack 技术方案特点
根据上述不同 CPU 架构特点,华为云 Stack 采用:CPU 架构混合部署、亲和性部署方案,来应对“一云多芯”现象;同时,华为云 Stack 还有全栈可控的软硬件,为政企客户提供的坚实的云底座基础。
1、不同 CPU 架构混合部署
面对不同 CPU 架构的不同特点,华为云 Stack 进行混合部署。可以理解为把数个杂乱无序的商品,整齐陈列到一个陈列整齐的便利店中,所有品类都能放到便利店中、同类商品统一陈列、特殊商品也有自己的位置。有算力需求时,就如同用户走入便利店,能快速、高效的找到想要的东西。
具体混合部署方式如下:
(1) 华为云 Stack 支持多个 CPU 架构在一朵云上共存。客户可以按照自己的业务诉求,管控硬件资源和业务环境,实现高效管理。
支持的 CPU 架构:Intel CPU 服务器、海光 CPU 服务器、鲲鹏 CPU 服务器、飞腾 CPU 服务器在一朵云内共存,高效管理,用户按照自己的业务诉求管控硬件资源和业务环境
(2) 把相同 CPU 架构,放入对应的资源池中。比如把 Intel CPU 和海光 CPU、鲲鹏 CPU 和飞腾 CPU,分别放入 x86 和 ARM 资源池中。对于那些没有使用特殊指令的应用,可在不同厂商 CPU 之间流动,可高效管控资源池,提高资源池利用效率,减少资源碎片。
(3) 业务镜像仅按照操作系统区分,不区分 CPU 架构,如果操作系统可兼容不同的 CPU 架构,可在同资源池内复用。
(4) 对于有特殊指令诉求的业务负载,可通过规则中参数来指定业务放置在哪里。比如指定 x86-虚拟机-规格,就会在 Intel CPU 服务器或者海光 CPU 服务器上选定一个地方放置。
2、考虑不同 CPU 架构之间的差异,支持亲和性部署
想象下你有几个编制不同、演奏方式不同的乐队,为了每次收到新的曲子,都能最快的编排出来,你需要提前收集这几个乐队的架构、声部、主要领队人等等,把这些信息登记在册。之后再收到新的曲子,只需查阅之前的记录,就可以实现人员的精准分工了。
亲和性部署,就是把不同的 CPU 架构差异,记录在数据库表中,收到新的算力需求时,实现调度匹配。
华为云 Stack 部署业务的步骤如下:
(1) 获取 CPU topo,包括 Socket、Die 架构、计算单元、核心、超线程的关系。支持鲲鹏,intel,海光,飞腾 CPU
(2) 获取的 CPU topo 在系统中保存
(3) 按照调度算法放置不同的业务负载
(4) 用户可按照 CPU topo 的形态呈现现有 CPU 架构,剩余 CPU 资源,已经使用的 CPU 资源
华为云 Stack 部署业务的算法基本原则是:
(1) 按照 numa 距离总量最小的组合,选择 Die
(2) 在 die 内先填满一个计算单元,再填满另一个计算单元
(3) 使用局部最优悲观算法来考虑碎片问题
如果要使用的资源可被一个计算单元整除,优先以计算单元为单位填满碎片,如若还有剩余,用碎片填满
如果要使用的资源不可被一个计算单元整除,优先用碎片填满
3、全栈可控:覆盖芯片、服务器、存储、数据库、操作系统、云平台全栈可控
华为云 Stack 软硬件均自主可控,包括鲲鹏 920 高性能 CPU、还包括昇腾 310/910、AI 芯片、Hi181x 存储控制器芯片、Hi182x 网络控制器芯片、Hi171x 服务器管理芯片。也包括上面的服务器、集中式和分布式存储、交换机、路由器、防火墙等设备。华为掌握鲲鹏 ARM、openEuler(开源)、openGauss(开源)等三大根技术,可为有全栈云诉求的政企客户提供安全可靠的云底座平台。
写在最后
随着政企客户的发展,政企客户对上云的诉求的增多,华为云 Stack 也面临着不同的挑战越来越多。我们华为云 Stack 充分考虑到客户目前拥有不同 CPU 架构的现实,通过分析主流 CPU 架构的技术特点,一方面全面支持一云多芯的设备能力;另一方面,通过硬件到软件的全栈可控云方案,为政务客户提供可信场景下,智能升级首选方案。为政企客户的全面云化打造了一个坚实有力的底座。
版权声明: 本文为 InfoQ 作者【华为云开发者联盟】的原创文章。
原文链接:【http://xie.infoq.cn/article/711b3692c792c365d950efb9d】。文章转载请联系作者。
评论