一种基于TGT的存储性能优化方法和装置与流程

文档序号:12362560阅读:991来源:国知局
一种基于TGT的存储性能优化方法和装置与流程

本发明属于网络存储技术领域,特别是涉及一种基于TGT的存储性能优化方法和装置。



背景技术:

随着社会的发展和PC的普及,产生了越来越多的数字化信息,信息量呈爆炸性增长,因而引发了以存储技术为中心的新一轮数据技术浪潮。传统的信息存储方式已不能满足新的需要,存储的网络化成为IT技术的新亮点。网络存储中的存储区域网SAN技术在服务器机器、存储合并以及磁带备份等方面都具有重要的应用价值,且得到了广泛应用。在存储领域,SCSI的重要不言而喻,作为成熟的技术,它满足了块级数据快速传输的需求。IP技术在网络开发性上有强大的优势,将两者的优势相结合,实现基于TGT的IP-SAN,具有广阔的应用前景。快速增长的存储容量使得企业需要采用网络存储解决方案。目前网络存储技术采用的连接技术主要有光纤通道和TCP/IP。基于IP的网络存储能解决基于光纤通道的网络存储中存在的兼容性和传输距离问题,而且能提供相对廉价的解决方案。

TGT中间层有着很多优点:嵌入到内核中仅非常少的系统开销、设计巧妙的锁机制、精简的命令处理路径,从而尽最大可能地提高性能和系统扩展性并且支持对称多处理器。基于IPSAN的存储系统只需要不多的投资便可实现SAN存储功能,甚至直接利用现有的TCP/IP网络,相对于以往的网络存储技术,它解决了开放性、容量、传输速度、兼容性、安全性等问题,其优越的性能使其备受关注与青睐。

Linux target framework(tgt)是为创建、维护SCSI target驱动提供支持,它的关键目标是简洁地集成到SCSI的中间层,并且实现大部分应用层空间的TGT。以Linux 2.6.38为分界线,此前Linux中默认的SCSI target是STGT。如图1所示,图1为TGT作为集群客户端方式与集群交互的示意图,其中LIBRBD提供用户态API接口,实现iSCSI target调用librbd接口,完成卷的打开、读、写等相应操作。集群中每个存储结点上的iSCSI target模块,响应iSCSIintiator端发来的命令,通过调用librados、librbd提供的API作为集群客户端方式与集群建立连接。对逻辑块RBD image的读写转换到集群的读写流,对外提供iSCSI协议服务。Object Storage Device(OSD)是集群中的重要组成部分。OSD可以存储文件或数据的内容,它使用文件系统来存储数据。OSDDaemon主要负责管理集群中的所有磁盘,OSD Daemon还负责在本地文件系统存储数据,并为不同的客户软件或存取媒介通过网络提供数据访问,以及添加和删除磁盘,磁盘分区,管理OSD、低层空间管理,提供安全措施和磁盘数据的可复制性。Monitor主要负责管理全部集群,检查集群的健康情况和状态,检测所有OSD的状态和文件系统或块数据的状态,通过Monitor来管理负载均衡和数据响应的详细信息。

然而,现有技术中,在TGT中对磁盘I/O请求采用阻塞等待,它会等待并获取已完成的I/O请求,如果当前没有或少于指定数目的IO请求完成,那么就会等待直到超时,这样的等待会导致整个进程的阻塞,使得程序无法继续向下执行,如果程序还有其它阻塞点,会影响产品的性能。



技术实现要素:

为解决上述问题,本发明提供了一种基于TGT的存储性能优化方法和装置,能够避免等待超时和进程堵塞的问题,提高产品的性能。

本发明提供的一种基于TGT的存储性能优化方法,包括:

对数据块进行前处理;

在TGT的读写接口函数中,将数据请求加入到待处理链表中,并返回;

利用上层模块发起下一个数据请求;

在底层处理完成上一个数据请求之后,通过回调异步通知所述上层模块。

优选的,在上述基于TGT的存储性能优化方法中,

还包括:

从所述待处理链表中取出数据,并执行处理流程。

优选的,在上述基于TGT的存储性能优化方法中,所述从所述待处理链表中取出数据,并执行处理流程为:

利用多个线程从所述待处理链表中取出数据,并且并发的执行处理流程。

优选的,在上述基于TGT的存储性能优化方法中,还包括:

将数据请求添加到命令的等待队列中;

遍历列表,确定此次能提交的IO数目;

统一提交一批异步IO。

优选的,在上述基于TGT的存储性能优化方法中,在处理完所述IO之后,还包括:

利用文件描述符触发调用回调函数,并通知上层模块。

本发明提供的一种基于TGT的存储性能优化装置,包括:

前处理单元,用于对数据块进行前处理;

加入单元,用于在TGT的读写接口函数中,将数据请求加入到待处理链表中,并返回;

发起单元,用于利用上层模块发起下一个数据请求;

通知单元,用于在底层处理完成上一个数据请求之后,通过回调异步通知所述上层模块。

优选的,在上述基于TGT的存储性能优化装置中,

还包括:

取出单元,用于从所述待处理链表中取出数据,并执行处理流程。

优选的,在上述基于TGT的存储性能优化装置中,所述取出单元具体用于利用多个线程从所述待处理链表中取出数据,并且并发的执行处理流程。

优选的,在上述基于TGT的存储性能优化装置中,还包括:

添加单元,用于将数据请求添加到命令的等待队列中;

遍历单元,用于遍历列表,确定此次能提交的IO数目;

提交单元,用于统一提交一批异步IO。

优选的,在上述基于TGT的存储性能优化装置中,还包括:

触发单元,用于利用文件描述符触发调用回调函数,并通知上层模块。

通过上述描述可知,本发明提供的上述基于TGT的存储性能优化方法和装置,由于先对数据块进行前处理,然后在TGT的读写接口函数中,将数据请求加入到待处理链表中,并返回,再利用上层模块发起下一个数据请求,最后在底层处理完成上一个数据请求之后,通过回调异步通知所述上层模块,因此,能够避免等待超时和进程堵塞的问题,提高产品的性能。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为TGT作为集群客户端方式与集群交互的示意图;

图2为本申请实施例提供的第一种基于TGT的存储性能优化方法的示意图;

图3为本申请实施例提供的第一种基于TGT的存储性能优化装置的示意图。

具体实施方式

本发明的核心思想是提供一种基于TGT的存储性能优化方法和装置,能够避免等待超时和进程堵塞的问题,提高产品的性能。

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本申请实施例提供的第一种基于TGT的存储性能优化方法如图2所示,图2为本申请实施例提供的第一种基于TGT的存储性能优化方法的示意图。该方法包括如下步骤:

S1:对数据块进行前处理;

S2:在TGT的读写接口函数中,将数据请求加入到待处理链表中,并返回;

S3:利用上层模块发起下一个数据请求;

S4:在底层处理完成上一个数据请求之后,通过回调异步通知所述上层模块。

该方法中的数据流程采用异步方式。

通过上述描述可知,本申请实施例提供的上述基于TGT的存储性能优化方法,由于先对数据块进行前处理,然后在TGT的读写接口函数中,将数据请求加入到待处理链表中,并返回,再利用上层模块发起下一个数据请求,最后在底层处理完成上一个数据请求之后,通过回调异步通知所述上层模块,因此,能够避免等待超时和进程堵塞的问题,提高产品的性能。

本申请实施例提供的第二种基于TGT的存储性能优化方法,是在上述第一种方法的基础上,还包括如下技术特征:

从所述待处理链表中取出数据,并执行处理流程。

在这种情况下,为提高数据的处理效率,可以多个线程同时处理多个不同的数据。随着并发线程数量的增加,可以使磁盘能更好的并发工作。

本申请实施例提供的第三种基于TGT的存储性能优化方法,是在上述第二种方法的基础上,还包括如下技术特征:

所述从所述待处理链表中取出数据,并执行处理流程为:

利用多个线程从所述待处理链表中取出数据,并且并发的执行处理流程。

本申请实施例提供的第四种基于TGT的存储性能优化方法,是在上述第三种方法的基础上,还包括如下技术特征:

将数据请求添加到命令的等待队列中;

遍历列表,确定此次能提交的IO数目;

统一提交一批异步IO。

本申请实施例提供的第五种基于TGT的存储性能优化方法,是在上述第四种方法的基础上,还包括如下技术特征:

在处理完所述IO之后,还包括:

利用文件描述符触发调用回调函数,并通知上层模块。

本申请实施例提供的第一种基于TGT的存储性能优化装置如图3所示,图3为本申请实施例提供的第一种基于TGT的存储性能优化装置的示意图。该装置包括:

前处理单元301,用于对数据块进行前处理;

加入单元302,用于在TGT的读写接口函数中,将数据请求加入到待处理链表中,并返回;

发起单元303,用于利用上层模块发起下一个数据请求;

通知单元304,用于在底层处理完成上一个数据请求之后,通过回调异步通知所述上层模块。

通过上述描述可知,本申请实施例提供的上述基于TGT的存储性能优化装置,能够避免等待超时和进程堵塞的问题,提高产品的性能。

本申请实施例提供的第二种基于TGT的存储性能优化装置,是在上述第一种装置的基础上,还包括如下技术特征:

取出单元,用于从所述待处理链表中取出数据,并执行处理流程。

在这种情况下,为提高数据的处理效率,可以多个线程同时处理多个不同的数据。随着并发线程数量的增加,可以使磁盘能更好的并发工作。

本申请实施例提供的第三种基于TGT的存储性能优化装置,是在上述第二种装置的基础上,还包括如下技术特征:

所述取出单元具体用于利用多个线程从所述待处理链表中取出数据,并且并发的执行处理流程。

本申请实施例提供的第四种基于TGT的存储性能优化装置,是在上述第三种装置的基础上,还包括如下技术特征:

还包括:

添加单元,用于将数据请求添加到命令的等待队列中;

遍历单元,用于遍历列表,确定此次能提交的IO数目;

提交单元,用于统一提交一批异步IO。

本申请实施例提供的第五种基于TGT的存储性能优化装置,是在上述第四种装置的基础上,还包括如下技术特征:

还包括:

触发单元,用于利用文件描述符触发调用回调函数,并通知上层模块。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1