[发明专利]远程复制的发送请求处理系统及其方法有效
申请号: | 200710163293.5 | 申请日: | 2007-10-19 |
公开(公告)号: | CN101414915A | 公开(公告)日: | 2009-04-22 |
发明(设计)人: | 毕明浩;陈玄同;刘文涵 | 申请(专利权)人: | 英业达股份有限公司 |
主分类号: | H04L12/00 | 分类号: | H04L12/00;G06F11/14 |
代理公司: | 北京律诚同业知识产权代理有限公司 | 代理人: | 梁 挥;祁建国 |
地址: | 台湾省*** | 国省代码: | 中国台湾;71 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 远程 复制 发送 请求 处理 系统 及其 方法 | ||
技术领域
本发明是关于一种远程复制的资源分配系统及方法,尤其是关于一种应用于网络块设备(Network block device,nbd)的远程复制发送线程分配系统及方法。
背景技术
随着应用对于服务连续性要求的提高以及用户对数据安全性重视程度的加强,实时远程复制技术应运而生,并且在较短时间内得到广泛的关注。利用实时远程复制技术可以在不中断应用的前提下实时地在远程建立数据镜像,进而尽可能地避免因数据丢失或损坏而引发的数据灾难。
但由于大多数产品和技术是基于同步方式发送数据,这样当存在多个远程复制请求时,在一个请求发送未处理完成之前,其它请求只能串行等待,这使得系统对请求的处理和响应能力以及效率受到影响。为此,现有技术提出了一种异步多线程发送方案,采用一个线程接受新的请求,多个线程发送已收到的请求。实现这种异步方式必然涉及到多线程并发。目前最简单也最容易实现的方案,如图1显示,是为远程系统20中每一个远程镜像卷22、24、26(其中每个远程镜像卷是对应一个网络块设备(Network block device,nbd))绑定一个专属于它的核心发送线程(kernel sender thread)12、14、16,由本地系统10的上述发送线程负责发送向对应远程镜像卷的输入/输出(i/o)请求。
但使用这种方式存在两个潜在的问题:一是一旦系统中有大量网络块设备存在,则会产生大量的核心线程(kernel thread),进而增大系统的压力以及资源占用;二是,我们基本上无法控制其资源的分配,核心线程的执行是由Linux核心(kernel)调度的,对于我们来说基本上处于不可控状态,也就是说为每一网络块设备开启一个线程后,一旦开始执行,接下来的过程就完全交由Linux核心决定,因此哪个设备在何时发送多少数据都是无法预料的。
此外,由于系统中的拷贝操作都要涉及到网络通讯,因此这些操作会争夺网络资源,这都需要采用一些方法平衡系统中的网络使用。
发明内容
为了解决上述现有技术中的问题与缺陷,本发明的目的在于提供一种远程复制的发送请求处理是统及方法,是用于具有多个网络块设备(Network blockdevice,nbd)的本地系统中,藉以实现异步多线程数据发送,不仅提高设备的处理和响应能力,还能在存在大量远程镜像卷(remote volume mirror)的情况下减少多线程带来的系统资源消耗。
本发明所提供的一种远程复制的发送请求处理系统,是包含一创建模块、一链表模块、一指针模块、一线程分配模块、一请求接受模块以及一请求处理模块;在此,创建模块是用于在本地系统中创建固定数量的发送线程,以形成一发送线程池。链表模块用于将接收到向对应远程镜像卷写请求的所有网络块设备串接为一循环链表(circular linked list)。指针模块是设定一指针顺序记录循环链表中的最新处理的网络块设备,以及在每次完成最新处理的网络块设备的发送请求后,依照循环链表的网络块设备顺序,依次移动指针至下一个网络块设备,其中指针的起始位置是指向循环链表头(list head)。线程分配模块用于分配发送线程池中的发送线程主动寻找欲处理的下一个网络块设备。请求接受模块负责接受新的请求并将请求加入到相应块设备的请求发送队列中。请求处理模块是利用发送线程对指针指向的网络块设备的处理加锁,并处理此网络块设备的发送请求。
对于本地系统的每一原卷建立有一或多个远程镜像卷的情况,本发明的发送请求处理系统更包含一权重模块,以设定本地系统的每一原卷的发送请求权重,以分配每一原卷的网络块设备向对应远程镜像卷发送请求的批量大小。
此外,本发明还提供一种远程复制的发送请求处理方法,是应用于具有多个网络块设备的本地系统中,此方法包含以下步骤:于本地系统中创建固定数量的发送线程,以形成一发送线程池;将接收到向对应远程镜像卷写请求的所有网络块设备串接为一循环链表;设定一指针以顺序记录循环链表中的最新处理的网络块设备,其中指针的起始位置是指向循环链表头(List head);分配发送线程池中的发送线程,以按照循环链表顺序主动寻找指针指向的欲处理网络块设备;利用发送线程对指针指向的网络块设备的处理进行加锁,并处理此网络块设备的发送请求;以及依照循环链表的网络块设备顺序,每次完成发送请求后,依次移动指针至下一个网络块设备并同样执行对应网络块设备的发送请求。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于英业达股份有限公司,未经英业达股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200710163293.5/2.html,转载请声明来源钻瓜专利网。
- 上一篇:电磁加热装置及其使用方法
- 下一篇:一种高导电率软铝线及其制造方法