CN104571952B - 一种分开处理数据与元数据读写请求的方法 - Google Patents

一种分开处理数据与元数据读写请求的方法 Download PDF

Info

Publication number
CN104571952B
CN104571952B CN201410827456.5A CN201410827456A CN104571952B CN 104571952 B CN104571952 B CN 104571952B CN 201410827456 A CN201410827456 A CN 201410827456A CN 104571952 B CN104571952 B CN 104571952B
Authority
CN
China
Prior art keywords
request
metadata
data
queue
requests
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
Application number
CN201410827456.5A
Other languages
English (en)
Other versions
CN104571952A (zh
Inventor
陈俭喜
冯丹
刘景宁
方雪娇
吴婵明
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huazhong University of Science and Technology
Original Assignee
Huazhong University of Science and Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huazhong University of Science and Technology filed Critical Huazhong University of Science and Technology
Priority to CN201410827456.5A priority Critical patent/CN104571952B/zh
Publication of CN104571952A publication Critical patent/CN104571952A/zh
Application granted granted Critical
Publication of CN104571952B publication Critical patent/CN104571952B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems

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

本发明公开了一种分开处理数据与元数据请求的方法。包括:增加请求的元数据语义;为每个SCSI设备设置数据请求队列与元数据请求队列,后者专门用来处理元数据请求,且对不同的请求采用不同的处理方式。根据元数据请求粒度小、实时性强、分布分散的特点,元数据请求队列采用优先响应处理的方式,请求不经过I/O调度层,不在请求队列中延迟,直接下发到磁盘驱动器;对请求粒度大,频度相对低,分布集中的数据请求,采用经过I/O调度层,在请求队列中蓄流一段时间,泄流后再下发到磁盘驱动器的方式。缓解了单一请求队列的瓶颈问题,增强了不同层次请求处理的并行性,尤其适用于需要频繁、大量的存储小文件、对关键数据实时性要求高的业务。

Description

一种分开处理数据与元数据读写请求的方法
技术领域
本发明属于计算机存储技术领域,更具体地,涉及一种分开处理数据与元数据读写请求的方法。
背景技术
数据社会每天需要访问大量保存在存储***中的数据,但很多时候用户并不需要访问***中保存的数据本身,而只需要访问***中的元数据即可。此外,在访问***中保存的数据前也必须先访问元数据,依据文件名等信息查询和获得数据大小、保存位置、访问权限等元数据信息后,才能读取存在设备中的数据。***的数据访问有一半以上都是和元数据相关。而元数据I/O的特点是粒度小、频度高、分布较为分散等。因此对元数据的访问处理要有足够的重视和不同的处理。
尤其现在建立在IP网络上的存储域网络(Storage Area Network,SAN)已经成为很多企业的存储解决方案,将目标端***的存储设备通过IP协议挂载到发起端***中,作为一个块设备进行访问。但是发起端***挂载的目标端***的存储设备只有一个请求队列,同时目前I/O请求都是没有语义的,所有I/O请求都互斥地进入请求队列,完成I/O的合并调度等处理。这种方式存在如下不足:1)对于I/O繁重的存储环境,单个队列会成为请求处理的瓶颈,不能充分调用实际多个设备的服务能力;2)所有I/O请求没有语义,不能达到对实时性要求高的元数据区分对待。尤其在需要频繁、大量存储小文件这类的应用中会严重影响数据的访问性能。
发明内容
针对现有技术的以上缺陷或改进需求,本发明提供了一种分开处理数据与元数据读写请求的方法,实现了对重要性不同、实时性要求不同的请求做不同的处理,缓解了单一请求队列的瓶颈问题,增强了不同层次请求处理的并行性,尤其适用于需要频繁、大量的存储小文件、对关键数据实时性要求高的业务。
为实现上述目的,本发明提供了一种分开处理数据与元数据读写请求的方法,其特征在于,包括如下步骤:(1)在目标存储设备中创建元数据请求队列,使目标存储设备同时含有元数据请求队列和数据请求队列;(2)增加I/O请求的语义,区分数据请求与元数据请求;(3)判断接收到的请求是否为元数据请求,是则将其送入元数据请求队列,顺序执行步骤(4);否则说明接收到的请求为数据请求,将该请求送入数据请求队列,跳至步骤(5);(4)对元数据请求采用优先响应处理方式,使元数据请求不进入I/O调度层,不在元数据请求队列中延迟等待,直接下发到磁盘驱动器,然后返回步骤(3);(5)数据请求进入I/O调度层进行请求调度,在数据请求队列中延迟等待,期待与后续数据请求的合并;(6)数据请求队列泄流后,将数据请求下发到磁盘驱动器,返回步骤(3)。
优选地,所述步骤(1)具体为:首先通过sysfs文件***,向内核对象的每个存储设备注册用于发送创建/撤销元数据请求队列命令的接口;再向目标存储设备发送创建元数据请求队列命令,完成元数据请求队列的创建。
优选地,所述步骤(2)具体为:修改文件***层的缓冲区数据结构buffer_head,在buffer_head的状态字段state中增加表示元数据语义的位meta,并增加meta的置位与复位操作函数;修改文件***层的请求函数,对所有元数据请求对应的缓冲区加上meta的标志,生成带meta语义的bio请求。
优选地,所述步骤(4)中,在上一个元数据请求还未返回时,暂存在元数据请求队列中的元数据请求做相邻I/O的合并。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有以下有益效果:
1、相比现有的无语义I/O请求,本发明为I/O请求增加了语义,区分了请求类型,为后续任何想要对不同类型的请求做不同的处理提供了可能。
2、相比现有的每个小型计算机***接口(Small Computer System Interface,SCSI)存储设备只有一个请求队列,本发明对SCSI存储设备设置了数据请求队列与元数据请求队列,分别用来处理数据请求与元数据请求,缓解了单一请求队列的瓶颈问题,增强了不同层次请求处理的并行性,例如,I/O调度层可能在为数据请求做调度合并操作,SCSI策略处理例程在为元数据请求做构造SCSI命令的操作。
3根据不同的I/O请求特点,对不同的请求队列采用不同的处理方式。根据元数据请求粒度小,频度高,分布较分散的特点,对元数据请求队列采用优先响应处理的方式,请求不经过I/O调度层,不在请求队列中延迟,而是直接下发到磁盘驱动器;对请求粒度大,频度相对低,分布较为集中的数据请求,采用经过I/O调度层,在请求队列中延迟一段时间,期待与后续请求合并,泄流后再下发到磁盘驱动器的方式。实现了对重要性不同、实时性要求不同的请求做不同的处理。
附图说明
图1是本发明实施例的分开处理数据与元数据读写请求的方法流程图;
图2是本发明实施例的分开处理数据与元数据读写请求的方法的典型应用场景架构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
如图1所示,本发明实施例的分开处理数据与元数据读写请求的方法包括如下步骤:
(1)在目标存储设备中创建元数据请求队列,使目标存储设备同时含有元数据请求队列和数据请求队列。
为目标存储设备设置数据请求队列与元数据请求队列来分别处理数据请求与元数据请求,直接将***中每个存储设备已有的请求队列作为数据请求队列。
元数据请求队列的具体创建过程为:通过sysfs文件***,向内核对象的每个存储设备注册用于发送创建/撤销元数据请求队列命令的接口;向目标存储设备发送创建元数据请求队列命令,完成元数据请求队列的创建。
同样,当我们不再需要使用元数据请求队列时候,我们可以通过发送撤销元数据请求队列命令回收元数据请求队列资源。
(2)增加I/O请求的语义,区分数据请求与元数据请求。
具体地,修改文件***层的缓冲区数据结构buffer_head,在buffer_head的状态字段state中增加表示元数据语义的位meta,并增加meta的置位与复位操作函数;修改文件***层的请求函数,对所有元数据请求对应的缓冲区加上meta的标志,生成带meta语义的bio请求,为后续任何想要对不同类型的请求做不同的处理提供了可能。
(3)在通用块层判断接收到的请求是否为元数据请求,是则将其送入元数据请求队列,顺序执行步骤(4);否则说明接收到的请求为数据请求,将该请求送入数据请求队列(即***原有请求队列),跳至步骤(5)。
(4)对元数据请求采用优先响应处理方式,使元数据请求不进入I/O调度层,不在元数据请求队列中延迟等待,直接下发到磁盘驱动器,然后返回步骤(3)。
其中,在上一个元数据请求还未返回时,暂存在元数据请求队列中的元数据请求做相邻I/O的合并。
(5)数据请求进入I/O调度层进行请求调度,按照蓄流/泄流(plug/unplug)机制在数据请求队列中延迟等待,期待与后续数据请求的合并。
(6)数据请求队列泄流后,将数据请求下发到磁盘驱动器,返回步骤(3)。
为使本领域技术人员更好地理解本发明,下面结合具体实施例对本发明的分开处理数据与元数据读写请求的方法进行详细说明。
如图2所示,现在建立在IP网络上的SAN已经成为很多企业的存储解决方案,将目标端***的存储设备通过IP协议挂载到发起端***中,作为一个块设备进行访问,发起端像访问本地设备一样访问目标端挂载在发起端的设备,如图2中101所示。为这个设备建立了两个队列,元数据请求队列与数据请求队列,其中,直接将***中每个存储设备已有的请求队列作为数据请求队列,数据请求队列会经过I/O调度层进行调度,蓄流/泄流;而元数据请求队列则不进入I/O调度,不蓄流/泄流,而是直接下发处理到SCSI设备驱动器,当然,暂存在元数据请求队列中未来得及处理的请求会做着最简单的相邻合并。请求经过ISCSI驱动封装后通过网络发送到目标端。而现在很多情况下目标端数据与元数据会分开存储在不同设备中,如图2中102所示。这样发起端发送过来的两类请求会被定向到两组不同的设备中。这样做一方面在发起端对请求的分类不仅不会破坏原来一个队列调度合并操作,同时也充分调动了目标端多个不同实际设备的服务能力。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (4)

1.一种分开处理数据与元数据读写请求的方法,其特征在于,包括如下步骤:
(1)为目标存储设备创建元数据请求队列,使目标存储设备同时拥有元数据请求队列和数据请求队列;
(2)增加I/O请求的语义,区分数据请求与元数据请求;
(3)判断接收到的请求是否为元数据请求,是则将其送入元数据请求队列,顺序执行步骤(4);否则说明接收到的请求为数据请求,将该请求送入数据请求队列,跳至步骤(5);
(4)对元数据请求采用优先响应处理方式,使元数据请求不进入I/O调度层,不在元数据请求队列中延迟等待,直接下发到磁盘驱动器,然后返回步骤(3);
(5)数据请求进入I/O调度层进行请求调度,在数据请求队列中延迟等待,期待与后续数据请求的合并;
(6)数据请求队列泄流后,将数据请求下发到磁盘驱动器,返回步骤(3)。
2.如权利要求1所述的分开处理数据与元数据读写请求的方法,其特征在于,所述步骤(1)具体为:首先通过sysfs文件***,向内核对象的每个存储设备注册用于发送创建/撤销元数据请求队列命令的接口;再向目标存储设备发送创建元数据请求队列命令,完成元数据请求队列的创建。
3.如权利要求1或2所述的分开处理数据与元数据读写请求的方法,其特征在于,所述步骤(2)具体为:修改文件***层的缓冲区数据结构buffer_head,在buffer_head的状态字段state中增加表示元数据语义的位meta,并增加meta的置位与复位操作函数;修改文件***层的请求函数,对所有元数据请求对应的缓冲区加上meta的标志,生成带meta语义的bio请求。
4.如权利要求1或2所述的分开处理数据与元数据读写请求的方法,其特征在于,所述步骤(4)中,在上一个元数据请求还未返回时,暂存在元数据请求队列中的元数据请求做相邻I/O的合并。
CN201410827456.5A 2014-12-25 2014-12-25 一种分开处理数据与元数据读写请求的方法 Active CN104571952B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410827456.5A CN104571952B (zh) 2014-12-25 2014-12-25 一种分开处理数据与元数据读写请求的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410827456.5A CN104571952B (zh) 2014-12-25 2014-12-25 一种分开处理数据与元数据读写请求的方法

Publications (2)

Publication Number Publication Date
CN104571952A CN104571952A (zh) 2015-04-29
CN104571952B true CN104571952B (zh) 2017-08-01

Family

ID=53088137

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410827456.5A Active CN104571952B (zh) 2014-12-25 2014-12-25 一种分开处理数据与元数据读写请求的方法

Country Status (1)

Country Link
CN (1) CN104571952B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106537321B (zh) * 2015-05-27 2020-04-28 华为技术有限公司 存取文件的方法、装置和存储***
CN109445685B (zh) * 2018-09-26 2020-06-30 华中科技大学 一种用户态文件***处理方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101247417A (zh) * 2008-03-07 2008-08-20 中国科学院计算技术研究所 双层元数据处理***及方法
CN101788961A (zh) * 2009-01-23 2010-07-28 英业达集团(天津)电子技术有限公司 对块设备进行异步请求的数据访问方法
CN102073605A (zh) * 2010-12-27 2011-05-25 深圳市创新科信息技术有限公司 一种绕过Bio层访问磁盘驱动的存储接口的方法
CN102164161A (zh) * 2011-01-10 2011-08-24 清华大学 一种对并行文件***进行文件布局提取的方法和装置
CN102523258A (zh) * 2011-11-30 2012-06-27 广东电子工业研究院有限公司 一种面向云操作***的数据存储架构及其负载均衡方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8635415B2 (en) * 2009-09-30 2014-01-21 Intel Corporation Managing and implementing metadata in central processing unit using register extensions

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101247417A (zh) * 2008-03-07 2008-08-20 中国科学院计算技术研究所 双层元数据处理***及方法
CN101788961A (zh) * 2009-01-23 2010-07-28 英业达集团(天津)电子技术有限公司 对块设备进行异步请求的数据访问方法
CN102073605A (zh) * 2010-12-27 2011-05-25 深圳市创新科信息技术有限公司 一种绕过Bio层访问磁盘驱动的存储接口的方法
CN102164161A (zh) * 2011-01-10 2011-08-24 清华大学 一种对并行文件***进行文件布局提取的方法和装置
CN102523258A (zh) * 2011-11-30 2012-06-27 广东电子工业研究院有限公司 一种面向云操作***的数据存储架构及其负载均衡方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
基于层次结构的元数据动态管理方法的研究;刘群 等;《计算机研究与发展》;20100505;第46卷(第z2期);第78-82页 *
高可靠性元数据服务器研究;刘群 等;《计算机工程》;20081215;第34卷(第17期);第88-90页 *

Also Published As

Publication number Publication date
CN104571952A (zh) 2015-04-29

Similar Documents

Publication Publication Date Title
US20200409798A1 (en) Tiered cloud storage for different availability and performance requirements
CN106603598B (zh) 处理业务请求的方法及装置
CN107295110B (zh) 计算任务的处理方法、边缘节点、业务服务器及***
WO2016011894A1 (zh) 报文处理方法和装置
US9621688B2 (en) Custom error page enabled via networked computing service
US10498681B1 (en) Storage management for ephemeral messages
US9836516B2 (en) Parallel scanners for log based replication
US20150379026A1 (en) Content fabric for a distributed file system
US20120221744A1 (en) Migrating Virtual Machines with Adaptive Compression
US10142195B1 (en) Partitioned performance tracking core resource consumption independently
CN106534308B (zh) 一种分布式存储***中解决数据块访问热点的方法及装置
CN110383764A (zh) 无服务器***中使用历史数据处理事件的***和方法
US10148531B1 (en) Partitioned performance: adaptive predicted impact
CN103312624A (zh) 一种消息队列服务***和方法
WO2016008338A1 (zh) 一种i/o请求处理方法及存储***
CN104571952B (zh) 一种分开处理数据与元数据读写请求的方法
CN110168513B (zh) 在不同存储***中对大文件的部分存储
US9247033B2 (en) Accessing payload portions of client requests from client memory storage hardware using remote direct memory access
CN109478126A (zh) 计算设备中的在外部管理的i/o饥饿避免
CN107229424B (zh) 一种分布式存储***数据写入方法及分布式存储***
US20180349038A1 (en) Method of Reordering a Queue of Write Requests
US9659041B2 (en) Model for capturing audit trail data with reduced probability of loss of critical data
Hsu et al. Effective memory reusability based on user distributions in a cloud architecture to support manufacturing ubiquitous computing
WO2015058628A1 (zh) 文件的访问方法及装置
US20140280347A1 (en) Managing Digital Files with Shared Locks

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant