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



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

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


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

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

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

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

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

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

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

2.1 分布式存储

2.1.1 架构说明

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

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

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

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

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

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

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

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

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

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

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

  • 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为虚拟机提供块设备支持。

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

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提供元数据的操作。

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

如上图所示,当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

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

在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

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

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

2.2.2 优缺点分析

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

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

采用集中式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数据放到产品库。

  • 分布式架构在云计算平台中的应用及优缺点分析_java_09
  • 混合拆分

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

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

  • 数据库分组

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

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

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

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中将不会发生。

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

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

如上图所示,分布式数据库还可以结合前面讲到的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的架构如下:

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

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,并响应用户的读写请求。主要架构如下:

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

客户端发出读取请求时,首先会查询该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(数据节点)。

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

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

2.4 分布式安全

2.4.1 架构说明

云计算平台提供了灵活的资源弹性配置,动态负载均衡,高可用等功能,提高了硬件资源利用率,缩短了业务部署的时间。同时也引入了新的安全问题,让传统集中式架构的安全设备失效。传统基于安全域/安全边界的防护机制已经难以满足云计算环境下的应用模式。

云计算平台的网络边界是模糊化的,提供的是服务,对使用者身份、权限和行为的鉴别、控制与审计比较困难。主要包括:

1、云计算平台的虚拟机之间的网络防护安全

云计算平台的虚拟机都在一个服务器内,虚拟机之间的网络通信是通过虚拟网络进行的,存在被监听和攻击的风险。同时,虚拟机之间的通信流量并没有通过外部设备进行交换,传统集中式的安全设备是监控不到的。如果某个虚拟机出现安全问题,那么整个云计算平台可能都会面临安全问题。

2、云计算平台的虚拟机之间的动态迁移安全

云计算平台的虚拟机可以按需迁移到其他服务器上,造成安全域边界的动态化,传统集中式的防护墙设备采用的是固定区域边界防护手段,在云计算平台环境中会失效。如果新迁移的服务器上没有对应的安全保护策略,就可能对迁移后的虚拟机造成安全威胁。

下面以某分布式安全防火墙为例,说明分布式安全架构,如下图所示:

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

虚拟化分布式防火墙由安全策略管理平台(云安全管理平台)和虚拟化分布式防火墙构成,网络采用VxLAN架构。

云安全管理平台负责安全策略的集中管理,并对安全策略的迁移功能提供支持。接收虚拟化安全设备的日志以及统计信息,集中展现整个虚拟化数据中心中的安全态势。

虚拟化分布式防火墙是以虚拟机形式部署在虚拟化平台上,打破传统集中式防火墙的局限,更贴近虚拟机的位置,利用虚拟网络重定向机制,获取所有虚拟机的流量,实现分布式防火墙高级安全防护功能。

虚拟化分布式防火墙,为虚拟化网络环境提供东西向流量的安全防护能力。可以自动在集群中每个主机上自动部署一个虚拟化分布式防火墙实例,并通过虚拟网络重定向技术实现客户虚拟机的流量重定向到本宿主机的虚拟化分布式防火墙中,实现针对虚拟机之间东西向流量进行高级安全防护。

虚拟化分布式防火墙系统是一个具有高度综合性、集成性的高层网络安全应用系统,可以应用于租户之间,或者不同安全域之间,为用户提供虚拟机之间的安全服务。借助网络功能虚拟化平台,可以灵活方便的在虚拟网络环境中部署,具有极强的灵活性和可扩展性,为用户提供东西向的边界安全服务。

2.4.2 优缺点分析

  • 分布式安全优点:

1、在云计算环境中,分布式安全产品可以针对每一个虚拟机做贴身防护,保护虚拟机网络的安全和虚拟机动态迁移前后的安全威胁。

2、能够对云计算平台提供立体的安全保护,避免云计算环境中虚拟网络的不可控,保护每一个虚拟机的安全,从而保护整个云计算平台的安全。

3、分布式安全产品具有良好的可扩展性和功能,能够平滑扩展支撑云计算平台业务的增长和用户的增加。在功能上,可以通过软件的方式灵活提供防火墙,入侵检测、防护、防病毒和QOS等多种安全功能,简化了传统集中式安全设备的部署架构,灵活性也更高。

  • 分布式安全缺点:

1、分布式安全产品通常需要对云计算平台的虚拟化网络进行引流(即网络重定向机制),否则获取不到东西向流量也就没有办法进行安全防护。而对网络引流通常需要配合前面我们讲到的VxLAN网络实现,例如VMware NSX或者是集成在硬件设备中支持VxLAN的网络设备,需要额外增加部分成本。

2、分布式安全产品通常是以软件的方式进行部署,在面对云计算平台网络吞吐量大、并发连接数更高的时候,在性能上可能无法达到传统集中式安全产品的效果,而且增加的安全功能也会消耗云计算资源,影响云计算平台性能。

3、分布式安全产品种类有限,目前只有防火墙、杀毒、入侵和审计类设备等,暂时无法替代全部的传统安全产品,部分安全需求还需要依赖传统安全产品实现。


三、分布式架构建设的挑战

随着云计算平台规模的增加,分布式架构的优势会越来越明显。但是越是先进的架构所面临的挑战也就越大,由于分布式架构采用多节点设计,这种架构最大的难点是数据一致性和可用性上的挑战,所有的分布式架构设计都绕不开这两个挑战。

在分布式架构中,有一个非常著名的CAP理论(又被称作布鲁尔定理),定义如下:

对于任何一个分布式计算系统,不可能同时满足以下三点:一致性(Consistency)、可用性(Availability)和容忍网络分区(Partitiontolerance)。

一致性“C”通常指数据一致性,即要求所有节点数据保持一致。可用性“A”即要求每个节点在故障时都可以提供服务。容忍网络分区“P”,通常指各个节点之间的网络通信性能。

根据CAP理论,分布式系统只能满足其中两项而不可能满足全部三项。

CP模型:不考虑A(可用性),多个节点之间数据具备强一致性。如果某个节点故障,那么就将这个故障节点丢弃(不考虑A),否则会导致各个节点之间数据同步被无限延长。为了保证数据的一致性,大多分布式关系型数据库和分布式存储采用这一模型,

AP模型:不考虑C(一致性),多个节点之间要求高可用。如果某个节点故障,并与其他节点失去联系,为了保证节点的可用性,会放弃全局数据一致性(不考虑C)。节点访问并使用本地节点数据,各个节点数据会导致不一致。大多数非关系型的数据库和分布式vxlan网络采用这一模型,因为不需要高度的数据一致性。

CA模型:不考虑P(容忍网络分区),两个或多个节点之间要求必须具备可用性的同时又要求数据一致。如果某个节点故障,为了同时保证可用性和数据一致性,那么只能对分布式网络进行强制分区,划分成多个不同的分区来保证C和A,会导致分区被割裂。例如分布式防火墙产品,因为安全软件本身就是分开部署的,即使被强制分区,也不影响使用,但是要求高可用,而且安全策略要求保持一致。

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


四、结束语

云计算平台是目前大型数据中心重要的支撑技术,构建分布式架构的云计算平台也是非常有必要的。但是在应用分布式架构的同时也面临着相当大的挑战,包括前文所述的CAP定理、开源产品、技术复杂度、安全要求等等都要比传统集中式架构复杂,也更困难,但是分布式带来的效果也是非常明显的。可以在充分利用云计算平台灵活性和按需使用资源的同时提升业务系统的数据存储效率,海量数据处理性能,解决大规模网络架构问题和提升云计算平台的安全,充分的发挥云计算平台带来的优势。