传送数据的方法和系统技术方案

技术编号:2836567 阅读:157 留言:0更新日期:2012-04-11 18:40
提供了一种用于在共享缓冲区中在系统和存储器之间传送数据的方法、系统和程序。应用从组件请求缓冲区。该组件分配一缓冲区并将缓冲区中用于应用数据的第一偏移和缓冲区中用于第一首部的第二偏移返回该应用。该应用在缓冲区中的第一偏移处写入应用数据;并在缓冲区中的第二偏移处写入第一首部。第二首部被写入缓冲区的第三偏移。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术涉及一种用于在共享缓冲区中在系统和存储器之间传送数据的方法、系统和程序。
技术介绍
在网络备份环境中,客户系统可以将数据备份在存储设备中并和备份服务器协调该备份。例如,国际商业机器公司(“IBM”)Tivoli存储管理器产品为客户和服务器系统提供软件以备份客户数据(IBM和Tivoli是IBM的注册商标)。客户机器可以包括多个程序组件,所述程序组件处理在客户的应用和存储设备之间传送的数据。每个组件从前一组件使用的缓冲区中读取数据并接着执行存储器复制操作以将数据复制到分配给该组件的缓冲区。作为当数据在组件分配的缓冲区中传递时处理数据的一部分,程序组件可以将首部信息加入该数据。程序组件可从前一组件的缓冲区读取数据,处理该数据,将新的首部加入该数据,接着将这个数据和新的首部写入分配到该组件的缓冲区。在处理数据的组件链中的下一程序组件可进行同样的处理。
技术实现思路
提供了一种在共享缓冲区中在系统和存储器之间传送数据的方法、系统和程序。在本专利技术的第一方面,应用从组件请求缓冲区。该组件分配一缓冲区并将在缓冲区中用于应用数据的第一偏移和在缓冲区中用于第一首部的第二偏移返回该应用。应用在缓冲区中的第一偏移处写入应用数据;并在缓冲区中的第二偏移处写入第一首部。第二首部被写入缓冲区的第三偏移处。根据本专利技术的第二方面,第一组件从第二组件请求缓冲区。第二组件分配一缓冲区并将在缓冲区中用于应用数据的第一偏移和在缓冲区中用于第一首部的第二偏移返回该应用。第二组件在缓冲区中的第一偏移处写入应用数据并在缓冲区中的第二偏移处写入第一首部。第二首部被写入缓冲区的第三偏移处。附图说明现在将仅作为示例并参考下面的附图来描述本专利技术的实施例,其中图1例示了网络计算环境的一实施例。图2例示了缓冲区格式的一实施例。图3、4和5例示了将数据从应用传送到存储设备的操作的一实施例。具体实施例方式在下列的描述中将参考附图,所述附图形成本说明书的一部分并例示了本专利技术的一些实施例。可以理解的是,可以利用其他的实施例并可以对结构和操作进行变化而不背离本专利技术的范围。图1例示了具有包括存储器4的存储客户2的网络计算环境。存储客户2包括作为程序组件的应用6例如数据库应用等、存储管理器应用程序接口(API)8、虚拟服务器10、存储代理12和提供写入存储设备16的接口的存储设备驱动器14。存储管理器API 8管理在缓冲池20中的缓冲区18。在一个实施例中,存储设备驱动器14通过网络22例如存储区域网(SAN)传送数据以将其写入存储设备16。在另一个可选实施例中,客户2可以通过总线接口,例如外设部件互连(PCI)总线、小型计算机系统接口(SCSI)总线等,连接到存储设备16。在一个实施例中,虚拟服务器10可以通过第二网络28例如局域网(LAN)将关于写入存储设备16的数据的信息传送至具有存储管理器服务器26的服务器24。这样,通过第一网络例如SAN传输去往和来自存储器的数据,而通过另一网络例如局域网发送关于被传送的数据的控制信息。在另一可选实施例中,数据以及用于数据传送操作的信息和命令可以在同一网络上传输,而不是如图1所示的在分开的网络上传输。服务器26在管理备份数据集的备份数据库顶端中维护关于存储在存储设备16中的数据的信息。存储管理器API 8将缓冲池20中的缓冲区18分配给客户2中的组件以用于存储在应用6和存储设备16之间传送的数据。图2例示了组件6、8、10、12和14添加到缓冲区18的数据,包括应用数据40和由应用6写入的应用首部44、由存储管理器API 8写入的API首部46、指示如何处理存储管理器API 8写入的缓冲区的动词(verb)信息48。在一个实施例中,存储代理12可以用设备特定信息4盖写动词信息48,以使存储设备驱动器14能够将数据传送到存储设备16。在描述的实施例中,例如组件6、8、10、12和14的组件将指向缓冲区内容包括该组件写入缓冲区的任何首部或者其他信息的指针传送至例如组件8、10、12和14的下一组件,以处理该缓冲区内容。这样,缓冲区18由组件共享,因此处理缓冲区中的数据并添加首部信息的每个组件不必分配在其中复制内容的另外的缓冲区。相反,每个组件可以处理数据并添加首部和其他信息给相同的共享缓冲区,因而不需要执行去往和来自分开的缓冲区的数据的存储器复制操作。图3、4和5例示了例如组件6、8、10、12和14的组件执行的操作,以在组件之间传送数据以便传送到存储设备16。参照图3,应用6通过从存储管理器API 8请求(在块102)的一个或多个缓冲区18,来启动(在块100)将应用数据传送到存储设备16的操作。该请求可以包括应用6打算写入的首部的最大长度,如果应用6将不写入首部,则该长度可以为零。作为响应,存储管理器API 8分配(在块104)在缓冲池20中被指示为自由缓冲区18的一个或多个缓冲区18给应用。第一组件或存储管理器API 8计算(在块106)用于应用数据40的第一偏移,以在第一偏移之前的缓冲区18中提供足够量的空间,以便在从第一偏移写入应用数据40之后写入第一首部和第二首部,例如应用首部42和API首部44。第一偏移可以在缓冲区18中提供用于由请求中指示的首部的长度的足够的空间。因此第一偏移寻址应用数据40在缓冲区18中的何处开始。第一组件8还计算(在块108)第二偏移以在第二偏移之前的缓冲区中提供足够量的空间,以便在写入应用数据40和应用首部42之后,写入第二首部,例如API首部44。这样,偏移被计算为允许一个组件在由前一组件写入的数据之前写入数据,由此允许组件在先前写入的应用数据40和首部之前添加首部。另外,在缓冲区18的顶端可以有数据结构,该数据结构具有关于所有的首部,例如首部48、46、44和数据40的信息,包括在缓冲区18中的偏移和每个首部的长度,以使得任何组件6、8、10、12和14能够确定首部和数据在缓冲区18中的位置。在描述的实施例中,存储管理器API 8可能想要确保数据保持在固定的边界区域例如4K边界上。当应用6输入/输出(I/O)到存储设备16时,被缓冲区18传递到内核以进行输入/输出。为了实现直接存储器寻址(DMA),内核可将缓冲区18“钉”(pin)到物理存储器4(而不是虚拟存储器),从而输入/输出设备(PCI总线、SCSI总线、SAN等)能访问数据并将其发送到适当的设备。这种“钉”住缓冲区18防止了当输入/输出传送在进行中时(在总线上),其他的应用使用该数据。如果(在块110)指针应用数据40不是一固定数(例如,4千字节(Kb))的倍数,那么第一组件(存储管理器API 8)计算(在块112)第一和第二偏移以在第一偏移处写入的应用数据之前维持空白空间(empty space),使得空白空间和应用数据占据固定数或4Kb的倍数。例如,第二偏移可以包含从第一偏移的偏移,其等于需要在4Kb边界上排列应用数据40的空白空间42的量和将在第二偏移开始写入的首部例如应用首部44的长度。第一组件8将第一和第二偏移以及用于所分配的缓冲区18的句柄(handle)返回到应用6(在块114)。响应于所述偏移,应用6在缓冲区18中的第一偏移处写入(在块116)应用数据40,并在缓冲区18中的第二偏移处写入(本文档来自技高网...

【技术保护点】
一种方法,包括:由应用从组件请求缓冲区;由该组件分配缓冲区;由该组件将在该缓冲区中用于应用数据的第一偏移和在该缓冲区中用于第一首部的第二偏移返回给该应用;由该应用在该缓冲区中的该第一偏移处写入应用数据;   由该应用在该缓冲区中的该第二偏移处写入第一首部;以及将第二首部写入该缓冲区中的第三偏移。

【技术特征摘要】
【国外来华专利技术】US 2004-12-10 11/009,9371.一种方法,包括由应用从组件请求缓冲区;由该组件分配缓冲区;由该组件将在该缓冲区中用于应用数据的第一偏移和在该缓冲区中用于第一首部的第二偏移返回给该应用;由该应用在该缓冲区中的该第一偏移处写入应用数据;由该应用在该缓冲区中的该第二偏移处写入第一首部;以及将第二首部写入该缓冲区中的第三偏移。2.根据权利要求1所述的方法,其中所述第一偏移比所述第二偏移大,并且所述第二偏移比所述第三偏移大。3.根据权利要求1所述的方法,其中所述组件将所述第二首部写入所述缓冲区,还包括将第三首部写入在该缓冲区中的第四偏移,所述第一偏移比所述第二偏移大,所述第二偏移比所述第三偏移大,而所述第三偏移比所述第四偏移大。4.根据权利要求1所述的方法,其中所述组件包含第一组件,进一步包括由第二组件用用于将缓冲区内容传送到存储设备的信息替换所述第二首部。5.根据权利要求1所述的方法,其中所述组件包括第一组件,并且在所述第三偏移处的所述第二首部指示包含所述应用数据和首部的缓冲区内容将被传送到第一设备或第二设备,还包括由所述第一组件将指向所述第二首部的指针传递给至第二组件;由所述第二组件处理所述第二首部以判定是否将缓冲区内容发送到第一设备或第二设备;以及响应于判定所述第二首部指示将缓冲区内容发送到所述第一设备,将用于将缓冲区内容传送到所述第一设备的设备信息写入所述第二首部,其中所述设备信息替换由所述第一组件写入的所述第二首部信息。6.根据权利要求5所述的方法,其中所述第一设备包括存储设备,进一步包括响应于判定缓冲区内容将被发送到所述存储设备,由用于所述存储设备的存储设备驱动器使用所述第二首部中的所述设备信息,将缓冲区内容从所述缓冲区传送到所述存储设备。7.根据权利要求6所述的方法,其中由所述第一组件传递的指针包括第一指针,还包括响应于判定缓冲区内容将被发送到所述存储设备,由所述第二组件发送指向缓冲区的第二指针至第三组件,其中所述第三组件将所述设备信息写入所述第二首部;以及由所述第三组件将指向缓冲区的第三指针发送至所述存储设备驱动器,其中所述存储设备驱动器使用所述第三指针将缓冲区的内容写入所述存储设备中的存储介质。8.根据权利要求7所述的方法,其中所述第一组件包括存储管理器的应用程序接口(API)...

【专利技术属性】
技术研发人员:MJ安格林AH霍赫贝格J维克斯涅
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:US[美国]

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

1