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

读写混合场景文件大小获取方法、装置和设备

文献发布时间:2024-04-18 20:02:18


读写混合场景文件大小获取方法、装置和设备

技术领域

本发明涉及分布式文件系统技术领域,尤其涉及一种读写混合场景文件大小获取方法、装置和设备。

背景技术

随着高清视频(例如4K、8K)的普及,视频素材的体积变得越来越大,单个视频素材的文件大小会占用几百GB或者更多,越来越多的媒体客户选择使用分布式文件存储来存储海量文件。在广电领域,除了一个客户端在正常的采集收录素材外,还伴随着其他客户端同时对这个文件进行读取的操作。在分布式文件系统(例如Cephfs)中,多个存储客户端对同一个文件的读写,需要与元数据服务(Meta Data Service,MDS)进行一致性权限(Consistency,Availability,Partition Tolerance,CAP)交互,由MDS统一管控客户端的读写权限,其他客户端在读的同时,还需要去不断的调用获取属性函数(getattr)获取文件大小(size),这也需要通过MDS切锁获得权限后才能进行,这个操作会导致正常的读写权限的回收,影响文件读写性能。

发明内容

有鉴于此,本发明提供一种读写混合场景文件大小获取方法、装置和设备,用于解决读写混合场景文件大小获取影响正常I/O读写的技术问题。

基于本发明实施例的一方面,本发明提供了一种读写混合场景文件大小获取方法,该方法应用于分布式文件系统中的元数据服务MDS中,在已为向目标文件写入数据的写客户端分配读写权限,并为从目标文件读取数据的读客户端分配读权限的场景下,该方法包括:

接收读客户端获取目标文件大小的第一请求;

根据第一请求携带的目标文件信息确定写客户端;

向写客户端发送获取目标文件大小的第二请求;

接收写客户端返回的第二请求响应;

发送第一请求响应给读客户端,其中携带第二请求响应返回的目标文件大小。

进一步地,根据第一请求携带的目标文件信息确定写客户端的方法为:

根据第一请求中携带的目标文件信息从目标文件的元数据或集中式锁服务中查询当前已分配写权限的客户端,将查询到的客户端确定为写客户端。

进一步地,向写客户端发送的获取目标文件大小的第二请求中携带第一请求的请求标识及目标文件的文件元数据结构标识(inode号);

第二请求响应中携带目标文件大小及第一请求的请求标识;

根据第一请求的请求标识查询到第一请求实例,根据第一请求实例将第一请求响应发送给读客户端。

基于本发明实施例的另一方面,本发明还提供一种读写混合场景文件大小获取方法,该方法应用于分布式文件系统中已分配目标文件写权限的写客户端,该方法包括:

接收元数据服务MDS发送的获取目标文件大小的第二请求;

从本地获取目标文件大小,并通过第二请求响应将目标文件大小发送给元数据服务。

进一步地,所述第二请求中携带第一请求的请求标识及目标文件的文件元数据结构标识(inode号),所述第一请求为已分配目标文件读权限的读客户端向元数据服务MDS发送的获取目标文件大小的请求;

所述第二请求响应中还携带第一请求的请求标识,以使元数据服务根据第一请求的请求标识查询第一请求实例后,将第一请求响应发送给读客户端。

基于本发明实施例,本发明还提供一种读写混合场景文件大小获取装置,该装置应用于分布式文件系统中的元数据服务MDS中,在已为向目标文件写入数据的写客户端分配读写权限,并为从目标文件读取数据的读客户端分配读权限的场景下,该装置包括:

请求转发模块,用于接收读客户端获取目标文件大小的第一请求;根据第一请求携带的目标文件信息确定写客户端;及向写客户端发送获取目标文件大小的第二请求;

文件大小反馈模块,用于接收写客户端返回的第二请求响应;及发送第一请求响应给读客户端,其中携带第二请求响应返回的目标文件大小。

进一步地,请求转发模块向写客户端发送的获取目标文件大小的第二请求中携带第一请求的请求标识及目标文件的文件元数据结构标识(inode号);

文件大小反馈模块接收的第二请求响应中携带目标文件大小及第一请求的请求标识;

文件大小反馈模块根据第一请求的请求标识查询到第一请求实例,根据第一请求实例将第一请求响应发送给读客户端。

基于本发明实施例,本发明还提供一种读写混合场景文件大小获取装置,该装置应用于分布式文件系统中已分配目标文件写权限的写客户端,该装置包括:

接收单元,用于接收元数据服务MDS发送的获取目标文件大小的第二请求;

响应单元,用于从本地获取目标文件大小,并通过第二请求响应将目标文件大小发送给元数据服务。

进一步地,所述第二请求中携带第一请求的请求标识及目标文件的文件元数据结构标识(inode号),所述第一请求为已分配目标文件读权限的读客户端向元数据服务MDS发送的获取目标文件大小的请求;

所述第二请求响应中还携带第一请求的请求标识,以使元数据服务根据第一请求的请求标识查询第一请求实例后,将第一请求响应发送给读客户端。

本发明提供的装置可以以软件、硬件或软硬结合的方式实现。当以软件模块方式实现时,该软件模块的程序代码被加载到设备的存储介质中,由处理器读取存储介质中的程序代码并执行。

本发明实施例中的读客户端向MDS请求获取文件大小时,MDS发请求给写客户端,直接从写客户端获取文件大小,将文件大小再返回给读客户端。通过本发明,MDS不需要频繁切换分布式锁回收写客户端权限,就能拿到准确的文件大小给读客户端,既保证了所获得的文件大小的准确性,又不影响写I/O的性能。

附图说明

为了更加清楚地说明本发明实施例或者现有技术中的技术方案,下面将对本发明实施例或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据本发明实施例的这些附图获得其他的附图。

图1为一客户端以独占模式写入文件的交互过程;

图2为一客户端写一客户端读场景下锁切换交互过程示意图;

图3为一客户端写入一客户端读场景下频繁获取文件大小导致写业务中断的示意图;

图4为本发明一实施例提供的读写混合场景下文件大小获取方法的消息交互步骤流程示意图;

图5为本发明一实施例提供的实施读写混合场景文件大小获取方法的电子设备结构示意图。

具体实施方式

在本发明实施例使用的术语仅仅是出于描述特定实施例的目的,而非限制本发明实施例。本发明实施例中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。应当理解,尽管在本发明实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用于区别类似的信息、实体或步骤,而不是用于描述特定的顺序或先后次序。例如,在不脱离本发明实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。此外,所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。本发明中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况,其中A,B可以是单数或者复数。并且,在本发明的描述中,除非另有说明,“多个”是指两个或多于两个。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。

以下以分布式文件系统cephfs为例,分析说明多机头即多存储客户端读写并获取文件size的场景中,客户端与MDS之间的权限交互过程。

图1为一客户端以独占模式写入文件的交互过程。图1的示例中,假设需要收录一个素材文件,一个客户端(client1)需要往存储集群写入文件,它首先需要与MDS交互,打开文件时,传入O_RDWR(读写)标志,MDS处理发现此时只有一个客户端操作此文件,则将其权限锁置为LOCK_EXCL(独占),同时分配给客户端Fsxwrcb(读写以及缓存)权限,客户端拿到写权限,然后才能去执行写文件操作,将数据写入OSD(对象持久化设备)。

图2为一客户端写一客户端读场景下锁切换交互过程示意图。在图1示例的client1写入文件的基础上,图2示例了client2加入后的锁切换过程。客户端(client2)以O_RDONLY(只读方式)打开位于OSD中的同一个文件,来读这个文件,同样的,它需要先与MDS交互,拿到权限后,再去读取,但是由于在第一步MDS已经给客户端(client1)分配了读写缓存权限,现在客户端(client2)来读这个文件,MDS首先要将(client1)的Fcb(文件读写缓存)权限进行回收,回收成功后,MDS将权限锁切到LOCK_MIX(混合读写)状态,表示有多个客户端同时读写,然后再分配给(client2)Fr(文件直读)的权限,分配给(client1)Fwr(文件直读直写)权限。客户端收到权限后,才能再发请求给osd进行读写操作。

图3为一客户端写入一客户端读场景下频繁获取文件大小导致写业务中断的示意图。图3示例了读写混合场景下文件读写的锁切换过程,假设client1采集一个大的视频文件,client1不断地向文件中写入视频数据,client2在client1写入的同时读取视频数据进行播放,由于文件大小因为不断的写入过程是变化的,client2为了能不断读取到新写入的视频数据,客户端client2在读取文件的过程中,需要不断地通过getattr(读元数据请求)去获取文件的size(大小),判断具体能读到文件的哪个偏移位置,这个过程中,MDS在强一致性要求的约束下,需要将写权限先回收,将文件变为元数据只读状态,才能返回size给客户端,然而,写权限的收回,会影响正常的写I/O的业务,造成client1写入I/O的波动,降低了文件访问效率。

基于对上述应用场景的分析,本发明的目的是提供一种读写混合场景文件大小获取方案。本发明技术方案的主体思路是:在读文件客户端获取文件尺寸时,MDS不再收回写文件客户端的写入权限,而是由MDS从写文件客户端获取文件大小后将文件大小转发给读文件客户端。本发明方案在读文件客户端获取文件大小期间不需要进行分布式锁的切换,因此提高了边写边读场景下文件的读写I/O效率。

基于本发明的基本思路,本发明提供如下实施例,其中,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

图4为本发明一实施例提供的读写混合场景下文件大小获取方法的消息交互步骤流程示意图。图示的应用场景为读写混合场景,该场景下,写客户端client1在不断向目标文件写入数据,一个或多个读客户端client2在client1不断写入数据的同时也在不断读取目标文件的数据,MDS先后为写客户端client1分配了写权限(Fw),为读客户端client2分配读权限(Fr),MDS的一致性权限caps状态处于读写混合(LOCK MIX)状态,在该状态下,获取文件大小size的过程如下:

步骤401.读客户端client2向MDS发送获取目标文件大小的第一请求(getattr)。

步骤402.MDS接收到第一请求后,根据第一请求携带的目标文件信息确定写客户端;

MDS接收到第一请求后,通过handle_client_getattr函数处理第一请求,通过该函数实现获取目标文件大小的请求由MDS到写客户端的转发。

MDS可通过元数据或集中式锁服务来查询当前已分配写权限的客户端。

在进行文件写入操作时,客户端会更新目标文件的元数据,包括写客户端的信息。MDS可通过查询目标文件的元数据来获取当前正在进行写入的客户端信息。

另一种确定写客户端的方式是采用集中式锁服务,所有客户端在写入文件之前都需要向该中心服务请求写入锁。在获得写入锁时,客户端将自己的信息注册到锁服务中。MDS可根据目标文件信息查找集中式锁服务以获取当前所有正在进行写入的客户端列表。

例如,MDS根据目标文件的文件元数据结构标识(inode号)从MDS的元数据或集中式锁服务中获取到写客户端标识,例如从client_range(写客户端偏移范围)元数据结构中查找到写客户端标识,client_range里保存了每个写客户端对应的能写到多大的偏移的数值,采用的存储结构。通过判断range的值大于0,可确定对应的client_id是写客户端。在边采边播高清视频的应用场景下,通常只有一个写客户端在写入大的视频媒体文件,可有多个读客户端同时读取视频文件。

文件inode在Unix和类Unix操作系统中用于表示文件或目录的元数据结构,其中包括了文件的属性、权限、所属用户和组、文件大小、时间戳等信息。inode号是inode数据结构的唯一标识。

步骤403.生成获取目标文件大小size的消息体MClientGetsize,将目标文件inode号及getattr请求标识tid写入消息体中;

步骤404.向写客户端发送获取目标文件大小的第二请求(MSG_FILE_GET_SIZE消息),请求中携带消息体MClientGetsize。

步骤405.写客户端接收第二请求后,从消息体MClientGetsize中获取目标文件inode号,通过inode号在本地查找出目标文件的inode结构缓存,将inode数据结构中的文件大小size赋值给返回的消息结构体中。

写客户端收到第二请求后,通过handle_mds_get_file_size函数进行处理,从本地获取目标文件大小并返回给MDS。

步骤406.写客户端发送第二请求响应(MSG_FILE_GET_SIZE_ACK消息给MDS,其中携带目标文件大小及第一请求标识(getattr tid);

步骤407.MDS接收第二请求响应,从中解析出目标文件大小及第一请求标识;

步骤408.MDS根据第一请求标识找到对应的读客户端的第一请求实例,将目标文件大小size更新到MDS本地缓存,然后打包第一请求响应消息体。

步骤409.MDS将第一响应消息发送给读客户端client2,从而使client2获取目标文件的当前大小size。

基于图4的示例可以看出,MDS不再如图3示例的步骤那样,在处理读客户端获取目标文件大小getattr的请求时,暂时收回写客户端的写权限(revoke Fw),从而避免了写客户端写入文件的中断,减小了对写客户端的影响。

图5为本发明一实施例提供的实施读写混合场景文件大小获取方法的电子设备结构示意图,该设备500包括:诸如中央处理单元(CPU)的处理器510、通信总线520、通信接口540以及存储器530。其中,处理器510与存储器530可以通过通信总线520相互通信。存储器530内存储有计算机程序,当该计算机程序被处理器510执行时即可实现本发明提供的读写混合场景文件大小获取方法的步骤功能。

本发明实施例提供的实施读写混合场景文件大小获取方法的计算机程序可分为位于写客户端的部分和位于MDS的部分,运行位于写客户端计算机程序的如图5示例的设备为客户端设备,运行位于MDS部分的计算机程序的如图5示例的设备为MDS服务器。

存储器是指基于某种存储介质用于存储计算机程序和/或数据的装置,它可以是易失性存储器(Volatile Memory,VM,常称为内存),也可以是非易失性存储器(Non-Volatile Memory,NVM)。内存是指与处理器直接交换数据的内部存储器,它可以随时读写数据,而且速度很快,作为操作系统和其它运行程序的临时数据的存储介质。内存可以是同步动态随机存取内存(Synchronous Dynamic Random Access Memory,SDRAM)、动态随机存取内存(Dynamic Random Access Memory,DRAM)等。非易失性存储器是指采用持久化存储介质的存储器,具有容量大和可持久保存数据的特性,可以是存储级存储器(StorageClass Memory,SCM)、固态硬盘(Solid State Disk,SSD)、NAND闪存、磁盘等。SCM是业界对介于内存与闪存之间的新存储介质的统称,是一种同时结合持久化存储特性与内存特性的复合型储存技术,存取速度慢于DRAM快于SSD硬盘。

处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

应当认识到,本发明的实施例可以由计算机硬件、硬件和软件的组合、或者通过存储在非暂时性(或称为非持久性)存储器中的计算机指令来实现或实施。所述方法可以使用标准编程技术,包括配置有计算机程序的非暂时性存储介质在计算机程序中实现,其中如此配置的存储介质使得计算机以特定和预定义的方式操作。每个程序可以以高级过程或面向对象的编程语言来实现以与计算机系统通信。然而,若需要,该程序可以以汇编或机器语言实现。在任何情况下,该语言可以是编译或解释的语言。此外,为此目的该程序能够在编程的专用集成电路上运行。此外,可按任何合适的顺序来执行本发明描述的过程的操作,除非本发明另外指示或以其他方式明显地与上下文矛盾。本发明描述的过程(或变型和/或其组合)可在配置有可执行指令的一个或多个计算机系统的控制下执行,并且可作为共同地在一个或多个处理器上执行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用)、由硬件或其组合来实现。所述计算机程序包括可由一个或多个处理器执行的多个指令。

进一步,所述方法可以在可操作地连接至合适的任何类型的计算平台中实现,包括但不限于个人电脑、迷你计算机、主框架、工作站、网络或分布式计算环境、单独的或集成的计算机平台、或者与带电粒子工具或其它成像装置通信等等。本发明的各方面可以以存储在非暂时性存储介质或设备上的机器可读代码来实现,无论是可移动的还是集成至计算平台,如硬盘、光学读取和/或写入存储介质、RAM、ROM等,使得其可由可编程计算机读取,当存储介质或设备由计算机读取时可用于配置和操作计算机以执行在此所描述的过程。此外,机器可读代码,或其部分可以通过有线或无线网络传输。当此类媒体包括结合微处理器或其他数据处理器实现上文所述步骤的指令或程序时,本发明所述的发明包括这些和其他不同类型的非暂时性计算机可读存储介质。当根据本发明所述的方法和技术编程时,本发明还包括计算机本身。

以上所述仅为本发明的实施例而已,并不用于限制本发明。对于本领域技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

相关技术
  • 一种获取混合现实场景的方法及系统
  • IoT设备的权限获取方法、装置、存储介质及电子装置
  • 家电设备唤醒时长的获取方法、装置和家电设备
  • 消息配置方法、消息获取方法、装置、设备及存储介质
  • 音乐的处理方法、音乐的获取方法、装置、家电设备
  • 音视频文件大小的获取方法和装置
  • 信息发送获取方法及装置、标签、读写器、介质和设备
技术分类

06120116583303