CN110795386A - 一种数据写入方法和服务端 - Google Patents
一种数据写入方法和服务端 Download PDFInfo
- Publication number
- CN110795386A CN110795386A CN201810857497.7A CN201810857497A CN110795386A CN 110795386 A CN110795386 A CN 110795386A CN 201810857497 A CN201810857497 A CN 201810857497A CN 110795386 A CN110795386 A CN 110795386A
- Authority
- CN
- China
- Prior art keywords
- data
- writing
- stored
- file system
- area
- 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
Images
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/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/11—File system administration, e.g. details of archiving or snapshots
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/172—Caching, prefetching or hoarding 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
-
- 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
-
- 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/0644—Management of space entities, e.g. partitions, extents, pools
-
- 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/0662—Virtualisation aspects
-
- 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]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种数据写入方法和服务端。本申请中,通过将元数据与一般数据进行区分,将区分出的元数据长久保存至缓存区,将区分出的一般数据按写入块设备,可以避免元数据和一般数据混合刷写,导致磁头在块设备的一般数据存储位置和元数据存储位置之间的频繁移动,提高数据的读写性能。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种数据写入方法和服务端。
背景技术
块设备是指可以从设备的任意位置读取一定长度数据的设备,包括硬盘、磁盘、U盘和闪存等。它利用一块系统内存作为缓存区,操作系统在收到待存储的数据时,可以先将数据保存至缓存区,之后再根据已有的淘汰算法将缓存区中的部分数据写入块设备保存。
操作系统中负责管理和存储文件信息的软件机构称为文件系统,文件系统中的数据包括一般数据和元数据。其中,一般数据是指普通文件中的实际数据,而元数据是用来描述一个文件的特征的系统数据,如访问权限、文件拥有者以及文件数据块的分布信息(如Inode)等。理想情况下,将元数据和部分热门的一般数据保存在缓存区更能加速块设备的读写操作。
但由于块设备一般是以安装文件系统的方式使用的,当块设备已经格式化为文件系统时,数据到达块设备后是没有任何文件属性信息的,操作系统无法准确区分收到的数据是一般数据还是元数据,这样可能导致将重要的元数据从缓存区淘汰。
发明内容
有鉴于此,本申请提供一种数据写入方法和服务端,用以将元数据与一般数据进行区分,并将区分出的元数据写入缓存区,以优化块设备的读写性能。
具体地,本申请是通过如下技术方案实现的:
本申请实施例第一方面,提供了一种数据写入方法,所述方法应用于服务端,包括:
接收客户端发送的第一待存储数据和所述第一待存储数据在块设备中的写入位置;
将所述第一待存储数据的写入位置与已生成的多个文件系统的区域位置信息进行比对;所述多个文件系统的区域位置信息根据所述客户端使用的块设备的存储空间大小生成,每个文件系统的区域位置信息包括该文件系统的元数据区和一般数据区的位置信息;
在确定所述第一待存储数据的写入位置位于第一文件系统的元数据区内时,将所述第一待存储数据写入本服务端的缓存区。
本申请实施例第二方面,提供了一种服务端,具有实现上述第一方面提供的方法的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块或单元。
一种实现方式中,所述服务端可以包括:
接收单元,用于接收客户端发送的第一待存储数据和所述第一待存储数据在块设备中的写入位置;
比对单元,用于将所述第一待存储数据的写入位置与已生成的多个文件系统的区域位置信息进行比对;所述多个文件系统的区域位置信息根据所述客户端使用的块设备的存储空间大小生成,每个文件系统的区域位置信息包括该文件系统的元数据区和一般数据区的位置信息;
写数据单元,用于在所述比对单元确定所述第一待存储数据的写入位置位于第一文件系统的元数据区内时,将所述第一待存储数据写入本服务端的缓存区。
另一种实现方式中,所述服务端包括处理器、通信接口、存储器和总线,其中,处理器,通信接口,存储器通过总线相互连接;
所述存储器中存储机器可读指令,所述处理器通过调用所述机器可读指令执行本申请实施例第一方面提供的方法。
本申请实施例将元数据与一般数据进行区分,将区分出的元数据长久保存至缓存区,将区分出的一般数据按写入块设备,可以避免元数据和一般数据混合刷写,导致磁头在块设备的一般数据存储位置和元数据存储位置之间的频繁移动,提高数据的读写性能。
附图说明
图1是本申请实施例提供的架构示意图;
图2是本申请实施例提供的方法流程图;
图3是本申请实施例提供的EXT2系统中块设备的分区示意图;
图4是本申请实施例提供的EXT2系统中块组的逻辑结构示意图;
图5a、图5b、图5c和图5d是本申请实施例提供的反查操作的示意图;
图6是本申请实施例提供的服务端的模块框图;
图7是本申请实施例提供的服务端的硬件结构图。
具体实施方式
以下,首先对本申请实施例中涉及的部分用语进行解释说明。
元数据:包括管理整个文件系统的数据结构,管理空间分配的数据结构,文件的属性和指针,目录的属性及内容。以EXT2文件系统为例,超级块、块组描述符、数据块位图、Inode节点位图、Inode表、目录项页面都属于文件系统的元数据。
一般数据:指的是文件的内容。以EXT2文件系统为例,文件系统的一般数据是存放在数据区的文件内容。
元数据区(matadata area):指的是在内存中分配的一段内存地址连续的空间。其用于缓存超级块、块组描述符、Inode节点位图、数据位图以及拷贝目录和压缩文件解压操作过程中创建的Inode节点信息。
一般数据区(data area):指的是在内存中分配的一段内存地址连续的空间。其用于缓存拷贝目录和压缩文件解压操作过程中创建的数据信息。
下面结合说明书附图和各实施例对本申请技术方案进行说明。
请参考图1所示,其为本申请实施例的总体架构图。本申请实施例中包括客户端和服务端,服务端连接于多个块设备,并且服务端连接于客户端和块设备之间;服务端与客户端以及服务端与块设备之间的连接可以是网络连接或者电连接。服务端可以为这多个块设备设置一个缓存区,并在客户端创建与块设备对应的虚拟设备。客户端把数据保存到虚拟设备的过程,相当于向服务端发送写指令,由服务端将该写指令携带的数据写入缓存区或块设备;客户端从虚拟设备提取数据的过程,相当于向服务端发送读指令,由服务端根据读指令的访问地址向块设备或缓存区提取相应的数据并返回给客户端。为改善块设备的读写性能,本申请主要对写数据的过程作了改进,表现于服务端对待存储的数据进行分离和识别,区分出元数据和一般数据,并将区分出的元数据长久保存至缓存区。
参见图2所示,其为本申请提供的数据写入方法的运作流程示意图。针对每个客户端,当服务端第一次从该客户端收到待存储的数据时,执行以下步骤:
步骤201:服务端接收客户端发送的第一待存储数据和第一待存储数据在块设备中的写入位置。
本申请实施例中,第一待存储数据在块设备中的写入位置通过以下信息表示:第一待存储数据在块设备中的开始写入位置和第一待存储数据的数据大小。结合第一待存储数据的开始写入位置和数据大小,可以确定第一待存储数据在块设备中的开始写入位置和结束写入位置。
步骤202:服务端将第一待存储数据的写入位置与已生成的多个文件系统的区域位置信息进行比对;该多个文件系统的区域位置信息根据客户端使用的块设备的存储空间大小生成,每个文件系统的区域位置信息包括该文件系统的元数据区和一般数据区的位置信息。
在步骤201之前,客户端预先向服务端申请使用块设备,该客户端能够使用的块设备存储空间大小可以由客户端主动申请,或者也可以由服务端统一分配。服务端接受客户端的块设备使用申请后,在自身连接的多个块设备中确定出供该客户端使用的块设备,以及在客户端上创建虚拟设备。在客户端上创建虚拟设备,相当于将块设备挂载到了客户端,该虚拟设备可以视为块设备的映射,例如客户端对虚拟设备进行格式化,相当于向服务端发送格式化指令,由服务端对分配给该客户端使用的块设备进行格式化;客户端将数据保存到虚拟设备,相当于向服务端发送写指令,由服务端将该写指令携带的数据写入缓存区或块设备。
客户端如果想将块设备当成文件使用,则需要将块设备格式化成文件系统。本申请的设计思路是,通过比对块设备格式化后的区域位置信息和数据的写入位置,来判断数据的类型。如果数据的写入位置位于格式化后的块设备的元数据区,则认为该数据为元数据;如果数据的写入位置位于格式化后的块设备的一般数据区,则认为该待数据为一般数据。
但在一般情况下,服务端并不确定客户端将其使用的块设备格式化成了哪个文件系统,因此本申请实施例中,服务端可以建立一个文件系统模板库,模板库中包括市面上通用的文件系统结构,如EXT2、EXT3、XSS、FAT、NTFS等。当客户端确定了其所要使用的块设备的存储空间大小后,服务端可以将该存储空间大小作为入参传入文件系统模板库,利用文件系统模板库建立一套与该存储空间大小相匹配的各个文件系统的区域位置信息;输入的存储空间大小不同,生成的各个文件系统的区域位置信息也不同。针对每个客户端,服务端可以建立一套与该客户端使用的块设备大小对应的文件系统区域位置信息。
以下以EXT2文件系统为例,说明文件系统的区域位置信息。参见图3,在块设备上创建EXT2文件系统时会将块设备划分为一个引导块(boot block)和多个块组(blockgroup);其中的引导块是指文件系统的启动扇区,可以用于安装引导程序;其中的每个块组均有各自的元数据区和一般数据区,每个块组的内部逻辑结果参见图4所示,包括一般数据区和元数据区。
从图4可以看到块组中元数据区和一般数据区的逻辑结构。一般数据区结构比较单一,由许多大小相同的数据块(block)组成。元数据区则包括多个子元数据区,例如EXT2文件系统的元数据区由超级块(Super Block)、FSD(文件系统描述说明)、inode表(inodetable)、inode位图(inode bitmap)和数据块位图(block bitmap)五个子元数据区组成。
步骤203:服务端在确定第一待存储数据的写入位置位于第一文件系统的元数据区内时,将第一待存储数据写入本服务端的缓存区。
本实施例中,服务端将第一待存储数据的写入位置与已生成的多个文件系统的区域位置信息进行依次比对,当比较到第一文件系统,发现第一待存储数据的开始写入位置和结束写入位置位于第一文件系统的同一个子元数据区内,则确定第一待存储数据的写入位置位于第一文件系统的元数据区内。此时,服务端将第一文件系统判定是该客户端使用的块设备可能采用的文件系统类型,并判定第一待存储数据可能是元数据。找到第一文件系统后,服务端可以停止比对,直接将第一待存储数据写入缓存区。
在另一个例子中,如果直至比较到最后一个文件系统,未发现任何一个文件系统满足:第一待存储数据的写入位置位于该文件系统的元数据区内,则服务端可以确定第一待存储数据是一般数据。接下来,服务端可以按照设定的一般数据处理策略处理该第一待存储数据,例如可以直接将该第一待存储数据写入块设备,或者可以先将第一待存储数据写入缓存区,当缓存区的可用空间小于一定值后,再对缓存区中的一般数据进行淘汰,一种具体的实现方式如下:在确定第一待存储数据的写入位置位于已生成的多个文件系统中每个文件系统的一般数据区内时,确定第一待存储数据为一般数据,判断本服务端缓存区的可用空间是否大于第一待存储数据的占用空间;如果是,则将第一待存储数据写入本服务端的缓存区;如果否,则根据预设的淘汰算法,如FIFO(First In First Out,先进先出)算法、LRU(Least Recently Used,最近最少使用)算法、LFU(Least Frequently Used,最不经常使用)算法等,在本服务端缓存区保存的一般数据中确定淘汰数据;根据该淘汰数据的写入位置,从缓存区中选择具有相邻写入位置的至少一个数据;将淘汰数据与该具有相邻写入位置的至少一个数据一起写入本服务端的块设备。
这里,通过将具有相邻写入位置的多个数据聚合成一个大的数据一次性写入块设备,相比将多个数据分批次写入块设备,可以减少磁头在磁碟上的往复摆动,以及可以减少将数据写入块设备消耗的时间。同样的,当需要将缓存区中的被认为是元数据的数据写入块设备时,也可以采用聚合的方式,将具有相邻写入位置的元数据一起写入块设备。
需要注意的是,本申请实施例中将缓存区中的数据写入块设备后,还需要将该写入的数据从缓存区删除;当将块设备中的数据写入缓存区后,则无需执行删除操作,块设备中还保留相应的数据。
以上描述了针对每个客户端,当服务端第一次从该客户端收到待存储的数据时所执行的数据写入流程。之后,当服务端再次从该客户端收到待存储的数据时,服务端可以再次执行步骤201-203。或者,在另一个实施例中,为进一步改善块设备的读写性能,在服务端执行过一次步骤201-203已经确定了客户端使用的块设备可能采用的文件系统类型的情况下,服务端在收到同一客户端后续发送的待存储数据,例如第二待存储数据时,可以执行以下过程:
服务端接收客户端发送的第二待存储数据和第二待存储数据在块设备中的写入位置;第二待存储数据在块设备中的写入位置用于指示第二待存储数据在块设备中的开始写入位置和结束写入位置。
服务端将第二待存储数据的写入位置与第一文件系统的区域位置信息进行比对。第一文件系统即步骤203中确定出的客户端使用的块设备可能采用的文件系统类型,这里直接将第二待存储数据与第一文件系统匹配,无需将第二待存储数据的写入位置与已生成的与该客户端对应的多个文件系统的区域位置信息进行一一比对。
一种情况下,如果第二待存储数据的开始写入位置和结束写入位置位于第一文件系统的同一个子元数据区内,则确定第二待存储数据的写入位置位于第一文件系统的元数据区内。此时,服务端仍将第一文件系统判定是该客户端使用的块设备可能采用的文件系统类型,并判定第二待存储数据可能是元数据,从而直接将第二待存储数据写入缓存区。
另一种情况下,如果第二待存储数据的开始写入位置和结束写入位置位于第一文件系统的一般数据区内,则服务端仍将第一文件系统判定是该客户端使用的块设备可能采用的文件系统类型,并判定第二待存储数据可能是一般数据,接下来服务端可以按照设定的一般数据处理策略处理第二待存储数据,具体处理过程不作赘述。
再一种情况下,如果第二待存储数据的开始写入位置和结束写入位置位于第一文件系统的不同子元数据区内,或者第二待存储数据的开始写入位置位于第一文件系统的元数据区内且第二待存储数据的结束写入位置位于第一文件系统的元数据区外,则表明第一文件系统不是该客户端使用的块设备所采用的文件系统类型,从而服务端需要重新将第二待存储数据的写入位置与已生成的多个文件系统中的(除第一文件系统外的)其它文件系统的区域位置信息进行比对。
作为一种实施方式,如果未发现任何一个文件系统满足:第二待存储数据的开始写入位置和结束写入位置位于该文件系统的元数据区内,则确定该第二待存储数据是一般数据。
反之,如果确定第二待存储数据的开始写入位置和结束写入位置位于第二文件系统的同一个子元数据区内,则此时,可以将第二文件系统判定是该客户端使用的块设备可能采用的文件系统类型,并判定第二待存储数据可能是元数据。找到第二文件系统后,服务端可以停止比对,直接将第二待存储数据写入本服务端的缓存区。
进一步的,在判定第二文件系统是客户端使用的块设备可能采用的文件系统类型之后,服务端还可以执行反查操作,将之前被误判为元数据的数据转移至块设备,以及将之前被误判为一般数据的数据重新写入缓存区,具体如下:
参见图5a,如果第一文件系统的元数据区范围[x1,y1]包含第二文件系统的元数据区范围[x2,y2],则服务端可以将保存在本服务端缓存区中的开始写入位置和/或结束写入位置位于[x1,x2]内的数据、以及开始写入位置和/或结束写入位置位于[y2,y1]内的数据写入本服务端的块设备。
参见图5b,如果第一文件系统的元数据区范围[x1,y1]与第二文件系统的元数据区范围[x2,y2]存在交集且x1>x2,y1>y2,则服务端可以将保存在本服务端缓存区中的开始写入位置和/或结束写入位置位于[y2,y1]内的数据写入本服务端的块设备,以及将保存在本服务端块设备中的开始写入位置和结束写入位置均位于[x2,x1]内的数据写入本服务端的缓存区。
参见图5c,如果第一文件系统的元数据区范围[x1,y1]与第二文件系统的元数据区范围[x2,y2]存在交集且x1<x2,y1<y2,则服务端可以将保存在本服务端缓存区中的开始写入位置和/或结束写入位置位于[x1,x2]内的数据写入本服务端的块设备,以及将保存在本服务端块设备中的开始写入位置和结束写入位置均位于[y1,y2]内的数据写入本服务端的缓存区。
参见图5d,如果第二文件系统的元数据区范围[x2,y2]包含第一文件系统的元数据区范围[x1,y1],则服务端可以将保存在本服务端块设备中的开始写入位置和结束写入位置均位于[x2,x1]内的数据、以及开始写入位置和结束写入位置均位于[y1,y2]内的数据写入本服务端的缓存区。
至此,完成对本申请提供的方法的描述。
由于块设备被格式化文件系统后,一般数据和元数据在块设备中通常是分别存储的,本申请实施例将元数据与一般数据进行区分,将区分出的元数据长久保存至缓存区,将区分出的一般数据按写入块设备,可以避免元数据和一般数据混合刷写,导致磁头在块设备的一般数据存储位置和元数据存储位置之间的频繁移动,提高数据的读写性能。
进一步地,本申请实施例通过将具有相邻写入位置的多个数据聚合成一个大的数据一次性写入块设备,相比将多个数据分批次写入块设备,更加减少了磁头的往复摆动,以及减少了将数据写入块设备消耗的时间。
下面对本申请提供的装置进行描述。
参见图6,图6为本申请实施例提供的服务端的功能模块图。如图6所示,该服务端包括:
接收单元601,用于接收客户端发送的第一待存储数据和所述第一待存储数据在块设备中的写入位置;
比对单元602,用于将所述第一待存储数据的写入位置与已生成的多个文件系统的区域位置信息进行比对;所述多个文件系统的区域位置信息根据所述客户端使用的块设备的存储空间大小生成,每个文件系统的区域位置信息包括该文件系统的元数据区和一般数据区的位置信息;
写数据单元603,用于在所述比对单元602确定所述第一待存储数据的写入位置位于第一文件系统的元数据区内时,将所述第一待存储数据写入本服务端的缓存区。
在其中一种实施方式中,每个文件系统的元数据区包括多个子元数据区,所述第一待存储数据在块设备中的写入位置用于指示所述第一待存储数据在块设备中的开始写入位置和结束写入位置;所述比对单元602,用于在确定如果所述第一待存储数据的开始写入位置和结束写入位置位于所述第一文件系统的同一个子元数据区内时,确定所述第一待存储数据的写入位置位于第一文件系统的元数据区内。
在其中一种实施方式中,所述接收单元601,还用于接收所述客户端发送的第二待存储数据和所述第二待存储数据在块设备中的写入位置;所述第二待存储数据在块设备中的写入位置用于指示所述第二待存储数据在块设备中的开始写入位置和结束写入位置;
所述比对单元602,还用于将所述第二待存储数据的写入位置与所述第一文件系统的区域位置信息进行比对;如果所述第二待存储数据的开始写入位置和结束写入位置位于所述第一文件系统的不同子元数据区内,或者所述第二待存储数据的开始写入位置位于所述第一文件系统的元数据区内且所述第二待存储数据的结束写入位置位于所述第一文件系统的元数据区外,则将所述第二待存储数据的写入位置与所述已生成的多个文件系统中的其它文件系统的区域位置信息进行比对;
所述写数据单元603,还用于在所述比对单元602确定所述第二待存储数据的开始写入位置和结束写入位置位于第二文件系统的同一个子元数据区内时,将所述第二待存储数据写入本服务端的缓存区。
在其中一种实施方式中,所述写数据单元603,还用于如果所述第一文件系统的元数据区范围[x1,y1]包含所述第二文件系统的元数据区范围[x2,y2],则将保存在本服务端缓存区中的开始写入位置和/或结束写入位置位于[x1,x2]内的数据、以及开始写入位置和/或结束写入位置位于[y2,y1]内的数据写入本服务端的块设备。
在其中一种实施方式中,所述写数据单元603,还用于如果所述第一文件系统的元数据区范围[x1,y1]与所述第二文件系统的元数据区范围[x2,y2]存在交集且x1>x2,y1>y2,则将保存在本服务端缓存区中的开始写入位置和/或结束写入位置位于[y2,y1]内的数据写入本服务端的块设备,以及将保存在本服务端块设备中的开始写入位置和结束写入位置均位于[x2,x1]内的数据写入本服务端的缓存区。
在其中一种实施方式中,所述写数据单元603,还用于如果所述第一文件系统的元数据区范围[x1,y1]与所述第二文件系统的元数据区范围[x2,y2]存在交集且x1<x2,y1<y2,则将保存在本服务端缓存区中的开始写入位置和/或结束写入位置位于[x1,x2]内的数据写入本服务端的块设备,以及将保存在本服务端块设备中的开始写入位置和结束写入位置均位于[y1,y2]内的数据写入本服务端的缓存区。
在其中一种实施方式中,所述写数据单元603,还用于如果所述第二文件系统的元数据区范围[x2,y2]包含所述第一文件系统的元数据区范围[x1,y1],则将保存在本服务端块设备中的开始写入位置和结束写入位置均位于[x2,x1]内的数据、以及开始写入位置和结束写入位置均位于[y1,y2]内的数据写入本服务端的缓存区。
在其中一种实施方式中,所述写数据单元603,还用于在确定所述第一待存储数据的写入位置位于所述多个文件系统中每个文件系统的一般数据区内时,确定所述第一待存储数据为一般数据,判断本服务端缓存区的可用空间是否大于所述第一待存储数据的占用空间;如果是,则将所述第一待存储数据写入本服务端的缓存区;如果否,则根据预设的淘汰算法在本服务端缓存区保存的一般数据中确定淘汰数据;根据所述淘汰数据的写入位置,从缓存区中选择具有相邻写入位置的至少一个数据;将所述淘汰数据与所述具有相邻写入位置的至少一个数据一起写入本服务端的块设备。
需要说明的是,本申请实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。在本申请的实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
至此,完成图6所示装置的描述。
对应地,本申请还提供了服务端的硬件结构。参见图7,图7为本申请提供的服务端的硬件结构示意图,该服务端包括:处理器701、通信接口702、存储器703和总线704,其中,处理器701、通信接口702、存储器703通过总线相互连接。
通信接口702,用于服务端与客户端的通信;
存储器703,用于存储机器可读指令;
处理器701,通过调用所述机器可读指令,执行图2所示的方法。
本申请还提供一种机器可读存储介质,所述机器可读存储介质存储有机器可读指令,所述机器可读指令在被处理器调用和执行时,所述机器可执行指令促使所述处理器实现图2所示的方法。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (10)
1.一种数据写入方法,其特征在于,所述方法应用于服务端,包括:
接收客户端发送的第一待存储数据和所述第一待存储数据在块设备中的写入位置;
将所述第一待存储数据的写入位置与已生成的多个文件系统的区域位置信息进行比对;所述多个文件系统的区域位置信息根据所述客户端使用的块设备的存储空间大小生成,每个文件系统的区域位置信息包括该文件系统的元数据区和一般数据区的位置信息;
在确定所述第一待存储数据的写入位置位于第一文件系统的元数据区内时,将所述第一待存储数据写入本服务端的缓存区。
2.如权利要求1所述的方法,其特征在于,每个文件系统的元数据区包括多个子元数据区,所述第一待存储数据在块设备中的写入位置用于指示所述第一待存储数据在块设备中的开始写入位置和结束写入位置;所述确定所述第一待存储数据的写入位置位于第一文件系统的元数据区内,包括:
如果所述第一待存储数据的开始写入位置和结束写入位置位于所述第一文件系统的同一个子元数据区内,则确定所述第一待存储数据的写入位置位于第一文件系统的元数据区内。
3.如权利要求2所述的方法,其特征在于,所述方法还包括:
接收所述客户端发送的第二待存储数据和所述第二待存储数据在块设备中的写入位置;所述第二待存储数据在块设备中的写入位置用于指示所述第二待存储数据在块设备中的开始写入位置和结束写入位置;
将所述第二待存储数据的写入位置与所述第一文件系统的区域位置信息进行比对;
如果所述第二待存储数据的开始写入位置和结束写入位置位于所述第一文件系统的不同子元数据区内,或者所述第二待存储数据的开始写入位置位于所述第一文件系统的元数据区内且所述第二待存储数据的结束写入位置位于所述第一文件系统的元数据区外,则将所述第二待存储数据的写入位置与所述已生成的多个文件系统中的其它文件系统的区域位置信息进行比对;
在确定所述第二待存储数据的开始写入位置和结束写入位置位于第二文件系统的同一个子元数据区内时,将所述第二待存储数据写入本服务端的缓存区。
4.如权利要求3所述的方法,其特征在于,在确定所述第二待存储数据的开始写入位置和结束写入位置位于第二文件系统的同一个子元数据区内之后,所述方法还包括:
如果所述第一文件系统的元数据区范围[x1,y1]包含所述第二文件系统的元数据区范围[x2,y2],则将保存在本服务端缓存区中的开始写入位置和/或结束写入位置位于[x1,x2]内的数据、以及开始写入位置和/或结束写入位置位于[y2,y1]内的数据写入本服务端的块设备。
5.如权利要求3所述的方法,其特征在于,在确定所述第二待存储数据的开始写入位置和结束写入位置位于第二文件系统的同一个子元数据区内之后,所述方法还包括:
如果所述第一文件系统的元数据区范围[x1,y1]与所述第二文件系统的元数据区范围[x2,y2]存在交集且x1>x2,y1>y2,则将保存在本服务端缓存区中的开始写入位置和/或结束写入位置位于[y2,y1]内的数据写入本服务端的块设备,以及将保存在本服务端块设备中的开始写入位置和结束写入位置均位于[x2,x1]内的数据写入本服务端的缓存区。
6.如权利要求3所述的方法,其特征在于,在确定所述第二待存储数据的开始写入位置和结束写入位置位于第二文件系统的同一个子元数据区内之后,所述方法还包括:
如果所述第一文件系统的元数据区范围[x1,y1]与所述第二文件系统的元数据区范围[x2,y2]存在交集且x1<x2,y1<y2,则将保存在本服务端缓存区中的开始写入位置和/或结束写入位置位于[x1,x2]内的数据写入本服务端的块设备,以及将保存在本服务端块设备中的开始写入位置和结束写入位置均位于[y1,y2]内的数据写入本服务端的缓存区。
7.如权利要求3所述的方法,其特征在于,在确定所述第二待存储数据的开始写入位置和结束写入位置位于第二文件系统的同一个子元数据区内之后,所述方法还包括:
如果所述第二文件系统的元数据区范围[x2,y2]包含所述第一文件系统的元数据区范围[x1,y1],则将保存在本服务端块设备中的开始写入位置和结束写入位置均位于[x2,x1]内的数据、以及开始写入位置和结束写入位置均位于[y1,y2]内的数据写入本服务端的缓存区。
8.如权利要求1所述的方法,其特征在于,所述方法还包括:
在确定所述第一待存储数据的写入位置位于所述多个文件系统中每个文件系统的一般数据区内时,确定所述第一待存储数据为一般数据,判断本服务端缓存区的可用空间是否大于所述第一待存储数据的占用空间;
如果是,则将所述第一待存储数据写入本服务端的缓存区;
如果否,则根据预设的淘汰算法在本服务端缓存区保存的一般数据中确定淘汰数据;根据所述淘汰数据的写入位置,从缓存区中选择具有相邻写入位置的至少一个数据;将所述淘汰数据与所述具有相邻写入位置的至少一个数据一起写入本服务端的块设备。
9.一种服务端,其特征在于,包括:
接收单元,用于接收客户端发送的第一待存储数据和所述第一待存储数据在块设备中的写入位置;
比对单元,用于将所述第一待存储数据的写入位置与已生成的多个文件系统的区域位置信息进行比对;所述多个文件系统的区域位置信息根据所述客户端使用的块设备的存储空间大小生成,每个文件系统的区域位置信息包括该文件系统的元数据区和一般数据区的位置信息;
写数据单元,用于在所述比对单元确定所述第一待存储数据的写入位置位于第一文件系统的元数据区内时,将所述第一待存储数据写入本服务端的缓存区。
10.一种服务端,其特征在于,包括处理器、通信接口、存储器和总线,其中,处理器、通信接口、存储器通过总线相互连接;
所述存储器中存储机器可读指令,所述处理器通过调用所述机器可读指令执行如权利要求1至8任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810857497.7A CN110795386B (zh) | 2018-07-31 | 2018-07-31 | 一种数据写入方法和服务端 |
PCT/CN2019/098338 WO2020024933A1 (zh) | 2018-07-31 | 2019-07-30 | 一种数据写入方法和服务端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810857497.7A CN110795386B (zh) | 2018-07-31 | 2018-07-31 | 一种数据写入方法和服务端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110795386A true CN110795386A (zh) | 2020-02-14 |
CN110795386B CN110795386B (zh) | 2022-07-01 |
Family
ID=69230981
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810857497.7A Active CN110795386B (zh) | 2018-07-31 | 2018-07-31 | 一种数据写入方法和服务端 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN110795386B (zh) |
WO (1) | WO2020024933A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113296700A (zh) * | 2021-04-20 | 2021-08-24 | 新华三信息技术有限公司 | 一种存储空间的管理方法、装置以及服务器 |
CN113986838A (zh) * | 2021-12-28 | 2022-01-28 | 成都云祺科技有限公司 | 基于文件系统的海量小文件处理方法、系统及存储介质 |
CN114356241A (zh) * | 2021-12-28 | 2022-04-15 | 天翼云科技有限公司 | 小对象数据的存储方法、装置、电子设备和可读介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102103880A (zh) * | 2009-12-22 | 2011-06-22 | 鸿富锦精密工业(深圳)有限公司 | U盘及其存储容量显示方法 |
US20130013861A1 (en) * | 2006-01-20 | 2013-01-10 | Cornwell Michael J | Caching performance optimization |
CN103593262A (zh) * | 2013-11-15 | 2014-02-19 | 上海爱数软件有限公司 | 一种基于类别的虚拟机备份方法 |
CN107153508A (zh) * | 2016-03-03 | 2017-09-12 | 杭州海康威视数字技术股份有限公司 | 一种数据存储方法及装置 |
CN107451138A (zh) * | 2016-05-30 | 2017-12-08 | 中兴通讯股份有限公司 | 一种分布式文件系统存储方法和系统 |
CN107491523A (zh) * | 2017-08-17 | 2017-12-19 | 三星(中国)半导体有限公司 | 存储数据对象的方法及装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103399823B (zh) * | 2011-12-31 | 2016-03-30 | 华为数字技术(成都)有限公司 | 业务数据的存储方法、设备和系统 |
WO2015183240A1 (en) * | 2014-05-27 | 2015-12-03 | Hewlett-Packard Development Company, L.P. | Storing compressed data |
CN105117351B (zh) * | 2015-09-08 | 2018-07-03 | 华为技术有限公司 | 向缓存写入数据的方法及装置 |
CN108021513B (zh) * | 2016-11-02 | 2021-09-10 | 杭州海康威视数字技术股份有限公司 | 一种数据存储方法及装置 |
-
2018
- 2018-07-31 CN CN201810857497.7A patent/CN110795386B/zh active Active
-
2019
- 2019-07-30 WO PCT/CN2019/098338 patent/WO2020024933A1/zh active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130013861A1 (en) * | 2006-01-20 | 2013-01-10 | Cornwell Michael J | Caching performance optimization |
CN102103880A (zh) * | 2009-12-22 | 2011-06-22 | 鸿富锦精密工业(深圳)有限公司 | U盘及其存储容量显示方法 |
CN103593262A (zh) * | 2013-11-15 | 2014-02-19 | 上海爱数软件有限公司 | 一种基于类别的虚拟机备份方法 |
CN107153508A (zh) * | 2016-03-03 | 2017-09-12 | 杭州海康威视数字技术股份有限公司 | 一种数据存储方法及装置 |
CN107451138A (zh) * | 2016-05-30 | 2017-12-08 | 中兴通讯股份有限公司 | 一种分布式文件系统存储方法和系统 |
CN107491523A (zh) * | 2017-08-17 | 2017-12-19 | 三星(中国)半导体有限公司 | 存储数据对象的方法及装置 |
Non-Patent Citations (1)
Title |
---|
覃冠杰: "基于虚拟磁盘的携带型操作系统加密方案", 《计算机应用》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113296700A (zh) * | 2021-04-20 | 2021-08-24 | 新华三信息技术有限公司 | 一种存储空间的管理方法、装置以及服务器 |
CN113986838A (zh) * | 2021-12-28 | 2022-01-28 | 成都云祺科技有限公司 | 基于文件系统的海量小文件处理方法、系统及存储介质 |
CN114356241A (zh) * | 2021-12-28 | 2022-04-15 | 天翼云科技有限公司 | 小对象数据的存储方法、装置、电子设备和可读介质 |
CN114356241B (zh) * | 2021-12-28 | 2023-11-03 | 天翼云科技有限公司 | 小对象数据的存储方法、装置、电子设备和可读介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2020024933A1 (zh) | 2020-02-06 |
CN110795386B (zh) | 2022-07-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7765189B2 (en) | Data migration apparatus, method, and program for data stored in a distributed manner | |
US6353837B1 (en) | Method and apparatus providing mass storage access from systems using different meta-data formats | |
US8423733B1 (en) | Single-copy implicit sharing among clones | |
US9141621B2 (en) | Copying a differential data store into temporary storage media in response to a request | |
US10353636B2 (en) | Write filter with dynamically expandable overlay | |
CN110018998B (zh) | 一种文件管理方法、系统及电子设备和存储介质 | |
CN108733306B (zh) | 一种文件合并方法及装置 | |
CN110795386B (zh) | 一种数据写入方法和服务端 | |
CN106326229B (zh) | 一种嵌入式系统的文件存储方法和装置 | |
CN109445685B (zh) | 一种用户态文件系统处理方法 | |
US9922039B1 (en) | Techniques for mitigating effects of small unaligned writes | |
US8694563B1 (en) | Space recovery for thin-provisioned storage volumes | |
CN110109868B (zh) | 用于索引文件的方法、装置和计算机程序产品 | |
US20070156763A1 (en) | Storage management system and method thereof | |
US9430492B1 (en) | Efficient scavenging of data and metadata file system blocks | |
CN109074308B (zh) | 适应性的块转换表(btt) | |
CN110399333B (zh) | 删除快照的方法、设备和计算机程序产品 | |
CN113568582B (zh) | 数据管理方法、装置和存储设备 | |
US20210318987A1 (en) | Metadata table resizing mechanism for increasing system performance | |
US20220350779A1 (en) | File system cloning method and apparatus | |
CN106709014B (zh) | 一种文件系统转换方法及装置 | |
CN107430546B (zh) | 一种文件更新方法及存储设备 | |
US7689634B2 (en) | Flexible approach to store attribute information (META-DATA) related to files of a file system | |
US20030074376A1 (en) | File manager for storing several versions of a file | |
US7779207B2 (en) | Accelerated write performance |
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 |