魅族云是一个基于kvm,整合计算、存储、网络资源的IAAS平台。它最大优势在于弹性伸缩能力,魅族云可以在几分钟内升级内存、cpu、硬盘等虚拟化资源,支持按照业务的水平扩展,几分钟内批量生产虚拟机供业务扩容。魅族云的虚拟机可以达到99.95%的可用性。
业务背景
魅族互联网的三大中心, 游戏中心、用户中心、应用中心都运行在魅族云上,有超过2000+的虚拟机提供服务,支撑的应用商店, 日PV达到2.5亿。 在线音乐, 日PV达到2.3亿,用户同步数据, 日PV达到3.6亿,同步数据达300亿条。
面对的挑战
爆发式的用户增长,业务可用性要求99.99%, 而虚拟机的可用性只有99.95%。
魅族云如何支撑
通过魅族云水平扩展能力和垂直扩展能来解决业务的爆发式增长的问题。通过质量、效率、成本这三个维度讲述魅族云如何支撑日益增长的大型业务。
1
质量
通过cpu、内存、硬盘、网卡这几个方面对比虚拟机的性能。
关闭KSM优化CPU,CPU测试数据,虚拟机有95%物理机运算性能。
使用EPT、透明大页优化内存,内存测试数据,虚拟机有媲美物理机的内存访问性能。
使用qcow2、virtio、none优化硬盘,硬盘测试数据,虚拟机的磁盘io性能达到物理机80%的水平。
使用sr-iov、virtio、vhost-net优化网卡,网卡测试数据,sr-iov虚拟化网卡性能接近物理网卡的水平。
通过高可用的方案让魅族云满足业务99.99%的可用性。
IDC层面上的高可用
总结了单机房带来的问题, 首先是扩容方面,受到机房规划和本身容量的限制, 在议价上也没有什么筹码。
其次是容灾,机房设备故障、机房被攻击、机房遇到天灾。
最后是访问质量,中国的网络结构,南电信、北联通、移动、教育网,错综复杂,互联互不通,骨干网经常会有波动,单一机房很难做到覆盖率和访问质量。
2015年我们建设了广州、无锡、北京三个机房,做到idc的高可用。
网络链路层高可用
在idc内,核心交换机、接入交换机分别作堆叠,然后开启stp,服务器作网卡绑定, 使用bond1模式,这样做到网络链路层的冗余, 保障核心交换机、接入层交换机、网卡、网线任何部件出问题,网络依然是可用的, 从而提高业务的高可用。
接入层的高可用
使用lvs加ospf做接入层的负载均衡,通过GSLB实现智能路由,主机房出现问题的情况下,可以在极短时间内将流量切到其他备用机房,保证业务恢复正常运行。
机柜感知
机柜感知是让同一个业务的虚拟机不会出现在同一个机柜上,保障机柜冗余。在创建虚拟机的时候,我们把虚拟机对应的业务id传进来。首先获取有资源的宿主机列表,然后根据业务id过滤掉已有机柜的宿主机,在剩下的宿主机中,按照资源调度策略寻找合适的宿主机并创建虚拟机。
云平台高可用架构
云平台架构图
云平台分cc和nc2个服务,cc是控制端,nc执行端。
nc上有nc_agent 负责在宿主机上管理虚拟机,包括创建、开启、关闭、销毁等。 nc_report 负责上报nc的心跳和监控数据,nc_watch 负责监控nc,当nc_agent出问题的时候可以通过nc_watch来拉起。
cc上有cc_job,cc_res_mgr,cc_master3个角色, cc_job负责接受web发过来的请求,管理任务、创建task,cc_res_mgr是云平台资源调度器,cc_master接收cc_job的task,从cc_res_mgr获取资源, 然后和nc_agent通信,管理虚拟机。
使用lvs+keepalived解决web的单点,因为我们的服务是无状态的。 对于cc的高可用稍稍遇到了点问题, nc和cc的认证是做了ip限制的,我们把cc加入了zookeeper,通过临时心跳结点的方案解决cc的高可用,然后nc去zookeeper上获取当前的cc地址,作为授信地址。这样既保证了cc的高可用,又保证了nc和cc之间的通信。
2
效率
第一, 从运维维护的效率,根据统计,我们目前使用的虚拟机中v1型号占62%,v1是最低配的服务器 6vcpu 8G内存,可以看出低资源的业务情况比较多。 这种情况如果使用物理机器,为提高机器资源利用率,业务必然要混部,这就导致了,业务混杂,机器环境复杂,资源隔离差,不利于标准化建设,使用云主机可以很好解决这个问题,使用了云主机,可以做到资源隔离,根据业务资源需求情况、例如是cpu密集型、内存密集型、存储密集型, 然后结合云平台的容量调度体系,提高资源利用率,标准化机器环境。
第二, 从硬件采购交付上,采购流程复杂,一次采购要经过预算、采购计划、询价、供应商发货、上架、部署交付,这个过程很繁琐,并且周期很长。使用魅族云, 可以批量的交付服务器,降低交付周期。
第三, 从硬件维修,依靠魅族云平台的水平弹性能力,以及迁移能力,在硬件发生故障的时候,可以轻松优雅的迁移到新的服务器上去,不会需要运维人员跑机房。
3
成本
第一,服务器成本,使用高密度的服务器,做到资源隔离,机器利用率高,降低成本。
第二,服务器少了,交换设备成本、机柜成本自然也降下来。
第三,有了云服务器,对硬件的维护就没有那么紧急,可以批量维护,降低维护成本低。
魅族云发展与展望
从技术维度上,我们追求更好的弹性能力、更高的资源利用率,docker已经在魅族云上运行, 并逐步推广。
从产品维度上讲,魅族云会结合大数据,以魅族互联网产品为支撑,在细分市场上提供云服务,打造魅族互联网的生态系统。
封面图片来自网络
领取专属 10元无门槛券
私享最新 技术干货