提高对小型计算机接口存储设备的存取效率的方法

文档序号:6615886阅读:180来源:国知局
专利名称:提高对小型计算机接口存储设备的存取效率的方法
技术领域
本发明公开了一种储存设备的存取方法,尤其涉及一种提高对小型计算 机接口存储设备的存取效率的方法。
背景技术
随着网络速度的快速成长,储存设备也开始由单机储存方式,演进至由网
络设备来储存。在网络储存系统中,有一种将小型计算机接口 (Small Co卿uter Small Interface,以下简称SCSI)的与网络传输相结合的网络储存接口 ,其 称为iSCSI (Internet SCSI)。
iSCSI协议定义了在TCP/IP网络发送、接收数据块的储存数据的相应规 则和方法。发送端(Initiator)将SCSI命令和数据封装到封包中再通过网络转 发。接着,由接收端(target)收到封包之后,再将其还原为SCSI命令和数据 并执行。待接收端完成此一命令后,再将返回的SCSI命令和数据再封装成封 包,将封包再传送回发送端。
在iSCSI中将储存设备分别的给予相应的逻辑单元号码(logical unit
number,以下简称LUN)。 一般而言,在SCSI总线上可挂载的储存设备数量是 有其限制的。通常储存设备的数量大都为6个或者15个。为了能辨识这些储 存设备,所以采用了一种目标识别(target ID),其用以代表相应的储存设备。
当储存设备只要被加入服务端时,服务端就会给予一个相应的代号。
在现有iSCSI的架构中,提供了 SCSI虚拟磁盘的实现层,其用以做为接 口转换。为了保证数据在传输过程的完整性,所以提出了下列实现方式来进行 SCSI任务同步串行。 第一种方式
在服务端中提供一个队列(queue),其用以对所有的虚拟磁盘设备存放欲 执行的任务(task)。服务端在由多个线程轮流去读取该队列中的任务,再将所 读取到的任务发送至iSCSI相应的层级(layers)去执行。例如,对储存设备存
4放、读取数据块等任务。每一个线程而言,对储存设备的读写过程是完全同步 的。由于每个任务是利用串行方式来依序处理。由于采用多线程处理方法,同 一设备上任务的执行顺序就有可能被颠倒,如果被颠倒执行的任务正好读写同 一区域,就会导致数据不完整的问题。而且多个内核线程间频繁的上下文切换, 会抵消部分多线程带来的效能提升。而且,当多个逻辑单元号码单队列在网络 传输频繁的情况下,会导致某些逻辑单元号码上的命令不能得到实时的执行。 第二种方式
在每一个虚拟磁盘设备中设置了一个队列(queue)。当虚拟磁盘设备接收 到磁盘读写任务时,则会将任务先放入队列等待。直至队列中排在其前面的任 务都被处理完成为止。换句话说,在一个虚拟磁盘设备中一次仅能执行一个任 务。其优点保证了每一个任务会按照顺序的被执行,进而保证写入数据的完整 性。但由于只能串行的依序写入,所以实体储存设备写入速度会被大幅的降低。 使得写入的精神与SCSI的使用原意相违背。

发明内容
本发明所要解决的技术问题在于提供一种提高对小型计算机接口 (small computer small interface,简称SCSI)存储设备的存取效率的方法,用以处 理来自请求端的多个对实体储存设备的存取请求。
为实现上述目的,本发明所揭露的提高对小型计算机接口存储设备的存取 效率的方法,其包括下列步骤首先由请求端发送多个存取请求至服务端;服 务端根据这些存取请求分派相应的磁盘存取任务至每一个虚拟磁盘中;设置任 务队列于每一个虚拟磁盘中,用以接收自服务端所发送的多个磁盘存取任务; 将磁盘存取任务用以写入虚拟磁盘中的储存地址;执行储存地址记录手段,记 录具有相同的储存地址的磁盘存取任务,并将其余的磁盘存取任务依序的发送 至该实体储存设备;存放磁盘存取任务至实体储存设备的请求队列中;对请求 队列中的磁盘存取任务执行程序顺序优化手段,用以重新调配磁盘存取任务的 执行顺序;将已处理完成的该些磁盘存取任务回传至该虚拟磁盘。
本发明提供了一种提高对小型计算机接口存储设备的存取效率的方法,借 以来解决存取任务地址重迭导致数据不完整的的问题及任务队列化的数据写 入速度的问题。本发明实现对小型计算机接口的实体储存设备的存取任务加速方法,使得对实体储存设备可以进行异步处理。
以下结合附图和具体实施例对本发明进行详细描述,但不作为对本发明的 限定。


图1为本发明的系统架构示意图; 图2为本发明的运作流程示意图3为本发明的磁盘存取任务与虚拟磁盘传输示意图。 其中,附图标记 100:请求端 200:服务端 210:虚拟磁盘 211:任务队列 310:实体储存设备
具体实施例方式
本发明提供一种提高对小型计算机接口存储设备的存取效率的方法。请参 考图l所示,其为本发明的系统架构示意图。在实现小型计算机接口中虚拟磁
盘的任务异步处理方法包括有下列装置请求端100、服务端200与实体储存 设备310。服务端200运行一虚拟磁盘管理程序。虚拟磁盘管理程序将多个实 体储存设备310整合成一个虚拟磁盘210,借以提供请求端100存取使用。使 得请求端100不需自行的将数据分派到各个不同的实体储存设备310。
应用于小型计算机接口的虚拟磁盘的多个存取任务执行顺序。请参考图2 所示,其为本发明的运作流程示意图。在小型计算机接口存储设备的存取效率 的方法包括以下步骤首先,由请求端100发送多个存取请求至服务端200。 在服务端中初始虚拟磁盘(步骤S210),虛拟磁盘210用以调派存取请求至相 应的实体储存设备310。服务端根据这些存取请求分派相应的磁盘存取任务至 每一个虚拟磁盘中(步骤S220)。
设置任务队列于每一个虚拟磁盘中(步骤S230),任务队列211用以接收 自服务端200所发送的磁盘存取任务。在本发明中,磁盘存取任务指的是对实体储存设备310进行读写动作的存取指令。对于不需要磁盘读写操作的管理指 令而言,服务端200会根据所储存的信息将其回传给请求端100。请另外参考 图3所示,其为本发明的磁盘存取任务与虚拟磁盘传输示意图。
根据磁盘存取任务存取相应的实体储存设备(步骤S240)。执行储存地址 记录手段,记录具有相同的储存地址的磁盘存取任务,并将其余的磁盘存取任 务依序的发送至该实体储存设备(步骤S250)。当虚拟磁盘210收到与实体储 存设备310相同储存地址的磁盘存取任务时,服务端200会将磁盘存取任务放 入等待队列中并将磁盘存取任务设置为等待状态。直到实体储存设备310中执 行的磁盘存取任务被执行完且通知服务端200后,服务端200才会将磁盘存取 磁盘传送至实体储存设备310中。
为了便于统计和査找具有相同的储存地址的磁盘存取任务,在实际的程序 中可以在磁盘存取任务的数据结构中增加了 wait—list、 wait—queue和 wait—count三个数据成员。其数据结构请参考下列所示
struct wait一task一adress
struct list—head wait—list; struct ist—task—t *wait—task;
struct ist—task—t
struct list—head list;
struct list_head wait_queue; u32 wait_count;
当第一磁盘存取任务被接收到后,首先检查请求队列中有没有跟第一磁盘 存取任务存在地址重迭的磁盘存取任务。如果在请求队列中有与第一存取任务 具有相同储存地址的第二存取任务的话,就将第一存取任务的地址放到 wait_task—adress结构中,并将第二存取任务的wait_queue中设定 wait—list。同时,将第一存取任务的结构中的wait—count加1。当第一存取任务执行完,再从第一存取任务的wait—queue上的wait_task—adress找到第 二存取任务的wait—list。将第二存取任务的wait—list从第一任务的 wait—queue上移除,并将第一存取任务的wait_count减1。
存放磁盘存取任务至实体储存设备的请求队列中(步骤S260)。对请求队 列中的磁盘存取任务执行程序顺序优化手段,用以重新调配磁盘存取任务的执 行顺序(步骤S270)。对于在请求队列中的磁盘存取任务,实体储存设备310 可以根据交换排序法(exchange sort)、选择排序法(selection sort)、 插入排序法(insertion sort)、合并排序法(merge sort)与快速排序法(Quick sort)。将相同或相近类型磁盘存取任务依序,借以加速实体储存设备310 的存取速率。将已处理完成的磁盘存取任务回传至虚拟磁盘(步骤S280)。实 体储存设备310调用已注册的回调函数(callback function),将执行结果和 磁盘存取任务上下文回传至虚拟磁盘210中。最后,虚拟磁盘将所接收到的已 处理数据回传至请求端(步骤S290)。
此外,若是请求队列中还有磁盘存取任务的话。根据请求队列中的磁盘存 取任务的储存地址,査找实体储存设备310中是否还有相应的磁盘存取任务在 被执行中。若实体储存设备310中还有相同储存位置的磁盘存取任务在执行中 的话,则仍然将请求队列中的磁盘存取任务维持在请求队列中。若实体储存设 备310中己经没有相同储存位置的磁盘存取任务在执行中的话,则将请求队列 中的磁盘存取任务发送至实体储存设备310中执行。
本发明提供了一种提高对小型计算机接口存储设备的存取效率的方法,借 以来解决存取任务地址重迭导致数据不完整的的问题及任务队列211化的数 据写入速度的问题。本发明实现对小型计算机接口的实体储存设备310的存取 任务加速方法,使得对实体储存设备310可以进行异步处理。
当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的 情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形, 但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
8
权利要求
1. 一种提高对小型计算机接口存储设备的存取效率的方法,用以处理来自请求端的多个对实体储存设备的存取请求,其特征在于,该存取方法包括下列步骤初始一虚拟磁盘,用以调派存取请求至相应的实体储存设备;设置一任务队列于每一个虚拟磁盘中,用以接收自一服务端所发送的多个磁盘存取任务;根据该些磁盘存取任务存取相应的一实体储存设备;执行一储存地址记录手段,用以记录具有相同的一储存地址的该磁盘存取任务,并将其余的该些磁盘存取任务依序的发送至该实体储存设备;存放该些磁盘存取任务至该实体储存设备的一请求队列中;对该请求队列中的该些磁盘存取任务执行一程序顺序优化手段,用以重新调配该些磁盘存取任务的执行顺序;将已处理完成的该些磁盘存取任务回传至该虚拟磁盘;以及回传相应存取请求的数据至请求端。
2. 根据权利要求1所述的提高对小型计算机接口存储设备的存取效率的 方法,其特征在于,执行该储存地址记录手段中还包括下列步骤将具有相同的该储存地址的该些磁盘存取任务存放等待队列中; 等待该实体储存设备具有相同的该储存地址的该些磁盘存取任务执行完 成;以及将该些磁盘存取任务依序的发送至该实体储存设备。
3. 根据权利要求1所述的提高对小型计算机接口存储设备的存取效率的 方法,其特征在于,该小型计算机接口包括一因特网小型计算机接口。
4. 根据权利要求1所述的提高对小型计算机接口存储设备的存取效率的 方法,其特征在于,将已处理完成的该些磁盘存取任务回传至该虚拟磁盘,还 包括下列步骤调用已注册的回调函数,将执行结果和该磁盘存取任务上下文回传至该虚 拟磁盘中。
5. 根据权利要求1所述的提高对小型计算机接口存储设备的存取效率的方法,其特征在于,该程序执行优化手段为一交换排序法、 一选择排序法、 插入排序法、 一合并排序法与一快速排序法。
全文摘要
本发明公开了一种提高对小型计算机接口存储设备的存取效率的方法,用以处理来自请求端的多个对实体储存设备的存取请求,任务处理方法包括下列步骤设置任务队列于每一个虚拟磁盘中,用以接收自服务端所发送的多个磁盘存取任务;将磁盘存取任务用以写入虚拟磁盘中的储存地址;执行储存地址记录手段,记录具有相同储存地址的磁盘存取任务,并将其余的磁盘存取任务依序的发送至实体储存设备;存放磁盘存取任务至实体储存设备的请求队列中;对请求队列中的磁盘存取任务执行程序顺序优化手段;将经过程序优化处理的磁盘存取任务回传至虚拟磁盘。
文档编号G06F3/06GK101470585SQ20071030610
公开日2009年7月1日 申请日期2007年12月28日 优先权日2007年12月28日
发明者刘文涵, 陈永海, 陈玄同 申请人:英业达股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1