CN111666035B - 一种分布式存储***的管理方法及装置 - Google Patents
一种分布式存储***的管理方法及装置 Download PDFInfo
- Publication number
- CN111666035B CN111666035B CN201910164730.8A CN201910164730A CN111666035B CN 111666035 B CN111666035 B CN 111666035B CN 201910164730 A CN201910164730 A CN 201910164730A CN 111666035 B CN111666035 B CN 111666035B
- Authority
- CN
- China
- Prior art keywords
- metadata management
- group
- nodes
- node
- mounting table
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0643—Management of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种分布式存储***的管理方法及装置,涉及计算机技术领域;主要技术方案为:通过第一组元数据管理节点接收挂载表的更新信息,所述挂载表用于提供与N组元数据管理节点对应的映射关系;其中,所述N组元数据管理节点包括所述第一组元数据管理节点;利用所述第一组元数据管理节点将所述挂载表的所述更新信息同步给其余N‑1组元数据管理节点;基于更新后的挂载表供客户端访问。
Description
技术领域
本发明涉及计算机技术领域,特别是涉及一种分布式存储***的管理方法及装置。
背景技术
分布式存储***中的挂载表在分布式存储***中是至关重要的,因为分布式存储***对应的客户端通过挂载表来定位需要访问的数据,并根据定位来完成数据的访问。
目前,分布式存储***中的挂载表的管理通常采用如下两种方法:一种是挂载表由分布式存储***的用户自己管理。在挂载表更新为新版挂载表时,用户需要对各个客户端中的挂载表进行手动更新,使得各个客户端中的挂载表与新版挂载表一致。但是由于是用户手动维护的,在更新挂载表时可能遗漏下个别客户端未进行更新或由于更新操作不当导致新版挂载表未更新到客户端中,从而导致客户端中的挂载表与分布式存储***中的新版挂载表不一致。另一种是借助外部的分布式存储***的服务***,来对挂载表进行管理。在外部服务***对挂载表更新时,一旦外部服务***停止或对挂载表进行错误更新,那么在客户端从外部服务***中的获取的挂载表将与分布式存储***中的挂载表不一致,从而导致客户端在利用外部服务***中的挂载表对分布式存储***进行访问时出现访问错误。
发明内容
有鉴于此,本发明提出了一种分布式存储***的管理方法及装置,主要目的提高客户端使用的挂载表与分布式存储***中的挂载表一致性。
第一方面,本发明实施例提供了分布式存储***的管理方法,包括:
通过第一组元数据管理节点接收挂载表的更新信息,所述挂载表用于提供与N组元数据管理节点对应的映射关系;其中,所述N组元数据管理节点包括所述第一组元数据管理节点;
利用所述第一组元数据管理节点将所述挂载表的所述更新信息同步给其余N-1组元数据管理节点;
基于更新后的挂载表供客户端访问。
第二方面,本发明实施例提供了一种分布式存储***的管理方法,该方法应用于客户端,包括:
基于分布式存储***的N组元数据管理节点的地址信息,访问任一组元数据管理节点中的更新后的挂载表;
基于访问到的所述更新后的挂载表对所述分布式存储***执行访问操作。
第三方面,本发明实施例提供了一种分布式存储***的管理装置,该装置包括:
接收单元,用于通过第一组元数据管理节点接收挂载表的更新信息,所述挂载表用于提供与N组元数据管理节点对应的映射关系;其中,所述N组元数据管理节点包括所述第一组元数据管理节点;
同步单元,用于利用所述第一组元数据管理节点将所述挂载表的所述更新信息同步给其余N-1组元数据管理节点;
提供单元,用于基于更新后的挂载表供客户端访问。
第四方面,本发明实施例提供了一种分布式存储***的管理装置,该装置应用于客户端,包括:
第一访问单元,用于基于分布式存储***的N组元数据管理节点的地址信息,访问任一组元数据管理节点中的更新后的挂载表;
操作单元,用于基于访问到的所述更新后的挂载表对所述分布式存储***执行访问操作。
第五方面,本发明实施例提供了一种分布式存储***,该***包括:
N组元数据管理节点,其中,第一组管理元数据管理节点,用于接收挂载表的更新信息,将所述挂载表的所述更新信息同步给其余N-1组元数据管理节点;所述挂载表用于提供与N组元数据管理节点对应的映射关系;
所述客户端,用于访问所述更新后的挂载表。
第六方面,本发明实施例提供了一种计算机可读存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行第一方面中任意一项所述的分布式存储***的管理方法,或,执行第二方面中任意一项所述的分布式存储***的管理方法。
第七方面,本发明实施例提供了一种存储管理设备,该存储管理设备包括存储器,用于存储程序;处理器,耦合至所述存储器,用于运行所述程序以执行如第一方面中任意一项所述的分布式存储***的管理方法,或,执行第二方面中任意一项所述的分布式存储***的管理方法。
本发明实施例提供了一种分布式存储***的管理方法及装置。在本方案中客户端使用的挂载表与分布式存储***中的挂载表的同步不需要人工干预,且在同步时也不需借助外部服务来维护挂载表,基于更新后的挂载表供客户端访问。由于客户端是直接到元数据管理节点中访问新版挂载表,因此本发明提供的方案可以提高客户端使用的挂载表与分布式存储***中的挂载表一致性。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本发明一个实施例提供的一种分布式存储***的管理方法的流程图;
图2A示出了本发明另一个实施例提供的一种分布式存储***的管理方法的流程图;
图2B示出了本发明另一个实施例提供的一种分布式存储***的管理方法的流程图;
图3示出了本发明又一个实施例提供的一种分布式存储***的管理方法的流程图;
图4示出了本发明又一个实施例提供的一种分布式存储***的管理方法的流程图;
图5示出了本发明一个实施例提供的一种分布式存储***的管理装置的结构示意图;
图6示出了本发明另一个实施例提供的一种分布式存储***的管理装置的结构示意图;
图7示出了本发明又一个实施例提供的一种分布式存储***的管理装置的结构示意图;
图8示出了本发明又一个实施例提供的一种分布式存储***的管理装置的结构示意图;
图9示出了本发明一个实施例提供的一种分布式存储***的结构示意图;
图10示出了本发明一个实施例提供的一种分布式存储***的结构示意图。
具体实施方式
下面将参照附图更加详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
如图1所示,本发明实施例提供了一种分布式存储***的管理方法,该方法包括:
101、通过第一组元数据管理节点接收挂载表的更新信息,所述挂载表用于提供与N组元数据管理节点对应的映射关系;其中,所述N组元数据管理节点包括所述第一组元数据管理节点。
102、利用所述第一组元数据管理节点将所述挂载表的所述更新信息同步给其余N-1组元数据管理节点。
103、基于更新后的挂载表供客户端访问。
根据图1所示的实施例,在本发明实施例中客户端使用的挂载表与分布式存储***中的挂载表的同步不需要人工干预,且在同步时也不需借助外部服务来维护挂载表,基于更新后的挂载表供客户端访问。由于客户端是直接到元数据管理节点中访问新版挂载表,因此本发明实施例提供的方案可以提高客户端使用的挂载表与分布式存储***中的挂载表一致性。
在本发明一个实施例中,分布式存储***中的挂载表是记录从目录到元数据管理节点的映射关系。在映射关系中,一个目录或多个目录对应一组元数据管理节点。可选的,目录可以包括但不限于存储在卷中的数据存储路径。举例说明:挂载表中存在目录“/dir/path/dir1/fileA”与A组元数据管理节点的映射关系。
在本发明一个实施例中,分布式存储***中存在N组元数据管理节点,该N为大于等于1的整数。N组元数据管理节点中存在第一组元数据管理节点,该第一组元数据管理节点作为默认节点负责接收挂载表的更新信息。需要说明的是可以通过如下规则从N组元数据管理节点中选取第一组元数据管理节点:第一种,随机选取任意一组元数据管理节点为第一组元数据管理节点。第二种,选取负载最小的一组元数据管理节点作为第一组元数据管理节点,以便该组元数据管理节点可以快速的对更新信息进行处理。
在本发明一个实施例中,上述图1所示流程图中步骤101所涉及的通过第一组元数据管理节点接收挂载表的更新信息可以包括:通过第一组元数据管理节点获取携带有待更新的映射关系的更新请求; 查询分布式存储***的当前最新的挂载表,确定所述待更新的映射关系对应的更新位置信息;基于更新位置信息以及所述待更新的映射关系得到所述更新信息。其中,所述更新信息用于更新挂载表。
具体的,获取携带有待更新的映射关系的更新请求的过程至少可以包括:以设定的周期查询预设的指定文件中是否存在待更新的映射关系;若存在,则获取更新请求,该更新请求中携带有待更新的映射关系。可见由于在查询到指定文件中存在待更新的映射关系时便自动获取更新请求,因此可以基于指定文件自动对挂载表进行动态更新。这里所述的指定文件可以为存储在指定位置上的文件,该指定位置可以为nuwa和fuxi等管理服务平台。
在本实施例中,待更新的映射关系可以包括但不限于删减目录与元数据管理节点的映射关系、修改目录与元数据管理节点的映射关系、新增目录与元数据管理节点的映射关系中的至少一种。挂载表中记录有目录到元数据管理节点的映射关系。
在更新请求中携带有删减目录与元数据管理节点的映射关系时,查询分布式存储***的当前最新版的挂载表,将挂载表中与删减目录与元数据管理节点的映射关系相同的映射关系确定为目标映射关系,并将目标映射关系的记录位置确定为删减目录与元数据管理节点的映射关系对应的更新位置信息。则得到的更新信息中包括有目录与元数据管理节点的映射关系、与更新位置信息的对应关系。
在更新请求中携带有修改目录与元数据管理节点的映射关系时,查询分布式存储***的当前最新版的挂载表,将挂载表中与修改目录与元数据管理节点的映射关系相同的映射关系确定为目标映射关系,并将目标映射关系的记录位置确定为修改目录与元数据管理节点的映射关系对应的更新位置信息。则得到的更新信息中包括有修改目录与元数据管理节点的映射关系,与更新位置信息的对应关系。
在更新请求中携带有新增目录与元数据管理节点的映射关系时,查询分布式存储***的当前最新版的挂载表时,确定新增目录与元数据管理节点的映射关系在挂载表中的记录位置,并将确定的记录位置确定为新增目录与元数据管理节点的映射关系对应的更新位置信息。得到的更新信息中包括有新增目录与元数据管理节点的映射关系,与更新位置信息的对应关系。需要说明的是可以依据如下添加规则确定新增目录与元数据管理节点的映射关系在挂载表中的记录位置:第一种,将分布式存储***的当前最新版的挂载表的最后一个映射关系后面的位置确定为记录位置。第二种,将分布式存储***的当前最新版的挂载表中的任意一个位置确定为记录位置。
在本实施例中,在确定出更新信息的同时或之后,第一组元数据管理节点基于更新信息对自身中的挂载表进行更新。挂载表的更新过程可以包括如下三种:
一,更新信息中包括有目录与元数据管理节点的映射关系、与更新位置信息的对应关系。则查询当前最新版的挂载表中确定与更新位置信息对应的记录位置,并将该记录位置中与删减目录与元数据管理节点的映射关系相同的映射关系删除。
二,更新请求中包括有修改目录与元数据管理节点的映射关系、与更新位置信息的对应关系。则查询当前最新版的挂载表确定与更新位置信息对应的记录位置,并将该记录位置上的映射关系修改为修改目录与元数据管理节点的映射关系。
三、更新信息中包括有新增目录与元数据管理节点的映射关系,与更新位置信息的对应关系,则查询当前最新版的挂载表中确定与更新位置信息对应的记录位置,并在该记录位置上添加新增目录与元数据管理节点的映射关系。
需要注意的是,在执行更新操作时需要生成更新日志,以便根据日志了解到对挂载表执行了哪些操作。
需要说明的是,一组元数据管理节点可以存在如下两种形式:第一种,一组元数据管理节点中仅有一个节点;第二种,一组元数据管理节点存在主节点和至少一个备用节点。主节点是元数据管理节点中主要执行操作工作的节点,而备用节点是在主节点负载不够或不能及时执行处理操作时,负责分担主节点工作的节点。由于主节点和备节点在一定时刻均需要执行工作,因此主节点和备用节点中均存在挂载表。该种型式的元数据管理节点中存在冗余的子节点,因此在主节点异常或损坏或负载较大时可以利用备用节点处理事务,可见该种型式的元数据管理节点灾备效果较好,可以保证元数据管理节点的持续运行。
具体的,在第一组元数据管理节点仅为一个节点时,该节点就为该组的主节点,则直接通过仅有的该主节点来接收挂载的更新信息。且更新信息接收方法以及基于更新信息更新挂载表的方法与上述的方法相同,因此这里将不再赘述。
具体的,在第一组元数据管理节点包括主节点和至少一个备用节点时,则上述图1所示流程图中步骤101所涉及到通过第一组元数据管理节点接收挂载表的更新信息可以包括:通过所述第一组元数据管理节点的主节点接收所述挂载表的所述更新信息;通过所述第一组元数据管理节点的主节点将所述更新信息同步给所述第一组元数据管理节点的备用节点。由于主节点和备节点在一定时刻均需要执行工作,因此在主节点接收到挂载表的更新信息时,需要将该更新信息同步给备用节点,以便备用节点中的挂载表可以与主节点中的挂载表同步更新。具体的,主节点接收挂载表的更新信息的方法以及基于更新信息更新挂载表的方法与上述的方法相同因此这里将不再赘述。具体的,通过第一组元数据管理节点的主节点将更新信息同步给第一组元数据管理节点的备用节点的过程至少包括如下两种:第一种,将将主节点中更新后的挂载表直接同步到备用节点中。第二种,仅将更新信息同步到备用节点,然后在备用节点中基于更新信息更新挂载表。备用节点基于更新信息更新挂载表的方法与上述的方法相同因此这里将不再赘述。
在本发明一个实施例中,上述图1所示流程图中步骤102利用所述第一组元数据管理节点将所述挂载表的所述更新信息同步给其余N-1组元数据管理节点至少可以包括如下两种情况:
第一种,在N-1组元数据管理节点仅为一个节点时,则利用第一组元数据管理节点将挂载表的更新信息同步给其余N-1组元数据管理节点即可。
第二种,在N-1组元数据管理节点包括主节点和备用节点时,则利用所述第一组元数据管理节点的主节点将所述更新信息同步给其余N-1组元数据管理节点的主节点;通过所述N-1组元数据管理节点各自的主节点将所述更新信息同步给所述N-1组元数据管理节点其各自的备用节点。
具体的,通过所述N-1组元数据管理节点各自的主节点将所述更新信息同步给所述N-1组元数据管理节点其各自的备用节点的过程可以包括:
第一种,利用所述第一组元数据管理节点的主节点将所述更新信息同步给其余N-1组元数据管理节点的主节点;通过所述N-1组元数据管理节点各自的主节点将所述更新信息同步给所述N-1组元数据管理节点其各自的备用节点。
第二种,确定所述其余N-1组元数据管理节点的排序;利用所述第一组元数据管理节点的主节点将所述更新信息同步给排序位于第一位的元数据管理节点的主节点; 基于所述更新排序,利用排序位于上一位的元数据管理节点的主节点将所述更新信息同步给排序位于下一位的元数据管理节点的主节点;通过所述N-1组元数据管理节点各自的主节点将所述更新信息同步给所述N-1组元数据管理节点其各自的备用节点。
具体的,确定N-1组元数据管理节点的排序的方法可以包括但不限于:一、按照N-1组元数据管理节点的现有编号进行排序。二、按照N-1组元数据管理节点的重要程度进行排序。
需要说明的是,由于每一个组的元数据管理节点的更新信息均由其排序位于上一位的源数据管理节点同步的,因此各组元数据管理节点之间的数据交互量较少。
在本发明一个实施例中,该方法还包括:获取更新前的挂载表的识别信息;基于所述挂载表的所述更新信息,确定更新后的挂载表识别信息;所述识别信息包括版本号,和/或,通用唯一识别码。
具体的,举例说明:更新前的挂载表的挂载表识别信息为:0001,则更新后的挂载表的挂载表识别信息为0002。该版本号挂载表识别信息维护规则需要通知到客户端,以便客户端可以根据该挂载表识别信息维护规则正确的识别出最新的挂载表。
在本发明一个实施例中,为了保证分布式存储***中的各组的元数据管理节点中均能存在更新后的挂载表,保证各组元数据管理节点的一致性,该方法还可以包括如下步骤:
校验每一组元数据管理节点中的最新的挂载表是否均为更新后的挂载表;若是,则确定挂载表更新完成。
在本实施例中,更新挂载表的方法为可以包括但不限于如下两种:第一种,删除已存在的挂载表,将最新版挂载表直接存储在元数据管理节点中。第二种,为新版挂载表生成挂载表标识信息,并将新版挂载表存储在元数据管理节点中。其中,生成的挂载表标识信息具有唯一性。第二种过程中保留了之前的旧版挂载表,方便后续的查找及比对。
在本实施例中,校验每一组元数据管理节点中的最新的挂载表是否均为更新后的挂载表,只有在各组元数据管理节点中的最新的挂载表均为更新后的挂载表时,才确定更新后的挂载表同步完成。否则,将更新后的挂载表继续更新到不存在更新后的挂载表的元数据管理节点中,直到全部的元数据管理节点中均存在更新后的挂载表为止。从而保证各组元数据管理节点中最新的挂载表的一致性。
在本发明一个实施例中,该方法还包括:利用所述第一组元数据管理节点监测分布式存储***是否存在新增M组元数据管理节点;若存在,利用所述第一组元数据管理节点将所述挂载表的所述更新信息同步给所述M组元数据管理节点。
在本实施例中,分布式存储***在业务有需求时会存在新增的元数据管理节点,因此为了保证分布式存储***中挂载表的一致性,需要保证新增的元数据管理节点中存在最新的挂载表,以便客户端可以基于挂载表访问到新增的元数据管理节点中的数据。因此需要利用第一组元数据管理节点监测分布式存储***是否存在新增M组元数据管理节点,以便及时同步更新新增M组元数据管理节点中的挂载表。
具体的,为了使得客户端也能够从新增M组元数据管理节点中访问到更新后的挂载表,因此也需要对M组元数据管理节点的地址信息进行维护。维护方法与N组元数据管理节点的地址信息的维护方法相同。
在本发明一个实施例中,在上述图1所示流程图中步骤103可以包括:维护所述N组元数据管理节点的地址信息供客户端访问更新后的挂载表。
具体的,将所述N组元数据管理节点的地址信息上传至预设地址存储位置,以使所述客户端基于所述地址存储位置的所述地址信息从任一组元数据管理节点访问所述更新后的挂载表。
具体的,将N组元数据管理节点的地址信息上传至预设地址存储位置的方法至少包括如下两种:
第一种,将N组元数据管理节点的地址信息均上传至地址存储位置。由于N组元数据管理节点的地址信息均上传至地址存储位置,因此可以增大客户端选取目标地址信息的选择范围。
第二种,将N组元数据管理节点中的K组元数据管理节点的地址信息上传至地址存储位置,K为大于等于1的整数。由于仅将部分元数据管理节点的地址上传至地址存储位置,因此上传的数据量较小,可以提高上传的速度。
在本实施例中,地址存储位置可以根据业务要求确定。可选地,地址存储位置为客户端可访问到的服务器,或,客户端可访问到的nuwa和fuxi等管理服务平台。
在本发明一个实施例中,该方法还包括:若接收到所述客户端的访问请求,则对所述访问请求所携带的挂载表识别信息进行校验;若校验不通过,通知所述客户端更新挂载表;否则,通知所述客户端访问分布式存储***。
在本实施例中,访问请求所携带的挂载表识别信息为客户端中已存在的最新挂载表的识别信息,该挂载表识别信息的具体型式可以根据业务要求确定。可选地,该挂载表识别信息可以包括但不限于挂载表的版本号,和/或,UUID(Universally UniqueIdentifier,通用唯一识别码)、名称。同样的,更新后的挂载表的挂载表识别信息也可以包括但不限于挂载表的版本号,和/或,UUID(Universally Unique Identifier,通用唯一识别码)、名称。
在本实施例中,对访问请求所携带的挂载表识别信息进行校验的过程至少可以包括如下几种:第一种,验证所述挂载表识别信息的格式是否正确或完整,若正确或完整,则确定校验不通过;否则,确定校验通过。第二种,校验访问请求所携带的挂载表识别信息与更新后的挂载表的挂载表识别信息是否一致;若不一致,确定校验不通过;否则,确定校验通过。
具体的,针对上述的第二种方法,在校验访问请求所携带的挂载表识别信息与更新后的挂载表的挂载表识别信息不一致时,说明客户端中的最新挂载表已经不是最新的挂载表,需要客户端将分布式存储***中的新版挂载表同步到其自身中。此时通知客户端更新挂载表,通知的方式可以为向客户端发送更新通知,以通知客户端其需要更新挂载表。更新通知的具体型式需要与客户端约定好,以便客户端在接收到更新通知时可以识别出更新通知,并可以根据更新通知执行相应的挂载表更新操作即可。可选地,更新通知可以包括但不限于设定的字符或字符串。在校验访问请求所携带的挂载表识别信息与更新后的挂载表的挂载表识别信息一致时,说明客户端中的最新挂载表就是最新的挂载表,此时客户端根据其已存在的挂载表便可以在分布式存储***内访问到其需要访问的内容,且在访问时出现访问错误的概率较低。此时通知客户端访问分布式存储***,通知的方式可以为向客户端发送访问通知,以通知客户端利用其已存在的最新挂载表对分布式存储***执行访问操作。访问通知的具体型式可以根据业务要求确定,只要客户端接收到访问通知时可以识别出访问通知,并执行相应的分布式存储***的访问操作即可。可选地,访问通知可以包括但不限于设定的字符或字符串。
需要说明的是,只有在客户端中的最新挂载表的挂载表识别信息与更新后的挂载表的挂载表识别信息不一致时才通知客户端更新挂载表,因此可以减少客户端不必要的更新操作。
在本发明一个实施例中,该方法还包括:若任一组元数据管理节点接收到客户端的访问,则检测所述任一组元数据管理节点的主节点当前是否可以提供所述更新后的挂载表供所述客户端访问; 若不可以,则利用所述任一组元数据管理节点的备用节点提供所述更新后的挂载表供所述客户端访问。
具体的,在客户端需要更新挂载表时,客户端会基于N组元数据管理节点的地址信息访问任一组元数据管理节点来获取更新后的挂载表。
具体的,检测被访问的元数据管理节点的主节点当前是否可以提供更新后的挂载表供客户端访问的方法为:判被访问的元数据管理节点的主节点的当前负载是否达到预设的负载阈值;在判断主节点的当前负载达到预设的负载阈值时,说明主节点的负载较大,如果利用主节点提供更新后的挂载表供客户端访问,会进一步加大主节点的负载,在一定程度上可能会影响主节点的运行,严重的会造成主节点的损伤。因此为降低主节点的工作压力在主节点的当前负载达到预设的负载阈值时,需要利用备用节点提供更新后的挂载表供客户端访问。在判断主节点的当前负载未达到预设的负载阈值时,说明主节点的负载正常,则利用主节点提供更新后的挂载表供客户端访问。
在本实施例中,利用备用节点提供更新后的挂载表供客户端访问的过程至少可以包括如下两种:第一种,在备用节点中随机选取一个目标备用子节点提供更新后的挂载表供客户端访问。第二种,选取备用节点中当前负载最小的备用节点提供更新后的挂载表供客户端访问。
需要说明的是,在利用元数据管理节点提供更新后的挂载表供客户端访问之前,该方法还可以包括如下步骤:
验证客户端是否合法;若合法时,利用元数据管理节点提供更新后的挂载表供客户端访问;否则,报警。
在本实施例中,验证客户端是否合法的过程可以包括但不限于:验证客户端的标识以及客户端的验证码是否合法;如果是,则验证客户端合法。由于对客户端进行了验证,因此降低了新版挂载表被恶意获取的概率,从而提高了安全性。
在本实施例中,报警的具体型式可以根据业务要求确定。报警可以包括但不限于将客户端写入到黑名单内。
基于上述的实施例中的叙述,上述方法的实施例可以根据业务需要自由组合,组合成新的实施例。下面以图2A所示的流程图为例对分布式存储***的管理进行说明,该方法包括:
201、通过第一组元数据管理节点的主节点获取携带有待更新的映射关系的更新请求;所述挂载表用于提供与N组元数据管理节点对应的映射关系;其中,所述N组元数据管理节点包括所述第一组元数据管理节点。
202、查询分布式存储***的当前最新的挂载表,确定所述待更新的映射关系对应的更新位置信息。
203、基于更新位置信息以及所述待更新的映射关系得到所述更新信息。
204、通过所述第一组元数据管理节点的主节点将所述更新信息同步给所述第一组元数据管理节点的备用节点。
205、利用所述第一组元数据管理节点的主节点将所述更新信息同步给其余N-1组元数据管理节点的主节点。
206、确定所述其余N-1组元数据管理节点的排序。
207、利用所述第一组元数据管理节点的主节点将所述更新信息同步给排序位于第一位的元数据管理节点的主节点。
208、基于所述更新排序,利用排序位于上一位的元数据管理节点的主节点将所述更新信息同步给排序位于下一位的元数据管理节点的主节点。
209、利用所述第一组元数据管理节点监测分布式存储***是否存在新增M组元数据管理节点,若存在,执行211;否则,执行210。
210、将所述N组元数据管理节点的地址信息上传至预设地址存储位置,以使所述客户端基于所述地址存储位置的所述地址信息访问所述更新后的挂载表。
211、利用所述第一组元数据管理节点将所述挂载表的所述更新信息同步给所述M组元数据管理节点。
212、将所述N+M组元数据管理节点的地址信息上传至预设地址存储位置,以使所述客户端基于所述地址存储位置的所述地址信息访问所述更新后的挂载表。
进一步的,基于上述图1和图2A的实施例,该方法还可以包括如图2B所述的步骤:
213、若接收到所述客户端的访问请求,校验所述访问请求所携带的挂载表识别信息与所述更新后的挂载表的挂载表识别信息是否一致;若不一致,执行214;否则,执行215。
214、确定校验不通过,通知所述客户端更新挂载表,执行216。
215、确定校验通过、通知所述客户端访问分布式存储***,并结束当前流程。
216、若任一组元数据管理节点接收到客户端的访问,则检测所述任一组元数据管理节点的主节点当前是否可以提供更新后的挂载表供所述客户端访问;若不可以,执行217;否则,执行218。
217、利用所述任一组元数据管理节点的备用节点提供更新后的挂载表供所述客户端访问。
218、利用所述任一组元数据管理节点的主节点提供更新后的挂载表供所述客户端访问。
如图3所示,本发明实施例提供了一种分布式存储***的管理,该方法应用为客户端,该方法包括:
301、基于分布式存储***的N组元数据管理节点的地址信息,访问任一组元数据管理节点中的更新后的挂载表。
302、基于访问到的所述更新后的挂载表对所述分布式存储***执行访问操作。
根据图3所示的实施例,在本发明实施例中由于客户端是根据元数据管理节点的地址信息直接到元数据管理节点中访问更新后的挂载表的,因此本发明实施例提供的方案可以提高客户端使用的挂载表与分布式存储***中的挂载表一致性。
在本发明一个实施例中,上述图3所示的流程图中的步骤301基于分布式存储***的N组元数据管理节点的地址信息,访问任一组元数据管理节点中的更新后的挂载表,可以包括:访问所述任一组元数据管理节点的主节点,若所述主节点接受访问,则访问所述主节点中的所述更新后的挂载表;若所述主节点拒绝访问,则访问所述任一组元数据管理节点的备用节点中的所述更新后的挂载表。
本实施例中,根据预设的口令访问地址存储位置,只有口令正确时才能读取到地址存储位置中选取的地址信息。由于是根据口令选取的地址信息,因此可以防止地址存储位置被恶意方访问,从而降低地址存储位置中存储的地址信息被恶意方获取的概率。
在本实施例中,从N组元数据管理节点的地址信息中选取地址信息的选取规则可以包括但不限于如下三种:第一种,从N组元数据管理节点的地址信息中随机选取一个地址信息。第二种,从N组元数据管理节点的地址信息中选取排序位于第一位的地址信息。第三种,分别确定每一个地址信息在设定时长内被选取的次数,选取次数最多或最少或居中的地址信息。如果次数最多或最少或居中的元数据管理节点的地址为多个时,则在该多个地址信息中随机选取一个地址信息。通过上述的选取规则可以选取出满足要求的地址信息。
需要说明的是,在基于基于分布式存储***的N组元数据管理节点的地址信息,访问任一组元数据管理节点中的更新后的挂载表之前,该方法还可以包括:向所述分布式存储***发送访问请求;所述访问请求携带有所述客户端当前最新版挂载表的识别信息;若接收到更新通知,则执行所述基于分布式存储***的N组元数据管理节点的地址信息,访问任一组元数据管理节点中的更新后的挂载表;所述更新通知是所述分布式存储***校核所述访问请求携带的识别信息不通过时反馈的;若接收到访问通知,则基于所述当前最新版挂载表访问所述分布式存储***;所述访问通知是所述分布式存储***校核所述访问请求携带的识别信息通过时反馈的。
具体的,向分布式存储***发送访问请求的目的是为了验证客户端已存在的最新挂载表是否与分布式存储***中的更新后的挂载表一致,以避免客户端利用旧版挂载表访问分布式存储***的情况,从而降低出现客户端访问不到数据或访问到不满足访问需求的数据的概率。
具体的,向所述分布式存储***发送访问请求,该访问请求中携带有客户端当前最新版挂载表的识别信息,以使分布式存储***判断当前最新版挂载表的识别信息与分布式存储***中的更新后的挂载表的识别信息是否一致,并在判断出不一致时发送向客户端更新通知,由于只有在接收到针对访问请求的更新通知时客户端的挂载表才进行更新,因此可以减少客户端不必要的更新操作。
另外,在向所述分布式存储***发送访问请求之前,该方法还包括:若成功加载到所述当前最新版挂载表,则利用所述当前最新版挂载表的识别信息生成所述访问请求。
具体的,在检测到客户端中存在挂载表时,则加载客户端已存在的当前最新版挂载表。若在设定的时长内加载到当前最新版挂载表,则说明当前最新版挂载表可用,则利用当前最新版挂载表的识别信息生成访问请求,以便分布式存储***验证客户端中的当前最新版挂载表是否为分布式存储***内的更新后的挂载表。
具体的,在检测客户端中不存在挂载表时,说明客户端并没有访问分布式存储***的依据,也就是客户端不能对分布式存储***进行访问操作。此时,需要根据地址存储位置中存储的N组元数据管理节点的地址信息,读取任一组元数据管理节点中的更新后的挂载表,以获取挂载表,并根据获取的挂载表对分布式存储***进行访问操作。
具体的,在检测到客户端中存在挂载表时,但是在设定的时长内并未成功加载到已存在的当前最新版挂载表,则说明当前最新版挂载表存在异常,当前最新版挂载表可用的概率较低。此时为了客户端对分布式存储***进行访问操作,需要根据地址存储位置中存储的N组元数据管理节点的地址信息,读取任一组元数据管理节点中的更新后的挂载表,以获取挂载表,并根据获取的挂载表对分布式存储***进行访问操作。
在本发明一个实施例中,在上述图3所示流程图中的步骤302所述基于访问到的所述更新后的挂载表对所述分布式存储***执行访问操作之前,该方法至少还存在如下三种过程:
第一种, 删除客户端已存在的当前最新版挂载表,然后将访问到的挂载表直接存储在指定位置。
本种过程中客户端的指定位置仅存在最新新版挂载表,因此加载挂载表时可以准确,可以快速的加载到最新的挂载表。
第二种,为访问到的更新后的挂载表生成新的识别信息,并将更新后的挂载表存储在指定位置;其中,生成的新的识别信息具有唯一性。
本种过程中将获取的挂载表存储在指定位置上时,之前已存在的挂载表也将同时存储在指定位置。可以利用识别信息对挂载表的新旧进行区分。由于对新旧版的挂载表均进行了存储,因此在最新版的挂载表出现异常时,可以利用次新版的挂载表执行相应的访问操作或发送访问请求。另外,新旧版的挂载表均存储时,可以根据新旧版的差别及时了解到新版挂载表的更新内容。
第三种,将访问到的所述更新后的挂载表写入具有第一文件名的设定文件;删除所述客户端中已存在的最新版挂载表,保留所述已存在的最新版挂载表对应的第二文件名;建立所述第一文件名和所述第二文件名的硬链接;删除所述第一文件名,存储具有所述第二文件名的新版挂载表。
具体的,设定文件可以是在指定位置中预先存储的,也可以是在开始访问更新后的挂载表时生成的。设定文件的文件格式可以根据业务要求确定。可选地,设定文件为TXT文件或XML文件。指定位置可以根据业务要求确定。可选地,指定位置位于客户端的存储硬件中。
具体的,举例说明:客户端已存在最新挂载表“文件B”,文件B的文件名为“B”。将更新后的挂载表写入到设定文件“文件A”中,文件A的文件名为“A”。然后删除文件B,保留文件B的文件名为“B”。建立文件名 “A”与文件名 “B”的硬链接,删除文件名 “A”,得到具有文件名“B”的文件A,从完成挂载表的更新。
需要说明的是,在将获取的更新后的挂载表更新到指定位置时,采用硬链接的方式进行更新,因此,降低更新到指定位置的新版挂载表被误删除的概率。
基于上述的实施例中的叙述,上述方法的实施例可以根据业务需要自由组合,组合成新的实施例。下面以图4所示的流程图为例对挂载表的更新方法进行说明,该方法包括:
401、检测所述客户端是否存在挂载表;若存在,执行402。
402、在设定的时长内加载客户端内当前最新版挂载表,若加载成功则利用所述当前最新版挂载表的挂载表识别信息生成所述访问请求。
403、向所述分布式存储***发送访问请求;所述访问请求携带有所述客户端当前最新版挂载表的挂载表识别信息,并执行404以及408。
404、若接收到更新通知,则执行所述基于分布式存储***的N组元数据管理节点的地址信息,访问任一组元数据管理节点中的更新后的挂载表;所述更新通知是所述分布式存储***校核所述访问请求携带的识别信息不通过时反馈的,并执行405以及406。
405、访问所述任一组元数据管理节点的主节点,若所述主节点接受访问,则访问所述主节点中的所述更新后的挂载表,并执行407。
406、若所述主节点拒绝访问,则访问所述任一组元数据管理节点的备用节点中的所述更新后的挂载表。
407、将访问到的更新后的挂载表更新到指定位置,并结束当前流程。
408、若接收到访问通知,则基于所述当前最新版挂载表访问所述分布式存储***;所述访问通知是所述分布式存储***校核所述访问请求携带的识别信息通过时反馈的。
如图5所示,本发明实施例提供了一种分布式存储***的管理装置,该装置应用于分布式存储***,包括:
接收单元501,用于通过第一组元数据管理节点接收挂载表的更新信息,所述挂载表用于提供与N组元数据管理节点对应的映射关系;其中,所述N组元数据管理节点包括所述第一组元数据管理节点;
同步单元502,用于利用所述第一组元数据管理节点将所述挂载表的所述更新信息同步给其余N-1组元数据管理节点;
提供单元503,用于基于更新后的挂载表供客户端访问。
根据图5所示的实施例,在本发明实施例中客户端使用的挂载表与分布式存储***中的挂载表的同步不需要人工干预,且在同步时也不需借助外部服务来维护挂载表,基于更新后的挂载表供客户端访问。可见客户端是直接到元数据管理节点中访问新版挂载表,因此本发明实施例提供的方案可以提高客户端使用的挂载表与分布式存储***中的挂载表一致性。
进一步的,如图6所示,该装置还包括:
所述同步单元502,还用于若所述第一组元数据管理节点监测所述分布式存储***存在新增M组元数据管理节点,则利用所述第一组元数据管理节点将所述挂载表的所述更新信息同步给所述M组元数据管理节点。
进一步的,如图6所示,接收单元501包括:
接收模块5011,用于通过所述第一组元数据管理节点的主节点接收所述挂载表的所述更新信息;
第一同步模块5012,用于通过所述第一组元数据管理节点的主节点将所述更新信息同步给所述第一组元数据管理节点的备用节点。
进一步的,如图6所示,所述同步单元502包括:
第二同步模块5021,用于利用所述第一组元数据管理节点的主节点将所述更新信息同步给其余N-1组元数据管理节点的主节点;
第三同步模块5022,用于通过所述N-1组元数据管理节点各自的主节点将所述更新信息同步给所述N-1组元数据管理节点其各自的备用节点。
进一步的,如图6所示,所述同步单元502包括:
所述第四同步模块5023,用于确定所述其余N-1组元数据管理节点的排序;利用所述第一组元数据管理节点的主节点将所述更新信息同步给排序位于第一位的元数据管理节点的主节点; 基于所述更新排序,利用排序位于上一位的元数据管理节点的主节点将所述更新信息同步给排序位于下一位的元数据管理节点的主节点;通过所述N-1组元数据管理节点各自的主节点将所述更新信息同步给所述N-1组元数据管理节点其各自的备用节点。
进一步的,如图6所示,该装置还包括:
第一检测单元505,用于若任一组元数据管理节点接收到客户端的访问,则检测所述任一组元数据管理节点的主节点当前是否可以提供所述更新后的挂载表供所述客户端访问;若不可以,触发提供单元506;
所述提供单元506,用于在所述第一检测单元505的触发下,则利用所述任一组元数据管理节点的备用节点提供所述更新后的挂载表供所述客户端访问。
进一步的,如图6所示,该装置还包括:
获取单元507,用于获取更新前的挂载表的识别信息;
确定单元508,用于基于所述挂载表的所述更新信息,确定更新后的挂载表识别信息;所述识别信息包括版本号,和/或,通用唯一识别码。
进一步的,如图6所示,所述接收单元501包括:
获取模块5013,用于通过第一组元数据管理节点获取携带有待更新的映射关系的更新请求;
查询模块5014,用于查询分布式存储***的当前最新的挂载表,确定所述待更新的映射关系对应的更新位置信息;
处理模块5015,用于基于更新位置信息以及所述待更新的映射关系得到所述更新信息。
进一步的,如图6所示,所述提供单元503,用于维护所述N组元数据管理节点的地址信息供客户端访问更新后的挂载表。
进一步的,如图6所示,所述提供单元503,用于将所述N组元数据管理节点的地址信息上传至预设地址存储位置,以使所述客户端基于所述地址存储位置的所述地址信息从任一组元数据管理节点访问所述更新后的挂载表。
进一步的,如图6所示,该装置还包括:
校验单元509,用于若接收到所述客户端的访问请求,则对所述访问请求所携带的挂载表识别信息进行校验;若校验不通过,触发通知单元510通知所述客户端更新挂载表;否则,触发通知单元510通知所述客户端访问分布式存储***。
进一步的,如图6所示,所述校验单元509,用于校验所述访问请求所携带的挂载表识别信息与所述更新后的挂载表的挂载表识别信息是否一致;若不一致,确定校验不通过;否则,确定校验通过。
上述装置内的各模块之间的信息交互、执行过程等内容,由于与本发明应用于分布式存储***的分布式存储***的管理方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。基于上述的实施例中的叙述,上述装置的实施例可以根据业务需要自由组合,组合成新的实施例。
如图7所示,本发明实施例提供了一种分布式存储***的管理装置,应用于客户端,该装置包括:
第一访问单元601,用于基于分布式存储***的N组元数据管理节点的地址信息,访问任一组元数据管理节点中的更新后的挂载表;
操作单元602,用于基于访问到的所述更新后的挂载表对所述分布式存储***执行访问操作。
根据图7所示的实施例,客户端使用的挂载表与分布式存储***中的挂载表的同步不需要人工干预,且在同步时也不需借助外部服务来维护挂载表,基于维护的N组元数据管理节点的地址信息客户端便可以访问到更新后的挂载表。可见客户端是直接到元数据管理节点中访问新版挂载表,因此本发明实施例提供的方案可以提高客户端使用的挂载表与分布式存储***中的挂载表一致性
进一步的,如图8所示,所述第一访问单元601,用于访问所述任一组元数据管理节点的主节点,若所述主节点接受访问,则访问所述主节点中的所述更新后的挂载表;若所述主节点拒绝访问,则访问所述任一组元数据管理节点的备用节点中的所述更新后的挂载表。
进一步的,如图8所示,该装置还包括:
发送单元603,用于向所述分布式存储***发送访问请求;所述访问请求携带有所述客户端当前最新版挂载表的识别信息;
则第一访问单元601,用于若接收到更新通知,则执行所述基于分布式存储***的N组元数据管理节点的地址信息,访问任一组元数据管理节点中的更新后的挂载表;所述更新通知是所述分布式存储***校核所述访问请求携带的识别信息不通过时反馈的;
第二访问单元604,用于若接收到访问通知,则基于所述当前最新版挂载表访问所述分布式存储***;所述访问通知是所述分布式存储***校核所述访问请求携带的识别信息通过时反馈的。
进一步的,如图8所示,该装置还包括:
第二检测单元605,用于检测所述客户端是否存在挂载表;若存在,触发生成单元606;
所述生成单元606,用于在第二检测单元605的触发下,若成功加载到所述当前最新版挂载表,则利用所述当前最新版挂载表的识别信息生成所述访问请求。
进一步的,如图8所示,该装置还包括:更新单元607,用于将访问到的所述更新后的挂载表写入具有第一文件名的设定文件;删除所述客户端中已存在的最新版挂载表,保留所述已存在的最新版挂载表对应的第二文件名;建立所述第一文件名和所述第二文件名的硬链接;删除所述第一文件名,存储具有所述第二文件名的新版挂载表。
上述装置内的各模块之间的信息交互、执行过程等内容,由于与本发明应用于客户端的分布式存储***的管理方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。基于上述的实施例中的叙述,上述装置的实施例可以根据业务需要自由组合,组合成新的实施例。
如图9所示,本发明实施例提供了一种分布式存储***,该***包括:
N组元数据管理节点901,其中,第一组管理元数据管理节点9011,用于接收挂载表的更新信息,将所述挂载表的所述更新信息同步给其余N-1组元数据管理节点9012;所述挂载表用于提供与N组元数据管理节点9012对应的映射关系;
所述客户端902,用于访问所述更新后的挂载表。
进一步的,如图10所示,所述第一组元数据管理节点9011,还用于若监测所述分布式存储***存在新增M组元数据管理节点,则将所述挂载表的所述更新信息同步给所述M组元数据管理节点。
进一步的,如图10所示,所述第一组元数据管理节点9011包括:主节点90111和备用节点90112;
所述主节点90111,用于接收所述挂载表的所述更新信息,将所述更新信息同步给所述备用节点90112;
所述备用节点90112,用于接收所述主节点90111同步的所述更新信息。
进一步的,如图10所示,所述第一组元数据管理节点9011的主节点90111,用于将所述更新信息同步给其余N-1组元数据管理节点9012的主节点90121;
所述N-1组元数据管理节点9012各自的主节点90121,用于将所述更新信息同步给所述N-1组元数据管理节点90121其各自的备用节点90122。
上述***内的各模块之间的信息交互、执行过程等内容,由于与本发明实施例分布式存储***的管理方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。基于上述的实施例中的叙述,上述装置的实施例可以根据业务需要自由组合,组合成新的实施例。
本发明实施例提供了一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行上述中任意一项应用于分布式存储***的所述的分布式存储***的管理方法,或,执行上述中任意一项应用于客户端的所述的分布式存储***的管理方法。
本发明实施例提供了一种存储管理设备,包括:存储器,用于存储程序;处理器,耦合至所述存储器,用于运行所述程序以执行上述中任意一项应用于分布式存储***的所述的分布式存储***的管理方法,或,执行上述中任意一项应用于客户端的所述的分布式存储***的管理方法。
上述装置内的各模块之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。基于上述的实施例中的叙述,上述装置的实施例可以根据业务需要自由组合,组合成新的实施例。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器 (CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存 (PRAM)、静态随机存取存储器 (SRAM)、动态随机存取存储器 (DRAM)、其他类型的随机存取存储器 (RAM)、只读存储器 (ROM)、电可擦除可编程只读存储器 (EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘 (DVD) 或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体 (transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、***或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
分布式存储***由于具有大容量、数据强一致性以及超强扩展能力等特性,因此应用的越来越广泛。
Claims (23)
1.一种分布式存储***的管理方法,其特征在于,该方法包括:
通过第一组元数据管理节点接收挂载表的更新信息,所述挂载表用于提供与N组元数据管理节点对应的映射关系;其中,所述N组元数据管理节点包括所述第一组元数据管理节点;
利用所述第一组元数据管理节点将所述挂载表的所述更新信息同步给其余N-1组元数据管理节点,包括:确定所述其余N-1组元数据管理节点的排序;利用所述第一组元数据管理节点的主节点将所述更新信息同步给排序位于第一位的元数据管理节点的主节点;基于更新排序,利用排序位于上一位的元数据管理节点的主节点将所述更新信息同步给排序位于下一位的元数据管理节点的主节点;通过所述N-1组元数据管理节点各自的主节点将所述更新信息同步给所述N-1组元数据管理节点其各自的备用节点;
基于更新后的挂载表供客户端访问。
2.根据权利要求1所述的方法,其特征在于,该方法还包括:
若所述第一组元数据管理节点监测所述分布式存储***存在新增M组元数据管理节点,则利用所述第一组元数据管理节点将所述挂载表的所述更新信息同步给所述M组元数据管理节点。
3.根据权利要求1所述的方法,其特征在于,所述通过第一组元数据管理节点接收挂载表的更新信息,包括:
通过所述第一组元数据管理节点的主节点接收所述挂载表的所述更新信息;
通过所述第一组元数据管理节点的主节点将所述更新信息同步给所述第一组元数据管理节点的备用节点。
4.根据权利要求1-3中任一所述的方法,其特征在于,该方法还包括:
若任一组元数据管理节点接收到客户端的访问,则检测所述任一组元数据管理节点的主节点当前是否可以提供所述更新后的挂载表供所述客户端访问;
若不可以,则利用所述任一组元数据管理节点的备用节点提供所述更新后的挂载表供所述客户端访问。
5.根据权利要求1-3中任一所述的方法,其特征在于,该方法还包括:
获取更新前的挂载表的识别信息;
基于所述挂载表的所述更新信息,确定更新后的挂载表识别信息;所述识别信息包括版本号,和/或,通用唯一识别码。
6.根据权利要求1-3中任一所述的方法,其特征在于,所述通过第一组元数据管理节点接收挂载表的更新信息,包括:
通过第一组元数据管理节点获取携带有待更新的映射关系的更新请求;
查询分布式存储***的当前最新的挂载表,确定所述待更新的映射关系对应的更新位置信息;
基于更新位置信息以及所述待更新的映射关系得到所述更新信息。
7.根据权利要求1-3中任一所述的方法,其特征在于,所述基于更新后的挂载表供客户端访问,包括:
维护所述N组元数据管理节点的地址信息供客户端访问更新后的挂载表。
8.根据权利要求7所述的方法,其特征在于,所述维护所述N组元数据管理节点的地址信息供客户端访问更新后的挂载表,包括:
将所述N组元数据管理节点的地址信息上传至预设地址存储位置,以使所述客户端基于所述地址存储位置的所述地址信息从任一组元数据管理节点访问所述更新后的挂载表。
9.根据权利要求1-3中任一所述的方法,其特征在于,该方法还包括:
若接收到所述客户端的访问请求,则对所述访问请求所携带的挂载表识别信息进行校验;
若校验不通过,通知所述客户端更新挂载表。
10.根据权利要求9所述的方法,其特征在于,所述对所述访问请求所携带的挂载表识别信息进行校验,包括:
校验所述访问请求所携带的挂载表的识别信息与所述更新后的挂载表的识别信息是否一致;
若不一致,确定校验不通过;否则,确定校验通过。
11.一种分布式存储***的管理方法,其特征在于,应用于客户端,该方法包括:
基于分布式存储***的N组元数据管理节点的地址信息,访问任一组元数据管理节点中的更新后的挂载表,所述任一组元数据管理节点中的更新后的挂载表是在第一组元数据管理节点接收挂载表的更新信息后,确定其余N-1组元数据管理节点的排序;利用所述第一组元数据管理节点的主节点将所述更新信息同步给排序位于第一位的元数据管理节点的主节点;基于更新排序,利用排序位于上一位的元数据管理节点的主节点将所述更新信息同步给排序位于下一位的元数据管理节点的主节点;通过所述N-1组元数据管理节点各自的主节点将所述更新信息同步给所述N-1组元数据管理节点其各自的备用节点得到的,其中,所述挂载表用于提供与N组元数据管理节点对应的映射关系,所述N组元数据管理节点包括所述第一组元数据管理节点;
基于访问到的所述更新后的挂载表对所述分布式存储***执行访问操作。
12.根据权利要求11所述的方法,其特征在于,所述基于分布式存储***的N组元数据管理节点的地址信息,访问任一组元数据管理节点中的更新后的挂载表,包括:
访问所述任一组元数据管理节点的主节点,若所述主节点接受访问,则访问所述主节点中的所述更新后的挂载表;若所述主节点拒绝访问,则访问所述任一组元数据管理节点的备用节点中的所述更新后的挂载表。
13.根据权利要求11或12所述的方法,其特征在于,该方法还包括:
向所述分布式存储***发送访问请求;所述访问请求携带有所述客户端当前最新版挂载表的识别信息;
若接收到更新通知,则执行所述基于分布式存储***的N组元数据管理节点的地址信息,访问任一组元数据管理节点中的更新后的挂载表;所述更新通知是所述分布式存储***校核所述访问请求携带的识别信息不通过时反馈的;
若接收到访问通知,则基于所述当前最新版挂载表访问所述分布式存储***;所述访问通知是所述分布式存储***校核所述访问请求携带的识别信息通过时反馈的。
14.根据权利要求13所述的方法,其特征在于,在所述向所述分布式存储***发送访问请求之前,该方法还包括:
检测所述客户端是否存在挂载表;
若存在,若成功加载到所述当前最新版挂载表,则利用所述当前最新版挂载表的识别信息生成所述访问请求。
15.根据权利要求11或12所述的方法,其特征在于,在所述基于访问到的所述更新后的挂载表对所述分布式存储***执行访问操作之前,该方法还包括:
将访问到的所述更新后的挂载表写入具有第一文件名的设定文件;
删除所述客户端中已存在的最新版挂载表,保留所述已存在的最新版挂载表对应的第二文件名;
建立所述第一文件名和所述第二文件名的硬链接;
删除所述第一文件名,存储具有所述第二文件名的新版挂载表。
16.一种分布式存储***的管理装置,其特征在于,该装置包括:
接收单元,用于通过第一组元数据管理节点接收挂载表的更新信息,所述挂载表用于提供与N组元数据管理节点对应的映射关系;其中,所述N组元数据管理节点包括所述第一组元数据管理节点;
同步单元,用于利用所述第一组元数据管理节点将所述挂载表的所述更新信息同步给其余N-1组元数据管理节点,包括:确定所述其余N-1组元数据管理节点的排序;利用所述第一组元数据管理节点的主节点将所述更新信息同步给排序位于第一位的元数据管理节点的主节点;基于更新排序,利用排序位于上一位的元数据管理节点的主节点将所述更新信息同步给排序位于下一位的元数据管理节点的主节点;通过所述N-1组元数据管理节点各自的主节点将所述更新信息同步给所述N-1组元数据管理节点其各自的备用节点;
提供单元,用于基于更新后的挂载表供客户端访问。
17.一种分布式存储***的管理装置,其特征在于,应用于客户端,该装置包括:
第一访问单元,用于基于分布式存储***的N组元数据管理节点的地址信息,访问任一组元数据管理节点中的更新后的挂载表,所述任一组元数据管理节点中的更新后的挂载表是在第一组元数据管理节点接收挂载表的更新信息后,确定其余N-1组元数据管理节点的排序;利用所述第一组元数据管理节点的主节点将所述更新信息同步给排序位于第一位的元数据管理节点的主节点;基于更新排序,利用排序位于上一位的元数据管理节点的主节点将所述更新信息同步给排序位于下一位的元数据管理节点的主节点;通过所述N-1组元数据管理节点各自的主节点将所述更新信息同步给所述N-1组元数据管理节点其各自的备用节点得到的,其中,所述挂载表用于提供与N组元数据管理节点对应的映射关系,所述N组元数据管理节点包括所述第一组元数据管理节点;
操作单元,用于基于访问到的所述更新后的挂载表对所述分布式存储***执行访问操作。
18.一种分布式存储***,其特征在于,包括:
N组元数据管理节点,其中,第一组管理元数据管理节点,用于接收挂载表的更新信息,将所述挂载表的所述更新信息同步给其余N-1组元数据管理节点,包括:确定所述其余N-1组元数据管理节点的排序,通过所述第一组元数据管理节点的主节点将所述更新信息同步给排序位于第一位的元数据管理节点的主节点,以使基于更新排序,利用排序位于上一位的元数据管理节点的主节点将所述更新信息同步给排序位于下一位的元数据管理节点的主节点,通过所述N-1组元数据管理节点各自的主节点将所述更新信息同步给所述N-1组元数据管理节点其各自的备用节点;所述挂载表用于提供与N组元数据管理节点对应的映射关系;
客户端,用于访问更新后的挂载表。
19.根据权利要求18所述的***,其特征在于,
所述第一组元数据管理节点,还用于若监测所述分布式存储***存在新增M组元数据管理节点,则将所述挂载表的所述更新信息同步给所述M组元数据管理节点。
20.根据权利要求18所述的***,其特征在于,所述第一组元数据管理节点包括:主节点和备用节点;
所述主节点,用于接收所述挂载表的所述更新信息,将所述更新信息同步给所述备用节点;
所述备用节点,用于接收所述主节点同步的所述更新信息。
21.根据权利要求18所述的***,其特征在于,
所述第一组元数据管理节点的主节点,用于将所述更新信息同步给其余N-1组元数据管理节点的主节点;
所述N-1组元数据管理节点各自的主节点,用于将所述更新信息同步给所述N-1组元数据管理节点其各自的备用节点。
22.一种计算机可读存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行权利要求1至权利要求10中任意一项所述的分布式存储***的管理方法,或,执行权利要求11至权利要求15中任意一项所述的分布式存储***的管理方法。
23.一种存储管理设备,其特征在于,包括:
存储器,用于存储程序;
处理器,耦合至所述存储器,用于运行所述程序以执行权利要求1至权利要求10中任意一项所述的分布式存储***的管理方法,或,执行权利要求11至权利要求15中任意一项所述的分布式存储***的管理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910164730.8A CN111666035B (zh) | 2019-03-05 | 2019-03-05 | 一种分布式存储***的管理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910164730.8A CN111666035B (zh) | 2019-03-05 | 2019-03-05 | 一种分布式存储***的管理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111666035A CN111666035A (zh) | 2020-09-15 |
CN111666035B true CN111666035B (zh) | 2023-06-20 |
Family
ID=72381486
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910164730.8A Active CN111666035B (zh) | 2019-03-05 | 2019-03-05 | 一种分布式存储***的管理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111666035B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6081883A (en) * | 1997-12-05 | 2000-06-27 | Auspex Systems, Incorporated | Processing system with dynamically allocatable buffer memory |
CN102136003A (zh) * | 2011-03-25 | 2011-07-27 | 上海交通大学 | 大规模分布式存储*** |
WO2016202199A1 (zh) * | 2015-06-18 | 2016-12-22 | 阿里巴巴集团控股有限公司 | 分布式文件***及其文件元信息管理方法 |
CN106302607A (zh) * | 2015-06-05 | 2017-01-04 | 腾讯科技(深圳)有限公司 | 应用于云计算的块存储***及方法 |
CN108595616A (zh) * | 2018-04-23 | 2018-09-28 | 南京大学 | 一种面向分布式文件***的统一命名空间管理的方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4386932B2 (ja) * | 2007-08-17 | 2009-12-16 | 富士通株式会社 | ストレージ管理プログラム、ストレージ管理装置およびストレージ管理方法 |
-
2019
- 2019-03-05 CN CN201910164730.8A patent/CN111666035B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6081883A (en) * | 1997-12-05 | 2000-06-27 | Auspex Systems, Incorporated | Processing system with dynamically allocatable buffer memory |
CN102136003A (zh) * | 2011-03-25 | 2011-07-27 | 上海交通大学 | 大规模分布式存储*** |
CN106302607A (zh) * | 2015-06-05 | 2017-01-04 | 腾讯科技(深圳)有限公司 | 应用于云计算的块存储***及方法 |
WO2016202199A1 (zh) * | 2015-06-18 | 2016-12-22 | 阿里巴巴集团控股有限公司 | 分布式文件***及其文件元信息管理方法 |
CN108595616A (zh) * | 2018-04-23 | 2018-09-28 | 南京大学 | 一种面向分布式文件***的统一命名空间管理的方法 |
Non-Patent Citations (3)
Title |
---|
Yingying Wu ; Zhenghe Liang.Implementation of Distributed XA Transactions in MyCat Based on Table Broadcasting Mechanism.《IEEE》.2019,全文. * |
张栗粽 ; 崔园 ; 罗光春 ; 陈爱国 ; 卢国明 ; 王晓雪 ; .面向大数据分布式存储的动态负载均衡算法.计算机科学.2017,(第05期),全文. * |
那文武 ; 柯剑 ; 朱旭东等.BW-netRAID:一种后端集中冗余管理的网络RAID***.计算机学报.2011,(第05期),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN111666035A (zh) | 2020-09-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110825420B (zh) | 分布式集群的配置参数更新方法、装置、设备及存储介质 | |
EP3223165B1 (en) | File processing method, system and server-clustered system for cloud storage | |
CN106982236B (zh) | 一种信息处理方法、装置和*** | |
WO2018233630A1 (zh) | 故障发现 | |
CN111182067A (zh) | 一种基于星际文件***ipfs的数据写入方法及设备 | |
WO2021226905A1 (zh) | 一种数据存储方法、***及存储介质 | |
CN110046062B (zh) | 分布式数据处理方法及*** | |
CN112596951B (zh) | 一种nas数据容灾方法、装置、设备及存储介质 | |
CN111538719A (zh) | 数据迁移方法、装置、设备及计算机存储介质 | |
CN109254958B (zh) | 分布式数据读写方法、设备及*** | |
CN105740049B (zh) | 一种控制方法及装置 | |
CN108509296B (zh) | 一种处理设备故障的方法和*** | |
US10853892B2 (en) | Social networking relationships processing method, system, and storage medium | |
US8489698B2 (en) | Apparatus and method for accessing a metadata | |
CN110858168A (zh) | 集群节点故障处理方法、装置及集群节点 | |
WO2009031158A2 (en) | Method and apparatus for network based data recovery | |
CN116070294B (zh) | 一种权限管理方法、***、装置、服务器及存储介质 | |
CN111625396B (zh) | 备份数据的校验方法、服务器及存储介质 | |
CN111666035B (zh) | 一种分布式存储***的管理方法及装置 | |
CN116389233B (zh) | 容器云管理平台主备切换***、方法、装置和计算机设备 | |
CN111147226B (zh) | 数据存储方法、装置及存储介质 | |
CN110928945B (zh) | 一种针对数据库的数据处理方法及装置,数据处理*** | |
CN115495432A (zh) | 支持多实例的方法、装置及设备 | |
CN114490516A (zh) | 文件***的处理方法、回收站管理方法、装置及设备 | |
CN113656496A (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40036449 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |