购物车中还没有商品,赶紧选购吧!
文档帮助中心
文章分类列表

分布式架构在云计算平台中的应用及优缺点

资讯全知道 > 分布式架构在云计算平台中的应用及优缺点

  分布式架构在云计算平台中的应用及优缺点

  原创 twt社区 twt企业IT社区 今天

  【摘要】云计算平台虽然可以解决数据中心资源使用和效率问题,但如果不解决IT架构问题,云计算平台一样无法满足业务的使用需要,分布式架构自然也成为云计算平台的一种选择。本文针对分布式云计算平台架构四个主要应用场景:分布式存储、分布式VXLAN网络、分布式数据库、分布式安全,结合云计算平台的实际建设方案做具体的说明和优缺点分析。

  【作者】刘东,目前在东软集团股份有限公司担任首席技术顾问,主要负责数据中心IT系统架构设计,云计算中心IAAS层架构设计,容灾解决方案体系建设;具有10年以上技术支持和系统集成工作经验,对金融、医疗、能源和政府等行业的解决方案有独特的见解。

  一、分布式云计算平台架构需求分析

  云计算平台可以提供灵活和按需使用的资源,同时又可以保证业务系统的高可用,大量先进的IT特性已经成为了金融、医疗、媒体和政府等行业数据中心建设的核心。从IT架构上看,传统的集中式架构已经无法满足新时代业务的需求。因为它无法保证业务快速响应能力,灵活性和可靠性也相对较低。特别是当云计算平台业务发展达到一定规模的时候,集中式架构往往会出现大量的瓶颈。例如云计算平台服务器计算、存储容量和I/O能力不足,需要快速扩容;虚拟机数量过多,需要大规模组网;单体业务数据库规模过大,需要拆库拆表分散部署;集中式安全设备无法保证每个虚拟主机安全等等;云计算平台虽然可以解决数据中心资源使用和效率问题,但是不解决IT架构问题,云计算平台一样无法满足业务的使用需要,这时候分布式架构就自然成为了云计算平台的一种必然的选择。

  二、分布式云计算平台架构应用场景

  基于分布式架构的云计算平台具有较好的伸缩性,特别在处理大规模并发和管理等问题时,能显著提处理速度和效率,目前主要的应用场景包括以下几个:

  1、分布式存储,使用多个节点共同提供云计算平台数据资源服务;

  2、分布式VXLAN网络,解决云计算平台大规模二层网络使用问题。

  3、分布式数据库,有多个节点共同组成一个逻辑集中,物理分布的大型数据库。

  4、分布式安全产品,解决云环境下虚拟化安全问题,提供了分层次、全方位、可扩展的安全隔离和安全防护。

  下面我们将基于以上四个应用场景,结合云计算平台的实际建设方案做具体的说明和优缺点分析。

  2.1 分布式存储

  2.1.1 架构说明

  随着业务数据的不断增加,云计算平台在面对极具弹性的存储需求和性能要求下,传统集中的独立存储设备基本无法满足大规模数据处理的需要。在性能和数据存储容量等方面都面临着一定的瓶颈。传统集中式存储架构采用单台SAN或IPSAN存储,通常配置2-8个控制器,通过存储扩展柜进行容量扩展,而且扩容能力有限。如果增加性能,需要增加控制器和缓存,甚至需要更换存储设备型号为高端存储。单台存储的性能和扩展能力是有限的,一般达不到线性扩展。随着存储容量的增加,存储的性能会先增加然后达到一定瓶颈后逐渐降低。因为一开始大量的磁盘增加会提升存储整体读写性能,但是当磁盘性能达到控制器的性能后会严重影响控制器对数据的处理和运行,性能会逐渐下降。

  分布式存储系统使用高速交换机进行组网,并将分布式存储软件部署在低廉的X86硬件上。如下图所示:

  分布式存储可以提供高吞吐量来访问应用程序的数据,适合那些有着大数据集群的云计算平台应用。分布式存储可以将数据存放在很多不同的服务器上。而用户不必关系具体的数据在哪,分布式存储软件会管理这些数据。

  在云计算平台中,分布式存储可以提供:

  1、可以为任何物理机或者虚拟机提供块、文件和对象等存储服务;

  2、分布式存储支持多种企业级特性,包括快照、精简配置、备份、加密、压缩等,帮助可以整合或替代现有集中存储设施,支撑各种业务应用。

  3、可实现云计算平台PB、EB级以上容量的存储资源池按需灵活扩展,相对于集中存储,存储采购成本也比较低。

  应用场景以开源式分布式存储服务ceph为例。Ceph目前是OpenStack支持的开源块存储实现系统。Ceph是一种统一的、分布式的存储系统。统一意味着Ceph可以一套存储系统同时提供对象存储、块存储和文件系统存储三种功能,以便在满足不同应用需求的前提下简化部署和运维。分布式在Ceph系统中则意味着真正的无中心结构和没有理论上限的系统规模可扩展性。

  自下向上,可以将Ceph系统分为以下几个层次:

  RADOS(Reliable, Autonomic, Distributed Object Store),基础存储系统,即可靠的、自动化的、分布式的对象存储。

  LIBRADOS,基础库。

  RADOS GW(RADOS Gateway)、RBD(Reliable Block Device)和Ceph FS(Ceph File System),高层应用接口,提供对象、块存储和文件存储服务。

  Ceph在云计算平台中主要的应用场景如下:

  1、对象存储服务

  对象存储通过RadosGW接口实现。可以提供将Ceph Cluster作为分布式对象存储的能力,如Amazon的S3范围,Swift等。企业用户也可以直接使用其作为媒体数据存储,分发等。

  2、块存储服务

  块存储通过LibRBD接口实现。可以为虚拟机和主机(Host)提供不同路径的块存储。如下图所示,Ceph Cluster为虚拟机提供块设备支持。

  LibRBD是基于Librados的块设备接口实现,主要将一个块设备映射为不同的对象来实现。Ceph首先使用OSD服务将数据以对象形式存储在每一个集群节点的物理磁盘DISK中,然后通过LibRBD可以创建一个块设备(Container),最后通过QEMU/KVM Attach到VM上。通过Container和VM的解耦使得块设备可以被绑定到不同的VM上。

  3、文件存储服务

  文件存储服务通过CephFS接口实现。可以提供PB级分布式文件系统。这里会引入一个新的组件MDS(Meta Data Server),它主要为兼容POSIX文件系统提供元数据,如目录和文件元数据。同时,MDS会将元数据也存在RADOS(Ceph Cluster)中。元数据存储在RADOS中后,元数据本身也达到了并行化,大大加强了文件操作的速度。需要注意的是MDS并不会直接为Client提供文件数据,而只是为Client提供元数据的操作。

  如上图所示,当Client打开一个文件时,会查询并更新MDS相应的元数据如文件包括的对象信息,然后再根据提供的对象信息直接从RADOS(Ceph Cluster)中直接得到文件数据。CephFS作为分布式文件系统,当面对不同的文件热点和大小时,它可以使用多个MDS根据数据负载均衡来避免MDS的热点,并进行动态调整。

  2.1.2 优缺点分析

  分布式存储优点:

  1、使用低成本服务器和廉价磁盘,可以为云计算平台提供大数据量的存储空间,同时降低建设成本。

  2、可以随时按需进行横向扩容,没有容量限制,而且随着容量的增加可以实现近线性的性能提升。

  3、可以提供真正意义上的统一存储,在一套存储系统中实现按需提供块、文件和对象全融合存储服务能力,满足云计算平台多种场景需求。

  分布式存储缺点:

  1、节点数量较少时,性能有限,无法提供传统中高端集中存储的高性能。对于一些企业级存储特性,包括快照、重删、压缩和加密等功能,并不是所有分布式存储软件都可以提供,需要在选择时按需做好POC测试。

  2、随着节点数量的增加,服务器的数量也会显著增加,对机房的空间、能耗和运维管理都是一个挑战。

  3、由于数据是分散存储的,会存在一定的数据一致性问题,虽然通过数据性一致性锁等技术手段可以解决一部分问题,但是性能也会降低。

  2.2 分布式VXLAN网络

  2.2.1 架构说明

  在云计算平台的架构中,二层网络至关重要,因为不管是分布式存储系统网络还是虚拟化网络系统,都需二层网络架构。特别是在虚拟机迁移过程中,二层网络是必须的。因为为了保证虚拟机迁移过程中业务不中断,需要保证虚拟机的IP地址、MAC地址等参数保持不变,这就要求网络必须是一个二层网络,且要求网络本身具备多路径的冗余备份和可靠性。

  在传统集中式的二层网络环境下,数据报文是通过查询MAC地址表进行二层转发,而MAC地址表的容量限制了虚拟机的数量。而且为了对虚拟化网络做隔离,需要用到VLAN技术,由于IEEE 802.1Q中定义的VLAN Tag域只有12比特,仅能表示4096个VLAN,无法满足大二层网络中标识大量租户或租户群的需求。传统二层网络中的VLAN无法满足网络动态调整的需求。

  VXLAN技术的出现,很好地解决了上述问题。VXLAN通过采用MAC in UDP封装来延伸二层网络,并使用物理网络的IP、MAC地址作为外层头进行封装,将以太报文封装在IP报文之上,对网络只表现为封装后的参数。通过路由在网络中传输,无需关注虚拟机的MAC地址。且路由网络无网络结构限制,具备大规模扩展能力、故障自愈能力、负载均衡能力。通过路由网络,虚拟机迁移不受网络架构限制。

  目前,VXLAN的实现主要有两种方式:集中式和分布式。

  2.2.1.1 集中式VXLAN

  在VXLAN网络中,“Leaf”指VXLAN网络中的二层接入设备,与物理服务器或VM对接,通过将物理服务器和VM发送过来的报文封装在VXLAN报文中,将对应的流量接入VXLAN网络中。“Spine”是VXLAN网络中的骨干传输设备,负责VXLAN流量的转发。“NVE”是实现网络虚拟化功能的网络实体,是VXLAN的二层网关,报文经过NVE封装转换后,NVE之间就可基于三层基础网络建立二层虚拟化网络。NVE目前有软件NVE(例如VMware的NSX)和硬件NVE(集成在交换机上)。主要实现VXLAN与VLAN、MAC等的二层映射。另外,封装在“NVE”中的“VETP”是VXLAN隧道端点,用于VXLAN报文的封装和解封装,虚拟机可以通过虚拟化软件直接建立VTEP隧道。为了实现VXLAN虚拟网络的跨子网通信以及外部网络的访问,需要使用VXLAN三层网关。

  在VXLAN集中网络中,三层网关集中在一组或几组交换机上,与服务器相连的Leaf交换机的VTEP,只作为VXLAN的二层网关。

  Leaf1、Leaf2和Spine作为VXLAN网络的VTEP,Leaf1和Spine之间、Leaf2和Spine之间分别搭建VXLAN隧道,并在Spine上部署VXLAN三层网关,即可实现不同部门VM之间的相互通信。

  2.2.1.2 分布式VXLAN

  在分布式VXLAN网络中,所有Leaf节点物理交换机都具备三层网关功能。Leaf1和Leaf2作为VXLAN网络的VTEP,部署了VXLAN三层网关,并在两个VXLAN三层网关之间建立VXLAN隧道。VM1和VM2互访时,流量只需要在Leaf1节点进行转发。VM1和VM4跨Leaf节点互访时,流量经过Leaf节点和VXLAN隧道,Spine节点仅作为流量转发节点。

  2.2.2 优缺点分析

  集中式和分布式VXLAN主要区别如下:

  采用集中式VXLAN网关方案时,不同VXLAN之间的流量以及VXLAN访问外界网络的流量全部由集中式VXLAN IP网关处理,网关压力较大,并加剧了网络带宽资源的消耗。而在分布式VXLAN网关方案中,每台VTEP设备都可以作为VXLAN网关,对本地站点的流量进行三层转发,很好地缓解了网关的压力。但是多个网关部署在leaf,会导致组网复杂,只有在大规模云计算平台组网架构中才需要用到分布式VXLAN方案。

  2.3 分布式数据库

  2.3.1 架构说明

  在云计算平台中,传统数据库以ORACLE、DB2或者MySql的关系型数据库为主,但是当单表数据量爆炸或者单个数据库无法承受高强度I/O时,集中式数据库是无法解决性能和数据处理瓶颈问题的,难以应对应用层的高并发数据访问。

  分布式数据库按类型可分为:

  关系型分布式数据库。例如Mysql分布式集群和阿里云分布式数据库DRDS等。可以提供分布式事务处理。

  非关系型分布式数据库。例如Key-Value数据库“Redis”,Document-Oriented数据库“MongoDB”,Column-Family数据库“HBase”和Graph-Oriented数据库“Neo4J”等等。

  需要注意的是,大多数NoSQL分布式数据库不支持分布式事务处理。如果要支持分布式事务需要彼此协调从而耗费时间,每个节点在事务处理过程中必须依次确认,保证任何一个节点都写处理完成。NoSQL数据库主要考虑的是性能问题,所以大部分NoSQL数据库不提供分布式事务。

  2.3.1.1 关系型分布式数据库架构

  关系型分布式数据库在通常是大型企业用户承载核心业务的重要技术选型方向之一,是帮助企业处理大规模结构化数据的重要技术平台。要求分布式关系型数据库在规模可无限水平扩展,支持分布式事务,具备数据强一致性,满足企业级核心数据库对大容量、高并发、高可靠及高可用的苛刻要求。

  关系型分布式数据库的特点是物理数据不是存储在一个节点上,而是存储在云计算平台网络中的多个节点上。但是在逻辑上是一个整体,数据被所有用户共享,并被统一管理。关系型分布式数据库的数据具有独立性,具有集中与自治相结合的控制机制,具有一定的冗余性,可处理分布式事务。

  关系型分布式数据库最重要的两个机制就是分片和分组。分片可以解决扩展性问题,主要包括垂直分片与水平分片两种方式。分组解决可用性问题,分组通常通过高可用的方式实现。

  水平分表:基于关系型数据库中的“横”进行拆分。当一个表中的数据量过大时,可以把该表的数据按照某种规则,例如ID进行拆分,然后存储到多个结构相同的表上(同一个数据库)。降低单表数据量,优化性能。

  水平分库:可以采用关键字段取模的方式来对数据访问进行路由。

  垂直分表:基于关系型数据库中的“列”进行拆分。将表按照功能模块、关系密切程度划分出来,部署到不同的库上。例如将某个内容较多的“列”拆分出去,但是每个表里面的数据记录数是相同的,只是“列”不一样。

  垂直分库:就是依据业务功能的不同,划分为不同的业务库。例如按照user、order和product把user数据放到用户库、把order数据放到订单库、把product数据放到产品库。

  混合拆分

  即分库分表,如上图所示。是综合了垂直和水平拆分的一种方式。垂直拆分把不同类型的数据存储到不同库中,再结合水平拆分,使单表数据量保持在合理范围内,扩展系统的并发处理能力,提升单表的性能。

  单纯的分表虽然可以解决数据量过大导致查询变慢的问题,但无法解决过多并发请求访问同一个库,导致数据库响应变慢的问题。所以通常水平拆分都至少要采用分库的方式,用于解决大数据量和高并发的问题。

  数据库分组

  以MySQL为例,目前可以采用的高可用组复制技术主要有主从复制、MHA和MGR等。MHA目前在MySQL高可用方面是一个相对成熟的解决方案,MHA能做到在0~30秒之内自动完成数据库的故障切换操作,并且在进行故障切换的过程中,MHA能在最大程度上保证数据的一致性,以达到真正意义上的高可用。

  该软件由两部分组成:MHA Manager(管理节点)和MHA Node(数据节点)

  MHA Manager:可以单独部署在一台独立的机器上管理多个master-slave集群,也可以部署在一台slave节点上。

  MHA Node:行在每台MySQL服务器上。

  MHA Manager会定时探测集群中的Master“主”节点,当检测到Master故障后能够实现自动故障转移,通过鉴定得出最“新”的Salve的relay log,自动将最新数据的slave“从”节点提升为新的Master“主”节点,然后将所有其他的slave“从”节点重新指向新的Master。整个故障转移过程对应用程序完全透明。

  MHA就能够保证各个slave之间的数据一致性,即使有些slave在主库崩溃时还没有收到最新的relay log事件。一个slave节点能否成为候选的主节点可通过在配置文件中配置它的优先级。由于master能够保证各个slave之间的数据一致性,所以所有的slave节点都有希望成为主节点。在通常的replication环境中由于复制中断而极容易产生的数据一致性问题,在MHA中将不会发生。

  分布式数据库+分布式存储

  如上图所示,分布式数据库还可以结合前面讲到的ceph分布式存储,采用分布式Mysql节点+分布式存储节点的高可用分布式架构,每个分区内采用一主多从的架构设计,数据使用分布式存储的多副本技术,可自动实现故障秒级切换与瞬间生效。同时支持跨数据中心部署,全面保障服务高可用。

  存储层由X86服务器和基于ceph的分布式存储软件构成,每个X86服务器节点负责部分数据存储,同时在每个存储节点内通过ceph的读写主-副机制保障数据写入的一致性。即在数据写入时客户端只向对应的主OSD写入数据,然后再发生数据到其他副本,只有所有节点的OSD都完成数据写入时,主OSD才确认完成写请求。

  在基于MySQL的分布式数据库中,分表支持动态漂移,随着表的热度和大小进行动态的扩容和伸缩,保证资源分配最优化。而分布式存储节点可以无限水平扩展,从而提供可动态无限扩展的存储容量。性能随节点扩展而线性增长,满足云计算平台对容量和性能的需求,具备云服务所有的弹性、敏捷、按需和轻运维特性。

  2.3.1.2 非关系型分布式数据库架构

  非关系数据库(NoSQL)是一种新的非关系分布式存储技术。数据库数据不仅包含每日文本数据,而且还包含其他数据,例如图片,视频,FLASH动画等,因为它具有海量存储和灵活性。易于使用,高并发性等可以为系统提供可扩展的松耦合类型数据模式。此模式严格遵循CAP定理,可以很好地支持非结构化数据的存储,并满足高并发读写的要求,具有良好的可扩展性。

  下面以列数据库Hbase为例,说明分布式数据库的架构。

  1、Hbase是Hadoop数据库,是一个高可用,高性能、可扩展的分布式存储系统,Hbase适合于存储基于列而不是基于行模式的数据。

  2、HBase构建在Hadoop 的HDFS分布式文件系统之上,使用HDFS作为最基本存储基础单元,可以提供大数据实时读写的处理能。在需要实时读写随机访问超大规模数据集时,可以使用HBase

  3、Hbase可以管理超级大的数据表(可达数十亿行数百万列),支持海量数据存储(TB/PB级别),具有高吞吐量并且可以实现在海量数据中高效随机读取,能同时处理结构化和非结构化数据。因为其采用分布式架构,适合于不需要完全拥有传统关系型数据库实时一致性的业务。

  Hbase的架构如下:

  1、客户端包含访问HBase的接口,同时在缓存中维护着已经访问过的Region位置信息,可以用来加快后续数据访问过程。

  2、Zookeeper是一个分布式集群管理工具,维护集群中服务的状态,为了保证集群状态的一致性,zookeeper节点数至少为3节点以上且必须为奇数。HMaster和每个Region服务器定时发送心跳信息给Zookeeper,用于检查服务器是否可用,并在失效时进行管理。Zookeeper可以选举出一个Master作为集群的总管,并保证在任何时候只能有一个Master在运行,做到Master的高可用。

  3、Master主要负责表和Region的管理工作。管理用户对表的增加、删除、修改、查询等操作,实现不同Region服务器之间的负载均衡。在Region分裂或合并后,负责重新调整Region的分布,对发生故障失效的Region服务器上的Region进行迁移。

  4、Region服务器是HBase中最核心的模块,一个HBase服务器集群中通常包含多个Region服务器。HBase服务器主要负责Region中的数据的读写和管理,负责维护分配给自己的Region,并响应用户的读写请求。主要架构如下:

  客户端发出读取请求时,首先会查询该Region在内存中的缓存“Memstore”,如果在Memstore中查到结果则直接将结果返回给客户端;如果在“Memstore”中没有查到匹配的数据,接下来会读已持久化的StoreFile文件中的数据。

  客户端发出写入请求时,首先会将数据写入该Region的HLog中。数据写入完成后,数据就会被更新到“Memstore”,最后发送给客户端确认。当“Memstore”积累到足够的数据时,整个数据集就被写入到一个新的HFile中,清空缓存并在HLog里面写入一个标记。系统会周期性(默认1小时)地把MemStore缓存里的内容刷写到磁盘的StoreFile文件中,每次刷写都生成一个新的StoreFile文件,因此,每个Store包含多个StoreFile文件。

  5、HDFS是Hadoop的分布式存储。HDFS的设计本质就是为了大量的数据能够分布式存储而存在的,如果没有分布式存储,分布式数据库也没有办法存储和更好的管理大数据。HDFS可以将数据存放在很多不同的机器上。而用户不必关系具体的数据在哪,HDFS会管理这些数据。

  HDFS 采用Master/Slave的架构来存储数据,这种架构主要由四个部分组成,分别为HDFS Client、NameNode、Secondary NameNode、DataNode(数据节点)。

  客户端可以管理HDFS,比如启动或者关闭,也可以通过一些命令来访问HDFS。

  客户端在读取数据时:

  首先访问NameNode,获取文件的位置信息。NameNode是一个管理节点,可以管理数据块(Block)映射信息,也可以配置多副本策略,处理客户端读写请求。DataNode:就是Slave。

  然后由NameNode发出命令,DataNode执行实际的操作。DataNode是数据存储节点,存储实际的数据块(Block)信息,同时执行数据块的读/写操作。

  客户端在写入数据时:

  首先将文件切分成多个数据块(Block),然后发送给DataNode写入数据。

  Secondary NameNode并非NameNode的热备节点,而是一个Slave节点,只是辅助NameNode做一些工作,不能以主备的方式接替NameNode提供服务,但是可辅助恢复NameNode。

  2.3.2 优缺点分析

  分布式数据库优点:

  1、分布式架构的数据库具有灵活的体系结构,更适合分布式的管理与控制,而且可扩展性好,也易于扩充。

  2、分布式架构的数据库可靠性高,支持高可用特性,支持大规模的数据库处理并且可以保证高性能。

  3、分布式数据库通常配合使用分布式存储进行存储数据,支持低成本的分布式数据存储架构,经济性能比较好。

  分布式数据库缺点:

  1、分布式数据库不管是关系型数据库还是非关系型数据库,都存在数据一致性问题。因为按照CAP理论,分布式数据库主要解决容错、性能和高可用问题,数据一致性和集中式数据库相比会存在一定的局限性,通常是选择数据最终一致性,而在实时性上做出一些让步。

  2、分布式数据库系统开销较大,因为多个数据节点都需要进行通信,如果网络带宽低,无法保证低延时特性的时候,数据的读写会变慢。

  3、数据的存取结构比较复杂,在发生故障时,如果不熟悉技术原理,可能很难恢复。而且分布式数据库开源产品比较多,没有太多成熟的商业版本产品可以选择,需要用户具备较强的技术能力,根据业务的需求选择合适的数据库系统。

 

 由以上几个模式可以看出,在分布式计算环境下,需要根据实际的需求和业务场景,根据各个不同的模型特点进行取舍。

   原题:分布式架构在云计算平台中的应用及优缺点分析如有任何问题,可点击文末阅读原文,到社区原文下评论交流



发表评论
* 内容:
 
上一篇:工业和信息化部近日印发《新型数据中心发展三年行动计划(2021-2023年) 下一篇:终于有人把卷积神经网络(CNN)讲明白了