BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

陈杰:腾讯云的弹性、高可用与隔离

| 作者 包研 关注 0 他的粉丝 发布于 2014年7月8日. 估计阅读时间: 7 分钟 | CNUTCon 了解国内外一线大厂50+智能运维最新实践案例。

高弹性、高可用是云服务重要的特性,在保证安全和隔离的前提下,如何提供这些特性也是云平台的核心技术之一。在QClub广州:腾讯云图沙龙上,腾讯云高级工程师陈杰分享了腾讯云在弹性、高可用和隔离方面的实践。在沙龙期间,InfoQ对陈杰进行的专访,全文如下:

InfoQ:陈杰你好,请向InfoQ的读者简单介绍一下自己,工作经历,现在主要在做什么?技术上的兴趣点是什么?

陈杰:我是2007年毕业就到腾讯,开始在互联网应用系统做支付营销的后台系统,后面又转去做游戏后台。大概两年前转到云平台部做虚拟主机的后台开发,目前是虚拟主机后台的技术负责人。我自己兴趣呢,也是做底层虚拟化,包括计算虚拟化,网络虚拟化和存储方面。

InfoQ:刚才听你介绍,腾讯云计算平台虚拟化有三个实现方式,有Xen,KVM,Linux Container,这三个虚拟化类型分别定位的是哪些用户?

陈杰:Linux Container是用于在CEE(Cloud Elastic Engine)上提供PaaS级的服务,给用户提供微信云这种网站类接入服务。我们的虚拟云主机产品叫CVM(Cloud Virtual Machine),底层有Xen和KVM两个平台,这是有一些历史原因的。我们最开始建CVM平台的时候,是用的Xen,因为公司用Xen比较成熟。后来随着业务的慢慢发展,我们在向KVM在转,因为KVM的代码量更少,更易维护,我们有专门的同事去做这块。同时,KVM可以更好的定制功能。基于我们的测试,KVM有更高的稳定性。我们认为KVM代表了发展趋势。目前腾讯云的广州区Xen和KVM两种方案都有,后面上海金桥机房这种就会全部使用KVM。

InfoQ:现在腾讯云的自动弹性实现的状况如何?

陈杰:其实自动扩缩容是比较复杂的一个能力,它包括了监控,即发现需要扩缩容,以及实施。我们在CEE上有做这种自动扩缩容的尝试,但是CVM现在还没有做,目前仍然是半自动化的扩缩容。我们做了监控即发现扩缩容需求,也做了扩缩容,但是我们还没有做到全自动的触发。我们现在弹性能力主要是集中在HA,用户可以做配置升级,热迁移,后续我们会推出自动扩缩容这种跟用户更相关的功能。

InfoQ:关于HA,你刚才提到有冷迁移,热迁移,能不能详细介绍一下?

陈杰:其实HA就是冷迁移,用户的机器挂了,它的表现就是虚拟机没有办法服务了,映射到后端,可能是它服务的母机物理主机挂了。物理主机挂有很多种可能,比如硬件故障,或者是我们更不愿意看到的网络故障,或者母机的I/O高,CPU高导致它无法服务了。在这种时候虚拟机已经没有办法对外服务,我们就需要把它迁移掉。如果用户的主机使用的是我们的CBS(Cloud Block Service)盘,就可以实现HA,即把用户的虚拟机从故障母机迁移到就是正常的母机上,我们会有一堆算法去确定目标母机是能够提供服务的,然后把用户的子机给拉起来。热迁移与冷迁移的区别就在于用户的服务是否会停止,热迁移用户是没有感知的,服务可以照常的对外进行。但是,用户的的子机可能已经从一个母机迁到另外一个母机上了,我们做这个热迁移的能力就是提早的发现,当监控或其他能力发现母机可能有问题的时候,比如说它的I/O持续的上升,或者硬件如RAID卡电量不足,那早于问题发生之前,把子机从有问题的母机上热迁移出去,让用户的服务有高保证。技术实现热迁移会复杂一点,冷迁移会稍微简单一些。

InfoQ:资源的隔离是怎么做的?安全是如何考虑的?

陈杰:资源隔离分两块,一是网络访问这块我们有单独的DFW的系统来实现,DFW能够按开发商级别隔离访问,开发商A和开发商B是没办法相互访问的。我们也会在底层做一些防IP和防MAC欺骗的一些手段,即使一台虚拟机的IP和MAC被手动的篡改了之后,他也没有办法在整个网络上影响别的开发商的机器。

资源方面主要是I/O和网络这两块,目前网络我们还没有做隔离,因为用户的网络带宽还达不到我们的资源瓶颈,这方便不是我们的最主要的方向。I/O是一个比较重的问题,我们目前是采用Cgroups的方式,但是如果Cgroups把子机完全隔离,又会导致实测性能20%下降,所以我们做了折中,就是把母机跟子机隔离起来,母机上也有一些关键的进程,比如说libvirtd,还包括我们自己的一些进程,这些关键进程不会因为子机的影响导致坏死掉。但子机和子机目前还是会有影响,但是如果发现这种影响,我们会用其他手段,比如说热迁移的手段,把高资源的子机迁走,或者把一些低资源的子机迁走这种方式来做综合平衡。

InfoQ:下一步打算做什么?

陈杰:首先我们会推出更多的弹性的能力,比如独立的云硬盘去满足用户在线的多挂一块盘,或者是把这块盘给从虚拟机上卸载掉,这样用户就可以根据实际需要去添加更多的存储,或者把数据从一台虚拟机放到另外一台虚拟机上去。

第二是网络方面的弹性IP,包括亚马逊AWS也有EIP服务,能够使外网服务的IP与虚拟机之间解耦,让用户根据实际需要去把一个IP从绑定到一台虚拟机上,或者从一台虚拟机绑定到另外一台虚拟机上,从而持续的提供服务。

此外,还有快照方面的一些工作,我们也能够提供快照的能力,方便用户去备份他的数据,我们也会做刚刚提到了自动扩缩容。

InfoQ:挂载更多云硬盘是用RAID,还是用其他的什么方式来实现呢?

陈杰:如果是存储,是用我们的网络快存储服务来实现的,它是单独的服务,在他后端会有自己的一些存储的和容灾手段,我们提供数据是三份备份,如果用户的数据有丢失是可以找回来的。CBS服务是比较可靠的,性能上面也是能够满足大部分用户的需要,如果对IOPS要求非常高,或者对I/O延迟要求非常高的用户,我们后续也会提供纯SSD的这种云盘的服务。

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT