本申请涉及数据处理技术领域,尤其涉及基于分布式云存储系统的数据访问方法。
背景技术:
云存储是在云计算(cloudcomputing)概念上延伸和衍生发展出来的一个新的概念。云计算是分布式处理(distributedcomputing)、并行处理(parallelcomputing)和网格计算(gridcomputing)的发展,是透过网络将庞大的计算处理程序自动分拆成无数个较小的子程序,再交由多部服务器所组成的庞大系统经计算分析之后将处理结果回传给用户。通过云计算技术,网络服务提供者可以在数秒之内,处理数以千万计甚至亿计的信息,达到和”超级计算机”同样强大的网络服务。
云存储的概念与云计算类似,它是指通过集群应用、网格技术或分布式文件系统等功能,网络中大量各种不同类型的存储设备通过应用软件集合起来协同工作,共同对外提供数据存储和业务访问功能的一个系统,保证数据的安全性,并节约存储空间。云存储是将储存资源放到云上供人存取的一种新兴方案。使用者可以在任何时间、任何地方,透过任何可连网的装置连接到云上方便地存取数据。
在云存储领域,通常采用三副本冗余机制进行分布式存储,快照(snapshot)也是三副本存储,但是,热点内容的数据访问比较频繁,单位时间内访问快照(读请求)的数量激增,会导致响应缓慢,甚至出现卡死或宕机的风险。
技术实现要素:
本申请实施例提供一种基于分布式云存储系统的数据访问方法,用于解决现有技术中对于分布式云存储系统中热点访问内容响应缓慢的问题。
本发明实施例提供一种基于分布式云存储系统的数据访问方法,包括:
云服务器获取多源异构数据,并将所述多源异构数据进行分层存储;
所述云服务器将所述分层存储的多源异构数据进行分层快照,生成所述多源异构数据的多个快照;
在第n时刻,所述云服务器获取所述多源异构的读数据请求时,所述云服务器记录所述读请求压力值,并基于所述读请求压力值判断所述云服务器能否在预设时间内响应所述读请求;
若是,则所述云服务器通过路由策略确定所述多个快照中的其中一个快照,并通过所述快照创建出一个或多个克隆,通过所述一个或多个克隆响应所述读请求;
若否,则所述云服务器基于当前第n个时刻的读数据压力值、前n-1个时刻的所有读数据压力值以及当前所述云服务的存储容量饱和度,计算出所需要增加的快照数目x,并依次生成x个所述快照数目,通过所述x个快照创建出x*y个克隆,基于所述x*y个克隆响应所述读请求。
可选地,所述云服务器基于当前第n个时刻的读数据压力值、前n-1个时刻的所有读数据压力值以及当前所述云服务的存储容量饱和度,计算出所需要增加的快照数目x,包括:
所述云服务器基于公式:
可选地,所述云服务器基于以下公式:
且
可选地,所述云服务器通过路由策略确定所述多个快照中的其中一个快照,包括:
所述云服务器将所述多个快照分别设置在不同云节点中,并基于最短路径原则确定所述多个快照中距离所述读数据请求终端最近的快照。
本发明实施例还提供一种基于分布式云存储系统的数据访问方法,包括:
云服务器获取多源异构数据,并将所述多源异构数据进行分层存储;
所述云服务器将所述分层存储的多源异构数据进行分层快照,生成所述多源异构数据的多个快照;
在第n时刻,所述云服务器获取所述多源异构的读数据请求时,所述云服务器获取当前所述云服务器的资源占用饱和度,并基于所述资源占用饱和度判断所述云服务器能否在预设时间内响应所述读请求;
若是,则所述云服务器通过路由策略确定所述多个快照中的其中一个快照,并通过所述快照创建出一个或多个克隆,通过所述一个或多个克隆响应所述读请求;
若否,则所述云服务器基于当前第n个时刻的资源占用饱和度以及前n-1个时刻的所有资源占用饱和度,计算出所需要增加的快照数目x,并依次生成x个所述快照数目,通过所述x个快照创建出x*y个克隆,基于所述x*y个克隆响应所述读请求。
可选地,所述云服务器基于公式:
可选地,所述云服务器基于以下公式:
本发明实施例提供的基于分布式云存储系统的数据访问方法,基于当前的读压力值或资源占用饱和度,来计算待生成的快照副本数量,从而极大地提升了热点数据的访问效率,并可基于不同历史数据,动态新增或删除副本数,从而节约快照副本冗余资源,提升资源利用率。
附图说明
为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍。
图1为一个实施例中基于分布式云存储系统的数据访问方法的流程示意图;
图2为另一个实施例中基于分布式云存储系统的数据访问方法的流程示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本申请说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本申请。如在本申请说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
本发明提供了一种基于分布式云存储系统的数据访问方法。分布式云存储系统规划设计了集约化、云架构动态配置的企业it基础设施;一站式、多终端服务的企业信息展示交互服务等技术层,每层又包括若干成熟稳定的技术组件,各技术层,自下而上,层层支撑,各技术组件松散耦合,互联互通,科学高效,易于扩展,减少了信息孤岛,增强了系统的标准化和集约化,优化了系统的用户体验,提高工作效率。
在整体设计和实现上,依托云计算、大数据领域的知名开源项目(如hadoop、spark、openstack等)。由于遵循了业界广泛认可的事实标准,可以充分借力全球生态圈的资源,推动软硬件分层解耦,不断提升兼容性。兼容多种异构物理设备,避免厂商绑定。数据层面,支持多种数据源,包括结构化/非结构化类型的数据处理,数据本身、数据计算也都支持开放共享。优先采用先进成熟的技术组件,搭建稳定并且高效的大数据云计算管理平台,并在平台基础上实现大规模的数据采集与分析的相关业务应用。平台设计以满足当前的业务功能为主,兼顾考虑未来发展的趋势。
snia(storagenetworkingindustryassociation)对快照(snapshot)的定义是:关于指定数据集合的一个完全可用拷贝,该拷贝包括相应数据在某个时间点(拷贝开始的时间点)的映像。快照可以是其所表示的数据的一个副本,也可以是数据的一个复制品。
快照其实是指向保存在存储设备中的数据的引用标记或指针,是数据在某一时刻的状况,其工作原理核心就是是建立一个指针列表,指示读取数据的地址,提供一个瞬时数据的影像,当数据有改变时,再进行复制。快照大致分为2种,一种叫做即写即拷(copy-on-write)快照,通常也会叫作指针型快照,vss即属于这一种,另一种叫做分割镜像快照,常叫做镜像型快照。指针型快照占用空间小,对系统性能影响较小,但如果没有备份而原数据盘坏了,数据就无法恢复了;而镜像型快照实际就是当时数据的全镜像,会对系统性能造成一定负荷,但即使原数据损坏也不会有太大影响,不过要占用到相等容量的空间。本发明实施例主要是采用第二种镜像型快照。
分布式云存储支持分层存储,分层快照使得在某一快照的基础上为某一块设备创建多个克隆。创建克隆卷的时候通常先创建快照,然后再创建多个克隆。快照是只读的,而克隆则是可读写的。
分布式云存储系统通常采用三副本冗余机制,其快照也是三副本保存的。在分布式云存储系统中数据访问(即读数据)时,三快照都可以响应读请求,读请求通常根据一定的策略来选择要读取的快照所在的节点,这种场景下快照所能提供的读性能是跟副本数量正相关的。这种场景最典型的分布式云存储系统是hdfs、windowsazurestorage、阿里云等。然而,对于热点数据而言,快照的数量却不能按照访问频率的增加而依次增加,会造成热点数据响应不及时,甚至会有宕机等情况发生。
图1为一个实施例中基于分布式云存储系统的数据访问方法流程图。本实施例中的方法包括:
s101、云服务器获取多源异构数据,并将所述多源异构数据进行分层存储;
多源异构数据是不同结构的数据,异构数据体现在五个层次上:1.计算机体系结构的异构;数据的物理存储来源于不同体系结构的计算机中,如:大型机、小型机、工作站、pc或嵌入式系统中。2.操作系统的异构;数据的存储来源于不同的操作系统,如:unix、windows、linux、os/400等。3.数据格式的异构;数据的存储管理机制不同,可以是关系型数据库系统,如:oracle、sqlserver、db2等,也可以是文件行二维数据,如:txt、csv、xls等。4.数据存储地点异构;数据存储在分散的物理位置上,此类情况大多出现在大型机构中,如:销售数据分别存储在北京、上海、日本、韩国等多个分支机构的本地销售系统中。5.数据存储的逻辑模型异构;数据分别在不同的业务逻辑中存储和维护,从而相同意义的数据存在表现的异构;如:独立的销售系统和独立的采购系统中存在部门的编码不一致等。异构数据往往不是一个层面的异构,而是在多个层面上都存在异构。异构数据整合的目标就在于实现不同结构的数据之间的数据信息资源、硬件设备资源和人力资源的合并和共享。其中关键的一点就是以分散的局部的数据为基础,通过各种工具和处理逻辑建立全局的统一的数据或视图。
分层存储是一种常见的存储方法,它将数据存储在具有不同特性(如性能、成本和容量)的不同存储介质上。不同的存储媒介被分配到不同的层次结构中,其中最高性能的存储媒介被认为是第0层或第1层,然后是第2层、第3层等等。
典型的分层存储数据类型包括:
关键业务数据。这类数据总是需要存储在最高层的存储中,因为它需要支持高速应用程序——可能支持客户事务。访问数据的延迟可能会导致组织失去某些业务,或对盈利能力产生负面影响。对于此类数据来说,性能是最重要的。
热数据。这类数据需要较高级别的分层存储,因为它经常用于crm、erp甚至电子邮件等应用,并且需要用于企业的日常运行。在此类存储层中,性能很重要,但是成本也是一个考虑因素。
温数据。此类包括较早的数据,如超过几天的电子邮件或已完成事务的数据。这类数据的访问频率相对较低,但仍然要保证在需要时可以访问。在这个存储层中,最重要的考虑因素是成本,但是受制于最低的性能阈值。
冷数据。这类数据可能永远不会再被访问,但需要将其存档并保留,以符合监管或其他法律要求,或者只是因为它可能在未来某个不确定的时间具有某种价值——可能用于大数据分析。理想情况下,冷数据适合于可接受分钟或小时访问时间的最低层次的分层存储,而低成本是最重要的考虑因素。
分层存储等级
在一些已经使用存储分层一段时间的组织中,可能会将新的、比现有的第1层更快的存储层视为第0层。在本发明实施例中,第1层被假定为性能最高的存储层。
第1层:此存储层用于存储高度易失性和时间敏感的数据,这些数据需要在尽可能短的时间内可用。通常用于金融交易环境或其他业务领域,在这些领域中,可能在几分之一秒内生成或丢失比存储成本大得多的资金,存储速度需要尽可能快。因此,不管总体存储效率如何,通常都需要为实现最高性能配置非常快的固态存储介质来搭建第1层存储。
第2层:此存储层用于存储事务性数据,以支持高性能应用程序、面向客户的系统(如零售应用程序)和其他系统,在这些系统中,只能接受极短的延迟。由于所需的性能级别不像1层那么高,因此通常使用更低的成本和更高效的固态存储系统来提供2层存储解决方案。
第3层:第3层用于存储“热”数据,如crm和erp数据,甚至是最近的电子邮件,这些数据需要频繁访问,不能出现不必要的延迟。这意味着它需要存储在如中到高性能硬盘驱动器的介质上,与固态存储介质相比,这些介质的成本相对较低。在许多组织中,第3层的数据要比第2层或第1层的数据多得多,所以高容量的硬盘驱动器提供了一个理想的解决方案,它提供了低成本的每gb存储空间。
第4层:这个存储层用于“温”数据,比如最近完成的事务的数据、几天前的电子邮件以及其他不经常访问的数据。它还可以用来存储可能用于业务信息和数据可视化系统的数据,或者用于创建月度、季度或年度报告所需的财务数据。但是无论何时需要,都需要相对快速的访问。第4层存储需求可能非常大,由于成本是主要考虑因素,因此第4层存储的典型解决方案是大容量硬盘驱动器存储。与配置用于性能需求的高性能sas磁盘或raid阵列不同,第4层存储更可能使用低成本、相对低性能的sata驱动器。
第5层:最低的存储层通常用于存档可能永远不会再次访问的“冷”数据,但仍然有一些价值(可能将来用于数据挖掘),因此值得保留。它还用于存储必须为合规性目的而保留的数据,这些数据只需要在几天或几周内访问,而不需要在几分钟或几秒内访问。
s102、所述云服务器将所述分层存储的多源异构数据进行分层快照,生成所述多源异构数据的多个快照;
本发明实施例中,分层存储的多源异构数据可以分层快照,每一层的多源异构数据与每一层的快照数据可以一一对应,同一层的多源异构数据可以有多个快照。
s103、在第n时刻,所述云服务器获取所述多源异构的读数据请求时,所述云服务器记录所述读请求压力值,并基于所述读请求压力值判断所述云服务器能否在预设时间内响应所述读请求;
假定当前时刻为第n时刻(n为大于等于1的自然数),在该时刻,云服务器收到来自各终端发送的针对多源异构数据的读数据请求,此时云服务器获取读请求的压力值,并基于该压力值大小进行判断,确定是否能够在预设时间内响应该读请求。其中,压力值的判断方式可以通过市面上已有的软件进行压力测试从而获取,例如,高并发的数据库读写压力分离测试法可测试当前时刻的读压力值。
s104a、若是,则所述云服务器通过路由策略确定所述多个快照中的其中一个快照,并通过所述快照创建出一个或多个克隆,通过所述一个或多个克隆响应所述读请求;
若能够在预设时间响应该请求,则通过路由策略确定其中一个快照,并通过该快照创建克隆响应读请求。其中,路由策略可以是最短路径策略,即将所述多个快照分别设置在不同云节点中,并基于最短路径原则确定所述多个快照中距离所述读数据请求终端最近的快照。从而降低响应时间。
s104b、若否,则所述云服务器基于当前第n个时刻的读数据压力值、前n-1个时刻的所有读数据压力值以及当前所述云服务的存储容量饱和度,计算出所需要增加的快照数目x,并依次生成x个所述快照数目,通过所述x个快照创建出x*y个克隆,基于所述x*y个克隆响应所述读请求。
若当前访问较为频繁,导致单位时间内读数据频次高,压力值突然增大,会造成短时间内不能完全响应所有的读请求,导致部分读请求的响应时间要延后,会超过预设的时间(例如500ms)。因此,需要根据压力值的大小动态自适应地增加快照副本的数量,而快照副本的数量的增大又会带来整个云存储系统冗余度的增加,因此并不能无限制的增加快照数目,而是要平衡响应时间与系统冗余。
在本发明实施例中,新增数量x与读数据压力值p正相关,需要根据一定的算法或公式将新增数量x与读取压力值进行匹配,在保证快速响应多个读请求的同时,又不能无限制的增加快照数目。在其中的一种实施方式中,
所述云服务器基于公式:
其中,所述云服务器基于以下公式:
在其中的一个发明实施例中,还提供一种基于分布式云存储系统的数据访问方法,如图2所示,该方法具体为:
s201、云服务器获取多源异构数据,并将所述多源异构数据进行分层存储;
s202、所述云服务器将所述分层存储的多源异构数据进行分层快照,生成所述多源异构数据的多个快照;
s203、在第n时刻,所述云服务器获取所述多源异构的读数据请求时,所述云服务器获取当前所述云服务器的资源占用饱和度,并基于所述资源占用饱和度判断所述云服务器能否在预设时间内响应所述读请求;
s204a、若是,则所述云服务器通过路由策略确定所述多个快照中的其中一个快照,并通过所述快照创建出一个或多个克隆,通过所述一个或多个克隆响应所述读请求;
s204b、若否,则所述云服务器基于当前第n个时刻的资源占用饱和度以及前n-1个时刻的所有资源占用饱和度,计算出所需要增加的快照数目x,并依次生成x个所述快照数目,通过所述x个快照创建出x*y个克隆,基于所述x*y个克隆响应所述读请求。
步骤s201-s204与步骤s101-s104的区别在于,前者通过云服务器的资源占用饱和度来确定快照数目,而后者通过读压力值来确定快照数目。
在本发明实施例的s204b中,所述云服务器基于公式:
本发明实施例提供的基于分布式云存储系统的数据访问方法,基于当前的读压力值或资源占用饱和度,来计算待生成的快照副本数量,从而极大地提升了热点数据的访问效率,并可基于不同历史数据,动态新增或删除副本数,从而节约快照副本冗余资源,提升资源利用率。
本发明实施例还提供一种基于分布式云存储系统的数据访问方法系统,所述系统包括:处理器和用于存储能够在处理器上运行的计算机程序的存储器;其中,所述处理器用于运行所述计算机程序时,执行上述实施例中基于分布式云存储系统的数据访问方法。
以上上述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
1.一种基于分布式云存储系统的数据访问方法,其特征在于,包括:
云服务器获取多源异构数据,并将所述多源异构数据进行分层存储;
所述云服务器将所述分层存储的多源异构数据进行分层快照,生成所述多源异构数据的多个快照;
在第n时刻,所述云服务器获取所述多源异构的读数据请求时,所述云服务器记录所述读请求压力值,并基于所述读请求压力值判断所述云服务器能否在预设时间内响应所述读请求;
若是,则所述云服务器通过路由策略确定所述多个快照中的其中一个快照,并通过所述快照创建出一个或多个克隆,通过所述一个或多个克隆响应所述读请求;
若否,则所述云服务器基于当前第n个时刻的读数据压力值、前n-1个时刻的所有读数据压力值以及当前所述云服务的存储容量饱和度,计算出所需要增加的快照数目x,并依次生成x个所述快照数目,通过所述x个快照创建出x*y个克隆,基于所述x*y个克隆响应所述读请求。
2.根据权利要求1所述的方法,其特征在于,所述云服务器基于当前第n个时刻的读数据压力值、前n-1个时刻的所有读数据压力值以及当前所述云服务的存储容量饱和度,计算出所需要增加的快照数目x,包括:
所述云服务器基于公式:
3.根据权利要求2所述的方法,其特征在于,所述云服务器基于以下公式:
且
4.根据权利要求1所述的方法,其特征在于,所述云服务器通过路由策略确定所述多个快照中的其中一个快照,包括:
所述云服务器将所述多个快照分别设置在不同云节点中,并基于最短路径原则确定所述多个快照中距离所述读数据请求终端最近的快照。
5.一种基于分布式云存储系统的数据访问方法,其特征在于,包括:
云服务器获取多源异构数据,并将所述多源异构数据进行分层存储;
所述云服务器将所述分层存储的多源异构数据进行分层快照,生成所述多源异构数据的多个快照;
在第n时刻,所述云服务器获取所述多源异构的读数据请求时,所述云服务器获取当前所述云服务器的资源占用饱和度,并基于所述资源占用饱和度判断所述云服务器能否在预设时间内响应所述读请求;
若是,则所述云服务器通过路由策略确定所述多个快照中的其中一个快照,并通过所述快照创建出一个或多个克隆,通过所述一个或多个克隆响应所述读请求;
若否,则所述云服务器基于当前第n个时刻的资源占用饱和度以及前n-1个时刻的所有资源占用饱和度,计算出所需要增加的快照数目x,并依次生成x个所述快照数目,通过所述x个快照创建出x*y个克隆,基于所述x*y个克隆响应所述读请求。
6.根据权利要求5所述的方法,其特征在于,所述云服务器基于公式:
7.根据权利要求6所述的方法,其特征在于,所述云服务器基于以下公式: