CN108647248A - Worm状态监控转移方法及装置 - Google Patents
Worm状态监控转移方法及装置 Download PDFInfo
- Publication number
- CN108647248A CN108647248A CN201810340072.9A CN201810340072A CN108647248A CN 108647248 A CN108647248 A CN 108647248A CN 201810340072 A CN201810340072 A CN 201810340072A CN 108647248 A CN108647248 A CN 108647248A
- Authority
- CN
- China
- Prior art keywords
- worm
- meta data
- file
- data server
- metadata
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
- G06F11/2035—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant without idle spare hardware
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
- G06F11/2023—Failover techniques
- G06F11/203—Failover techniques using migration
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种WORM状态监控转移方法及装置,通过在多活动元数据服务器的分布式***架构中,当第一MDS器检测到其管理第一文件需要切换至由其他元数据服务器管理时,为所述第一文件选取第二元数据服务器,并通知第二元数据服务器接管第一文件的元数据,以对第一文件的WORM状态进行监控。如此,实现了多活动元数据服务器场景下,当管理文件的元数据服务器切换时,WORM状态的监控也可以随之转移,使得WORM功能可以在多活动元数据服务器架构上实现。
Description
技术领域
本申请涉及分布式存储技术领域,具体而言,涉及一种WORM状态监控转移方法及装置。
背景技术
在文件存储***中,文件的元数据(Metadata)记录了文件的属性,如文件存储位置、大小、存储时间等,通过元数据可以进行文件查找、文件记录、存储位置记录、访问授权等工作。在分布式***中,常通过元数据服务器(英文:Metadata Server,简称:MDS)对文件的元数据进行管理,并对外提供文件***服务。
目前,MDS有两种重用的架构。一种为一主多备架构,该架构是由1台MDS作为主MDS负责文件***的管理,其他元数据作为备用仅在主元数据服务工作异常时启用;另一种为多活动MDS模式,该模式是多个MDS同时工作,不同MDS管理不同文件的元数据。
在例如金融证券、政法、电信、医疗信息等领域的存储***中,对数据文件的安全性有较高要求,现有技术常通过一次写入多次读取(英文:Write Once Read Many,简称:WORM)功能对数据进行保护。WORM功能是根据携带在元数据中的WORM信息,对文件进行保护,防止文件被读取或修改。但是,现有技术的WORM功能仅支持在一主多备的MDS架构上实现,尚不支持在多活动MDS架构上实现。
发明内容
有鉴于此,本申请提供了一种WORM状态监控转移方法及装置,解决了多个活动MDS架构上不能实现WORM功能的问题。
第一方面,本申请提供一种WORM状态监控转移方法,应用于分布式存储***中的第一MDS,所述第一MDS配置有WORM文件列表,所述WORM文件列表用于记录需要进行WORM状态监控的文件的元数据;所述方法包括:
当需要将由所述第一MDS进行WORM状态监控的第一文件切换至由除所述第一MDS之外的其他MDS进行监控时,在所述其他MDS中为所述第一文件确定至少一个监控所述第一文件WORM状态的第二MDS;
向所述第二MDS发送第一WORM添加消息,使所述第二MDS根据所述WORM添加消息,获取所述第一文件的元数据,并根据所述第一文件的元数据携带的WORM信息对所述第一文件进行WORM状态监控;
从所述第一MDS的WORM文件列表中删除所述第一文件的元数据的记录。
第二方面,本申请提供一种WORM状态监控转移装置,应用于分布式存储***中的第一MDS,所述第一MDS配置有WORM文件列表,所述WORM文件列表用于记录需要进行WORM状态监控的文件的元数据;所述装置包括:
选择模块,用于当需要将由所述第一MDS进行WORM状态监控的第一文件切换至由除所述第一MDS之外的其他MDS进行监控时,在所述其他MDS中为所述第一文件确定至少一个监控所述第一文件WORM状态的第二MDS;
通知模块,用于向所述第二MDS发送第一WORM添加消息,使所述第二MDS根据所述WORM添加消息,获取所述第一文件的元数据,并根据所述第一文件的元数据携带的WORM信息对所述第一文件进行WORM状态监控;
删除模块,用于从所述第一MDS的WORM文件列表中删除所述第一文件的元数据的记录。
第三方面,本公开提供一种MDS,包括处理器及和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,处理器执行所述机器可执行指令以实现本公开提供的WORM状态监控转移方法。
相对于现有技术而言,本申请具有以下有益效果:
本申请提供的WORM状态监控转移方法及装置,在多活动MDS的分布式***架构中,当第一MDS检测到其管理第一文件需要切换至除所述第一MDS之外的由其他MDS管理时,为所述第一文件选取第二MDS,并通知第二MDS接管第一文件的元数据,以对第一文件的WORM状态进行监控。如此,实现了多活动MDS场景下,当管理文件的MDS切换时,WORM状态的监控也可以随之转移,使得WORM功能可以在多活动MDS架构上实现。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为一主多备MDS架构的示意图;
图2为多活动MDS架构的示意图;
图3为本申请实施例提供的WORM状态监控转移方法的流程示意图之一;
图4为本申请实施例提供的WORM状态监控转移方法的流程示意图之二;
图5为本申请实施例提供的元数据添加阶段的流程示意图;
图6为本申请实施例提供的WORM文件列表遍历阶段的流程示意图;
图7为本申请实施例提供的元数据删除阶段的流程示意图;
图8为本申请实施例提供的MDS的硬件结构示意图;
图9为本申请实施例提供的WORM状态监控转移装置的示意图之一;
图10为本申请实施例提供的WORM状态监控转移装置的示意图之二。
图标:100-存储节点;110-OSD;200-MDS;210-WORM状态监控转移装置;211-选择模块;212-通知模块;213-删除模块;214-接收模块;215-添加模块;216-监控模块;220-机器可读存储介质;230-处理器;240-***总线。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
在本申请的描述中,需要说明的是,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
在本申请的描述中,还需要说明的是,除非另有明确的规定和限定,术语“设置”、“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本申请中的具体含义。
在一些采用对象存储的分布式***中,每个存储节点可以包括多个对象存储设备(英文:Object-based Storage Device,简称:OSD),文件被分成多个数据分片后,被存储于不同数据节点的OSD中。
在一主多备的MDS架构下,请参照图1,主要由1个MDS200管理所有文件的元数据,进行文件查找、文件记录、存储位置记录、访问授权等工作,并对外提供文件***。例如,文件A、文件B、文件C均被分成多个分片存储于不同存储节点100的OSD110中,并统一由MDS-A管理这些文件的元数据。
在图1所示架构中,MDS-A会维护配置一个WORM文件列表,该WORM文件列表中记录了需要进行WORM状态监控的文件(以下简称WORM文件)。MDS-A会定时遍历该WORM文件列表,获取WORM文件的元数据。根据元数据中携带的WORM信息(如,保护期时长等)及元数据中的其他参数(如文件创建时间等),MDS-A判断WORM文件的WORM状态,WORM状态包括未保护状态、保护状态、追加状态或过期状态。
然后,MDS-A再根据WORM状态判断WORM文件是否可以被修改或删除。其中,处于未保护状态的WORM文件可以被删除和修改,保护状态的WORM文件不能被删除和修改,追加状态的WORM文件只能追加写且不能被删除,处以过期状态的WORM文件可以被删除,但是不能被修改。
在多活动MDS模式下,请参照图2,分布式***中存在多个MDS200同时对文件进行管理,每个MDS200负责一部分文件的元数据管理。其中,管理某个文件的元数据的MDS被称为这个文件的权威MDS(Authoritative MDS,简称Auth-MDS)。例如,在图2所示场景中,文件D的元数据D由MDS-D管理,则MDS-D为文件D的权威MDS,文件E的元数据E由MDS-E管理,则MDS-E为文件E的权威MDS。
经发明人研究发现,在图1所示一主多备的MDS架构中,由于只有1个MDS200提供服务,不存在管理元数据的MDS200切换,即,在使用WORM功能时,也只有1个MDS200根据其WORM文件列表进行WORM状态的监控。所以在一主多备的MDS架构中可以较为容易地实现WORM功能。
而在图2所示多活动MDS架构中,存在多个MDS200同时对文件的元数据进行管理,根据各MDS200的运行状态或一些具体的场景要求,可能管理某个元数据的权威MDS会在多个MDS200中切换。而在权威MDS发生切换后,由于MDS200的WORM文件列表没有发生改变,新的权威MDS不能及时开始对新纳入管理的文件的WORM状态进行监控,导致新纳入管理的文件WORM状态不再发生改变,影响WORM文件的安全性。
故在本实施例中,提出一种应用于图2所示在多活动MDS架构中WORM状态监控转移方法,使的WORM功能可以在多活动MDS架构中实现,下面对本实施例提供的方案进行详细阐述。
在本实施例中,在一些情况下,元数据的权威MDS可能发生改变,例如,某个MDS负载过重,需要将其管理一部分元数据转由其他MDS管理,即将一部分元数据的权威MDS切换为其他MDS。在这种情况下,为保证WORM文件的WORM状态监控也能继续顺利进行,本实施例提供一种,WORM状态监控转移方法,下面对该方法的各个步骤进行详细阐述。
步骤S310,当需要将由第一MDS进行WORM状态监控的第一文件切换至由除第一MDS之外的其他MDS进行监控时,在其他MDS中为第一文件确定至少一个监控第一文件WORM状态的第二MDS。
在本实施例中,第一MDS及第二MDS并不特指某个MDS,第一文件也不特指某个文件,当某个MDS需要将其管理的文件转给其他MDS管理时,该MDS即作为第一MDS,该MDS需要转给其他MDS管理的文件即作为第一文件,接管该MDS转出文件的其他MDS即作为第二MDS。第一文件可以是一个也可以是多个。
例如,请再次参照图2,MDS-B作为文件B的权威MDS,在需要将文件B切换至由其他MDS管理时,则MDS-B作为第一MDS,文件B作为第一文件。若MDS-B为将MDS-C确定为文件B新的权威MDS,则MDS-C作为第二MDS。
在本实施例中,触发第一MDS将第一文件状给其他MDS管理的条件可以为多种。
例如,在一种实施方式中,当第一MDS当前管理的元数据达到一定阈值时,可以认为该第一MDS的负载较重,需要将其管理的部分第一文件转由其他MDS管理。此时该第一MDS可以分别获取其他MDS中每个MDS的运行负载变量参数,运行负载变量参数用于表征MDS的运行负载状态。然后比较第一MDS与每个MDS的运行负载变量参数。根据比价结果,从其他MDS中确定出第二MDS。
在另一种实施方式中,可能根据一些具体场景的需要,管理员需要手动将第一MDS管理某个第一文件重新指定新的权威MDS对该第一文件进行管理。此时,第一MDS可以接收用户输入的选择操作指令,选择操作指令包括用户选择出的MDS的标识,根据MDS的标识,确定第二MDS。
步骤S320,向第二MDS发送第一WORM添加消息,使第二MDS根据WORM添加消息,获取第一文件的元数据,并根据第一文件的元数据携带的WORM信息对第一文件进行WORM状态监控。
其中,第一WORM添加消息携带有第一文件的元数据,第一文件的元数据用于使第二MDS通过接收到的第一WORM添加消息中获取第一文件的元数据,并将第一文件的元数据记录至第二MDS的WORM文件列。
步骤S330,从第一MDS的WORM文件列表中删除第一文件的元数据的记录。
如此,实现了多活动MDS场景下,当管理文件的MDS切换时,WORM状态的监控也可以随之转移,使得WORM功能可以在多活动MDS架构上实现。
可选地,在本实施例的一种实施方式中,第一MDS在步骤S320中,将第一文件的元数据作为第一WORM添加消息发送给第二MDS,使第二MDS将第一文件的元数据记录至该第二MDS的WORM文件列表。同时在步骤S330中,第一MDS将其WORM文件列表中记录的第一文件的元数据删除。
如此,第一MDS直接将第一文件作为第一WORM添加消息发送给第二MDS,使第二MDS接收到第一文件的元数据后,可以立即开始对第一文件WORM状态的监控。
可选地,在本实施例的另一种实施方式中,在步骤S310中,第一MDS在其他MDS中为第一文件确定至少一个监控第一文件WORM状态的第二MDS的步骤之后,将所述第一文件的元数据发送给所述第二元数据服务器,并为所述第一元数据服务器的WORM文件列表中已发送给所述第二元数据服务器的所述第一文件的元数据添加预设标识。
接着,在步骤S320中,第一MDS在周期性地锁定WORM文件列表并遍历WORM文件列表中记录的元数据,若检测到带有预设标识的第一文件的元数据,则向该第一文件对应第二MDS发送第一WORM添加消息,第一WORM添加消息包括第一文件的元数据的标识,第一WORM添加消息用于使第二MDS在接收到第一WORM添加消息时,根据所述第一文件的元数据的标识,将第一文件的元数据记录至该第二MDS的WORM文件列表。
也就是说,第一文件在发送元数据时不对WORM文件列表本身进行处理,仅对WORM文件列表中已发送的第一文件的元数据进行标记,然后在周期性遍历WORM列表的时统一处理带标记的第一文件的元数据。如此,防止了WORM文件列表被频繁加锁解锁,可以减轻了第一MDS的与运行负担。
然后,在步骤S330中,第一MDS在接收到第二MDS根据第一WORM添加消息反馈的添加成功通知时,从该第一MDS的WORM文件列表中删除第一文件的元数据的记录。
如此,第一MDS在确定第二MDS将第一文件的元数据添加至该第二MDS的WORM文件列表后再解除对第一文件WORM状态的监控,使得WORM状态监控的可靠性更高。
可选地,在本实施例中,第一MDS也可以接管其他MDS管理的元数据,请参照图4,WORM处理方法还可以包括步骤S410及步骤S430。
步骤S410,第一MDS接收第三MDS发送的第二WORM添加消息,第二WORM添加消息由第三MDS在需要将由第三MDS进行WORM状态监控的第二文件切换至由第一MDS进行监控时发送。
同样地,在本实施例中,第三MDS并不特指某个MDS,第二文件也不特指某个文件,当某个MDS需要将其管理的文件转给第一MDS管理时,该MDS即作为第三MDS,该MDS需要转给第一MDS管理的文件即作为第二文件。第二文件可以是一个也可以是多个。
步骤S420,根据第二WORM添加消息,获取第二文件的元数据并记录至第一MDS的WORM文件列表。
在本实施例中,第一MDS可以接收第三MDS发送的第二文件的元数据后,将第二文件的元数据记录至该第一MDS的WORM文件列表。
步骤S430,根据WORM文件列表,对第一MDS管理范围内的元数据的WORM状态进行监控。
在将第二文件的元数据添加至WORM文件列表后,在周期性遍历WORM文件列表的过程中也可以对新纳入该第一MDS管理的WORM文件进行WORM状态的监控。
在本实施例中,当不进行权威MDS切换时,每个MDS会维护各自的WORM文件列表,WORM文件列表中记录有需要进行WORM状态监控的文件的元数据。MDS会定时遍历WORM文件列表,根据WORM文件列表中记录的元数据判断对应文件的WORM状态,并根据WORM状态对文件进行保护。
可选地,为了减少WORM文件列表中记录的数据量,提高遍历效率,在本实施例中,可以仅将WORM状态可能发生改变的文件的元数据记录至WORM文件列表。
例如,各MDS可以在检测到缓存中有新的需要进行WORM状态监控的文件加入时,MDS判断该文件是否为需要进行WORM状态监控的WORM文件,若是,则获取新加入缓存的WORM文件的元数据,并将该新加入缓存的WORM文件的元数据记录至该MDS的WORM文件列表。其中,缓存中有新的文件加入的情况包括创建新的文件或将磁盘中文件加载到缓存。WORM文件列表中记录的信息为元数据在缓存中的地址指针。
为了使本领域技术人员更好地理解本申请实施例提供的技术方案,下面结合一种具体应用场景对本申请实施例提供的技术方案进行说明。
在本实施例中,第一MDS进行WORM状态监控的步骤可以包括元数据添加阶段和WORM文件列表遍历阶段。
请参照图5,元数据添加阶段中,可以包括步骤S511至步骤S513。
步骤S511,第一MDS检测到有新文件创建、从磁盘加载已有文件至缓存或接收到第三MDS发送的第二WORM添加消息时,进入步骤S512。
步骤S512,创建并填充新的元数据结构体。
在本实施例中,当第一MDS检测到新文件创建时,可以获取该文件的元数据。当第一MDS检测到从磁盘加载之前持久化的文件至缓存时,同时可以获得之前持久化的该文件的元数据。第一MDS还可以直接接收第三MDS发送第二文件的元数据。
第一MDS在缓存中创建新的元数据结构体,并根据获得元数据填充该元数据结构体。然后进入步骤S513。
步骤S513,判断该元数据是否需加入WORM文件列表。
若该元数据对应的文件需要进行WORM状态监控,则需要将该元数据加入WORM文件列表,进入步骤S514。
步骤S514,加锁保护WORM文件列表。
在本实施例中,为防止其他进程同时对WORM文件列表进行修改,在第一MDS需要先对WORM文件列表枷锁保护。
步骤S515,将该元数据的地址指针记录至WORM文件列表。
步骤S516,解锁WORM文件列表。
基于上述设计,第一MDS在对自身管辖范围内元数据进行管理的通常情况下及接管其他MDS的元数据的特殊情况下都能将需要进行WORM状态监控的文件的元数据添加至WORM文件列表。
请参照图6,以第一MDS先将第一文件的元数据发送给第二MDS,然后在遍历WORM文件列表时发送第一WORM添加消息的前提为例,WORM文件列表遍历阶段中,可以包括步骤S611至步骤S620。
步骤S611,加锁保护WORM文件列表。
步骤S612,检测WORM文件列表是否为空。
若不为空,则进入步骤S613。
若为空,则进入步骤S621,结束本次遍历。
步骤S613,检测是否遍历完WORM文件列表。
若已遍历完WORM文件列表,则进入步骤S621,结束本次遍历。
若未遍历完WORM文件列表,则进入步骤S614。
步骤S614,从WORM文件列表提取一个尚未为检测过的元数据,判断该元数据是否带有预设标识。
若该元数据带有预设标识,则该元数据为需要转由其他MDS管理的第一文件的元数据,进入步骤S615。
若该元数据不带有预设标识,则进入步骤S617。
步骤S615,向该第一文件对应第二MDS发送第一WORM添加消息,使第二MDS在接收到第一WORM添加消息时,将第一文件的元数据记录至该第二MDS的WORM文件列表。然后进入步骤S615。
步骤S616,在接收到第二MDS根据第一WORM添加消息反馈的添加成功通知时,进入步骤S620。
步骤S617,根据该元数据中携带WORM信息判断对应的文件WORM状态是否发生变化。
在本实施例中,WORM状态的变化包括未保护状态切换到保护状态、追加状态切换到保护状态或保护状态切换到过期状态。
若WORM状态不发生变化,则重新进入步骤S613。
若WORM状态发生了变化,则进入步骤S618。
步骤S618,设置新的WORM状态,并根据新的WORM状态对相应的文件的访问权限进行控制。然后进入步骤S619。
步骤S619,判断是否需要将该元数据从WORM文件列表移除。
在本实施例中,若文件的WORM状态为过期状态,则该文件的WORM状态将不再会继续改变,故不需要对该文件继续监控,所以在本步骤中,若检测到文件的WORM状态为过期时,则从WORM文件列表中移除该文件的元数据。
若不需要将该元数据从WORM文件列表移除,则重新进入步骤S613。
若需要将该元数据从WORM文件列表移除,则进入步骤S620。
步骤S620,将该元素从WORM文件列表移除,然后重新进入步骤S612。
步骤S621,解锁WORM文件列表,结束遍历。
另外,第一MDS对WORM状态的监控还可以包括元数据删除阶段,请参照图7,元数据删除阶段可以包括步骤S711至步骤S715。
步骤S711,当检测到文件删除或缓存中的文件被移除时,进入步骤S712。
在本实施例中,当第一MDS管理的文件被删除时,被删除的文件不在需要进行WORM状态监控,则触发进入步骤S712。当第一MDS缓存中的文件因长时间未使用,被移存至磁盘时,文件的WORM状态将暂时无法改变,则触发进入步骤S712。
步骤S712,检查该文件对应的元数据是否需要从WORM文件列表中删除。
在本实施例中,若该文件时之前需要进行WORM状态监控的文件,则WORM文件列表中记录有该文件元数据的地址指针,则进入步骤S713。
步骤S713,加锁保护WORM文件列表。
步骤S714,将该文件对应的元数据从WORM文件列表中删除。
步骤S715,解锁WORM文件列表。
本实施例提供的WORM状态监控转移方法,在元数据的权威MDS切换时,通过MDS至今的信息交互,是WORM状态的监控也随之转移,如此,使得WORM功能在多活动MDS架构中也可以实现。
请参照图8,图8为本公开实施例提供的一种MDS200的硬件结构示意图。所述MDS200包括WORM状态监控转移装置210、存储器220及处理器230。
请参照图8,图8为本公开示例提供的一种MDS200的硬件结构示意图。该MDS200可包括处理器230、存储有机器可执行指令的机器可读存储介质220。处理器230与机器可读存储介质220可经由***总线240通信。并且,通过读取并执行机器可读存储介质220中与WORM状态监控逻辑对应的机器可执行指令,处理器230可执行上文描述的WORM状态监控方法。
请参照图9,本实施例还提供一种应用于图2所示MDS200的WORM状态监控转移装置210,从功能上划分,WORM状态监控转移装置210可以包括选择模块211、通知模块212及删除模块213。
选择模块211,用于当需要将由第一MDS进行WORM状态监控的第一文件切换至由除第一MDS之外的其他MDS进行监控时,在其他MDS中为第一文件确定至少一个监控第一文件WORM状态的第二MDS。
本实施例中,选择模块211可用于执行图3所示的步骤S310,关于选择模块211的具体描述可参对步骤S310的描述。
具体地,选择模块211具体用于,分别获取所述其他元数据服务器中每个元数据服务器的运行负载变量参数,所述运行负载变量参数用于表征元数据服务器的运行负载状态;比较所述第一元数据服务器与所述每个元数据服务器的运行负载变量参数;根据比较结果,从所述其他元数据服务器中确定出所述第二元数据服务器;
或者,
接收用户输入的选择操作指令,所述选择操作指令包括所述用户选择出的元数据服务器的标识;根据所述元数据服务器的标识,确定所述第二元数据服务器。
通知模块212,用于向第二MDS发送第一WORM添加消息,使第二MDS根据WORM添加消息,获取第一文件的元数据,并根据第一文件的元数据携带的WORM信息对第一文件进行WORM状态监控。
本实施例中,通知模块212可用于执行图3所示的步骤S220,关于通知模块212的具体描述可参对步骤S220的描述。
删除模块213,用于从第一MDS的WORM文件列表中删除第一文件的元数据的记录。
本实施例中,删除模块213可用于执行图3所示的步骤S330,关于删除模块213的具体描述可参对步骤S330的描述。
基本一步地,请参照图10,WORM状态监控转移装置210还可以包括接收模块214、添加模块215及监控模块216。
接收模块214,用于接收第三MDS发送的第二WORM添加消息,第二WORM添加消息由第三MDS在需要将由第三MDS进行WORM状态监控的第二文件切换至由第一MDS进行监控时发送。
本实施例中,接收模块214可用于执行图4所示的步骤S410,关于接收模块214的具体描述可参对步骤S410的描述。
添加模块215,用于根据第二WORM添加消息,获取第二文件的元数据并记录至第一MDS的WORM文件列表。
本实施例中,添加模块215可用于执行图4所示的步骤S420,关于添加模块215的具体描述可参对步骤S420的描述。
监控模块216,用于根据WORM文件列表,对第一MDS管理范围内的元数据的WORM状态进行监控。
本实施例中,监控模块216可用于执行图4所示的步骤S430,关于监控模块216的具体描述可参对步骤S430的描述。
综上所述,本申请提供的WORM状态监控转移方法及装置,在多活动元数据服务器的分布式***架构中,当第一MDS器检测到其管理第一文件需要切换至由其他元数据服务器管理时,为所述第一文件选取第二元数据服务器,并通知第二元数据服务器接管第一文件的元数据,以对第一文件的WORM状态进行监控。如此,实现了多活动元数据服务器场景下,当管理文件的元数据服务器切换时,WORM状态的监控也可以随之转移,使得WORM功能可以在多活动元数据服务器架构上实现。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个机器可读存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。例如,图2所示的MDS200可以包括处理器及和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器执行所述机器可执行指令以实现本申请提供的WORM状态监控转移方法。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种WORM状态监控转移方法,其特征在于,应用于分布式存储***中的第一元数据服务器,所述第一元数据服务器配置有WORM文件列表,所述WORM文件列表用于记录需要进行WORM状态监控的文件的元数据;所述方法包括:
当需要将由所述第一元数据服务器进行WORM状态监控的第一文件切换至由除所述第一元数据服务器之外的其他元数据服务器进行监控时,在所述其他元数据服务器中为所述第一文件确定至少一个监控所述第一文件WORM状态的第二元数据服务器;
向所述第二元数据服务器发送第一WORM添加消息,使所述第二元数据服务器根据所述WORM添加消息,获取所述第一文件的元数据,并根据所述第一文件的元数据携带的WORM信息对所述第一文件进行WORM状态监控;
从所述第一元数据服务器的WORM文件列表中删除所述第一文件的元数据的记录。
2.根据权利要求1所述的方法,其特征在于,所述第一WORM添加消息携带有所述第一文件的元数据;
所述第一文件的元数据用于使所述第二元数据服务器通过接收到的所述第一WORM添加消息中获取所述第一文件的元数据,并将所述第一文件的元数据记录至所述第二元数据服务器的WORM文件列表。
3.根据权利要求1所述的方法,其特征在于,所述在所述其他元数据服务器中为所述第一文件确定至少一个监控所述第一文件WORM状态的第二元数据服务器之后,所述方法还包括:
将所述第一文件的元数据发送给所述第二元数据服务器;
为所述第一元数据服务器的WORM文件列表中已发送给所述第二元数据服务器的所述第一文件的元数据添加预设标识;
所述向所述第二元数据服务器发送第一WORM添加消息的步骤,包括:
周期性地锁定所述WORM文件列表并遍历所述WORM文件列表中记录的元数据;
在检测到带有所述预设标识的所述第一文件的元数据时,向该第一文件对应第二元数据服务器发送第一WORM添加消息,所述第一WORM添加消息包括所述第一文件的元数据的标识,第一WORM添加消息用于使所述第二元数据服务器在接收到所述第一WORM添加消息时,根据所述第一文件的元数据的标识,将所述第一文件的元数据记录至该第二元数据服务器的WORM文件列表。
4.根据权利要求3所述的方法,其特征在于,所述从所述第一元数据服务器的WORM文件列表中删除所述第一文件的元数据的记录,包括:
接收所述第二元数据服务器根据所述第一WORM添加消息反馈的第一WORM添加反馈消息;
当所述第一WORM添加反馈消息为第一WORM添加成功时,从该第一元数据服务器的WORM文件列表中删除所述第一文件的元数据的记录。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述第一元数据服务器接收第三元数据服务器发送的第二WORM添加消息,所述第二WORM添加消息由所述第三元数据服务器在需要将由所述第三元数据服务器进行WORM状态监控的第二文件切换至由所述第一元数据服务器进行监控时发送;
根据所述第二WORM添加消息,获取所述第二文件的元数据并记录至所述第一元数据服务器的WORM文件列表;
根据所述WORM文件列表,对所述第一元数据服务器管理范围内的元数据的WORM状态进行监控。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
当检测到缓存中有新的需要进行状态监控的文件加入时,获取新加入缓存的WORM文件的元数据;
将所述新加入缓存的WORM文件的元数据记录至所述第一元数据服务器的WORM文件列表。
7.根据权利要求1所述的方法,其特征在于,所述在所述其他元数据服务器中为所述第一文件确定至少一个管理该第一文件的第二元数据服务器,包括:
分别获取所述其他元数据服务器中每个元数据服务器的运行负载变量参数,所述运行负载变量参数用于表征元数据服务器的运行负载状态;
比较所述第一元数据服务器与所述每个元数据服务器的运行负载变量参数;
根据比较结果,从所述其他元数据服务器中确定出所述第二元数据服务器;
或者,
接收用户输入的选择操作指令,所述选择操作指令包括所述用户选择出的元数据服务器的标识;
根据所述元数据服务器的标识,确定所述第二元数据服务器。
8.一种WORM状态监控转移装置,其特征在于,应用于分布式存储***中的第一元数据服务器,所述第一元数据服务器配置有WORM文件列表,所述WORM文件列表用于记录需要进行WORM状态监控的文件的元数据;所述装置包括:
选择模块,用于当需要将由所述第一元数据服务器进行WORM状态监控的第一文件切换至由除所述第一元数据服务器之外的其他元数据服务器进行监控时,在所述其他元数据服务器中为所述第一文件确定至少一个监控所述第一文件WORM状态的第二元数据服务器;
通知模块,用于向所述第二元数据服务器发送第一WORM添加消息,使所述第二元数据服务器根据所述WORM添加消息,获取所述第一文件的元数据,并根据所述第一文件的元数据携带的WORM信息对所述第一文件进行WORM状态监控;
删除模块,用于从所述第一元数据服务器的WORM文件列表中删除所述第一文件的元数据的记录。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括:
接收模块,用于接收第三元数据服务器发送的第二WORM添加消息,所述第二WORM添加消息由所述第三元数据服务器在需要将由所述第三元数据服务器进行WORM状态监控的第二文件切换至由所述第一元数据服务器进行监控时发送;
添加模块,用于根据所述第二WORM添加消息,获取所述第二文件的元数据并记录至所述第一元数据服务器的WORM文件列表;
监控模块,用于根据所述WORM文件列表,对所述第一元数据服务器管理范围内的元数据的WORM状态进行监控。
10.根据权利要求8所述的装置,其特征在于,所述选择模块具体用于,
分别获取所述其他元数据服务器中每个元数据服务器的运行负载变量参数,所述运行负载变量参数用于表征元数据服务器的运行负载状态;
比较所述第一元数据服务器与所述每个元数据服务器的运行负载变量参数;
根据比较结果,从所述其他元数据服务器中确定出所述第二元数据服务器;
或者,
接收用户输入的选择操作指令,所述选择操作指令包括所述用户选择出的元数据服务器的标识;
根据所述元数据服务器的标识,确定所述第二元数据服务器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810340072.9A CN108647248B (zh) | 2018-04-16 | 2018-04-16 | Worm状态监控转移方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810340072.9A CN108647248B (zh) | 2018-04-16 | 2018-04-16 | Worm状态监控转移方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108647248A true CN108647248A (zh) | 2018-10-12 |
CN108647248B CN108647248B (zh) | 2021-03-09 |
Family
ID=63746545
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810340072.9A Active CN108647248B (zh) | 2018-04-16 | 2018-04-16 | Worm状态监控转移方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108647248B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101059807A (zh) * | 2007-01-26 | 2007-10-24 | 华中科技大学 | 一种提高元数据服务可靠性的方法及其*** |
CN101697168A (zh) * | 2009-10-22 | 2010-04-21 | 中国科学技术大学 | 一种分布式文件***动态元数据管理方法及*** |
US20110153769A1 (en) * | 2009-12-18 | 2011-06-23 | Electronics And Telecommunications Research Institute | Apparatus and method for accessing a metadata |
CN104461380A (zh) * | 2014-11-17 | 2015-03-25 | 华为技术有限公司 | 数据存储方法及装置 |
US20150261753A1 (en) * | 2014-03-13 | 2015-09-17 | Verance Corporation | Metadata acquisition using embedded codes |
CN105740048A (zh) * | 2016-01-26 | 2016-07-06 | 华为技术有限公司 | 一种镜像管理方法、装置及*** |
CN106502576A (zh) * | 2015-09-06 | 2017-03-15 | 中兴通讯股份有限公司 | 迁移策略调整方法、容量变更建议方法及装置 |
-
2018
- 2018-04-16 CN CN201810340072.9A patent/CN108647248B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101059807A (zh) * | 2007-01-26 | 2007-10-24 | 华中科技大学 | 一种提高元数据服务可靠性的方法及其*** |
CN101697168A (zh) * | 2009-10-22 | 2010-04-21 | 中国科学技术大学 | 一种分布式文件***动态元数据管理方法及*** |
US20110153769A1 (en) * | 2009-12-18 | 2011-06-23 | Electronics And Telecommunications Research Institute | Apparatus and method for accessing a metadata |
US20150261753A1 (en) * | 2014-03-13 | 2015-09-17 | Verance Corporation | Metadata acquisition using embedded codes |
CN104461380A (zh) * | 2014-11-17 | 2015-03-25 | 华为技术有限公司 | 数据存储方法及装置 |
CN106502576A (zh) * | 2015-09-06 | 2017-03-15 | 中兴通讯股份有限公司 | 迁移策略调整方法、容量变更建议方法及装置 |
CN105740048A (zh) * | 2016-01-26 | 2016-07-06 | 华为技术有限公司 | 一种镜像管理方法、装置及*** |
Non-Patent Citations (1)
Title |
---|
熊振华: "基于OPENSTACK云存储技术的研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Also Published As
Publication number | Publication date |
---|---|
CN108647248B (zh) | 2021-03-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103119550B (zh) | 存储具有时变特性的电子内容 | |
CN104537076A (zh) | 一种文件读写方法及装置 | |
CN101446984B (zh) | 一种文件存储方法、装置及文件删除方法和装置 | |
CN103020255B (zh) | 分级存储方法和装置 | |
JP4670968B2 (ja) | 情報管理プログラム及び情報管理システム | |
CN102902762B (zh) | 一种删除重复数据的方法、装置和*** | |
CN110888837B (zh) | 对象存储小文件归并方法及装置 | |
US20140358868A1 (en) | Life cycle management of metadata | |
JP2012221055A (ja) | ライブラリシステム、管理装置、ライブラリ装置、管理方法および管理プログラム | |
JP2005302044A (ja) | メタデータを処理する方法および装置 | |
CN106547805A (zh) | 优化数据库索引的方法和装置 | |
CN103503388B (zh) | 一种分布式队列消息读取方法及设备、*** | |
CN108984102B (zh) | 管理存储***的方法、***和计算机程序产品 | |
CN105404537B (zh) | 一种应用程序的卸载方法及装置 | |
CN114138181A (zh) | 一种绑定池放置组选主的方法、装置、设备及可读介质 | |
CN108647248A (zh) | Worm状态监控转移方法及装置 | |
JP2009187341A (ja) | 情報処理プログラム及び情報処理装置 | |
CN112000971A (zh) | 一种文件权限记录方法、***及相关装置 | |
JP2010146308A (ja) | 情報処理装置 | |
CN111078430A (zh) | 一种消息通知处理方法、设备以及存储介质 | |
JP5970886B2 (ja) | 情報処理装置及び情報処理プログラム | |
CN112596671B (zh) | 数据存储的方法、装置、存储介质及电子设备 | |
CN109669623A (zh) | 一种文件管理方法、文件管理装置、电子设备及存储介质 | |
CN114564458A (zh) | 集群间数据同步的方法、装置、设备和存储介质 | |
JP2007109160A (ja) | 文書管理システムとアクセス権管理サーバ間の連携方法 |
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 |