一种基于GlusterFS的高容错分布式存储方法技术

技术编号:15822542 阅读:31 留言:0更新日期:2017-07-15 04:48
一种基于Glusterfs的高容错分布式存储方法,在Glusterfs集群创建包含若干节点的数据卷;在所有节点中创建数据文件夹;寻找最优节点,以使数据文件夹的所有文件都存储在最优节点上;根据数据文件夹中某个文件的文件名计算哈希值,与所有节点的数据文件夹的哈希区间比较,确定该文件的哈希值所在的节点,并创建文件,最终完成数据文件夹的存储。由于将hash区间分配在一个节点上,可以保证该数据文件夹下所有文件能够存储在一个节点上,保持集群的高容错性。还改进了当发现数据不均衡现象时,用户执行的使所有节点的负载均衡的再均衡操作。

【技术实现步骤摘要】
一种基于GlusterFS的高容错分布式存储方法
本专利技术涉及一种基于GlusterFS的高容错的分布式存储方法,特别针对具有高速在线和低速离线备份双存储的以文件夹为原子单位的数据存储。
技术介绍
近年来,随着计算机和信息技术的迅猛发展和普及应用,行业应用系统的规模迅速扩大,所产生的数据呈爆炸性增长。动辄达到数百TB甚至数百PB规模的行业/企业大数据已远远超出了传统的计算机存储能力,因此,分布式存储的使用已经越来越普及。GlusterFS是目前较为成熟的开源分布式存储软件,是一个支持PB级数据存储的无元数据服务器的分布式存储系统,支持线性性能扩展。通过解除对元数据服务器的要求,消除了单点故障的性能瓶颈,真正实现了并行化数据访问。对于许多大数据应用而言,虽然数据总体规模非常大,但在特定时间段内需要访问的数据通常仅占其中很小部分。因此,对于类似的大数据应用,不仅需要大规模的存储数据,还需要快速的访问部分数据,而目前的数据访问瓶颈大部分仍然是磁盘性能。为了解决磁盘性能瓶颈,可以使用访问速度高的高速磁盘,如固态硬盘。但是目前磁盘的访问速度与其单位存储价格基本成正比,即访问速度越高的存储介质单位存储成本往往更高。因此,对于一个拥有海量数据且某一时间段内只需要访问一部分数据的应用而言,全部使用高速磁盘或者全部使用普通廉价磁盘都是不合理的,全部使用高速磁盘由于很多数据在很长时间基本不会被访问,造成了存储成本的浪费;如果全部使用普通廉价磁盘,则不能满足快速访问数据的需求。对于此类应用,可以将多个普通磁盘和少量的高速磁盘通过网络连接成GlusterFS集群,用高速磁盘当做存储节点创建高速访问Distributed类型数据卷,用普通磁盘当做存储节点创建低速访问Distributed类型数据卷。实现在存储成本限制下,提供接近高速磁盘的数据访问服务。对于许多应用而言,其存储数据是一个文件夹,并且文件夹中的文件相互依赖,一旦一个文件损坏或者丢失,则整个应用数据文件夹损坏。如果应用需要存储的是大量这样不可分割的数据文件夹,对于每个一个数据文件夹,目前的GlusterFS存储机制是文件会根据文件名hash分布存储在不同的节点的磁盘上,这样面临的一个问题是,一旦一个节点出现故障,几乎所有的数据文件夹可能都会缺少部分文件,造成所有的数据文件夹损坏不可使用。以上GlusterFS集群中的高速数据卷是为了加快数据访问速度,其中存储的数据低速数据卷中都有备份,所以可以允许节点损坏造成的部分数据丢失,但是对于存储整体数据文件夹,一个节点的故障则会造成数据的全部损坏,这是不能容忍的。并且由于高速数据卷采用高速磁盘做存储介质,代价比较昂贵,而GlusterFS的replicated数据卷的存储利用率非常低,同时,使用备份存储因为写数据的时候需要写多份,会降低写性能,对于高速访问数据卷是不合适的。所以需要一个替代方案能够满足以下要求:1.存储利用率高,由于高速代价非常高,不能以较大的牺牲存储保证数据安全性。2.数据是相对安全的,一个节点的故障不能影响其他节点的数据,高速存储区中的数据在低速廉价存储区都有备份,少量的数据文件夹的丢失可以接受,只需重新从低速存储区再复制一份即可。3.不会对数据的访问和存储速度造成较大影响。目前还没有一个完整的存储方案能够满足以上要求,GlusterFS是基于弹性Hash算法定位文件,所以文件的分布具有随机性,对于同一个整体数据文件夹中的文件不能保证存储在同一节点上,而这种整体数据文件夹中文件损坏或者丢失一个,整体数据文件夹即损坏。所以,需要一种能够将整体文件夹中的文件存储在同一节点上的高可用分布式存储系统。
技术实现思路
本专利技术的目的在于针对现有存储技术的不足,针对整体数据文件夹的高效可靠存储的需求,提出的基于GlusterFS分布式存储的以文件夹为单位分布的高效可靠分布式存储方法。一种基于GlusterFS的高容错分布式存储方法,包括:步骤101、搭建GlusterFS集群,并创建包含若干存储节点的Distributed类型数据卷,设置数据卷阈值,数据文件夹将以文件夹为单位分布存储在数据卷中;步骤102、在所有节点中创建数据文件夹;步骤103、寻找最优节点,将最优节点上创建的所述数据文件夹的哈希区间定为最大,使所有的文件哈希值落在所述最优节点上,以使所述数据文件夹的所有文件都存储在所述最优节点上,其他节点上创建的所述数据文件夹的哈希区间设置为0,以使所述数据文件夹的所有文件哈希值不会落在这些其他节点的哈希区间内;步骤104、在每个节点创建的所述数据文件夹的扩展属性trusted.GlusterFS.dht中记录分配到的哈希区间;步骤105、使用GlusterFS环境下的哈希计算方法,根据创建的将要存储的所述数据文件夹中某个文件的文件名计算哈希值;步骤106、根据计算得出的文件的哈希值,查看所有节点的所述数据文件夹的扩展属性中记录的已被分配到的哈希区间,确定计算得出的文件的哈希值所在的节点;步骤107、在确定的待存储节点上的所述数据文件夹下创建文件;依据相同的方法完成其他文件的创建,完成数据文件夹的存储。进一步地,步骤103中所述寻找最优节点进一步包括:步骤1031、扫描数据卷的所有节点的可用容量大小和已经存储数据的容量大小;步骤1032、查看所有节点的可用容量大小是否大于数据卷阈值,如果都小于阈值则选择可用容量最大的节点为最优节点;如果存在可用容量大于阈值的节点则在可用容量大于阈值的节点中选择已经存储数据最少的节点作为最优节点。进一步地,当数据卷已经存储一定量数据时新增节点使得数据不均衡时,执行再均衡操作使所有节点的负载均衡,所述再均衡操作具体包括:步骤a、当用户进行再均衡操作时,遍历所有节点,对每个节点,查看其可用容量是否大于数据卷创建时配置的阈值,如该节点可用容量大于阈值,则该节点数据不需要均衡,遍历下一个节点;否则,进行步骤b对该节点进行数据均衡;当数据卷中的所有节点都被遍历后结束再均衡操作。步骤b、循环迁移需要进行数据均衡的节点的最小数据文件夹,每次找到大小最小的数据文件夹,寻找数据卷中的最优节点,如果最优节点可用容量也小于阈值,则整个数据均衡操作结束;否则,进行步骤c迁移所述最小数据文件夹到最优节点上;步骤c、对需要迁移的数据文件夹中的每个文件,将其复制到确定出的最优节点上的对应文件夹中,所述对应文件夹在创建文件夹的时已在每个节点都已被创建。步骤d、在需要迁移的文件夹下的所有文件复制完成后,重新设置文件夹的扩展属性trusted.GlusterFS.dht表示的哈希区间,将文件被迁移到的节点上文件夹的哈希区间设置为最大,而把文件迁出的节点上文件夹的哈希区间设置为最小,删除文件迁出的节点上文件夹下的所有文件,该数据文件夹迁移完成,再次判断文件迁出的节点的可用容量是否大于数据卷阈值,如果是,则遍历数据卷的下一个节点,否则,重复步骤b。进一步地,再均衡操作步骤b中寻找数据卷中的最优节点包括,扫描数据卷的所有节点的可用容量大小和已经存储数据的容量大小;查看所有节点的可用容量大小是否大于数据卷阈值,如果都小于阈值则选择可用容量最大的节点为最优节点;如果存在可用容量大于阈值的节点则在可用容量大于阈值的节点中选择本文档来自技高网
...
一种基于GlusterFS的高容错分布式存储方法

【技术保护点】
一种基于GlusterFS的高容错分布式存储方法,包括:步骤101、搭建GlusterFS集群,并创建包含若干存储节点的Distributed类型数据卷,设置数据卷阈值,数据文件夹将以文件夹为单位分布存储在数据卷中;步骤102、在所有节点中创建数据文件夹;步骤103、寻找最优节点,将最优节点上创建的所述数据文件夹的哈希区间定为最大,使所有的文件哈希值落在所述最优节点上,以使所述数据文件夹的所有文件都存储在所述最优节点上,其他节点上创建的所述数据文件夹的哈希区间设置为0,以使所述数据文件夹的所有文件哈希值不会落在这些其他节点的哈希区间内;步骤104、在每个节点创建的所述数据文件夹的扩展属性trusted.GlusterFS.dht中记录分配到的哈希区间;步骤105、使用GlusterFS环境下的哈希计算方法,根据创建的将要存储的所述数据文件夹中某个文件的文件名计算哈希值;步骤106、根据计算得出的文件的哈希值,查看所有节点的所述数据文件夹的扩展属性中记录的已被分配到的哈希区间,确定计算得出的文件的哈希值所在的节点;步骤107、在确定的待存储节点上的所述数据文件夹下创建文件;依据相同的方法完成其他文件的创建,完成数据文件夹的存储。...

【技术特征摘要】
1.一种基于GlusterFS的高容错分布式存储方法,包括:步骤101、搭建GlusterFS集群,并创建包含若干存储节点的Distributed类型数据卷,设置数据卷阈值,数据文件夹将以文件夹为单位分布存储在数据卷中;步骤102、在所有节点中创建数据文件夹;步骤103、寻找最优节点,将最优节点上创建的所述数据文件夹的哈希区间定为最大,使所有的文件哈希值落在所述最优节点上,以使所述数据文件夹的所有文件都存储在所述最优节点上,其他节点上创建的所述数据文件夹的哈希区间设置为0,以使所述数据文件夹的所有文件哈希值不会落在这些其他节点的哈希区间内;步骤104、在每个节点创建的所述数据文件夹的扩展属性trusted.GlusterFS.dht中记录分配到的哈希区间;步骤105、使用GlusterFS环境下的哈希计算方法,根据创建的将要存储的所述数据文件夹中某个文件的文件名计算哈希值;步骤106、根据计算得出的文件的哈希值,查看所有节点的所述数据文件夹的扩展属性中记录的已被分配到的哈希区间,确定计算得出的文件的哈希值所在的节点;步骤107、在确定的待存储节点上的所述数据文件夹下创建文件;依据相同的方法完成其他文件的创建,完成数据文件夹的存储。2.如权利要求1所述的方法,步骤103中所述寻找最优节点进一步包括:步骤1031、扫描数据卷的所有节点的可用容量大小和已经存储数据的容量大小。步骤1032、查看所有节点的可用容量大小是否大于数据卷阈值,如果都小于阈值则选择可用容量最大的节点为最优节点;如果存在可用容量大于阈值的节点则在可用容量大于阈值的节点中选择已经存储数据最少的节点作为最优节点。3.如权利要求1-2之一所述的方法,当数据...

【专利技术属性】
技术研发人员:刘戊开刘欲晓
申请(专利权)人:长沙智擎信息技术有限公司
类型:发明
国别省市:湖南,43

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1