在存储设备上执行数据写入的制作方法

xiaoxiao2020-7-22  12

专利名称:在存储设备上执行数据写入的制作方法
技术领域
本发明涉及一种在存储设备上执行数据写入的方法以及系统。在一个实施例中, 本发明提供一种机制以允许存储子系统参与事务回滚(transactional rollbacks).
背景技术
在大型机构内存储数据对于数据的可靠性以及在任何硬件故障的情况下恢复数据的能力都具有根本的重要性。存储局域网络(Storage areanetwork, SAN)是一种当需要以可靠并且安全的方式存储很大量的数据时采用的架构。该技术允许创建支持将远程计算机存储设备(例如盘阵列)以下述方式连接到服务器的网络,即,对操作系统而言,这些设备看起来象是本地连接的。在这些网络中,在数据存储以及在个别组件之间的硬件连接中包含大量的冗余是很常见的。存在各种创建数据冗余的方法。例如,像闪速拷贝(flashcopy)功能之类的功能允许管理者对数据做出时间点(point-in-time)完整卷拷贝,所述拷贝可以立即用于读或写访问。闪速拷贝可以与在你的环境中可获得的标准备份工具一起使用,以便在磁带上创建备份拷贝。闪速拷贝在目标卷上创建源卷的拷贝。此拷贝被称为时间点拷贝。当闪速拷贝操作被启动时,在源卷与目标卷之间建立关系。此关系是源卷与目标卷的“映射”。此映射允许该源卷的时间点拷贝被拷贝到相关联的目标卷上。从闪速拷贝操作被启动的时间,直到存储单元将所有数据从源卷拷贝到目标卷或者直到该关系被删除, 该关系一直存在于这个卷对之间。当数据被实际拷贝时,一背景处理拷贝从源卷到目标卷的轨迹。完成背景拷贝所花费的时间量取决于以下准则被拷贝数据的数量、正在发生的背景拷贝处理的数量、以及任何其它正在发生的活动。在存储中,用户可以创建闪速拷贝,该闪速拷贝对某些存储盘做出时间点备份。如果用户随后在其存储中遇到了问题,他们可以逆转该闪速拷贝以恢复数据的已保存的版本。闪速拷贝关系的方向可以被逆转,其中先前定义为目标的卷变成先前定义为源(现在为目标)的卷的源。已改变的数据被拷贝到先前定义为源的卷中。如果管理者希望将源卷(卷A)恢复到他们最初执行闪速拷贝操作之前的时间点, 则管理者可以逆转闪速拷贝关系。实际上,他们逆转闪速拷贝操作,使得看起来闪速拷贝操作仿佛从未发生。在能够逆转作为源的卷A与作为目标的卷B之前,闪速拷贝操作的背景拷贝处理必须完成。存在期望逆转原始闪速拷贝关系的某些情况。例如,在源卷A与目标卷B之间可能已创建了闪速拷贝关系,然后源卷A上发生数据遗失。能够逆转该闪速拷贝关系,使得卷 B被拷贝到卷A。不幸的是,这种执行数据存储的方法具有一些缺点。例如,使用闪速拷贝功能,直接恢复回到执行闪速拷贝的时间点,但是在试图执行的数据恢复的情境中,这并非总是正确的时间。类似地,当拷贝是作为背景任务根据时钟时间(clock time)而做出,而不是基于系统中正在发生的事情而做出,则实际时间点对于数据恢复可能不具有任何用处。即使连续的数据保护也不是自动化的,并且对于何时是执行备份的敏感时间也没有概念。此外, 由于运行中的许多交错系统的性质以及必须使它们全部相互一致(cross-consistent),拷贝倾向于大型化而且包含了许多盘的集合。这造成了很大的处理及存储负担。系统必须以整体的方式被停止和刷新。在大多数闪速拷贝情况中,应用被停止而且设备驱动器在闪速拷贝之前被刷新高速缓存数据。这将刷新所有应用数据到存储设备,以便创建正在被闪速拷贝的vdisk的干净映像,并且包括为其他vdisk高速缓存的数据以及闪速拷贝中不涉及的应用。另外,当用户使用闪速拷贝创建虚拟盘的时间点备份拷贝时,他们力图满足在特定时间点原样做出一整组业务数据(存储在盘上)的备份拷贝的业务要求。这样做存在问题,因为存在很多层高速缓存,例如可能包括,在应用和web服务器中间件中、在数据库中、 在文件系统中、和在多路径设备驱动器中。做出一组业务数据的闪速拷贝的当前方法是停止正在使用存储盘的所有应用和中间件工作并且(通常)关闭相关联的中间件服务器,迫使它将所有数据存储到盘中。然后该盘可以被闪速拷贝以创建能够被备份的一组一致的业务数据。如果用户希望做出业务数据的时间点拷贝但是不希望停止或关闭应用或应用服务器,则这是一个问题。由于期望取得一组一致的数据,这意味着用户不希望通过一个工作单元部分地做出数据的闪速拷贝,但由于这些工作单元发生得非常迅速并且所有这些工作单元以“机器速度”开始和停止,不可能恰好在应用达到一致业务状态的时间点按下按钮或真正开始闪速拷贝。因此,本发明的一个目的是改进现有技术。

发明内容
根据本发明的第一方面,提出一种在存储设备上执行数据写入的方法,其包含指示该存储设备的设备驱动器对该存储设备执行数据写入;向事务协调器注册该设备驱动器作为事务参与方;执行该存储设备的闪速拷贝;在存储设备上执行数据写入;以及在设备驱动器与事务协调器之间执行两阶段提交(two-phase commit) 0根据本发明的第二方面,提出一种在存储设备上执行数据写入的系统,其包含文件系统,用于指示该存储设备的设备驱动器对该存储设备执行数据写入;事务协调器,用于注册该设备驱动器作为事务参与方;存储设备;以及该存储设备的设备驱动器,用于执行该存储设备的闪速拷贝,以在该存储设备上执行数据写入,以及与该事务协调器执行两阶段提交。根据本发明的第三方面,提出一种在计算机可读介质上的计算机程序产品,用于操作存储设备的设备驱动器,该计算机程序产品包含用于执行下述操作的指令在接收到对该存储设备执行数据写入的指令后,向事务协调器注册该设备驱动器作为事务参与方; 执行该存储设备的闪速拷贝;在该存储设备上执行数据写入;以及与该事务协调器执行两阶段提交。根据本发明的第四方面,提出一种调度存储设备的闪速拷贝的方法,包括接收在存储设备上执行闪速拷贝的指令,确定关于存储设备的当前事务,向事务协调器注册存储设备的设备驱动器注册,作为当前事务中的事务参与方,从事务协调器接收事务完成指示, 并且对存储设备执行闪速拷贝。根据本发明的第五方面,提出一种调度存储设备的闪速拷贝的系统,包括事务协调器,存储设备,和存储设备的设备驱动器,并且用来接收在存储设备上执行闪速拷贝的指令,确定关于存储设备的当前事务,向事务协调器注册作为当前事务中的事务参与方,从事务协调器接收事务完成指示,并且对存储设备启动闪速拷贝。根据本发明的第六方面,提出一种在计算机可读介质上的计算机程序产品,用于调度存储设备的闪速拷贝,该产品包括用于执行下述操作的指令接收在存储设备上执行闪速拷贝的指令,确定关于存储设备的当前事务,向事务协调器注册存储设备的设备驱动器注册,作为当前事务中的事务参与方,从事务协调器接收事务完成指示,并且对存储设备执行闪速拷贝。借助本发明,能够提供一种方法,通过该方法能在连接到事务系统(例如存储局域网络)的存储设备上维持数据的完整性。本发明提供一种有效且高效的方法,如果事务 (包含数据写入)失败,数据能被恢复,而不需要过度的处理或存储负担。在一个实施例中,本发明为一种机制,对于被标记的存储卷,允许用于控制器卷的多路径/设备驱动器软件在中间件的协调下(例如利用DB2或Websphere软件)变成事务参与方。本发明允许网络存储盘变成事务文件服务,其中事务回滚将会把写入到存储系统的所有数据恢复到事务开始时的状态。该设备驱动器可以参与该事务。如果该设备驱动器在特定线程中被告知事务开始,则驱动器可以注意到对该线程更新的存储盘的所有访问。 该驱动器可以向存储控制器告知该事务,该事务在执行第一次数据写入前会建立一个具有时间标记的可逆转闪速拷贝。在准备时,如果希望的话,能够刷新对盘的任何高速缓存,但这现在不必对所有数据进行,如目前的整体刷新的情况,其可以仅针对作为此事务的一部分而被更新的块。该系统不必被停止。本发明现在允许仅刷新在事务中所涉及的数据(包含正被写入到被执行闪速拷贝的vdisk的数据),而该事务中不涉及的数据可以仍保留在高速缓存中。这是因为在本发明的操作中,设备驱动器以及应用服务器可以持续接受对其它事务的新工作,由于每一个事务的高速缓存数据可以被独立地刷新,因此不必为了能够完成此操作而刷新所有的数据,也不必等待所有的工作单元停止。事务协议可以在数据流量元数据中被隧道传输,该数据流量元数据在驱动器与存储控制器之间发送。文件系统中的适当配置选择允许用户设定他们需要的vdisk以及事务协调。闪速拷贝可以是递增性的,由此只将上次触发闪速拷贝以来改变过的数据拷贝过去(或回来)。这是操作闪速拷贝最有效率的形式。由于只有应用程序写入(在事务期间) 所“分割”的颗粒(grain)必须被拷贝回来,而需要被背景拷贝处理传输到目的地的数据集的其它部分不必被拷贝回来,因此不需背景拷贝处理。优选地,该方法还包含在接收执行回滚的指令之后,根据闪速拷贝逆转数据写入。对于被发送的任何回滚,设备驱动器可以切换闪速拷贝的方向以将数据集恢复为事务开始时所具有的内容。在接收到提交事务的指令以之后,该设备驱动器可以丢弃该闪速拷贝。事务结束后可以丢弃闪速拷贝。较有益地,在存储设备上执行数据写入的步骤紧接在启动存储设备的闪速拷贝之后。这确保从存储设备做出的闪速拷贝,发生在紧接于存储卷的实际写入动作之前的时间点。这将确保在任何可能的未来回滚中,使用闪速拷贝将把存储在存储设备上的数据返回到恰在数据写入开始前的其原始状态。理想情况下,向事务协调器注册该设备驱动器作为事务参与方的步骤由设备驱动器所完成。优选实施例中,设备驱动器本身向事务协调器进行注册。这具有简化确保设备驱动器对于正确的事务被注册为事务参与方的过程的优点。借助本发明,还能够提供一种系统,该系统现在能自动地将闪速拷贝与一致数据点对齐并且应对主机高速缓存刷新,而不必使任何应用停止运行。由该方法和系统提供的核心发明实现了对于必须停止对存储vdisk的所有IO和手动刷新主机高速缓存,然后创建闪速拷贝的更好的解决方案。本发明的本质是,系统不再恰好在请求闪速拷贝的点实际发出闪速拷贝,而是在相关vdisk接下来处于由应用程序的事务活动定义的一致性点的点做出闪速拷贝。在对闪速拷贝进行定时的这种方法中,系统象以前一样设置闪速拷贝准备/做出 (pr印are/take),但当用户发出做出闪速拷贝的命令时,正在处理对vdisk的IO的设备驱动器向当前事务通知正在发生10。闪速拷贝并非立即发生,而是将发生在下一个事务边界。 利用本发明,当设备驱动器被告知针对vdisk的待处理闪速拷贝请求时,它注册为当前事务的参与方。当事务完成两阶段提交协议向设备驱动器发送“准备”消息时,它确保向存储控制器刷新所有本地高速缓存(如果有的话)。事务中的所有其他参与方,例如web应用服务器/数据库等,将做同样的事情,并且它们也将对它们希望硬化的数据发出“fflush”的等同物。被发送给事务参与方的准备的“顺序”没有被定义,但是一旦设备驱动器接收到针对该事务的准备,则它的高速缓存将进入针对该事务的直写,因此所有写入将流到服务器。因此,对存储盘的所有写入将通过设备驱动器流动,并且不被高速缓存。当设备驱动器接收到事务完成指示时,它将向系统发送通知(通过光纤信道缆线上的隧道协议)闪速拷贝可以实际在该时间点开始,因为该事务已经完成了盘上的数据,并且不允许对盘的进一步10。这将具有使闪速拷贝时间与和业务应用的一致性点及事务边界有关的实际时间点对准的优点,并且提供了做出有用的闪速拷贝而不必停止前端应用的能力。可以在下述步骤中实现本发明。步骤1,创建具有新标志(“要使用事务边界的闪速拷贝”)的闪速拷贝。步骤2,准备闪速拷贝。步骤3,“开始”闪速拷贝(这并不真正开始闪速拷贝),向正在为vdisk创建10(自从前一个闪速拷贝)的设备驱动器通知待处理的事务闪速拷贝。在步骤4,设备驱动器查看是否有当前事务。如果没有,则它照常继续。如果有,则它注册为当前事务中的参与方并继续到服务IO但等待利用2阶段提交结束事务。 当设备驱动器接收到准备时,如果它接收到针对相关vdisk的10,该设备驱动器刷新所有/ 任何高速缓存并且任何进一步的写入进入对存储控制器的直写,当它接收到提交(或回滚或如果达到用户指定的暂停),设备驱动器将指示存储控制器(沿光纤信道)在该时间点实际执行闪速拷贝。存储控制器并不直接做出闪速拷贝,而是告诉设备驱动器一个闪速拷贝正待处理,然后当设备驱动器在当前事务结束时得到下一个提交点时回答存储控制器(因为数据那时将为一致的),以告诉存储控制器从该时间点开始闪速拷贝。如果对于所涉及的盘存在多个“飞行中”的事务,则设备驱动器可以在该集合中的最后一个完成时发送通知。如果对于同一个盘的IO出现在设备驱动器处(该IO在全新的事务下在前一事务的注册与其完成之间的时间期间被完成),则对于该事务的IO可以被延迟(由用户裁量)直到在启动闪速拷贝时处于飞行中的事务完成。否则,一系列总是重叠的事务会不确定地延迟闪速拷贝开始,或者迫使闪速拷贝在存在于盘上的数据不是一组充分一致的业务数据的点开始。
将参照附图仅以举例的方式描述本发明的实施例。


图1是用于在存储设备上执行数据写入的系统的概要图。图2至图4是图1的系统的进一步概要图,显示系统内的数据流。图5是用于在存储设备上执行数据写入的方法的流程图。图6和图7是图1的系统的进一步概要图,显示出根据优选实施例的进一步优化的各种系统动作。图8是根据优选实施例的进一步优化的调度存储设备的闪速拷贝的方法的流程图。
具体实施例方式图1概要显示用于执行数据写入的系统。文件系统10与设备驱动器12进行通信, 该驱动器12特别对应于存储设备14。设备驱动器12也与事务协调器16进行通信。文件系统10与事务协调器16是位于一个或多个服务器上的软件组件,所述服务器包含存储局域网络(SAN)与存储设备14。在本发明的实际实施例中,具有大量的服务器与存储设备互相连接在一起,以构成整个网络。设备驱动器12可以是纯软件组件,或可以包含软件组件以及物理层。文件系统10以及事务协调器16的软件组件具有对外部应用程序的应用程序接口,其中外部应用程序也在存储局域网络中运行。例如,该网络可以管理一个机构的用来接收对于欲购买货物的订单的商务网站,存储设备14存储客户经由网站所订购的订单。在此情况中,应用程序运行在网络中,并且该应用程序具有用户接口可通过网站接收订单,然后采取必要的动作,例如创建供设备14存储的订单。该应用程序将与文件系统10互动,以执行将数据写入到存储设备14的任务。事务协调器16是确保在网络中所采取的任何动作符合事务处理的期望水平的软件组件。事务处理被设计为通过确保在计算机系统(例如所讨论的网络)上完成的相互依存的任何操作全部成功完成或者全部成功取消,来将该系统维持在在已知的一致状态中。 网络中的每一个工作单元通过事务协调器16进行管理,确保每一个工作单元的一致性。事务处理避免硬件与软件错误,该硬件与软件错误可能造成部分完成的事务,使得网络处于未知的不一致状态。如果该网络(或该网络内的任何组件或连接)在事务的中途失效,事务协调器16可保证在任何未提交(即,未完全处理)的事务中的所有操作被取消。图2示出图1中的系统在网络内某个工作单元被触发后的状态,该工作单元要求数据写入到存储设备14中。如上所述,这是在网络内运行的应用程序采取某个动作的结果,例如终端用户在网络维持的企业系统所管理的网站中进行购买。结果,用户的订单需要存储在数据库14中,数据库14存储与该订单相关的信息。
第一个动作(1)是,文件系统10将指示存储设备14的设备驱动器12执行对该存储设备14的数据写入。响应于此,第二动作( 是向事务协调器16注册设备驱动器12作为事务参与方。图中显示该动作( 是由设备驱动器12本身采取的,但实际上向事务协调器16注册设备驱动器12也可以由系统中的不同组件执行,例如由文件系统10执行。此注册的目的是设备驱动器12现在变成事务处理系统中的参与方,并承担所有伴随的要求。设备驱动器12现在是其中它关于数据写入所采取的动作必须向事务协调器 16确认的系统的一部分,并且就事务处理的意义而言构成更大事务的一部分。图3显示数据写入处理的下一阶段,其中设备驱动器12在向事务协调器16注册后,用于执行存储设备14的闪速拷贝。该动作在图中示为动作(3),并导致存储设备14的卷被复制到新存储位置18,该新存储位置18可以是不同硬件或仅仅是整个网络内的一个新逻辑位置。闪速拷贝功能的本质是针对特定时间点做出了存储在设备14中的数据的拷贝。闪速拷贝功能产生背景任务,该背景任务将以根据可用带宽确定的速率将存储设备14 所存储的数据拷贝到新卷18。另外,存储设备14中数据的任何改变、或新卷18对数据的请求,导致从存储设备14到新存储位置18的自动数据拷贝。在执行对存储设备14的任何写入之前,设备驱动器12启动对存储设备14的内容的闪速拷贝。确实,设备驱动器直接执行数据写入而没有任何中间动作是有益处的,以确保新位置18中保存的拷贝确实为执行新数据写入之前的数据的拷贝。实际上,设备驱动器12 准备存储设备14所存储的数据的恢复拷贝,以针对事务中的任何失败作准备,该特定数据写入构成了该事务的一部分。图4中显示数据写入之处理的最后两个动作,包含在存储设备14上执行数据写入的动作(4),以及在设备驱动器12与事务协调器16之间执行两阶段提交的动作( 。此两个动作中的第一动作(4)是从设备驱动器12到存储设备14的传统数据写入。在闪速拷贝功能的控制之下,这也将触发存储设备14中的覆写数据被拷贝到图3中的新存储位置18, 如果该数据尚未被背景任务拷贝的话。此两个动作中的第二动作,在设备驱动器12与事务协调器16之间执行两阶段提交的动作(5),是动作O)中向事务协调器16注册设备驱动器12作为事务参与方的要求, 如以上参照图2具体描述的。这个动作显示为两个组件12与16之间的双向通信。在包含对存储设备14的数据写入的当前工作单元中,每一个动作组件都需要两阶段提交。两阶段提交协议为一种分布式算法,确保事务完成之前,分布式网络中的所有组件同意提交事务。该协议导致所有组件提交该事务,或者所有组件中止该事务。该算法的两个阶段首先是事务协调器16准备参与组件的提交请求阶段,以及事务协调器16完成事务的提交阶段。两阶段提交对设备驱动器12的作用是,设备驱动器12必须发送同意消息或是中止消息给事务协调器16,取决于动作(4)的数据写入是否成功地完成。此外,设备驱动器12 必须等待来自事务协调器16的提交或回滚消息,以完成两阶段提交处理。如果设备驱动器 12被指示回滚数据写入,那么设备驱动器12可以访问已被覆写的原始数据的闪速拷贝,以便正确地执行回滚。在图2至图4中所示的处理可总结成图5的流程图。在存储设备14上执行数据写入的方法包含首先,如步骤Si,指示存储设备14的设备驱动器12对存储设备14执行数据写入。一旦完成该操作,第二个步骤是在步骤S2中向事务协调器16注册设备驱动器12 作为事务参与方。一旦设备驱动器12被注册,则下一步骤是在步骤S3中执行存储设备14 的闪速拷贝。一旦闪速拷贝被启动,紧接着在步骤S4中在存储设备14上执行数据写入,然后执行步骤S5,在设备驱动器12与事务协调器16之间执行两阶段提交。两阶段提交处理的两种可能结果由两个互斥的步骤S6以及S7表示。第一种可能性是步骤S6,包含接收执行回滚的指令,并且根据闪速拷贝逆转数据写入。第二种可能性是步骤S7,包含接收提交事务的指令,并且丢弃闪速拷贝。如上面参照图2至图4所述,第一步骤Sl至S5的最重要的优点是在回滚的情况下(由设备驱动器在两阶段提交中投票否决引起,或者由事务协调器16指示回滚(在不同的参与方投票否决之后)引起,则闪速拷贝可被用来在存储设备14上重建数据。闪速拷贝导致由设备14存储的数据的时间点拷贝被拷贝到第二位置18,而且这可以被逆转,以有效地取消数据写入。如果确定要提交包含当前工作单元的事务,那么该闪速拷贝可以被丢弃。图6根据优选实施例的进一步优化示出了图1的系统,其中接收指令(在图中示为动作1)以执行存储设备14的闪速拷贝。这个闪速拷贝指令可以由应用自动产生,或者可以由用户(例如系统管理员)产生。请求由存储设备14保存的数据的时间点拷贝。在传统的系统中,由存储设备14定义的存储卷的闪速拷贝现在已经被做出。但是,图6所示的系统以修改的方式操作,无论何时收到闪速拷贝(备份)指令,也不管指令的来源是什么。在接收到指令(1)之后,设备驱动器将确定关于存储设备14的当前事务。这个动作在图中被示出为O)。响应于此,第三个动作(3)是关于在(2)处识别的当前事务,设备驱动器12向事务协调器16注册为事务参与方。该动作( 被示出为由设备驱动器12本身采取,但事实上向事务协调器16注册设备驱动器12可以由系统内的一个不同组件、例如文件系统10执行。此注册的目的是设备驱动器12现在变成事务处理系统中的参与方,并承担所有伴随的要求。设备驱动器12现在是其中它关于数据写入所采取的动作必须向事务协调器16确认的系统的一部分,并且就事务处理的意义而言构成更大事务的一部分。调度闪速拷贝的下一个阶段在图7中示出,其中设备驱动器12被设置成在向事务协调器16注册之后从事务协调器16接收事务完成指示(4)。有效地,设备驱动器12立即从它被指示的启动闪速拷贝的执行中暂停,直到设备驱动器12关于当前事务已经向事务管理器16注册了它本身,然后从事务管理器16接收到指示(4),即当前事务已经完成并且因此存储设备14上的数据现在处于一致状态。在接收到指示(4)之后,设备驱动器12执行的下一个动作是启动存储设备14的闪速拷贝的执行的动作(5)。这个动作在图7中被示为动作(5),并且导致存储设备14的卷被复制在新存储位置18,新存储位置18可以是不同的硬件或仅仅是整个网络内的新逻辑位置。闪速拷贝功能的本质是对于特定时间点已做出了存储在设备14中的数据的拷贝。 闪速拷贝功能产生背景任务,该背景任务将以根据可用带宽确定的速率将存储设备14所存储的数据拷贝到新卷18。另外,存储设备14中数据的任何改变、或新卷18对数据的请求,导致从存储设备14到新存储位置18的自动数据拷贝。在存储设备14处于一致状态时设备驱动器12启动存储设备14的内容的闪速拷贝。确实,设备驱动器12直接启动闪速拷贝而没有任何中间动作是有益处的,以便确保保存在新位置18的拷贝是存储设备14在靠近接收到闪速拷贝指令的原始时间点保存的数据
10的副本。该处理包括执行设备驱动器12与事务协调器16之间的两阶段提交,这是在上面关于图6详细描述的动作(3)中设备驱动器12向事务协调器16注册为事务参与方的要求。 这个动作是两个组件12与16之间的双向通信。该两阶段提交是当前事务中的每个动作组件所需的。两阶段提交协议为一种分布式算法,确保事务完成之前,分布式网络中的所有组件同意提交事务。该协议导致所有组件提交该事务,或者所有组件中止该事务。该算法的两个阶段首先是事务协调器16准备参与组件的提交请求(准备)阶段,以及事务协调器16 完成事务的提交阶段。两阶段提交对设备驱动器12的作用是,设备驱动器12必须发送同意消息或是中止消息给事务协调器16。此外,设备驱动器12必须等待来自事务协调器16的提交或回滚消息,以完成两阶段提交处理。如果设备驱动器12被指示回滚,则设备驱动器12可以访问已被覆写的原始数据的闪速拷贝,以便正确地执行回滚。如果两阶段提交正在被使用,则在从事务协调器接收到事务完成指示之前,接收到准备消息,并且这导致所有本地高速缓存的刷新。根据优选实施例的进一步优化的调度闪速拷贝的方法被总结在图8中。第一步骤 Sl为接收在存储设备14上执行闪速拷贝的指令的步骤,后面是步骤S2,其中设备驱动器12 确定关于存储设备14的当前事务。一旦完成,则在步骤S3,(用于存储设备14的)设备驱动器12向事务协调器16注册为当前事务中的事务参与方。这个操作现在将设备驱动器联系到正在针对存储设备14执行的当前事务。一旦当前事务已经完成,则在步骤S4在设备驱动器12从事务协调器16接收到事务完成指示,并且该方法由步骤S5结束,该步骤包括对存储设备14执行闪速拷贝。该执行由设备驱动器12启动并且由存储控制器控制。
权利要求
1.一种在存储设备上执行数据写入的方法,包含指示该存储设备的设备驱动器对该存储设备执行数据写入; 向事务协调器注册该设备驱动器作为事务参与方; 执行该存储设备的闪速拷贝; 在存储设备上执行数据写入;以及在设备驱动器与事务协调器之间执行两阶段提交。
2.如权利要求1所述的方法,还包含接收执行回滚的指令,以及根据该闪速拷贝逆转该数据写入。
3.如权利要求1所述的方法,还包含接收提交事务的指令,以及丢弃闪速拷贝。
4.如权利要求1、2或3所述的方法,其中所述的在存储设备上执行数据写入的步骤紧接在启动该存储设备的闪速拷贝之后。
5.如前面任一项权利要求所述的方法,其中所述的向事务协调器注册该设备驱动器作为事务参与方的步骤由该设备驱动器完成。
6.一种在存储设备上执行数据写入的系统,包含文件系统,用于指示该存储设备的设备驱动器对该存储设备执行数据写入; 事务协调器,用于注册该设备驱动器作为事务参与方; 存储设备;以及该存储设备的设备驱动器,用于执行该存储设备的闪速拷贝,在该存储设备上执行数据写入,以及与该事务协调器执行两阶段提交。
7.如权利要求6所述的系统,其中该设备驱动器还用于接收执行回滚的指令,以及根据该闪速拷贝逆转该数据写入。
8.如权利要求6所述的系统,其中该设备驱动器还用于接收提交事务的指令,以及丢弃闪速拷贝。
9.如权利要求6、7或8所述的系统,其中该设备驱动器还用于紧接在启动存储设备的闪速拷贝之后,在该存储设备上执行数据写入。
10.如权利要求6-10中任何一项权利要求所述的系统,其中该设备驱动器还用于向该事务协调器注册该设备驱动器作为事务参与方。
11.一种调度存储设备的闪速拷贝的方法,包括 接收在存储设备上执行闪速拷贝的指令,确定关于存储设备的当前事务,向事务协调器注册存储设备的设备驱动器,作为当前事务中的事务参与方, 从事务协调器接收事务完成指示,以及对存储设备执行闪速拷贝。
12.如权利要求11所述的方法,还包含在从事务协调器接收到事务完成指示之前,接收准备消息并刷新所有本地高速缓存。
13.如权利要求11或12所述的方法,还包含执行两阶段提交,其中来自事务协调器的所述事务完成指示构成所述两阶段提交的一部分。
14.一种调度存储设备的闪速拷贝的系统,包括 事务协调器,存储设备,以及存储设备的设备驱动器,用来接收在存储设备上执行闪速拷贝的指令,确定关于存储设备的当前事务,向事务协调器注册作为当前事务中的事务参与方,从事务协调器接收事务完成指示,并且对存储设备启动闪速拷贝。
15.如权利要求14所述的系统,其中所述设备驱动器还用于在从事务协调器接收到事务完成指示之前,接收准备消息并刷新所有本地高速缓存。
16.如权利要求14或15所述的系统,其中所述设备驱动器还用于执行两阶段提交,并且来自事务协调器的所述事务完成指示构成所述两阶段提交的一部分。
17.一种计算机程序,包括计算机程序代码,当被装载到计算机系统中并在其上执行时,使所述计算机系统执行根据权利要求1到5中任何一项的方法的所有步骤。
18.一种计算机程序,包括计算机程序代码,当被装载到计算机系统中并在其上执行时,使所述计算机系统执行根据权利要求11到13中任何一项的方法的所有步骤。
全文摘要
本发明提供一种在存储设备上执行数据写入的方法,包含指示该设备的设备驱动器对该存储设备执行写入;向事务协调器注册该设备驱动器作为事务参与方;执行该存储设备的闪速拷贝;在存储设备上执行写入;以及在设备驱动器与事务协调器之间执行两阶段提交。优选地,该方法包含接收执行回滚的指令,以及根据该闪速拷贝逆转数据写入。在进一步优化中,一种调度存储设备的闪速拷贝的方法,包括接收执行闪速拷贝的指令,确定关于该设备的当前事务,向事务协调器注册该设备的设备驱动器,作为当前事务中的事务参与方,从事务协调器接收事务完成指示,以及对该设备执行闪速拷贝。
文档编号G06F11/14GK102203741SQ200980143073
公开日2011年9月28日 申请日期2009年10月26日 优先权日2008年10月30日
发明者B·J·史密斯, C·J·麦卡尔利斯特, G·D·哈特奇森, L·洛 申请人:国际商业机器公司

最新回复(0)