杨耿丹即时激励分享
@dannyyang
微众银行作为国内第一家互联网民营银行,也是去IOE最彻底银行,在拥抱开源技术的同时也将自己优秀的产品开源。在硬件国产化的趋势下,国产芯片在我们数据中心得到广泛应用。
存储
依托我行分布式架构,采用低功耗的arm芯片+开源ceph构建分布式存储集群。分布式存储集群不需要强大的x86处理器,相对于其它应用对磁盘及网络要求更高,存储构建在arm服务器上在兼顾性能同时带来采购成本下降及数据中心功耗降低。基于arm的分布式存储集群目前已在我行规模化部署,为我行生产系统提供文件存储及块存储服务。
计算
arm服务器作为计算节点,在云计算的背景下避不开的一个话题就是虚拟化,目前主流的x86硬件虚拟技术包括intel 的 vt-x,amd的 amd-v,那么在arm架构是否支持虚拟化呢,答案当然是肯定的。以开源的kvm虚拟技术做arm与x86虚拟化做类比,配置的主要区别为虚拟化cpu模拟的选择上。
KVM(Kernel-based Virtual Machine的英文缩写)是Linux下硬件平台上的全功能虚拟化解决方案。
KVM主要支持三种 CPU 模式:
#
host-passthrough
libvirt把宿主机的CPU指令集全部透传给虚拟机。在虚拟机上看到的就是物理cpu的型号,一般是在做虚拟化嵌套nested技术的时候使用,不足的是使用这种模式不同型号的 cpu之间无法做热迁移。
#
host-model
libvirt根据当前宿主机CPU指令集从配置文件/usr/share/libvirt/cpu_map.xml选择一种最靠近的cpu型号。在这种模式下,虚拟机的指令集比宿主机少,性能相对host-passthrough要差一点,热迁移时,允许目标主机CPU与源主机的存在一定的差异。
#
custom
这种模式下虚拟机看到的CPU指令集数最少,故性能相对最差,但是它在热迁移时跨不同型号CPU的能力最强。
X86架构上三种模式都支持,arm架构上经过我们测试,只能是host-passthrough模式,其它两种模式会抛出异常,版本选择上建议使用社区比较新版本。性能上,我们实验室实际测试的数据,磁盘,网络及内存两者相差不大,主要是在计算能力差异,使用stress-ng工具,通过不同的算法测试cpu,同是8核16G内存的配置,x86虚拟机计算能力大概是arm虚拟机的3倍左右,这个数据应用从x86迁移到arm上的参考。
_ | x86 (8cpu*16GMEM) | arm (8cpu*16GMEM) |
1 | 308481 | 111130 |
2 | 308391 | 112355 |
3 | 308502 | 111343 |
将分布式的的应用部署在arm服务器及在arm服务器上做虚拟化,实践验证都是可行的,引进国产芯片,让cpu多样性,有助让数据中心变得更加健壮,我们也将朝着更多的组件国产化方向继续探索。
dao
道
ge
哥
dian
点
zan
赞
♬..♩~ ♫. ♪ ~ ♬..♩..♩~ ♫. ♪ ~ ♬..♩..♩~ ♫. ♪ ~ ♬..♩..♩~ ♫. ♪ ~ ♬..♩♫. ♪ ~ ♬..♩~ ♫. ♪..♩~ ♫. ♪ ~ ♬..♩..♩~ ♫. ♪ ~ ♬..♩..♩~ ♫. ♪ ~ ♬..♩在整个国产化硬件引入过程中,danny积极与厂商沟通协调、开源社区技术讨论、内部架构变更与代码修改,使整个硬件引入在底层核心组件上的迁移与使用,并确保计算与存储的高可用与稳定,在国产化硬件应用方面做出了重要贡献;希望后续在国产化操作系统的应用上继续努力获得更大突破;
未完待续
想要get√更多WeStar同款秘技
请持续关注TCTP公众号!