在云计算数据中心的构建过程中,离不开一些关键的技术,比如,虚拟化技术,分布式数据存储技术,云计算平台管理软件以及其它诸如HBase,Hadoop等相关技术。
目录
虚拟化技术
计算虚拟化技术-KVM
分布式数据存储技术
分布式数据存储技术-HDFS
分布式数据存储-CFS
网络虚拟化技术-SDN
云计算管理平台-Openstack
云计算管理平台-VStation
VStation与OpenStack对比
虚拟化技术
虚拟化分类
虚拟化技术根据虚拟对象可分成存储虚拟化、计算虚拟化、网络虚拟化等,计算虚拟化又分为系统级虚拟化、应用级虚拟化和桌面虚拟化目。在云计算实现中,计算系统虚拟化是一切建立在“云”上的服务与应用的基础。虚拟化技术目前主要应用在CPU、操作系统、服务器等多个方面,是提高服务效率的最佳解决方案。
虚拟化优势
虚拟化是一项可将物理硬件与计算机操作系统分离的技术,能够帮助 IT 人员解决面临的诸多问题。
借助服务器虚拟化技术,我们可以获得更好的弹性与更低的成本,并可以更灵活地操作和部署应用及系统。
计算虚拟化技术-KVM
KVM虚拟化
KVM是嵌入在Linux操作系统标准内核中的一个虚拟化模块,它能够将一个Linux标准内核转换成为一个VMM,嵌有KVM模块的Linux标准内核可以支持通过kvm tools来进行加载的GuestOS,KVM 用来模拟 CPU 的运行,但缺少了对 Network 和 I/O 的支持,而QEMU-KVM 是一个完整的模拟器,它基于 KVM 上,提供了完整的 Network 和 I/O 支持。
10 月 24 至 10 月 26 日,KVM Forum 2018 大会在英国召开。本次大会上,KVM 主要维护者 Paolo Bonzini ,介绍了 KVM 开源项目的当前进展,并统计了 2018 年全球企业对 KVM 的贡献。
其中,中国唯一入榜的腾讯云向 KVM 内核贡献了 40 个 patch,全球排名第七,其它上榜企业分别是 Linaro/ARM、IBM、Red Hat、Intel、Oracle、Google 与 AMD。
这是腾讯云第二次上榜,也标志着腾讯云连续两年成为国内贡献度最高的公有云厂商,值得注意的是,腾讯云的排名紧随 Google、名列 AMD 之前。
分布式数据存储技术
云计算的数据量往往是大于传统IT架构的,在存储层面上,传统的存储架构已经很难满足日益增长的数据存储需求。云计算架构中,通常采用分布式存储,实现更好的扩展性、更大的容量,以及更好的性能指标。
传统的数据存储
集中化存储数据
存储成为系统性能、可靠性的瓶颈
读写计算性能不足,扩展性差,冗余度低
数据规模大时无法满足需要
在数据量不大、数据扩展程度有限的场景下,传统存储设备凭借自身的冗余设计与高性能组件,基本可以满足业务需要。但并不适合云计算场景下的数据存储
分布式数据存储
运行在 多台 节点上,自动整合
整合集群内所有存储空间资源,虚拟化并对外提供文件访问服务
更好的扩展性,更大的容量,更适合大规模数据的性能需求。因此经常出现在云计算架构中。
分布式数据存储技术-HDFS
HDFS分布式数据存储
HDFS是Hadoop的分布式文件系统
优势
保存多个副本,提供容错机制,副本丢失或宕机自动恢复,默认存3份。
可运行在廉价的机器上。
适合高吞吐率的场景,就是在某一时间内写入大量的数据。
劣势
低延时数据访问,比如毫秒级的数据存储,它是做不到的。
不适合小文件的存储 ,存放大量小文件的话,它会占用namenode的大量的内存在存储文件、
目录、块信息。而namenode的内存总是有限的。
一个文件只能一个线程写,不能多个线程同时写。
仅支持文件的追加(append),不支持文件的随机修改。
分布式数据存储-CFS
CFS是腾讯自主研发的分布式数据存储系统
集成管理
支持 NFS v3.0/v4.0 协议, 提供标准 POSIX 访问语义(例如强数据一致性和文件锁定),用户可以使用标准操作系统挂载命令来挂载文件系统。
自动拓展
支持根据文件容量大小自动扩展文件系统存储容量,扩展过程不会中断请求和应用,确保独享所需的存储资源,同时减少管理的工作和麻烦。
安全可靠
具有极高的可用性和持久性,每个存储在 CFS 实例中的文件都会在多个可用区中拥有 3 份冗余。
CFS还可以通过 POSIX 权限严密控制对文件系统的访问,使用基础网络或 VPC网络搭配权限组来实现访问权限控制。
按需付费
按实际用量付费且无最低消费或前期部署及后期运维费用,多个 CVM 可以通过 NFS 协议共享同一个存储空间,而无需重复购买其他的存储服务,也无需考虑缓存。
CFS优势点:
数据可靠性:提供8个9的数据可靠性,全年365天,数据宕机丢失可能的时间为0.3秒。
服务可用性:99.5% 服务等级协议的保障,无单点故障。
读写性能:水平扩展,与存储量线性相关。
扩容能力:弹性扩展,按需付费 。
集成化:支持标准的NFSv4 协议,实现无缝挂载 CVM。
成本低廉:按实际存储量付费,无最低消费和运维费用。
安全管理:支持 POSIX 权限、支持 在 VPC 或基础网络内挂载。
网络虚拟化技术-SDN
软件定义网络(Software Defined Network, SDN ) ,是Emulex网络一种新型网络创新架构,是网络虚拟化的一种实现方式,其核心技术OpenFlow通过将网络设备控制面与数据面分离开来,从而实现了网络流量的灵活控制,使网络作为管道变得更加智能。
传统IT架构中的网络,根据业务需求部署上线以后,如果业务需求发生变动,重新修改相应网络设备(路由器、交换机、防火墙)上的配置是一件非常繁琐的事情。在互联网/移动互联网瞬息万变的业务环境下,网络的高稳定与高性能还不足以满足业务需求,灵活性和敏捷性反而更为关键。 SDN所做的事是将网络设备上的控制权分离出来,由集中的控制器管理,无须依赖底层网络设备 (路由器、交换机、防火墙),屏蔽了来自底层网络设备的差异。而控制权是完全开放的,用户 可以自定义任何想实现的网络路由和传输规则策略,从而更加灵活和智能。
进行SDN改造后,无需对网络中每个节点的路由器反复进行配置,网络中的设备本身就是自动化连通的。只需要在使用时定义好简单的网络规则即可。如果你不喜欢路由器自身内置的协议,可以通过编程的方式对其进行修改,以实现更好的数据交换性能。
假如网络中有SIP、FTP、流媒体几种业务,网络的总带宽是一定的,那么如果某个时刻流媒体业务需要更多的带宽和流量,在传统网络中很难处理,在SDN改造后的网络中这很容易实现,SDN可以将流量整形、规整,临时让流媒体的“管道”更粗一些,让流媒体的带宽更大些,甚至关闭SIP和FTP的“管道”,待流媒体需求减少时再恢复原先的带宽占比。
正是因为这种业务逻辑的开放性,使得网络作为“管道”的发展空间变为无限可能。如果未来云
计算的业务应用模型可以简化为“ 云—管—端 ”,那么SDN就是 “管”这一环的重要技术支撑。
云计算管理平台-Openstack
在2010年以Apache许可证授权的自由软件和开放源代码项目,早期只有NASA贡献的Nova项目和Rackspace共享的Swift项目,到目前为止已经发展成为拥有上百个项目的综合项目计划,基础设施资源的管理平台。
Openstack平台定位是开源的用于企业部署私有云的云平台,openstack平台对外可以提供认证服务、网络服务、块存储服务、计算服务、镜像服务、对象存储服务、监控和计量服务、编排服务和面板服务等。
OpenStack的弱点:
可维护性差
配置项多
部署复杂
升级困难
容灾能力弱
• 容灾并非第一设计目标
• 需要借助于第三方工具实现高可用
追溯困难,无失败回滚
• task flow支持不好
• 模块之间的耦合仍然很高
• 无法保证接口的事务性
性能较差
• RPC临时创建MQ队列限制集群规模
• DB表的设计难以支持大规模的数据
云计算管理平台-VStation
VStation在2013年12月诞生,一个月后快速上线,后来快速生根发芽,现今大约14w行代码。
VStation架构原理:
dispatcher :一个对虚拟机任务互斥、任务入队的模块;
API :对外提供HTTP服务,负责对外接口以及任务步骤分解;整个框架通过MQ进行通信,其中API收到消息发送给MQ;
compute access :一个处于MQ和compute间的中转代理模块;
image access :一个处于MQ和image组件间的中转代理模块;
network :对虚拟机IP、MAC分配等网络管理模块;
Scheduler:在VStation平台中完成模块调度的功能;
resource :提供对虚拟机和母机的资源管理功能;
ERROR :主要负责处理任务异常模块,任务回滚等;
DEBUG :负责所有步骤,消息,参数等收集,可选择开启;
Dfw和volume:提供卷存储服务;
VStation与OpenStack对比
代码量:VStation大约数十万行,而OpenStack要数千万行;
支持集群规模:VStation支持数十万台服务器的集群规模,而OpenStack通常是数千台;
容灾:VStation支持任一模块跨机房部署容灾,而OpenStack往往需要其他开源组件支持;
运维:VStation支持消息可视化,可追溯消息扭转以及耗时等,而OpenStack需要自主开发;
人员投入:Vstation往往只需要数十人的人员投入,而OpenStack往往需要数百人;
性能:VStation可支持数万台虚拟机分钟级别的创建,而OpenStack一般支持不到100台的同
时创建。