掌桥专利:专业的专利平台
掌桥专利
首页

分布式文件系统及分布式文件系统中维护文件一致性方法

文献发布时间:2024-04-18 19:58:21


分布式文件系统及分布式文件系统中维护文件一致性方法

技术领域

本申请涉及计算机系统的技术领域,尤其是涉及一种分布式文件系统及分布式文件系统中维护文件一致性方法。

背景技术

在计算机领域中,文件系统是指用于管理计算机上存储的文件和目录的一组规则和结构。在文件系统中,为确保文件系统的正确性和稳定性,文件系统需要同时修改文件的数据和元数据,通常文件系统使用事务机制或者写时复制来保证元数据和数据的一致性。

与传统的单机文件系统不同,分布式文件系统是一种用于在分布式计算环境下共享和管理文件的系统,它通过将文件和相关元数据分布在多个计算节点上来实现数据的可扩展性、高可用性和容错性。

将元数据和数据存储在不同的位置意味着必须确保它们保持同步,,如果它们不一致,则会导致系统故障或数据损坏,因此,分布式系统通常使用两阶段提交协议Two-Phase Commit和2PC来实现。但是,依旧存在实现繁琐、成本高昂和需要更多的通信交互等问题,现亟需一种不降低性能、不增加成本的轻量级文件一致性方法。

发明内容

为了实现不降低性能、不增加成本的轻量级文件一致性方法,本申请提供一种分布式文件系统及分布式文件系统中维护文件一致性方法。

第一方面,本申请提供一种分布式文件系统,采用如下的技术方案:

一种分布式文件系统,包括:

客户端,用于接收文件访问请求、处理元数据和数据;

元数据服务器,用于提供和存储元数据;

数据服务器,用于提供和存储数据。

通过采用上述技术方案,采用三端分别管理的方式,将元数据和数据分开存储,客户端对元数据服务器和数据服务器进行管理控制,根据文件访问请求对元数据和数据更新,从而实现不降低性能、不增加成本的轻量级文件一致性。

第二方面,本申请提供一种分布式文件系统中维护文件一致性方法,采用如下的技术方案:

一种分布式文件系统中维护文件一致性方法,应用于客户端,所述方法包括:

所述客户端接收文件访问请求,向所述元数据服务器发送一致性租约请求和元数据获取请求;

接收所述元数据服务器发送的一致性租约和元数据;

获取所述文件访问请求的待写入数据;

基于所述待写入数据和所述元数据更新所述元数据,生成更新元数据;

基于所述更新元数据和所述待写入数据生成写入请求,将所述写入请求发送至所述数据服务器;

响应于所述数据服务器的反馈信息判断是否写入成功;

若写入成功,则客户端基于所述更新元数据更新所述元数据服务器;

若写入失败,则生成写入失败信息。

通过采用上述技术方案,采用三端分别管理的方式,将元数据和数据分开存储,客户端对元数据服务器和数据服务器进行管理控制,根据文件访问请求对元数据和数据更新,从而实现不降低性能、不增加成本的轻量级文件一致性。

可选的,还包括:

获取所述一致性租约授予时间和授予时长;

基于所述授予时间和所述授予时长判断所述一致性制约是否到达预设续约时间;

若所述一致性制约到达预设续约时间,则基于心跳机制向所述元数据服务器发送租约延长请求。

第三方面,本申请提供一种分布式文件系统中维护文件一致性方法,采用如下的技术方案:

一种分布式文件系统中维护文件一致性方法,应用于元数据服务器,所述方法包括:

响应于所述客户端发送的一致性租约请求和元数据获取请求,向所述客户端发送一致性租约和元数据,向所述数据服务器发送所述一致性租约的租约版本号;

实时监测所述客户端的心跳;

判断所述心跳是否过期;

若所述心跳过期,则进入恢复流程;

若所述心跳未过期,则重复所述实时监测所述客户端的心跳的步骤。

通过采用上述技术方案,采用三端分别管理的方式,将元数据和数据分开存储,客户端对元数据服务器和数据服务器进行管理控制,根据文件访问请求对元数据和数据更新,从而实现不降低性能、不增加成本的轻量级文件一致性。

可选的,所述进入恢复流程包括:

所述元数据服务器强制收回发送给所述客户端的一致性租约,并不向所述客户端授予新的一致性租约;

所述元数据服务器变更所述一致性租约的租约版本号,将变更后的租约版本号同步至所述数据服务器;

所述元数据服务器开放所述一致性租约的授予,向其他客户端授予一致性租约;

所述元数据服务器基于与所述一致性租约的版本号请求新授予的客户端读取所述数据服务器中最新的元数据。

第四方面,本申请提供一种分布式文件系统中维护文件一致性方法,采用如下的技术方案:

一种分布式文件系统中维护文件一致性方法,应用于数据服务器,所述方法包括:

接收所述元数据服务器发送的租约版本号;

响应于所述客户端发送的写入请求,获取所述客户端的一致性租约的租约版本号;

判断两个租约版本号是否相同;

若两个租约版本号相同,则将所述更新元数据和所述待写入数据写入;

若两个租约版本号不相同,则拒绝所述写入请求。

通过采用上述技术方案,采用三端分别管理的方式,将元数据和数据分开存储,客户端对元数据服务器和数据服务器进行管理控制,根据文件访问请求对元数据和数据更新,从而实现不降低性能、不增加成本的轻量级文件一致性。

第五方面,本申请提供一种电子设备,采用如下的技术方案:

一种电子设备,包括处理器,所述处理器与存储器耦合;

所述处理器用于执行所述存储器中存储的计算机程序,以使得所述电子设备执行第二方面任一项所述的分布式文件系统中维护文件一致性方法的计算机程序。

第六方面,本申请提供一种计算机可读存储介质,采用如下的技术方案:

一种计算机可读存储介质,存储有能够被处理器加载并执行第二方面任一项所述的分布式文件系统中维护文件一致性方法的计算机程序。

附图说明

图1是本申请实施例提供的一种分布式文件系统的结构框图。

图2是本申请实施例提供的一种应用于客户端的分布式文件系统中维护文件一致性方法的流程示意图。

图3是本申请实施例提供的一种应用于元数据服务器的分布式文件系统中维护文件一致性方法的流程示意图。

图4是本申请实施例提供的一种应用于数据服务器的分布式文件系统中维护文件一致性方法的流程示意图。

图5是本申请实施例提供的电子设备的结构框图。

具体实施方式

以下结合附图对本申请作进一步详细说明。

图1为申请实施例提供的一种分布式文件系统100的结构框图。

如图1所示,分布式文件系统100主要包括:

客户端100,用于接收文件访问请求、处理元数据和数据;

元数据服务器200,用于提供和存储元数据;

数据服务器300,用于提供和存储数据。

在本实施例中,采用三端管理的方式进行文件存储,将元数据存储在元数据服务器中,将数据存储在数据服务器中,通过客户端对元数据服务器和数据服务器分别进行管理,所有的数据都要通过客户端的处理后才存入至数据服务器和元数据服务器中,从而在不降低性能、不增加成本的基础上实现文件一致性。

本申请实施例提供一种分布式文件系统中维护文件一致性方法,该分布式文件系统中维护文件一致性方法可由电子设备执行,该电子设备可以为服务器也可以为终端设备,其中该服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云让算服务的云服务器。终端设备可以是智能手机、平板电脑、台式计算机等,但并不局限于此。

图2为本申请实施例提供的一种应用于客户端的分布式文件系统中维护文件一致性方法的流程示意图。

如图2所示,该方法主要流程描述如下(步骤S401~S408):

步骤S401,客户端接收文件访问请求,向元数据服务器发送一致性租约请求和元数据获取请求。

在本实施例中,用户在对文件进行操作时,系统会产生文件访问请求,客户端接收文件访问请求,当有文件访问请求产生时,表示数据可能即将被修改,需要对元数据和数据进行更新操作,此时,需要向元数据服务器发送一致性租约请求和元数据请求,从而得到一致性租约和元数据,根据得到的元数据进行元数据和数据的更新处理。需要说明的是只有持有一致性租约的客户端才能进行文件访问,文件访问请求包括但不限于write、read 等。

步骤S402,接收元数据服务器发送的一致性租约和元数据。

在本实施例中,一致性租约是服务器从元数据服务器获取的文件许可,只有持有一致性租约的服务器才能进行文件访问,即只有服务器获得一致性租约之后,才能在用户发起访问请求之后,对发起文件访问请求对应的文件进行文件访问。如果在一个系统中设置有多个客户端,那么在进行文件访问时,为了保证数据同步的准确性,只有一个客户端可以获取到一致性租约,当拥有一致性租约的客户端放弃一致性租约之后,其他的客户端才能和获取一致性租约。

步骤S403,获取文件访问请求的待写入数据。

在本实施例中,用户在发起文件访问请求时,表示需要对文件进行读写操作,当用户进行写操作时,则表示需要对数据服务器中的数据和元数据服务器中的元数据进行修改,从而使得元数据与数据保持同步。

步骤S404,基于待写入数据和元数据更新元数据,生成更新元数据。

在本实施例中,当有新的数据产生时,将产生的新的数据作为待写入数据,根据当前产生的待写入数据和从元数据服务器获取到的元数据进行元数据更新,即将获取到的元数据进行更新,生成更新元数据。需要说明的是,此时的更新操作并非在元数据服务器中进行,而是在服务器中进行。

步骤S405,基于更新元数据和待写入数据生成写入请求,将写入请求发送至数据服务器。

在本实施例中,客户端在生成更新元数据之后,需要将更新源数据和待写入数据一起都写入到数据服务器中,从而根据更新元数据和待写入数据生成写入请求,将写入请求发送至数据服务器,等待数据服务器进行写入成功的反馈。

步骤S406,响应于数据服务器的反馈信息判断是否写入成功。

在本实施例中,设置写入反馈时长,在将写入请求发送至数据服务器之后开始计时,当在写入反馈时长之内接收到数据服务器发送的写入成功反馈,则停止计时,并判定为写入成功。如果在写入反馈时长之内没有接收到数据服务器发送的反馈信息,即没有接收到写入成功的反馈,则判定为写入失败。

步骤S407,若写入成功,则客户端基于更新元数据更新元数据服务器。

在本实施例中,如果数据服务器将更新元数据和待写入成功写入数据中,表示数据更新成功,为保证数据和元数据的一致性,在数据更新成功之后,需要将元数据也进行更新,此时,客户端根据更新元数据控制元数据服务器进行元数据更新。

步骤S408,若写入失败,则生成写入失败信息。

在本实施例中,如果数据服务器写入失败,则可以根据写入时长生成写入失败信息,将写入失败信息反馈给用户。并且,元数据服务器还可以请求客户端进行最新元数据的反馈,客户端读取数据服务器中的数据信息,根据数据信息判断是否写入成功但未反馈,若写入成功但未反馈,则依据进行元数据跟新操作,若未写入成功,则同样根据写入时长生成写入失败信息。

在本实施例中,获取一致性租约授予时间和授予时长;基于授予时间和授予时长判断一致性制约是否到达预设续约时间;若一致性制约到达预设续约时间,则基于心跳机制向元数据服务器发送租约延长请求。

一致性租约具有时间限制,当到达授予时长之后,元数据服务器将收回授予客户端的一致性租约,对客户端而言,在获得云数据服务器发送的一致性租约之后,需要根据授予时间和授予时长进行权限拥有时间计时,当达到预设续约时间时,需要根据自身的需求判断是否需要进行一致性租约的续约,如果需要进行续约,则根据心跳机制向元数据服务器发送租约延长请求。需要说明的是,授予时长同样采用心跳机制进行记录,并且预约续约时间也以心跳为周期进行设置,例如授予时长为5个心跳周期,预设续约时长可以设置为4个心跳周期,当第4个心跳周期结束之后,则到达预设续约时间,预设续约时间需要根据实际需求进行设置,在此不作具体限定。

图3为本申请实施例提供的一种应用于元数据服务器的分布式文件系统中维护文件一致性方法的流程示意图。

如图3所示,该方法主要流程描述如下(步骤S501~S505):

步骤S501,响应于客户端发送的一致性租约请求和元数据获取请求,向客户端发送一致性租约和元数据,向数据服务器发送一致性租约的租约版本号。

在本实施例中,元数据服务器在接收到客户端发送的一致性租约请求之后,向发送一致性租约的客户端授予一致性租约,将授予的一致性租约和元数据一同发送给客户端,并且为了保证客户端能够进行文件访问,需要将发送给客户端的一致性租约的租约版本号发送给数据服务器,从而使得数据服务器根据租约版本号进行验证。

步骤S502,实时监测客户端的心跳。

在本实施例中,元数据服务器同样对租约授予的时长进行记录,在授予一致性租约之后,实时监测客户端的心跳并进行记录,例如,第一个心跳周期结束之后,客户端心跳记录为1,表示客户端已经使用该一致性租约一个心跳周期。

步骤S503,判断心跳是否过期。

在本实施例中,实时进行检测和判断操作,在获得客户端心跳之后就进行心跳过期判断操作。

步骤S504,若心跳过期,则进入恢复流程。

针对步骤S504,元数据服务器强制收回发送给客户端的一致性租约,并不向客户端授予新的一致性租约;元数据服务器变更一致性租约的租约版本号,将变更后的租约版本号同步至数据服务器;元数据服务器开放一致性租约的授予,向其他客户端授予一致性租约;元数据服务器基于与一致性租约的版本号请求新授予的客户端读取数据服务器中最新的元数据。

在本实施例中,如果心跳过期,元数据服务器将在本次的操作完成之后进入到恢复流程之中。恢复流程主要包括四个步骤,第一个步骤为最主要的步骤,即在心跳过期之后元数据服务器将强制性的收回授权给客户客户端的一致性租约,并且不继续向收回一致性租约的客户端发送新的一致性租约,此处所说明的不继续向收回一致性租约的客户端发送新的一致性租约为,不在收回之后立即发送新的一致性租约,若在后续的过程中该客户端依旧发送一致性租约请求,元数据服务器依旧会向该客户端发送一致性租约。

第二个步骤为,变更一致性租约的租约版本号,并将变更后的租约版本号发送给数据服务器,当变更租约版本号之后,需要在新的更新操作产生时,将变更后的租约版本号发送给数据服务器,以使得客户服务器进行租约版本号的验证,从而使得客户服务器与客户端建立新的连接。

第三个步骤为,元数据服务器开放一致性租约的授予,向其他客户端授予一致性租约,即在强制收回一致性租约之后,继续接收到其他客户端的授予请求,并将一致性租约授予给其他客户端。

第四个步骤为,元数据服务器基于与一致性租约的版本号请求新授予的客户端读取数据服务器中最新的元数据,即继续更新步骤,将重新建立连接的客户端对应的数据服务器中的数据进行读取,生成最新的元数据,从而将最新的元数据写入到元数据服务器,此情况为客户端出现问题,没有把最新的元数据写入至元数据服务器内。

步骤S505,若心跳未过期,则重复实时监测客户端的心跳的步骤。

图4为本申请实施例提供的一种应用于数据服务器的分布式文件系统中维护文件一致性方法的流程示意图。

如图4所示,该方法主要流程描述如下(步骤S601~S605):

步骤S601,接收元数据服务器发送的租约版本号;

步骤S602,响应于客户端发送的写入请求,获取客户端的一致性租约的租约版本号;

步骤S603,判断两个租约版本号是否相同;

步骤S604,若两个租约版本号相同,则将更新元数据和待写入数据写入;

步骤S605,若两个租约版本号不相同,则拒绝写入请求。

在本实施例中,数据服务器在得到租约版本号并接收到客户端的写入请求之后,验证客户端一致性租约的租约版本号与自身所拥有的租约版本号是否相同,如果相同,则表示与客户端建立连接,可以进行写入操作,并在成功写入之后向客户端进行写入成功的反馈,如果不同,则直接拒绝该客户端的写入请求。

图5为本申请实施例提供的电子设备700的结构框图。

如图5所示,电子设备700包括处理器701和存储器702,还可以进一步包括信息输入/信息输出(I/O)接口703、通信组件704中的一种或多种以及通信总线705。

其中,处理器701用于控制电子设备700的整体操作,以完成上述的分布式文件系统中维护文件一致性方法的全部或部分步骤;存储器702用于存储各种类型的数据以支持在电子设备700的操作,这些数据例如可以包括用于在该电子设备700上操作的任何应用程序或方法的指令,以及应用程序相关的数据。该存储器702可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(Static Random AccessMemory,SRAM)、电可擦除可编程只读存储器(Electrically Erasable ProgrammableRead-Only Memory,EEPROM)、可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,EPROM)、可编程只读存储器(Programmable Read-Only Memory,PROM)、只读存储器(Read-Only Memory,ROM)、磁存储器、快闪存储器、磁盘或光盘中的一种或多种。

I/O接口703为处理器701和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件704用于电子设备700与其他设备之间进行有线或无线通信。无线通信,例如Wi-Fi,蓝牙,近场通信(NearField Communication,简称NFC),2G、3G或4G,或它们中的一种或几种的组合,因此相应的该通信组件104可以包括:Wi-Fi部件,蓝牙部件,NFC部件。

电子设备700可以被一个或多个应用专用集成电路 (Application SpecificIntegrated Circuit,简称ASIC)、数字信号处理器(Digital Signal Processor,简称DSP)、数字信号处理设备(Digital Signal Processing Device,简称DSPD)、可编程逻辑器件(Programmable Logic Device,简称PLD)、现场可编程门阵列(Field ProgrammableGate Array,简称FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述实施例给出的分布式文件系统中维护文件一致性方法。

通信总线705可包括一通路,在上述组件之间传送信息。通信总线705可以是PCI(Peripheral Component Interconnect,外设部件互连标准)总线或EISA (ExtendedIndustry Standard Architecture,扩展工业标准结构)总线等。通信总线705可以分为地址总线、数据总线、控制总线等。

电子设备700可以包括但不限于移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端,还可以为服务器等。

本申请还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述的分布式文件系统中维护文件一致性方法的步骤。

该计算机可读存储介质可以包括:U盘、移动硬盘、只读存储器 (R ead-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。

以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的申请范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离前述申请构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中申请的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

相关技术
  • 多分布式文件系统中处理配置文件的方法及装置
  • 分布式文件系统中重命名方法、装置及分布式文件系统
  • 分布式文件系统中重命名方法、装置及分布式文件系统
技术分类

06120116482522