云计算环境下的分布存储关键技术
2021-03-15谢起朝
谢起朝
摘要:云计算技术目前已经在科学技术和商业领域发挥了重要作用。云计算环境下的分布式存储技术是云计算的核心技术之一。本文对云计算环境下的分布式存储关键技术开展研究,首先详细介绍了分布式存储中常见的数据中心网络结构,包括以交换机为中心的结构、以服务器为中心的结构和混合结构,然后分析了数据容错技术,包括基于复制的容错技术和基于纠删码的容错技术。
关键词:云计算;分布式存储;数据中心网络;数据容错
中图分类号:TP393 文献标识码:A
文章编号:1009-3044(2021)03-0059-02
1 引言
近年来,信息技术高速发展,为社会和科学的进步与发展提供了强劲动力。云计算技术是近年来较为典型的新兴技术之一,已经在各个行业发挥了巨大作用。在云计算中,数据中心是基础,基于数据中心才可提供各种业务操作,服务提供商才能从中盈利。云计算环境下的存储技术是十分关键的技术之一,该技术领域的研究点主要包括数据中心中数据的安全存储、高效组织和有序管理,并向用户提供数据存储服务,在研究数据存储技术时,还需同时关注数据中心网络的构建和设备运营的耗能问题[2]。
2 數据中心网络
数据中心是云计算技术对用户提供服务的基础。在数据中心中,根据节点在路由转发功能的类型,可以将数据中心的网络分为以交换机为中心、以服务器为中心和混合结构。下面对这三种结构进行详细介绍。
2.1 以交换机为中心的结构
在这种结构中,交换机作为整个网络构建的中心,把多个服务器连接起来,并承担数据转发功能,可进一步分为传统的树型结构和改进的树型结构两类[3]。其中,传统的树型结构以交换机为中心,分为边缘、聚合和核心三层。传统树型结构存在的主要问题包括:(1)带宽有限,在传统的树形结构中,由于用户在访问服务器时需要通过上层的路由器进行数据转发,因此,当路由器的吞吐量较大时,上层链路往往由于带宽不足,无法将任务分配给其他服务器。(2)灵活性较差,在这种结构中,节点使用的IP和结构往往联系较为紧密,在实际使用时,通常需要在第2层域中预留一定资源,导致资源利用率不高。(3)交换机资源利用率不高,为了保证系统的可靠性,通常交换机都采用1:1的比例,这导致交换机资源的利用率较低。改进的树型结构包括胖树型(fat tree)、VL2型等,这种树型结构可有效缓解或避免传统树型结构中存在的各种问题。
2.2 以服务器为中心的结构
与树型结构不同,以服务器为中心的结构中在每个服务器上安装多个网卡来连接不同的服务器,不需要交换机、路由器等设备,典型的以服务器为中心的结构是CamCube。CamCube结构完全依靠服务器自身相互连接,每个服务器节点在三维的每个方向与其他服务器直接相连,构建类似于CAN的环状结构,且其物理拓扑和逻辑拓扑相一致。CamCube结构相对简单,但是链路冗余较高,不会出现单点瓶颈问题,在这种而机构中服务器可以与底层的网络直接交互。CamCube结构存在的主要问题是路由路径较长,为此研究者们提出了基于DeBruijintu图的拓扑结构,有效降低了网络的路由开销。
2.3 混合结构
混合结构是上述两类结构的综合利用,即既通过交换机连接各个服务器,同时又让服务器节点对数据包进行转发,这种结构能够满足更多的应用场景需求。常见的混合结构包括DCell结构、BCube结构等。其中DCell结构在设计时同时考虑网络的带宽和系统的容错能力,DCell结构被设计为分层、递归定义的结构,上层网络由多个低层网络组成。在扩展网络时,DCell结构采用自上而下的方法。与树型结构相比,DCell结构不需要再服务器中查询路由表,其冗余链路可以提供更优的聚合带宽。BCube结构是一种类似于超立方体的数据中心网络结构,在这种结构中,数据中心有集装箱组成的模块化形式,将大量服务器、网络连接设备等构建在一个环境中。
综上所述,从网络结构角度考虑,混合结构同时采用交换机和服务器作为转发设备,可满足特定场景的应用需求,较为自由灵活。从路由开销角度考虑,以交换机为中心的结构路由开销集中于交换机中,服务器的负载较轻,仅负责数据的存储和处理。从可扩展性方面考虑,以交换机为中心的结构扩展性较好。从构建成本方面考虑,混合结构同时兼具交换机结构和服务器结构的优点,在同等性能条件下构建成本更低。
3 数据容错技术
在分布式存储研究领域中,数据容错技术是关键技术之一。较好的数据容错性不仅使血系统的可靠性较高,还能同时提高系统的访问效率。为了实现当部分数据出现失效仍能够通过访问冗余数据来提供正常服务,数据容错技术通常采用增加数据冗余的方式实现,但同时增加了对存储资源的占用和消耗[4]。因此,数据容错技术的目的就是在尽可能提供系统资源利用率的同时又花费较低的成本。目前较为常见的数据容错技术包括基于复制的容错技术和基于纠删码的容错技术两种。
3.1 基于复制的容错技术
在基于复制的容错技术领域,研究者们通常从数据组织结构和数据复制策略两个方面开展研究。其中,数据组织结构的研究主要内容是如何对大量的数据及其副本进行组织和管理,当先数据组织结构主要有基于元数据服务器的和究P2P的组织结构两种,基于元数据服务器的组织结构在存储数据时,通常采用元数据服务器,将副本的相关属性,包括位置、版本、映射关系等信息存储在元数据服务器上,从而实现对大量数据的统一管理,当用户需要访问数据时,首先通过元数据服务器找到其需要的数据的位置等信息,然后根据该位置到对应的服务器上获取其所需数据[5]。基于P2P的组织结构将每个节点根据P2P的组织方式进行组织管理,每个节点之间是相互平等的,不存在明显的服务器和客户端之分,在存储数据时,采用分布式哈希表的方式进行存储,当用户需要访问数据时,需要首先从服务器上查询到其所需数据对应的哈希值,然后根据哈希值获得数据的存储位置并获取数据。目前较为典型的基于P2P结构管理元数据的系统包括Dynamo、Cassandra等。在基于P2P的组织结构中,不需要专门的中央服务器,因此,不会出现由于节点失效而导致的系统不可靠问题,但是由于缺乏全局信息,难免会出现副本存储位置不均衡的问题。
数据的复制方法通常需要根据不同的应用需求、网络状况、存储资源等确定,研究内容主要包括数据复制策略和副本放置策略两个部分。其中,数据复制策略聚焦于创建副本的时机和数量,包括静态和动态两种策略,所谓静态策略是指在存储数据之初就为其创建一定数目的副本,然后把这些副本存储在不同的节点上,这种策略较为简单但是灵活性不足,难以根据环境变化做出有效调整。所谓动态策略是指根据当前的存储情况、用户需求等多个因素,动态的增加或删除副本,从而实现资源的有效利用和存储节点的负载均衡。放置策略的目的是提高系统的容错能力,确保当用户的部分数据副本丢失时仍可以通过访问其他副本来获得数据。但是,在创建副本时,通常需要占用较大的带宽且花费的时间较长,因此放置策略需要考虑多方面因素。现有的放置策略可以分为顺序放置策略和随机放置策略两类。所谓顺序放置策略是指将创建的数据副本按照一定的顺序存储在对应的节点上,这种策略的优势在于在随机失效模式下数据存储的可靠性较高,该策略通常應用于反集群结构中和分布式哈希表结构中。随机放置策略的基本思想是在数据可存储的多个节点中,随机的选择若干个节点用于存放数据副本,这种策略是目前应用较多的数据放置策略,该策略可以缓解关联失效对系统可靠性的影响,同时兼顾系统节点的负载均衡。
3.2 基于纠删码的容错技术
利用纠删码技术进行数据容错时,通常首先将数据分割成多个数据块,这些数据块大小相同,然后利用编码技术对这些数据块进行编码,从而得到编码后的编码块,当需要获取数据时,只需要获得相应的编码块再进行解码即可得到原始数据。在对数据进行编码时,通常采用的编码方法包括Reed-Solomon码、奇偶阵列码(parity array code)、奇偶校验码(parity-check code)和低密度奇偶校验码(low-density parity-check code)等等[6]。
在基于纠删码的容错技术中,还需关注的一个方面是数据的容错修复。所谓容错修复是指当系统中节点失效时,重新构建冗余数据的过程。容错修复的成本主要与数据块和冗余块的度数两个因素有关,度数越高则修复成本越高。现有降低纠删码修复成本的方法主要包括基于度数限制的和基于网络编码的优化方法两种。其中,基于度数限制的优化方法的基本思想是,在对数据块进行编码时,限制纠删码数据块的数量和冗余块的度数,从而降低纠删码修复成本。典型方法如WEAVER码将数据块和冗余块存储在同一个节点上,并对数据库进行相应的操作得到冗余块,在计算时限制数据块和冗余块的度数,进而降低修复成本,但是这种方法存在的问题是对存储空间的利用率不高,且通常采用更多的存储空间来保证系统的读取性能,导致存储开销较大。另一种典型的方法是基于概率密度函数对数据块和冗余块的度数进行计算,这种方法能够达到一定的优化效果,但是不能保证译码的成功率,不适用于较大规模的分布式存储。基于网络编码的优化方法利用了现有较为成熟的网络编码技术。网络编码技术通常应用于通信领域,通过对要转发的数据包进行编码来提高每次传输的信息量,进而提高网络传输的整体性能。基于网络编码的优化方法的代表是称为再生码的纠删码,该方法不考虑限制数据块和冗余块的度数,而是采用特定的编码系数构造生成矩阵,当需要对数据进行修复时,只要报存储在节点上的多个数据块进行融合即可实现对数据的修复,这样既降低了传输的数据量,同时也节省了带宽成本。
4 结论
云计算技术的不断发展和成熟,使其成为当前各种公司普遍采用的数据存储平台之一,在当前的大数据环境下,云计算技术也在各个行业和领域得到了十分广泛的应用。本文研究了云计算环境下的分布式存储关键技术,详细介绍了相关技术的研究成果及其存在的主要问题,预期可为其他研究者提供参考和帮助。尽管云计算环境下的分布式存储相关技术已经取得了很多陈国,但是仍有很多问题需要进一步研究和解决,随着数据量不断增大,分布式存储技术仍将面临诸多挑战。
参考文献:
[1] 孟庆玉.基于云计算的分布式存储技术研究[J].信息系统工程,2018(10):43.
[2] 侯桂云,陈桂英,卢志强.关于云计算中分布式数据存储仿真研究[J].计算机仿真,2018,35(7):318-322.
[3] 任尚云.云计算环境下网络空间数据分布式存储方法研究[J].信息通信,2019,32(8):21-22,25.
[4] 胡家源. 云计算环境下安全分布式存储架构与容错技术研究[J].科学与信息化,2018(27):52-53.
[5] 张华丽,杨帆,杨华勇.云计算下大数据分布式存储中冗余数据分配算法[J].中国电子科学研究院学报,2018,13(4):433-438.
[6] 刘永波,李亚琼,周博,等.一种面向分布式机器学习的云计算资源调度方法[J].计算机与数字工程,2019,47(12):3059-3062,3068.
【通联编辑:光文玲】