超融合架构提升单台服务器性能,浅谈超融合架构
超融合架构是什么?
超融合架构是基于标准通用的硬件平台,通过软件定义实现计算、存储、网络融合,实现以虚拟化为中心的软件定义数据中心的技术架构。其主要特征是:
(1)软件定义
独立于硬件,采用商业通用标准硬件平台(如X86),完全采用软件实现计算、存储、网络等功能。
(2)虚拟化
以虚拟化计算为中心,计算、存储、网络均由虚拟化引擎统一管理和调度,软件定义存储由虚拟机控制器CVM进行管理。
(3)分布式
横向扩展的分布式系统,计算、存储、网络按需进行动态扩展,系统不存在任意单点故障,采用分布式存储。
超融合架构能解决什么问题?
虚拟化解决了CPU、内存资源闲置的问题。传统架构计算节点通过存储网络链接集中存储,部署结构复杂周期长。尽管其稳定性经过了市场的多年验证,但随着单节点CPU越来越快、核数越来越多、内存越来越大、虚拟化软件可支持的计算节点数越来越多、大量的虚拟机和容器同时运行、I/O的混合,随机读写急剧增加,瓶颈也逐渐转移到传统集中存储I/O上面。后续虽然可以采用增加集中存储数量的方式分担I/O,但从平衡经济成本角度考虑终归不能无节制扩容下去。
图 1 传统部署架构
超融合架构通过去掉传统存储,利用分布式文件系统来提供更高的性能和容量,在这个基础上,再通过 Cache 进行加速,或全部使用闪存的方式来提升存储的效率。因此,超融合架构不是为了让单台服务器的存储飞快,而是为了让每增加一台服务器,存储的性能就会有线性的提升。
图 2 超融合部署架构
超融合架构为什么能够快速发展呢?
超融合架构近几年能得以快速发展,要归功于硬件设备。CPU核数越来越多,服务器的内存容量越来越大,SSD设备和网络互联网设备越来越快,这意味着:
服务器的资源除了运行业务以外,仍然可以预留出来足够的CPU、内存资源来运行存储软件。将存储软件和业务运行到一块,既减少了设备量,减少了电力使用,本地读取也提高了I/O的存取效率。这在几年前是做不到的,因为CPU和内存太有限了。
网络互联越来越快,无论是万兆、40Gb以太网,还是Infiniband,都使得我们的软件能够将独立的存储设备进行互连,通过分布式文件系统形成共享的存储池,供上层应用使用。
如果说SSD等硬件厂商让单个存储设备跑的更快,软件定义的意义在于,让超大量的这些存储设备,一起工作,提供更高的整体性能和容量。
SDS资源如何提供给Hypervisor上的虚机呢?
完整地来看,HCI就是分布式存储形态的SDS结合Hypervisor。那SDS资源如何提供给Hypervisor上的虚机呢?业内有几种实现方式,一个就是内嵌在Hypervisor内核中,虚机直接访问Hypervisor的物理存储设备;另一个就是通过虚拟存储控制器(即VSA- Virtual Storage Appliance,虚拟存储设备),访问Hypervisor的物理存储设备。两种架构IO流程如下。
1. 内嵌Hypervisor内核
图 3 内嵌Hypervisor内核方式
混合配置中的持久化层是HDD,HDD在顺序写情况下表现良好。通过使用电梯算法(Elevator Algorithm)异步地将来自不同虚机的、缓存内的、按照每块HDD物理地址相邻的数据,批量地Destage进磁盘中,以此来提升性能。如果写缓存还有充足的空间,将不会频繁开启Destage的操作,这样就避免了对同一个数据的多次改写,屡屡刷进HDD里,被频繁写的数据(也即热数据)仍然停留在缓存层,而那些较少访问的数据才会被刷进持久化层。
2. 通过虚拟存储控制器
图 4 虚拟存储控制器方式-架构示意
图 5 虚拟存储控制器方式-数据写入流程
数据优先考虑写入本地SSD(如果SSD已用容量未达到阀值),如果本地SSD满了,会将本地SSD的最冷的数据,迁移到集群中其他节点的SSD,腾出本地SSD的空间,写入数据。本地落盘的原则,是为了尽量提高虚机访问存储数据的速度,使本地虚机不需要跨节点访问存储数据。当整个集群的SSD已用容量达到阀值,才会将每个节点的SSD数据迁移到该节点的HDD硬盘中。SSD迁移数据到HDD,并非将所有数据全部迁移到HDD,而是对数据进行访问度冷热的排序,并且将访问较少的冷数据优先迁移到HDD硬盘中。
举个具体实例吧
G行二级分行资源池在数据中心机房部署超融合计算节点,实现分布式资源、存储和网络资源的融合与弹性扩展,为各个分行下沉节点虚拟应用发布提供支撑。由于各分行部署规模相对较小,采用超融合架构也是利用其部署快速、灵活易操作的特性,成本就传统架构而言也相对较低。
图 6 整体拓扑
基于可靠性考虑管理、业务、存储平面由2个网口绑定,双上行到2个接入交换机,管理、业务、存储平面采用独立的虚拟交换机,独立地接入交换机,并采用vlan隔离。
图 7 详细拓扑
管理平面主要负责整个系统的监控、操作维护(系统配置、系统加载、告警上报)和虚拟机管理(创建/删除虚拟机、虚拟机调度)等。
存储平面主要为存储系统提供通信平面,并为虚拟机提供存储资源,用于虚拟机数据存储和访问(包括虚拟机的系统磁盘和用户磁盘中的数据)。
业务平面主要为虚拟机的虚拟网卡提供对外通信平面。
图 8 网络平面设计
最后说说问题与挑战吧
虽然超融合架构有着部署快速、灵活易操作的特性,成本较传统架构也有优势,但作为相对新型架构在稳定性、配套资源上仍需市场充分检验。
1. 性能一致性
数据中心中存储的性能至关重要,而且期望性能是可以预测并保持一致性的,包括延迟、IOPS和带宽,这一点对核心业务系统尤其关键。对于超融合架构而言,这一点恰恰是很大的挑战。原因主要有两点,一是超融合架构“共享一切”。计算和存储会争抢CPU/内存/网络等物理资源,而且计算和存储又相互依赖,一旦一方资源需求骤升就会导致另一方资源紧张,进而影响性能并在整个基础架构中产生涟漪效应。二是超融合架构“一切分布式和软件定义”,软件承担了更多的工作,这相当于将一部分的硬件故障率转移到了软件上,网络、硬盘、服务器发生故障的概率都会增大,数据重删/压缩/加密/纠删码等功能都用软件实现,故障的自修复和数据功能实现都会消耗一定的系统资源,导致性能下降和抖动,这在动辄系统稳定性五个九的银行系统中仍需充分论证及市场验证。
2. 系统复杂性
超融合架构简化了IT架构,极大降低了数据中心设计的复杂性,实现了快速交付,并极大简化了运维管理。不过,这都是基于用户角度的,从产品研发角度而言,超融合实际上使得内部的软件复杂性更高了,这对软件提出了更高的要求。计算和存储对硬件平台的要求都不同,融合后也会一定程度上增加兼容性验证的复杂性。超融合架构下,管理、计算、存储、高可用通常都需要配置独立的虚拟网络,网络配置也会更加复杂。同时,共享物理资源的分配、隔离、调度,也是额外增加的复杂性。如果出现故障,由于是高耦合的架构,问题的跟踪调试和分析诊断也变得更加困难,这对软件自身的故障定位能力、配套生态软件监控能力以及场景覆盖能力都是一个极大考验。
介于以上两种情况,大多数用户还是本着“部分试点、逐步推进”的方式进行超融合架构的普及。优先在桌面云及非重点业务系统进行部署,持续观察已部署的超融合产品运行表现,还需要根据实际场景进行适配。
对于性能一致性所带来的风险,除了在底层使用cgroup技术进行资源隔离限制外,还需在系统部署时进行集群的拆分,将业务系统分别部署于多个集群,并结合应用层的熔断、限流等自动化机制,避免单个集群发生抖动时造成全局性影响。而对于系统复杂性带来的考验,一方面需要超融合自身管理软件的逐步完善,将更多的可维护信息封装提供给第三方运维管理平台;另一方面,也需要维护人员结合实际系统业务运行场景,对异常情况进行总结。在监控不能自动定位故障时,通过人为介入分析的方式补足,发挥人的主观能动性,逐步丰富运维场景,反馈到产品当中,二者相辅相成,实现共同解决问题的目的。
超融合架构提升单台服务器性能,浅谈超融合架构相关推荐
- 如何扩容单台服务器的存储容量?
作者个人研发的在高并发场景下,提供的简单.稳定.可扩展的延迟消息队列框架,具有精准的定时任务和延迟队列处理功能.自开源半年多以来,已成功为十几家中小型企业提供了精准定时调度方案,经受住了生产环境的考验 ...
- 面试官给我挖坑:单台服务器并发TCP连接数到底可以有多少 ?
点击上方"朱小厮的博客",选择"设为星标" 后台回复"k8s"领取阿里云<深入浅出k8s.pdf> 欢迎跳转到本文的原文链接:h ...
- 【 Linux 】单台服务器上并发TCP连接数(转)
单台服务器上并发TCP连接数 问题:一台服务器到底能够支持多少TCP并发连接呢? 1. 文件描述符限制: 对于服务器来说,每一个TCP连接都要占用一个文件描述符,一旦文件描述符使用完 ...
- SCOM 2012系列⑨单台服务器拓扑监控
为了更直观的展示出我们的服务器健康状况与各应用程序的运行状况,我们看图说话总是最直观有效的,所以我们就把服务器的各组件情况分成拓扑图似的模样给我们直观展示出来吧: 1 单台服务器拓扑图监控 首先打开& ...
- 网络编程释疑之:单台服务器上的并发TCP连接数可以有多少
曾几何时我们还在寻求网络编程中C10K问题的解决方案,但是现在从硬件和操作系统支持来看单台服务器支持上万并发连接已经没有多少挑战性了. 我们先假设单台服务器最多只能支持万级并发连接,其实对绝大多数应用 ...
- 渗透测试流程(单台服务器)
渗透测试流程(单台服务器) 转载于:https://www.cnblogs.com/sky--/p/5781432.html
- 进阶!基于CentOS7系统使用cobbler实现单台服务器批量自动化安装不同版本系统(week3_day5_part2)-技术流ken...
前言 在上一篇博文<cobbler批量安装系统使用详解-技术流ken>中已经详细讲解了cobbler的使用以及安装,本篇博文将会使用单台cobbler实现自动化批量安装不同版本的操作系统. ...
- 高性能网络编程(一):单台服务器并发TCP连接数到底可以有多少
前言 曾几何时我们还在寻求网络编程中C10K问题(有关C10K问题请见文章<The C10K problem(英文在线阅读.英文PDF版下载.中文译文)>)的解决方案,但是现在从硬件和操作 ...
- 分布式系统服务器要求,浅谈分布式系统
分布式系统的由来 软件系统的架构一直以来随着技术的发展和市场的需求进行着不断的演进.最初,各行业业务相对比较简单,对系统的要求也不高,软件系统的架构均采用单一应用架构,此时单台服务器即可满足系统的要求 ...
最新文章
- eclipse工作空间配置导出
- 因遭领导批评,90后女生上班当天便辞职还删了公司后台数据,结果……她被判刑了...
- GoogleNet - Going deeper with convolutions
- linux分析文件格式,linux elf文件格式分析
- bigsur正式版clover引导_【微信首发】macOS Catalina 10.15.6 19G2021 正式版 Clover/OC/PE三分区原版镜像...
- Pandas index详解
- aiohttp/flask python后端单元测试,单元测试覆盖率测试
- webService(一)开篇
- android studio 中怎么写aspectj代码,Android AOP三剑客之AspectJ
- gcc/g++ 如何支持c11/c++11标准编译
- MySQL数据库安装超级详细教程
- python求100被3he7整除_PYTHON练习题测验
- K8S coreDNS部署及简单验证
- 论文阅读汇总(4)-【篇数:50】
- 腾讯Bugly的使用
- 生活哪些方面作用计算机,电脑在我们的生活中起着重要的作用
- 12306 流程解析
- 解决github.com 的响应时间过长
- 10个适合于高级Java开发人员的外国网站
- paid有计算机功能吗,App Store 上的“计算器 - iPad计算机”