CN115955488A - 基于副本冗余的分布式存储副本跨机房放置方法与装置 - Google Patents
基于副本冗余的分布式存储副本跨机房放置方法与装置 Download PDFInfo
- Publication number
- CN115955488A CN115955488A CN202310225524.XA CN202310225524A CN115955488A CN 115955488 A CN115955488 A CN 115955488A CN 202310225524 A CN202310225524 A CN 202310225524A CN 115955488 A CN115955488 A CN 115955488A
- Authority
- CN
- China
- Prior art keywords
- copy
- file
- deployed
- copies
- field
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 58
- 238000011084 recovery Methods 0.000 claims abstract description 25
- 238000012217 deletion Methods 0.000 claims abstract description 22
- 230000037430 deletion Effects 0.000 claims abstract description 22
- 230000007246 mechanism Effects 0.000 claims description 23
- 238000004590 computer program Methods 0.000 claims description 13
- 230000000977 initiatory effect Effects 0.000 claims description 9
- 230000004048 modification Effects 0.000 claims description 5
- 238000012986 modification Methods 0.000 claims description 5
- 238000004364 calculation method Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 230000010076 replication Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 238000012550 audit Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种基于副本冗余的分布式存储副本跨机房放置方法与装置,所述方法应用于分布式存储***,所述方法包括:将多个元数据节点部署到所述分布式存储***中的第一机房中,并确定主元数据节点;针对待部署文件设置副本放置策略;响应于客户端发起的写入请求,所述主元数据节点根据所述待部署文件的副本放置策略完成待部署文件的跨机房放置;获取待部署文件的访问数据,并基于所述待部署文件的访问数据修改所述待部署文件的副本放置策略。通过设置副本放置策略,使分布式存储***能够感知副本分布情况,以解决文件读取、文件写入、副本恢复、副本删除和计算节点任务流量场景下的跨机房流量。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种基于副本冗余的分布式存储副本跨机房放置方法与装置。
背景技术
随着云计算时代的到来,多云架构已成为各大政企机关、科技公司、互联网公司的主流架构。而分布式存储作为整个数据架构的基座,可以提供稳定可靠的数据读写服务,因此,如何在多云环境下提供稳定可靠的分布式存储读写服务是一件至关重要的事情,其直接决定了数据分析能否充分运用多云资源,数据决策能否及时传达。
目前,基于副本冗余的分布式存储对于多云部署的支持有两种情况,第一种是不支持多云部署,例如HDFS本身没有提供多云解决方案,若强行以多云模式部署,分布式存储服务的读写流量会远远大于机房之间的专线带宽,甚至会导致多云之间无法正常通信。第二种是对多云部署提供有限支持,可以通过部署多套分布式存储使用户在不同的机房访问对应的分布式存储,也可以采用副本跨机房放置使用户在对应机房读取对应机房副本;但部署多套分布式存储成本比较高,采用副本跨机房放置仅停留在副本跨机房放置以后读取时从本机房对应的副本进行读取,并没有覆盖更多的场景。因此,亟需解决分布式存储的跨机房流量问题,以实现稳定可靠的多云部署。
发明内容
本申请提供一种基于副本冗余的分布式存储副本跨机房放置方法与装置,以用于解决分布式存储的跨机房流量问题,从而实现稳定可靠的多云部署。
第一方面,本申请提供一种基于副本冗余的分布式存储副本跨机房放置方法,所述方法应用于分布式存储***,所述方法包括:
将多个元数据节点部署到所述分布式存储***中的第一机房中,并确定主元数据节点;
针对待部署文件设置副本放置策略,所述副本放置策略包括:mainAz、nativeWrite、azPolicy、disableRedundantDelete、disableBlockRecovery字段;其中,mainAz字段用于确定主机房,nativeWrite字段用于确定副本是否写入第二机房,azPolicy字段用于确定副本分布,disableRedundantDelete字段用于临时禁用某个目录下的冗余副本删除机制,disableBlockRecovery字段用于临时禁用某个目录下的丢失副本恢复机制;
响应于客户端发起的写入请求,所述主元数据节点根据所述待部署文件的副本放置策略完成待部署文件的跨机房放置;
获取待部署文件的访问数据,并基于所述待部署文件的访问数据修改所述待部署文件的副本放置策略。
根据本申请提供的一种基于副本冗余的分布式存储副本跨机房放置方法,所述主元数据节点根据所述待部署文件的副本放置策略完成待部署文件的跨机房放置,包括:
获取待部署文件的副本放置策略和当前部署副本数,并记录在所述主元数据节点中;
基于所述azPolicy字段确定所述待部署文件的初始副本数和副本分布位置,其中,所述azPolicy字段由机房标识组成,且相同机房标识相邻,所述初始副本数为机房标识的个数;
基于所述mainAz字段确定主机房,所述主机房用于部署多余的所述待部署文件的副本;
若所述当前部署副本数少于或等于所述初始副本数,则基于所述azPolicy字段依次部署所述待部署文件的副本;
若所述当前部署副本数多于所述初始副本数,则计算多余副本数,并先基于所述azPolicy字段依次部署所述初始副本数个待部署文件的副本,再在所述主机房中部署多余副本数个待部署文件的副本。
根据本申请提供的一种基于副本冗余的分布式存储副本跨机房放置方法,所述修改所述待部署文件的副本放置策略包括增加副本,所述基于所述待部署文件的访问数据修改所述待部署文件的副本放置策略,包括:基于所述待部署文件的访问数据,客户端发起增加副本请求,所述增加副本请求中包含需要增加副本数;响应于客户端发起的增加副本请求,所述主元数据节点确定所述需要增加副本数;基于所述需要增加副本数和所述当前部署副本数,按照从左向右的顺序修改所述当前的副本放置策略的azPolicy字段,得到修改后的副本放置策略。
根据本申请提供的一种基于副本冗余的分布式存储副本跨机房放置方法,所述修改所述待部署文件的副本放置策略包括删除副本,所述基于所述待部署文件的访问数据修改所述待部署文件的副本放置策略,包括:基于所述待部署文件的访问数据,客户端发起删除副本请求,所述删除副本请求中包含需要删除副本数;响应于客户端发起删除副本请求,所述主元数据节点确定所述需要删除副本数;基于所述需要删除副本数和所述当前部署副本数,按照从右向左的顺序修改所述当前的副本放置策略的azPolicy字段,得到修改后的副本放置策略。
根据本申请提供的一种基于副本冗余的分布式存储副本跨机房放置方法,所述方法还包括:
响应于客户端发起的计算任务请求,所述主元数据节点确定与所述计算任务请求匹配的原始文件;其中,所述计算任务请求包括读取原始文件、写入中间结果、读取中间结果、写入最终结果;
获取所述原始文件的副本放置策略;
修改所述原始文件的副本放置策略,使客户端读取原始文件后产生的中间结果存储至所述第二机房。
根据本申请提供的一种基于副本冗余的分布式存储副本跨机房放置方法,所述修改所述原始文件的副本放置策略,使客户端读取原始文件后产生的中间结果存储至所述第二机房,包括:增加临时文件放置策略,所述临时文件放置策略包括:mainAz、nativeWrite、azPolicy、disableRedundantDelete、disableBlockRecovery字段,且所述nativeWrite字段设为true;其中,所述临时文件放置策略用于存储客户端读取原始文件后产生的中间结果。
根据本申请提供的一种基于副本冗余的分布式存储副本跨机房放置方法,所述第一机房为分布式存储***多个机房中任一机房,所述第二机房为发起写入请求的客户端所在机房,或,发起计算任务请求的客户端所在机房。
第二方面,本申请还提供一种基于副本冗余的分布式存储副本跨机房放置装置,所述装置应用于分布式存储***,所述装置包括:
节点部署模块,用于将多个元数据节点部署到所述分布式存储***中的第一机房中,并确定主元数据节点;
副本设置模块,用于针对待部署文件设置副本放置策略,所述副本放置策略包括:mainAz、nativeWrite、azPolicy、disableRedundantDelete、disableBlockRecovery字段;其中,mainAz字段用于确定主机房,nativeWrite字段用于确定副本是否写入第二机房,azPolicy字段用于确定副本分布,disableRedundantDelete字段用于临时禁用某个目录下的冗余副本删除机制,disableBlockRecovery 字段用于临时禁用某个目录下的丢失副本恢复机制;
副本放置模块,用于响应于客户端发起的写入请求,所述主元数据节点根据所述待部署文件的副本放置策略完成待部署文件的跨机房放置;
副本修改模块,用于获取待部署文件的访问数据,并基于所述待部署文件的访问数据修改所述待部署文件的副本放置策略。
第三方面,本申请实施例还提供了一种电子设备,所述电子设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器运行所述计算机程序时,执行上述的基于副本冗余的分布式存储副本跨机房放置方法中的任一实现方式中的步骤。
第四方面,本申请实施例还提供了一种可读存储介质,所述可读取存储介质中存储有计算机程序,所述计算机程序在处理器上运行时,执行上述的基于副本冗余的分布式存储副本跨机房放置方法中的任一实现方式中的步骤。
综上所述,本申请实施例提供的基于副本冗余的分布式存储副本跨机房放置方法与装置,针对产生跨机房流量的场景进行分析,设置多字段的副本放置策略,使分布式存储***能通过副本放置策略感知副本分布情况,同时,副本放置策略还解决了文件读取、文件写入、副本恢复、副本删除和计算节点任务流量场景下的跨机房流量,极大的减少了跨机房流量,为实现稳定可靠的多云部署提供了有力支持。
附图说明
为了更清楚地说明本申请或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请提供的基于副本冗余的分布式存储副本跨机房放置方法的流程示意图;
图2是本申请提供的计算节点任务流量优化方法的流程示意图;
图3是本申请提供的基于副本冗余的分布式存储副本跨机房放置装置的结构示意图;
图4是本申请实施例提供的电子设备的结构示意图。
图标:300-网络拓扑结构***;310-节点部署模块;320-副本设置模块;330-副本放置模块;340-副本修改模块;400-电子设备;410-存储器;420-处理器;430-总线。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请中的附图,对本申请中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
分布式存储***:提供海量的文件存储服务,文件以目录树的形式组织,提供给用户类似linux路径的访问方式。常见的开源实现有HDFS(Hadoop Distributed FileSystem)、Alluxio等。
基于副本冗余的分布式存储:对于分布式文件存储,其文件有多个副本,每个副本都是独立可用的,只要有一个副本可用,就认为这个文件可用。
元数据节点:分布式存储用于存储元数据的节点,接受用户的元数据请求,如查看目录、新建目录、删除目录等。不提供真实数据读写服务,元数据节点一般会有多个,以主备模式提供高可用服务。
数据节点:分布式存储用于真实存储数据的节点,接受用户读写数据的请求,如读取文件,写入文件等。
地域(Region):主要是物理上的地域比如市、县。一个Region会有多个机房。跨Region 的专线成本和延时都会比较高。
机房(Zone):物理上的一个机房,一般几千到几万台机器会组成一个机房。
可用区(Avaliable Zone,简称AZ):指由多个Zone 组成的可用区。AZ和AZ之间通过专线连接,AZ之间的距离一般不会太远(<100公里)。通常我们说的跨机房流量,指的就是AZ之间的专线流量。
针对跨机房流量进行分析总结,跨机房流量一般发生在以下文件读取、文件写入、副本恢复、副本删除和计算节点任务流量五种场景。
(1)场景一:文件读取
某一客户端发起文件读取请求,例如,所述读取请求为读取文件1,但该客户端所在的机房中并不存在文件1的副本,此时,该客户端所在的机房需要从其他机房读取文件1的副本,即跨机房完成读取请求,产生跨机房流量。
(2)场景二:文件写入
某一客户端发起文件写入请求,例如,该客户端所在的机房为机房1,而所述写入请求为在机房1和机房2分别写入文件1的两个副本,此时,在机房2写入文件1的两个副本时需要跨机房写入,即产生跨机房流量。
(3)场景三:副本恢复
分布式存储***一般具有丢失副本恢复机制,在副本损坏或者数据节点宕机的情况下,数据节点的实际副本数会少于元数据节点记录的副本数,此时分布式存储***会触发并启动丢失副本恢复机制。但在副本恢复过程中,一般是在数据节点间复制拷贝数据以恢复丢失的副本,若此时互相复制拷贝的数据节点不属于同一机房,在副本恢复过程中就会产生跨机房流量。甚至在极端情况下,如某一机房中大量数据节点发生宕机,这时丢失副本恢复机制会产生更大的跨机房流量。
(4)场景四:副本删除
分布式存储***一般具有冗余副本删除机制,在根据副本调整需求增加副本的情况下,数据节点的实际副本数会多于元数据节点记录的副本数,此时分布式存储***会触发并启动冗余副本删除机制。但增加副本和更新元数据节点记录的副本数这两个过程中会存在时间差,若新增副本为跨机房复制拷贝的,且新增副本被认为是冗余副本删除,则需要再次跨机房复制拷贝,这种情况下也会产生跨机房流量。
(5)场景五:计算节点任务流量
当用户基于分布式存储进行计算时,由于计算一般分为多个步骤,故客户端所进行的计算过程中可能涉及同一机房的多个数据节点,且各数据节点可能需要跨机房读取相关文件。若计算过程中读取原始文件、写入中间结果、读取中间结果、写入最终结果等涉及跨机房的读取、写入,则会产生跨机房流量。
因此,为了解决以上五种场景所产生的跨机房流量,可通过对副本放置策略进行修改,使分布式存储***可以感知副本放置策略,以避免产生跨机房流量,从而实现稳定可靠的多云部署。
图1是本申请提供的基于副本冗余的分布式存储副本跨机房放置方法的流程示意图,如图1所示,所述方法应用于分布式存储***,所述方法包括:
步骤101,将多个元数据节点部署到所述分布式存储***中的第一机房中,并确定主元数据节点。
其中,所述第一机房为分布式存储***多个机房中任一机房。
具体地,可以理解的是,在所述分布式存储***中的多个机房中随机选择一个机房作为第一机房,并将多个元数据节点部署到所述第一机房;从中选择一个元数据节点作为主元数据节点,其余作为从元数据节点,以保证主从同步且不跨机房,从而保持多机房的一致性和可用性。在一些实例中,当主元数据节点宕机后,其余元数据节点会替代主元数据节点继续提高服务。设置方法可以参考HDFS双节点设置方法,例如,采用双节点,一个处于active状态,另一个处于备份状态,当active的元数据节点宕机后,备份的立即切换为active。
步骤102,针对待部署文件设置副本放置策略,所述副本放置策略包括:mainAz、nativeWrite、azPolicy、disableRedundantDelete、disableBlockRecovery字段。
其中,mainAz字段用于确定主机房,nativeWrite字段用于确定副本是否写入第二机房,azPolicy字段用于确定副本分布,disableRedundantDelete字段用于临时禁用某个目录下的冗余副本删除机制,disableBlockRecovery 字段用于临时禁用某个目录下的丢失副本恢复机制。
具体地,可以理解的是,针对不同文件或目录设置不同的副本放置策略,并在主元数据节点中为每个文件或者目录设置相应的路径key,在路径key下存储相应的副本放置策略,以便于后续根据路径key查询待部署文件的副本放置策略。所述副本放置策略可以以json字符串的形式描述,例如,
{
"/":
{
"mainAz": "az1",
"nativeWrite": false,
"azPolicy": "az1,az1,az2",
"disableRedundantDelete": false,
"disableBlockRecovery": false
}
}
其中,mainAz字段后为az1表示主机房为az1;azPolicy字段后为“az1,az1,az2”表示写入文件时副本分布为az1,az1,az2,即,从az1挑选一个数据节点放置第一个副本,从az1挑选第二个数据节点放置第二个副本,再从az2挑选第三个数据节点放置第三个副本;nativeWrite、disableRedundantDelete、disableBlockRecovery字段均配置为false,表示未开启上述字段的功能。此外,若nativeWrite、disableRedundantDelete、disableBlockRecovery字段配置为true,则表示开启相应字段的功能。
需要说明的是,一个机房具有多个数据节点,当根据待部署文件的副本放置策略将待部署文件的多个副本部署到某一机房时,分布式存储***自身有对应的机制可以确保多个副本放置在该机房的不同节点。
具体地,还可以理解的是,所述副本放置策略可解决场景三或场景四所产生的跨机房流量,主要原理如下:通过设置disableRedundantDelete字段,并配置为true,以实现在副本恢复过程中禁用冗余副本删除机制,避免将恢复的副本识别为冗余副本,从而避免了副本恢复过程中产生跨机房流量;甚至对于大量数据节点发生宕机的极端情况,副本恢复机制会导致集群出现大量的跨机房流量,而disableBlockRecovery字段可以帮助临时禁用副本恢复机制,使得分布式存储***有充足时间修复宕机的数据节点,将这些节点修复后,实际部署副本数与元数据节点记录的副本数一致就不会再进行副本恢复了,自然也不会产生跨机房流量。
需要说明的是,所述副本放置策略中各字段可以理解为配置项,每个字段的功能具体以代码形式实现,在实际应用中还可以对各字段的功能进行修改。在一些实施例中,所述副本放置策略还可以采用property文件、yaml文件或xml文件的形式描述。
步骤103,响应于客户端发起的写入请求,所述主元数据节点根据所述待部署文件的副本放置策略完成待部署文件的跨机房放置。
其中,所述写入请求中包括待部署文件和当前部署副本数。
具体地,可以理解的是,所述主元数据节点根据所述待部署文件的副本放置策略完成待部署文件的跨机房放置,包括以下步骤:
步骤1031,获取待部署文件的副本放置策略和当前部署副本数,并记录在所述主元数据节点中。
步骤1032,基于所述azPolicy字段确定所述待部署文件的初始副本数和副本分布位置,其中,所述azPolicy字段由机房标识组成,且相同机房标识相邻,所述初始副本数为机房标识的个数。
具体地,机房标识可以是az1、az2、az3,相同机房标识相邻是指将相同机房的分布在相邻位置,例如,azPolicy字段为“az1,az1,az2”,在以pipline(流水线)形式写入文件时,从az1挑选一个数据节点写入第一个副本;从az1挑选第二个数据节点,再从第一个数据节点拷贝数据,此时第一个节点和第二个节点属于同一机房az1,不会产生跨专线流量;从az2挑选第三个数据节点,再从第二个数据节点拷贝数据。针对场景二的文件写入,通过azPolicy字段调整副本分布位置,以实现相同机房处于相邻位置,在文件写入时减少跨机房次数,从而减少跨机房流量;针对场景三的副本恢复,通过azPolicy字段的副本分布顺序进行副本恢复,由于相同机房处于相邻位置,在副本恢复时可以让宕机的数据节点从相同机房的数据节点进行拷贝恢复副本,避免产生跨机房流量。
步骤1033,基于所述mainAz字段确定主机房,所述主机房用于部署多余的所述待部署文件的副本。
具体地,mainAz字段可配置主机房,例如,mainAz字段后为az1表示主机房为az1,mainAz字段后为az2则表示主机房为az2。如果当前部署副本数超过了azPolicy所配置的初始副本数,则会将多出来的副本放到主机房内,以确保不会因副本放置策略导致写入失败,从而保证副本放置策略的写入成功率。
步骤1034,若所述当前部署副本数少于或等于所述初始副本数,则基于所述azPolicy字段依次部署所述待部署文件的副本;若所述当前部署副本数多于所述初始副本数,则计算多余副本数,并先基于所述azPolicy字段依次部署所述初始副本数个待部署文件的副本,再在所述主机房中部署多余副本数个待部署文件的副本。
具体地,例如所述写入请求中的待部署文件为文件1,而文件1的副本放置策略中mainAz字段为az1、azPolicy字段为"az1,az2,az2",若文件1的当前部署副本数为2,则需要依次在机房az1、az2部署1个文件1的副本;若文件1的当前部署副本数为5,则需要计算多余副本数,所述多余副本数为所述待部署文件的副本部署数与所述初始副本数之差,即多余副本数为2,然后再基于azPolicy字段依次在机房az1、az2、az2部署文件1的副本,进一步通过mainAz字段确定主机房为az1,并将多余的2个副本部署至机房az1中。
步骤104,获取待部署文件的访问数据,并基于所述待部署文件的访问数据修改所述待部署文件的副本放置策略。
其中,所述待部署文件的访问数据可以实时监控,也可以定期收集。在一些实施例中,可通过元数据节点的审计日志读取所述待部署文件的访问数据,所述审计日志中记录有各用户访问的文件、请求IP/机房等信息。
具体地,可以理解的是,所述修改所述待部署文件的副本放置策略包括增加副本,所述基于所述待部署文件的访问数据修改所述待部署文件的副本放置策略,包括:
步骤a1,基于所述待部署文件的访问数据,客户端发起增加副本请求,所述增加副本请求中包含需要增加副本数。
在一些实施例中,当监控到某个文件访问需求增加时,或者是,某个机房存在读取该机房并不存在的文件时,均可以发起增加副本请求,以调整副本放置策略,确保文件的利用率,同时通过将可能跨机房读取的数据配置多机房写入,确保这些数据在每一个机房都有副本,读取的时候读取本机房副本即可,极大程度减少跨机房读取文件的流量。
步骤a2,响应于客户端发起的增加副本请求,所述主元数据节点确定所述需要增加副本数。
步骤a3,基于所述需要增加副本数和所述当前部署副本数,按照从左向右的顺序修改所述当前的副本放置策略的azPolicy字段,得到修改后的副本放置策略。
例如,某个文件的副本放置策略的azPolicy字段为"az1,az2,az2,az3",但主元数据节点记录的当前部署副本数为2(即实际部署副本的分布为az1,az2),若增加副本请求中包含需要增加副本数为1,则按照从左向右的顺序修改azPolicy字段,得到修改后的azPolicy字段"az1,az2,az2";若增加副本请求中包含需要增加副本数为2,则按照从左向右的顺序修改azPolicy字段,得到修改后的azPolicy字段"az1,az2,az2,az3"。
具体地,还可以理解的是,所述修改所述待部署文件的副本放置策略包括删除副本,所述基于所述待部署文件的访问数据修改所述待部署文件的副本放置策略,包括:
步骤b1,基于所述待部署文件的访问数据,客户端发起删除副本请求,所述删除副本请求中包含需要删除副本数。
在一些实施例中,当监控到某个文件访问需求减少时,可发起删除副本请求,以调整副本放置策略,确保文件的利用率。
步骤b2,响应于客户端发起删除副本请求,所述主元数据节点确定所述需要删除副本数。
步骤b3,基于所述需要删除副本数和所述当前部署副本数,按照从右向左的顺序修改所述当前的副本放置策略的azPolicy字段,得到修改后的副本放置策略。
例如,某个文件的副本放置策略的azPolicy字段为"az1,az2,az2,az3",主元数据节点记录的当前部署副本数为4,若删除副本请求中包含需要删除副本数为1,则按照从右向左的顺序修改azPolicy字段,得到修改后的azPolicy字段"az1,az2,az2";若增加副本请求中包含需要增加副本数为2,则按照从左向右的顺序修改azPolicy字段,得到修改后的azPolicy字段"az1,az2"。
值得注意的是,在基于所述待部署文件的访问数据修改所述待部署文件的副本放置策略后,所述主元数据节点需要基于所述需要增加副本数,更新所述主元数据节点中记录的当前部署副本数,或者,基于所述需要删除副本数,更新所述主元数据节点中记录的当前部署副本数。
本申请实施例提供的基于副本冗余的分布式存储副本跨机房放置方法,针对产生跨机房流量的场景进行分析,设置多字段的副本放置策略,通过mainAz字段确定存储多余副本的主机房,以确保文件副本的写入成功率;通过nativeWrite字段确定第二机房,使临时文件存储至第二机房,以避免计算任务请求中产生不必要的跨机房流量;通过azPolicy字段用于确定副本分布,并严格按照azPolicy字段的副本分布顺序增加或删除副本,减少文件写入和副本恢复过程中的跨机房流量;通过disableRedundantDelete字段禁用冗余副本删除机制,避免副本恢复过程中错误删除恢复的副本,从而避免产生跨机房流量;通过disableBlockRecovery字段禁用丢失副本恢复机制,以避免副本恢复过程中产生大量的跨机房流量。
综上所述,本申请实施例提供的基于副本冗余的分布式存储副本跨机房放置方法,通过设置多字段的副本放置策略,使分布式存储***能通过副本放置策略感知副本分布情况,同时,副本放置策略解决了文件读取、文件写入、副本恢复和副本删除场景下的跨机房流量,极大的减少了跨机房流量,为实现稳定可靠的多云部署提供了有力支持。
图2是本申请提供的计算节点任务流量优化方法的流程示意图,如图2所示,所述方法还包括针对场景五产生的跨机房流量进行优化,具体包括以下步骤:
步骤201,响应于客户端发起的计算任务请求,所述主元数据节点确定与所述计算任务请求匹配的原始文件。
其中,所述计算任务请求包括读取原始文件、写入中间结果、读取中间结果、写入最终结果。
步骤202,获取所述原始文件的副本放置策略。
步骤203,修改所述原始文件的副本放置策略,使客户端读取原始文件后产生的中间结果存储至所述第二机房。
具体地,可以理解的是,所述第二机房为发起写入请求的客户端所在机房,或,发起计算任务请求的客户端所在机房;在一些实施例中,所述第二机房还可以是发起读取请求的客户端所在机房。
具体地,还可以理解的是,修改所述原始文件的副本放置策略包括增加临时文件放置策略,所述临时文件放置策略包括:mainAz、nativeWrite、azPolicy、disableRedundantDelete、disableBlockRecovery字段,且所述nativeWrite字段设为true;其中,所述临时文件放置策略用于存储客户端读取原始文件后产生的中间结果。
所述临时文件放置策略例如:
{
"/tmp": {
"mainAz": "az1",
"nativeWrite": true,
"azPolicy": "az1,az1,az1",
"disableRedundantDelete": false,
"disableBlockRecovery": false
}
值得注意的是,nativeWrite字段的配置优先级最高,当nativeWrite字段配置为true时,会忽略azPolicy字段和mainAz字段。nativeWrite字段是专门针对不参与下游计算的路径所设置的字段,开启后,客户端在哪个机房发起请求就会将副本写入哪个机房。因此,若发起计算任务请求的客户端基于上述临时文件放置策略,开启了nativeWrite字段,则会将临时文件均存储至发起计算任务请求的客户端所在的机房(即第二机房),且完成计算任务请求后还会将临时文件删除。
本申请提供的计算节点任务流量优化方法,通过增加临时文件放置策略来修改副本放置策略,利用nativeWrite字段将临时文件存储至第二机房,避免产生跨机房流量,从而解决了计算节点任务流量场景下的跨机房流量。
图3是本申请提供的基于副本冗余的分布式存储副本跨机房放置装置的结构示意图,可以用于实现上述实施例所描述的方法。如图3所示,所述装置应用于分布式存储***,所述装置包括:
节点部署模块310,用于将多个元数据节点部署到所述分布式存储***中的第一机房中,并确定主元数据节点;
副本设置模块320,用于针对待部署文件设置副本放置策略,所述副本放置策略包括:mainAz、nativeWrite、azPolicy、disableRedundantDelete、disableBlockRecovery字段;其中,mainAz字段用于确定主机房,nativeWrite字段用于确定副本是否写入第二机房,azPolicy字段用于确定副本分布,disableRedundantDelete字段用于临时禁用某个目录下的冗余副本删除机制,disableBlockRecovery 字段用于临时禁用某个目录下的丢失副本恢复机制;
副本放置模块330,用于响应于客户端发起的写入请求,所述主元数据节点根据所述待部署文件的副本放置策略完成待部署文件的跨机房放置;
副本修改模块340,用于获取待部署文件的访问数据,并基于所述待部署文件的访问数据修改所述待部署文件的副本放置策略。
上述基于副本冗余的分布式存储副本跨机房放置装置的详细描述,请参见上述实施例中相关方法步骤的描述,重复之处不再赘述。以上所描述的装置实施例仅仅是示意性的,其中所使用的作为分离部件说明的“模块”可以是实现预定功能的软件和/或硬件的组合,可以是或者也可以不是物理上分开的。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
图4是本申请提供的电子设备的结构示意图,如图4所述,所述电子设备400包括:存储器410和处理器420,存储器410和处理器420通过总线430连接,存储器410存储有计算机程序,处理器420读取并运行所述计算机程序时,以使电子设备400可执行上述的实施例中方法的全部或部分流程,以实现基于副本冗余的分布式存储副本跨机房放置。
本申请实施例还提供了一种可读存储介质,所述可读取存储介质中存储有计算机程序,所述计算机程序在处理器上运行时,执行基于副本冗余的分布式存储副本跨机房放置方法中的步骤。
应当理解是,所述电子设备可以是个人计算机、平板电脑、智能手机等具有逻辑计算功能的电子设备;所述可读存储介质可以是ROM(Read-Only Memory, 只读存储器)、RAM(Random Access Memory, 随机存取存储器)、磁碟、光盘等。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围都应涵盖在本发明的保护范围之内。
Claims (10)
1.一种基于副本冗余的分布式存储副本跨机房放置方法,所述方法应用于分布式存储***,其特征在于,所述方法包括:
将多个元数据节点部署到所述分布式存储***中的第一机房中,并确定主元数据节点;
针对待部署文件设置副本放置策略,所述副本放置策略包括:mainAz、nativeWrite、azPolicy、disableRedundantDelete、disableBlockRecovery字段;其中,mainAz字段用于确定主机房,nativeWrite字段用于确定副本是否写入第二机房,azPolicy字段用于确定副本分布,disableRedundantDelete字段用于临时禁用某个目录下的冗余副本删除机制,disableBlockRecovery 字段用于临时禁用某个目录下的丢失副本恢复机制;
响应于客户端发起的写入请求,所述主元数据节点根据所述待部署文件的副本放置策略完成待部署文件的跨机房放置;
获取待部署文件的访问数据,并基于所述待部署文件的访问数据修改所述待部署文件的副本放置策略。
2.根据权利要求1所述的方法,其特征在于,所述主元数据节点根据所述待部署文件的副本放置策略完成待部署文件的跨机房放置,包括:
获取待部署文件的副本放置策略和当前部署副本数,并记录在所述主元数据节点中;
基于所述azPolicy字段确定所述待部署文件的初始副本数和副本分布位置,其中,所述azPolicy字段由机房标识组成,且相同机房标识相邻,所述初始副本数为机房标识的个数;
基于所述mainAz字段确定主机房,所述主机房用于部署多余的所述待部署文件的副本;
若所述当前部署副本数少于或等于所述初始副本数,则基于所述azPolicy字段依次部署所述待部署文件的副本;
若所述当前部署副本数多于所述初始副本数,则计算多余副本数,并先基于所述azPolicy字段依次部署所述初始副本数个待部署文件的副本,再在所述主机房中部署多余副本数个待部署文件的副本。
3.根据权利要求2所述的方法,其特征在于,所述修改所述待部署文件的副本放置策略包括增加副本,所述基于所述待部署文件的访问数据修改所述待部署文件的副本放置策略,包括:
基于所述待部署文件的访问数据,客户端发起增加副本请求,所述增加副本请求中包含需要增加副本数;
响应于客户端发起的增加副本请求,所述主元数据节点确定所述需要增加副本数;
基于所述需要增加副本数和所述当前部署副本数,按照从左向右的顺序修改所述当前的副本放置策略的azPolicy字段,得到修改后的副本放置策略。
4.根据权利要求2所述的方法,其特征在于,所述修改所述待部署文件的副本放置策略包括删除副本,所述基于所述待部署文件的访问数据修改所述待部署文件的副本放置策略,包括:
基于所述待部署文件的访问数据,客户端发起删除副本请求,所述删除副本请求中包含需要删除副本数;
响应于客户端发起删除副本请求,所述主元数据节点确定所述需要删除副本数;
基于所述需要删除副本数和所述当前部署副本数,按照从右向左的顺序修改所述当前的副本放置策略的azPolicy字段,得到修改后的副本放置策略。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
响应于客户端发起的计算任务请求,所述主元数据节点确定与所述计算任务请求匹配的原始文件;其中,所述计算任务请求包括读取原始文件、写入中间结果、读取中间结果、写入最终结果;
获取所述原始文件的副本放置策略;
修改所述原始文件的副本放置策略,使客户端读取原始文件后产生的中间结果存储至所述第二机房。
6.根据权利要求5所述的方法,其特征在于,所述修改所述原始文件的副本放置策略,使客户端读取原始文件后产生的中间结果存储至所述第二机房,包括:
增加临时文件放置策略,所述临时文件放置策略包括:mainAz、nativeWrite、azPolicy、disableRedundantDelete、disableBlockRecovery字段,且所述nativeWrite字段设为true;
其中,所述临时文件放置策略用于存储客户端读取原始文件后产生的中间结果。
7.根据权利要求6所述的方法,其特征在于,所述第一机房为分布式存储***多个机房中任一机房,所述第二机房为发起写入请求的客户端所在机房,或,发起计算任务请求的客户端所在机房。
8.一种基于副本冗余的分布式存储副本跨机房放置装置,所述装置应用于分布式存储***,其特征在于,所述装置包括:
节点部署模块,用于将多个元数据节点部署到所述分布式存储***中的第一机房中,并确定主元数据节点;
副本设置模块,用于针对待部署文件设置副本放置策略,所述副本放置策略包括:mainAz、nativeWrite、azPolicy、disableRedundantDelete、disableBlockRecovery字段;其中,mainAz字段用于确定主机房,nativeWrite字段用于确定副本是否写入第二机房,azPolicy字段用于确定副本分布,disableRedundantDelete字段用于临时禁用某个目录下的冗余副本删除机制,disableBlockRecovery字段用于临时禁用某个目录下的丢失副本恢复机制;
副本放置模块,用于响应于客户端发起的写入请求,所述主元数据节点根据所述待部署文件的副本放置策略完成待部署文件的跨机房放置;
副本修改模块,用于获取待部署文件的访问数据,并基于所述待部署文件的访问数据修改所述待部署文件的副本放置策略。
9.一种电子设备,其特征在于,所述电子设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器运行所述计算机程序时执行权利要求1至7中任一项所述的基于副本冗余的分布式存储副本跨机房放置方法。
10.一种可读存储介质,其特征在于,所述可读存储介质中存储有计算机程序,所述计算机程序在处理器上运行时执行权利要求1至7中任一项所述的基于副本冗余的分布式存储副本跨机房放置方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310225524.XA CN115955488B (zh) | 2023-03-10 | 2023-03-10 | 基于副本冗余的分布式存储副本跨机房放置方法与装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310225524.XA CN115955488B (zh) | 2023-03-10 | 2023-03-10 | 基于副本冗余的分布式存储副本跨机房放置方法与装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115955488A true CN115955488A (zh) | 2023-04-11 |
CN115955488B CN115955488B (zh) | 2023-05-23 |
Family
ID=85891196
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310225524.XA Active CN115955488B (zh) | 2023-03-10 | 2023-03-10 | 基于副本冗余的分布式存储副本跨机房放置方法与装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115955488B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117240873A (zh) * | 2023-11-08 | 2023-12-15 | 阿里云计算有限公司 | 云存储***、数据读写方法、设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110225121A1 (en) * | 2010-03-11 | 2011-09-15 | Yahoo! Inc. | System for maintaining a distributed database using constraints |
CN103793534A (zh) * | 2014-02-28 | 2014-05-14 | 苏州博纳讯动软件有限公司 | 分布式文件***及均衡元数据存储和访问负载的实现方法 |
CN114003180A (zh) * | 2021-11-11 | 2022-02-01 | 中国建设银行股份有限公司 | 一种基于跨机房Hadoop集群的数据处理方法及装置 |
CN114385561A (zh) * | 2022-01-10 | 2022-04-22 | 北京沃东天骏信息技术有限公司 | 文件管理方法和装置及hdfs*** |
CN115543965A (zh) * | 2022-10-21 | 2022-12-30 | 北京火山引擎科技有限公司 | 跨机房数据处理方法、设备、存储介质及程序产品 |
-
2023
- 2023-03-10 CN CN202310225524.XA patent/CN115955488B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110225121A1 (en) * | 2010-03-11 | 2011-09-15 | Yahoo! Inc. | System for maintaining a distributed database using constraints |
CN103793534A (zh) * | 2014-02-28 | 2014-05-14 | 苏州博纳讯动软件有限公司 | 分布式文件***及均衡元数据存储和访问负载的实现方法 |
CN114003180A (zh) * | 2021-11-11 | 2022-02-01 | 中国建设银行股份有限公司 | 一种基于跨机房Hadoop集群的数据处理方法及装置 |
CN114385561A (zh) * | 2022-01-10 | 2022-04-22 | 北京沃东天骏信息技术有限公司 | 文件管理方法和装置及hdfs*** |
CN115543965A (zh) * | 2022-10-21 | 2022-12-30 | 北京火山引擎科技有限公司 | 跨机房数据处理方法、设备、存储介质及程序产品 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117240873A (zh) * | 2023-11-08 | 2023-12-15 | 阿里云计算有限公司 | 云存储***、数据读写方法、设备及存储介质 |
CN117240873B (zh) * | 2023-11-08 | 2024-03-29 | 阿里云计算有限公司 | 云存储***、数据读写方法、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115955488B (zh) | 2023-05-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10552064B2 (en) | Enabling data integrity checking and faster application recovery in synchronous replicated datasets | |
CN109729129B (zh) | 存储集群***的配置修改方法、存储集群及计算机*** | |
US11138156B2 (en) | Continuous data management system and operating method thereof | |
US7987158B2 (en) | Method, system and article of manufacture for metadata replication and restoration | |
US11093387B1 (en) | Garbage collection based on transmission object models | |
US20150213100A1 (en) | Data synchronization method and system | |
CN107018185B (zh) | 云存储***的同步方法和装置 | |
EP3745269B1 (en) | Hierarchical fault tolerance in system storage | |
US7702757B2 (en) | Method, apparatus and program storage device for providing control to a networked storage architecture | |
CN103597463A (zh) | 恢复服务的自动配置 | |
US10628298B1 (en) | Resumable garbage collection | |
CA2893304A1 (en) | Data storage method, data storage apparatus, and storage device | |
JP5292351B2 (ja) | メッセージキュー管理システム及びロックサーバ及びメッセージキュー管理方法及びメッセージキュー管理プログラム | |
CN115955488B (zh) | 基于副本冗余的分布式存储副本跨机房放置方法与装置 | |
JP6070146B2 (ja) | 情報処理装置及びバックアップ方法 | |
CN112579550B (zh) | 一种分布式文件***的元数据信息同步方法及*** | |
CN104951475A (zh) | 分布式文件***和实现方法 | |
US9037762B2 (en) | Balancing data distribution in a fault-tolerant storage system based on the movements of the replicated copies of data | |
CN115982101B (zh) | 基于多机房副本放置策略的机房数据迁移方法与装置 | |
CN116389233B (zh) | 容器云管理平台主备切换***、方法、装置和计算机设备 | |
CN111752892B (zh) | 分布式文件***及其实现方法、管理***、设备及介质 | |
JP6376626B2 (ja) | データ格納方法、データストレージ装置、及びストレージデバイス | |
JP6251965B2 (ja) | 情報システムおよびデータベース復旧方法 | |
CN115470041A (zh) | 一种数据灾备管理方法及装置 | |
CN111400098A (zh) | 一种副本管理方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |