将源数据迁移成目标数据的方法、系统和程序技术方案

技术编号:2844181 阅读:197 留言:0更新日期:2012-04-11 18:40
提供了将源数据迁移成目标数据的方法、系统和程序。接收将应用数据写到还没有迁移成目标数据的源数据的写请求。产生指示应用数据要写入的源数据的用于写请求的信息。应用数据写入到源数据中。接收将源数据迁移成目标数据的请求并且响应确定出所请求的要迁移的源数据与所产生的用于一个写请求的信息中指示的源数据重叠,返回重试迁移请求的指示。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术涉及将源数据迁移成目标数据的方法、系统和程序
技术介绍
为了建立和维护数据的镜像拷贝或将数据转移到目标位置的新位置,例如数据库文件、目录或任何数据组合的存储元素可以从源存储位置迁移到目标存储位置,其中迁移后数据将从该目标位置访问。例如在线或商业数据库系统的转移的许多大规模的数据转移会花费大量的时间以便在网络上迁移。而且,在迁移过程中,系统会需要允许事务处理继续。各种硬件和软件解决方案提供了在数据被迁移时向源和目标位置都传送更新的机制。迁移操作通常包括对源数据的读请求和然后向目标发出写请求。迁移系统必须解决潜在能发生在当发起从应用到源数据的写请求时,源数据正在被迁移成目标数据的冲突。例如,当旧的源数据正在写入时如果接收到新的源数据,那么新的源数据就可能没有迁移到目标位置。一个已知的这个潜在冲突的解决方案是串行化访问源数据,直到应用数据的写或迁移完成,以至在未完成的写或迁移完成之前,任何干涉的应用写和迁移的操作都不允许发生。这延迟了向等待被当前写或迁移操作释放的锁的请求返回完成。这样,串行化防止了在源数据完成到目标数据的写之前当数据正在迁移时执行对源数据的写。而且,如果块发生了更新,那么就延迟对同一块的迁移操作直到更新完成。与串行化有关的延迟能减慢对源数据写操作和将源数据迁移成目标数据的执行。
技术实现思路
提供了将源数据迁移成目标数据的方法、系统和程序。接收用于将应用数据写到还没有迁移成目标数据的源数据中的写请求。为写请求产生指示应用数据要写入的源数据的信息。将应用数据写入到源数据。接收将源数据迁移成目标数据的请求并且响应确定出所请求的要迁移的源数据与所产生的用于一个写请求的信息中指示的源数据重叠而返回重试迁移请求的指示。附图说明现在参考附图,其中相同的标号在所有附图中都表示对应部分。图1说明实施方式实现于的计算环境;图2说明在干涉的写中维护的信息;图3说明处理到要迁移源数据的写请求的操作;图4说明迁移数据的操作;图5说明当迁移数据时使用的读缓冲区;及图6说明处理迁移请求的操作。具体实施例方式在下面描述中,参考组成本专利技术的一部分并且说明了本专利技术的几个实施方式的附图。应当理解,可以利用其它实施方式并且可以做结构的和操作的改变而不背离本专利技术的范围。图1说明了包括存贮器4的计算系统2。在计算机2中的进程和线程在内核地址空间6或用户地址空间8中执行,其中在内核地址空间8中执行的进程可以比那些在用户地址空间8中执行的进程以更高优先级执行。文件系统管理器10在内核地址空间6中执行以处理由在用户地址空间8中执行的迁移管理器12和应用14发出的读和写的请求。迁移管理器12发起从源存储18迁移源数据16中的块到目标存储22中目标数据20中的块的操作。文件系统管理器10在调用迁移操作的命令下执行迁移功能24来完成由迁移管理器12指定的数据的迁移操作。源存储18和目标存储22可以在同一个存储设备或系统中,或在分离的存储设备或系统中实现。源存储18和目标存储22可以包含任何本领域已知的存储设备,这样一个存储设备或多个相互连接的设备,例如盘驱动器,配置成独立盘冗余阵列(RAID)、简单盘集群(JBOD)、直接访问存储设备(DASD)、带存储设备、例如带库的单一或多个存储单元等。计算机2通过连接26a和26b连接到源存储18和目标存储22。连接26a和26b可以包括任何本领域已知的存储和主机间的接口,比如网络连接(例如以太网、无线网、光纤信道等)或任何其它本领域已知的数据传送接口,比如高级技术附加设备(ATA)、串行ATA(SATA)、小型计算机系统接口(SCSI)等,它们对主机2可以是外部的或内部的。迁移图28提供了源数据16中的数据单元怎样对应到目标数据20中的单元的信息,使得源数据单元转移到在迁移图28中指示的相应的目标数据单元。迁移管理器12使用迁移图28来确定将收到被迁移的源数据单元的目标数据单元。源数据16可以包括数据库、大文件、数据集、逻辑目录、逻辑卷、文件系统、程序、多媒体文件等。干涉写列表30包括每个从应用14接收的对作为由迁移管理器12发起的数据迁移操作的一部分正在迁移到目标数据20的源数据16单元的写请求的条目。图2说明了干涉写列表30中的条目50中为来自应用14的写请求维护的信息。条目50包括指示要对其进行写的源数据16的开始的源起始地址52和写的字节长度54,其中开始52和长度54指示在将更新的源数据16中请求的数据或单元。状态域56指示写请求未完成还是已经完成。图3说明由文件系统管理器10完成的处理对会从一个应用14迁移的源数据16的写请求的操作。图3中的操作可以通过文件系统管理器10执行迁移功能24来实现,其中迁移功能24在执行源数据经受迁移模式的操作时由文件系统管理器10调用。当从应用14接收到(在块100)的对源数据16的写请求时,如果(在块102)写数据不与任何在迁移图28中指示为没有迁移的源数据重叠,那么文件系统管理器10写(在块104)接收到的数据到源数据16和相应的目标数据20。否则如果来自应用14的写数据与迁移图28中指示为还没有迁移的源数据16重叠,那么文件系统管理器10为接收到的写请求增加(在块106)条目50(图2)到干涉写列表30,指示要写的请求的源数据,即,要写入的数据的源开始52和字节长度54的数据,还有初始为未完成的状态56。接收到的数据被写(在块108)到源数据16并且响应对源数据16的写数据的完成,干涉写列表30中的条目50的状态56,即干涉应用写请求的信息,被设置为(在块110)完成。图4说明了由迁移管理器12执行的实现迁移操作的操作。当发起(在块150)将源数据迁移成目标数据的操作时,迁移管理器12处理(在块152)迁移图28来确定源数据16的迁移到相应的目标数据20的一个或多个单元。迁移管理器12发出(在块154)使文件系统管理器10从源数据16迁移确定的单元到相应的目标数据20的迁移请求。当接收到对迁移请求(在块156)的响应时,如果(在块158)迁移成功,那么迁移管理器12更新(在块160)迁移图28来指示源数据单元已被写并且成功地迁移到相应的目标数据20。当迁移(在块158)不成功,那么确定(在块162)是否应该重试迁移。如果是,控制返回到块154来重新为没有成功迁移的源数据16发出迁移请求。否则,如果迁移没有重试,那么执行(在块164)任何其它的错误处理。在某些实施方式中,迁移管理器12可以通过提交读命令和例如图5中读缓冲区170的读缓冲区到文件系统管理器10发起迁移操作。在提交读缓冲区时,迁移管理器12会提交指针到读缓冲区170。文件系统管理器10执行管理器功能24来处理来自迁移管理器12的读作为用于读取请求的源数据16和将读取的源数据写到相应的目标存储22中的目标数据20中的特定迁移命令。迁移管理器12开始可以通过例如IOCTL的带外机制警告文件系统管理器10某个数据或存储处于迁移状态。IOCTL可以指定表示要迁移的设备或数据的打开文件描述符和由文件系统管理器10在当I/O命令中声明有源存储18或源数据16时执行以迁移数据的迁移功能24。管理器功能24可以通过返回指示迁移管理器12提供的读缓冲区170(图5)没有包括所有请求的数据本文档来自技高网...

【技术保护点】
一种将源数据迁移成目标数据的方法,包括:接收用于将应用数据写到还没有迁移成目标数据的源数据中的写请求;产生指示应用数据要写入的源数据的用于该写请求的信息;将应用数据写到源数据中;接收用于将源数据迁移成目标数据的请求;并且响应确定出所请求的要迁移的源数据与所产生的用于一个写请求的信息中指示的源数据重叠,返回重试迁移请求的指示。

【技术特征摘要】
【国外来华专利技术】US 2004-6-10 10/865,6251.一种将源数据迁移成目标数据的方法,包括接收用于将应用数据写到还没有迁移成目标数据的源数据中的写请求;产生指示应用数据要写入的源数据的用于该写请求的信息;将应用数据写到源数据中;接收用于将源数据迁移成目标数据的请求;并且响应确定出所请求的要迁移的源数据与所产生的用于一个写请求的信息中指示的源数据重叠,返回重试迁移请求的指示。2.如权利要求1所述的方法,其中用于写应用数据的写请求来自应用并且迁移请求来自迁移程序。3.如权利要求2所述的方法,其中应用和迁移程序在用户地址空间执行,并且其中所述接收写请求、产生信息、写所请求的数据、确定重叠和返回重试指示的步骤是由内核地址空间中执行的至少一个进程执行的。4.如权利要求1、2或3所述的方法,其中所产生的用于一个写请求的信息将应用数据的写状态指示为未完成或者完成,其中重试指示在将要迁移的源数据被转移为目标数据之前并且响应确定出所请求的要迁移的源数据与所产生的用于一个具有未完成状态的写请求的信息中指示的源数据重叠而返回。5.如前面任何一项权利要求所述的方法,其中所产生的用于一个写请求的信息将写状态指示为未完成或者完成,其中重试指示在要迁移的源数据被转移为目标数据之后并且响应确定出所请求的要迁移的源数据与所产生的用于一个具有未完成或完成状态的写请求的信息中指示的源数据重叠而返回。6.如权利要求5所述的方法,进一步包括响应将应用数据写到所产生的用于写请求的信息中指示的源数据中,将所产生的用于一个写请求的信息中的状态设置为完成;其中为该写请求将应用数据写到源数据中和响应迁移请求将源数据迁移成目标数据的操作是相互独立发生的。7.如前面任何一项权利要求所述的方法,其中重试指示在将要迁移的源数据转移成目标数据之前和将要迁移的源数据转移成目标数据之后响应确定出所请求的要迁移的源数据与所产生的用于一个写的信息中指示的源数据重叠而返回。8.如前面任何一项权利要求所述的方法,其中所产生的信息将写状态指示为未完成或者完成,所述方法进一步包括在将源数据迁移成目标数据之后,去除所产生的用于具有完成状态的写请求的信息。9.如权利要求8所述的方法,进一步包括响应将要迁移的源数据写到目标数据中,去除所产生的用于对所述要迁移的源数据之前的源数据的写请求的信息。10.如前面任何一项权利要求所述的方法,其中返回重试迁移请求的指示包括在对迁移请求的响应中指示请求没有完成;并且在响应中包括指示重试迁移请求的重试代码。11.如权利要求10所述的方法,其中迁移请求包括来自提供读缓冲区的迁移进程的读请求,并且其中在响应中指示迁移请求没有完成包括指示不是所有请求的数据都包括在读缓冲区中,并且其中重试代码包含在响应读请求而返回的读缓冲区中的预定位置。12.一种将源数据迁移成目标数据的系统,包括源存储位置;目标存储位置;存贮器;能够与源和目标存储位置和存贮器通信的电路,其中电路能够执行(i)接收用于将应用数据写到还没有迁移成目标数据的源数据中的写请求;(ii)在存贮器中产生指示应用数据要写入的源数据的用于写请求的信息;(iii)将应用数据写到源存储位置处的源数据中;(iv)接收将源数据迁移成目标存储位置处的目标数据的请求;以及(v)响应确定出所请求的要迁移的源数据与所产生的用于一个写请求的信息中指示的源数据重叠,返回重试迁移请求的指示。13.如权利要求12所述的系统,其中用于写应用数据的写请求来自应用并且迁移请求来自迁移程序。14.如权利要求13所述的系统,其中电路进一步能够执行产生用户地址空间和内核地址空间,其中应用和迁移程序在用户地址空间执行,并且其中所述接收写请求、产生信息、写所请求的数据、确定重叠和返回重试指示的步骤是由内核地址空间中执行的至少一个进程执行的。15.如权利要求12、13或14所述的系统,其中所产生的用于一个写请求的信息将应用数据的写状态指示为未完成或者完成,其中重试指示在要迁移的源数据被转移成目标数据之前并且响应确定出所请求的要迁移的源数据与所产生的用于一个具有未完成状态的写请求的信息中指示的源数据重叠而返回。16.如权利要求12、13、14或15所述的系统,其中所产生的用于一个写请求的信息将写状态指示为未完成或者完成,其中重试指示在要迁移的源数据被转移成目标数据之后并且响应确定出所请求的要...

【专利技术属性】
技术研发人员:克里斯多弗约汉斯塔库蒂斯威廉罗伯特哈塞尔顿
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:US[美国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术
  • 暂无相关专利