2025上半年,最新 AI实践都在这!20+ 应用案例,任听一场议题就值回票价 了解详情
写点什么

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

  • 2014-07-07
  • 本文字数:2236 字

    阅读完需:约 7 分钟

高弹性、高可用是云服务重要的特性,在保证安全和隔离的前提下,如何提供这些特性也是云平台的核心技术之一。在 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 的这种云盘的服务。

2014-07-07 04:363280
用户头像

发布了 45 篇内容, 共 15.0 次阅读, 收获喜欢 3 次。

关注

评论

发布
暂无评论
发现更多内容

我们如何拿到自己满意的薪资呢?这些套路还是需要掌握的

看山

闲聊

我的远程办公深度体验 | 社区征文

6个核桃

初夏征文

今晚19:00知识赋能第2期直播丨OpenHarmony智能家居项目之控制面板界面设计

OpenHarmony开发者

Open Harmony

用Python编写学生成绩管理系统(内附源码)

王小王-123

Python 系统设计 用python编写成绩管理系统 学生成绩管理系统

IOS技术分享| iOS快速生成开发文档(二)

anyRTC开发者

ios objective-c 音视频 移动开发 Jazzy

架构实战营模块 5 作业

Roy

架构实战营

阅读Skeleton.css源码,改善睡眠质量(尽管它只有419行代码)

德育处主任

CSS 源码 前端 6月月更 skeleton.css

国内首批!阿里云云原生数据湖产品通过信通院评测认证

阿里云大数据AI技术

大数据 运维 存储

Serverless 在阿里云函数计算中的实践

阿里巴巴云原生

阿里云 Serverless 云原生 函数计算

Seata 与三大平台携手编程之夏,百万奖金等你来拿

阿里巴巴云原生

阿里云 开源 云原生 seata

Flutter 中的 ValueNotifier 和 ValueListenableBuilder

坚果

flutter dart 6月月更

用Python自动化办公(csv项目实战)

王小王-123

csv python项目 自动化办公 大数据分割

优惠券种类那么多,先区分清楚再薅羊毛!

CRMEB

揭秘得物客服IM全链路通信过程

得物技术

前端 大前端 通信 IM 客服

传统微服务框架如何无缝过渡到服务网格 ASM

阿里巴巴云原生

阿里云 微服务 云原生 Service Mesh 服务网格 服务网格

【值得收藏】HTML5使用多种方法实现移动页面自适应手机屏幕的方法总结

迷彩

前端 自适应 HTML5, CSS3 6月月更

K8S V1.23 安装--Kubeadm+contained+公网 IP 多节点部署

云原生 k8s Kubernetes 集群

Scala 基础 (四):函数式编程【从基础到高阶应用】

百思不得小赵

scala 函数式编程 大数据开发 6月月更

14岁懂社会-《关于“工作的幸福”这件事儿》读书笔记

懒时小窝

14岁懂社会

科普达人丨漫画图解什么是eRDMA?

阿里云弹性计算

大数据 TCP/IP RDMA

云技能提升好伙伴,亚马逊云师兄今天正式营业

亚马逊云科技 (Amazon Web Services)

亚马逊云

OLAP数据库引擎如何选型?

奇点云

OLAP 数据库引擎 OLAP数据库

架构实战营模块5作业

挖了蘑菇哩斯

架构实战营

小心transmittable-thread-local的这个坑

看山

Java’

ABAP-时间函数

桥下本有油菜花

abap

直播带货源码开发中,如何降低直播中的延迟?

开源直播系统源码

软件开发 直播系统 直播源码

用Python写一个简易机器人,超级简单!

王小王-123

python编写机器人 python项目 语法知识大全

用Python编写学生成绩计算系统

王小王-123

Python 成绩计算系统 成绩项目 日常编程

利用Docker极速下载OpenJDK11源码

程序员欣宸

Docker Openjdk 6月月更

Dart 开发技巧

Geek_0a3437

flutter android dart 6月月更

Flutter的特别之处在哪里

Geek_99967b

小程序 Flutter 小菜

陈杰:腾讯云的弹性、高可用与隔离_服务革新_包研_InfoQ精选文章