CN104571952B - 一种分开处理数据与元数据读写请求的方法 - Google Patents
一种分开处理数据与元数据读写请求的方法 Download PDFInfo
- 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
Links
Classifications
-
- 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
- G06F3/061—Improving I/O performance
-
- 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
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- 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/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration 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的合并。
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)
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)
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)
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 |
-
2014
- 2014-12-25 CN CN201410827456.5A patent/CN104571952B/zh active Active
Patent Citations (5)
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)
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 |