备份操作期间确保有效日志文件系统元数据的方法和装置的制作方法

文档序号:6429364阅读:184来源:国知局
专利名称:备份操作期间确保有效日志文件系统元数据的方法和装置的制作方法
技术领域
本发明涉及在具有日志或记录文件系统的计算系统中实现备份操作的改进方法。更具体而言,本发明提供了用于在备份操作期间确保日志文件系统元数据有效性的方法和装置。
背景技术
事实上,所有计算机应用(或程序)都依赖于存储装置。该存储装置可用于存储计算机码以及用于存储由码所操作的数据。术语“数据”指任何信息,包括格式化信息,可执行码和用于应用程序操作的数据。存储技术已在多个不同的方向得到发展。因此,可获得广泛多种存储系统。
由于可获得的存储系统有广泛多种,对于人们而言,写入计算机应用并对数据在存储系统上如何存储进行详细控制是并不现实的。由此或其它原因,应用程序通常运行在如Unix、Windows、MS DOS、Linux、以及以上多种不同的操作系统上。不过,另外,操作系统可能会适用于多种存储系统。每当对物理存储进行改变时,应改变操作系统或应用程序将非常有效。从而,考虑到将数据如何在存储系统中进行实际存储,提出了多个抽象层。
图1表示一种看待抽象层的方式。在顶级10,应用程序可认为按照几乎不对数据如何放置到物理设备上进行处理的方式存储数据。例如,应用可将存储系统视为包含有许多目录以及目录内的数据文件。从而,在被写入用于Unix操作系统的应用中,应用会认为根据包含有分层目录以及处在目录内文件的Unix目录结构,对文件进行存储。这样假定的物理存储结构可以几乎不知道在实际存储设备上如何将数据进行实际存储。这种看待方式可称作“逻辑视图”,这是由于,数据的逻辑视图自应用级别10与表明将数据在物理存储设备上如何进行物理存储的任何视图相分离。在逻辑级别,可将逻辑实体,如文件,数据库或其它结构称为“逻辑对象”。
应用级别10与文件系统级别12相接口。文件系统级别12涉及如何在盘上存储文件以及如何使每样东西运作有效并可靠。从而,文件系统级别12可用于存储目录结构,以及用于将文件分成连续的数据块以便在物理存储系统上进行存储。例如,在Unix的大多数实施中,每个文件具有相关联的i节点。此i节点可包含有记账和保护信息,另外还包含指向数据块的一组指针。
在计算机系统发展的较早期,磁盘驱动器成为主要的存储设备。因此,已获得发展的计算机操作系统假定存储装置将依赖于对磁盘驱动器的输入/输出(“I/O”)。因此,文件系统12可假定有一个或多个与物理存储单元如磁盘驱动器,或任何其它存储单元相对应的“卷”,数据以块的形式存储在磁盘驱动器上。对有效用于应用的存储需求极大增长。从而,可能需要许多分离的物理设备适应系统所需的总存储量。另外,经常对存储系统进行改变或重新配置。
为使操作系统不受在物理设备存储系统内的任何改变的影响,通常采用某些机制,灵活地使物理存储的标准(卷)视图映象到实际物理存储系统。图1所示的逻辑卷管理器(“LVM”)14,通过将数据存储的文件系统视图映象到中间层中,能有助于实现这种功能。
最后,在物理存储系统级别16内进行实际存储的读出和写入(以及可能到物理存储设备上的附加映象),如图1所示。因此,例如,逻辑卷管理器14可将数据的文件系统级别视图映象到与固定物理存储段大小相对应的卷尺寸中,以用于在物理设备(如,块尺寸)上的存储。然后,物理存储系统级别16将逻辑卷管理器14级别卷映象到物理存储段(如后面所述的超卷)上。这样,在上述示例中,将应用级别数据到实际物理存储的映象出现在四个级别上应用级别10到文件系统级别12;文件系统级别12到LVM级别14;LVM级别14到物理存储系统级别16;和物理存储系统级别16到实际物理存储设备。
当存在失效时,如系统崩溃,这可使存储系统中的文件系统遭破坏,在存储系统中会出现问题。也就是,当将数据写入到存储系统时,通常将数据发送到磁盘高速缓存。磁盘高速缓存是在主存中所分配的缓冲区,用于提高I/O操作速度。当将磁盘高速缓存中的数据写入物理盘之前存在系统崩溃或失效时,则会出现问题。在这种情形中,当重新引导系统时,由于系统认为已将数据写到磁盘驱动器,而实际因系统失效未将其写入到磁盘驱动器,从而,系统以不一致的方式操作。例如,可检测到文件处在磁盘高速缓存中,而实际在物理盘上不会实现这种检测,以致文件仍保留在物理盘上。
因这样的问题,数据库和文件系统提供有将系统恢复回到一致状态的能力。尽管数据库通常恢复很快,由于文件系统尺寸增长,恢复时间会加长。例如,为将文件系统恢复到一致状态,对于ext2fs的fsck恢复工具必须扫描整个盘分区。这样耗时的任务造成具有数百吉字节磁盘空间的大型服务器有效性变差。
为提供具有象数据库那样恢复机制的文件系统,设计出日志或记录文件系统。日志或记录文件系统使用事务。事务是满足数个特性的一组单个操作。这些特性常称作事务的ACID特性。首字缩写ACID表示原子性,一致性,隔离性和耐久性。其中用于本发明目的的最重要的一个特性是原子性。原子性意指使属于单个事务的所有操作无错误或被取消地完成,而且不会产生任何变化。该特性连同隔离性一起使事务呈现出不可分制性。
通过将事务中每单个操作记录在记录文件或日志中,日志或记录文件系统以此来利用该原子性。事务的日志条目由事务的元数据组成。该元数据包括在文件系统内部的控制结构,例如,i节点,自由块分配映象,i节点映象等。
在每单个事物之后,必须具有使磁盘高速缓存中的数据写入到物理盘存储的提交操作。因此,如果出现系统崩溃或其它失效,可将日志追溯到第一个提交状态,可完全撤销由那些未提交事务所造成的改变。
即便由日志或记录文件系统提供将系统恢复到一致性状态的能力,问题仍可出现。一个重要问题是,当多个内相关设备的日志或记录文件系统处于激活时,获得这些设备的有效设备级备份的能力。例如,如果正在执行存储系统的备份,且存储系统的日志或记录文件还处于激活,则当在执行备份操作时,可存在发送到文件系统的事务。从而,在存储系统备份拷贝中的数据可能与存储系统中所存储的数据不同。从而,造成文件系统中的不一致性。因此,最好具有一种在备份操作期间确保有效的日志文件系统元数据的方法和装置。

发明内容
本发明提供了一种用于在备份操作期间确保有效的日志文件系统元数据的方法和装置。利用本发明的方法和装置,提供了用于在实时点(point-in-time)备份操作期间挂起对存储设备的写I/O操作的机制。一旦完成实时点备份操作,释放所挂起的写I/O操作,然后可由存储系统进行处理。
在一个示例性实施例中,当启动实时点操作时,在逻辑卷管理器中设置实时点备份标志。当接收写I/O操作时,逻辑卷管理器检查实时点备份标志的状态,以确定当前是否在执行实时点备份操作。如果未设标志,则在文件系统日志中对写I/O操作进行记录,并按正常方式执行写I/O操作。一旦完成写I/O操作,文件系统通知该完成,并使用写I/O操作的日志条目来更新文件系统元数据。
如果设置了备份操作标志,则将写I/O操作的元数据存储在文件系统日志中,并在逻辑卷管理器的保持队列(hold queue)中存储写I/O操作。当写I/O被存储在保持队列中时,不允许将其提交给逻辑卷。从而,直至完成备份操作之后才能完成写I/O操作,从而,直至完成备份操作之后,才将文件系统元数据修改至反映完成写I/O操作。
当完成实时点备份操作时,将实时点备份操作的完成通知给逻辑卷管理器,然后由逻辑卷管理器重新设置实时点备份标志。另外,释放在保持队列中所挂起的写I/O操作,从而在逻辑卷上可将其执行。当由逻辑卷的存储设备提交写I/O操作时,存储设备响应已完成写I/O的逻辑卷管理器,从而,使用存储在文件系统中用于写I/O操作的元数据,来更新逻辑卷的文件系统元数据。这样,允许将写I/O发送到文件系统日志,但使之保持在逻辑卷管理器的保持队列中,不向存储设备提交,直到完成备份操作之后才可以。
这样,通过本发明的操作,使得在备份操作期间,与存储系统中数据实时点备份拷贝相关联的元数据,存储系统中的数据,和文件系统元数据保持一致性。仅在完成实时点备份操作之后,才允许将在实时点备份操作期间所接收的写I/O操作提交给逻辑卷,从而,将文件系统的元数据更新为反映对逻辑卷的数据写入。
结合后面对优选实施例的详细描述,将描述本发明的这些及其它特征和优点,并使本领域普通技术人员易于理解。


在所附权利要求中提出认为是本发明特性的新颖特征。不过,结合附图,参照以下说明性实施例的详细描述,将更好地理解本发明本身,优选实施方式,以及其目的和优点,其中图1的示意图说明存储系统的抽象层;图2的示意图表示其中可实现本发明的分布式数据处理系统;图3的示意图表示其中可实现本发明的服务器数据处理设备;图4的示意图表示其中可实现本发明的客户机或独立数据处理设备;图5的示意图表示其中可实现本发明的存储系统;图6的示意图表示其中根据本发明的逻辑卷管理器的主要操作部件;图7的流程图表示本发明关于在逻辑卷管理器中设置和重置实时点备份标志的示例性操作;图8的流程图表示本发明关于在备份操作期间挂起写I/O操作的示例性操作;
图9的流程图表示本发明关于释放在逻辑卷管理器的保持队列中所挂起的写I/O操作的示例性操作。
具体实施例方式
本发明提供了用于在备份操作期间确保文件系统完整性的机制。更具体而言,本发明提供了,用于在备份操作期间确保文件系统的元数据与存储系统的状态以及备份的元数据相一致,以使日志或记录文件系统可保持有效的机制。本发明的机制可用于分布式数据处理系统或单独计算设备中。因此,为便于描述本发明的操作部件,下面参照图2~5简要描述分布式数据处理系统和单独数据处理系统。
现在参照图进行描述,图2的示意图表示其中可实现本发明的分布式数据处理系统的网络。网络数据处理系统200为其中可实现本发明的计算机网络。网络数据处理系统200包括网络202,网络202作为用于提供在网络数据处理系统200内连接在一起的多种设备和计算机之间通信链路的媒介。网络202可包括连接,如有线,无线通信链路,或光缆。
在所述示例中,服务器204与网络202,以及存储单元206相连。另外,客户机208,210和212与网络202相连。这些客户机208,210和212,例如,可为个人计算机或网络计算机。在所述示例中,服务器204向客户机208~212提供诸如引导文件,操作系统镜像,和应用的数据。客户机208,210,和212为属于服务器204的客户机。网络数据处理系统200可包括更多的服务器,客户及其它设备,在此未显示出。在所示示例中,网络数据处理系统200为具有网络202的Internet,网络202表示使用传输控制协议/网际协议(TCP/IP)相互通信的网络和网关的世界范围集合。在Internet的核心,是处在主要节点或主机,包括成千上万个商业,政府,教育及其它计算机系统之间的高速数据通信链路的骨干,用于路由数据和消息。当然,网络数据处理系统200还可用作多种不同类型的网络,如intranet,局域网(LAN),或广域网(WAN)。图2意在作为示例,并不是对本发明进行在结构上的限制。
参看图3,图3显示出,根据本发明优选实施例,可作为服务器,诸如图2所示服务器204,的数据处理系统的方块图。数据处理系统300可以是包括多个与系统总线306相连的处理器302和304的对称多处理器(SMP)系统。或者,也可采用单处理器系统。与系统总线306相连的还有存储器控制器/高速缓存308,存储器控制器/高速缓存308提供到局部存储器309的接口。I/O总线桥310与系统总线306相连,并提供到I/O总线312的接口。可按如上方式集成存储器控制器/高速缓存308和I/O总线桥310。
与I/O总线312相连的外设部件互连(PCI)总线桥314提供到PCI局部总线316的接口。PCI局部总线316可连接多个调制解调器。典型PCI总线在实现上将支持四个PCI扩展槽或内插(add-in)连接器。到如图2所示客户机208~212的通信链路可通过由内插板连接至PCI局部总线316的调制解调器318和网络适配器320来提供。
附加的PCI总线桥322和324为附加的PCI局部总线326和328提供接口,并可由附加的PCI局部总线326和328支持附加更多的调制解调器和网络适配器。这样,数据处理系统300允许到多个网络计算机的连接。还可按如上方式,或直接或间接地将存储器映象图形适配器330和硬盘332连接至I/O总线312。
本领域普通技术人员应该理解,在图3中所描述的硬件可存在多种变化。例如,除此之外还可使用其它外设,如光盘驱动器等,或者使用其代替所述的硬件。所述示例并不意在表示对本发明在结构上的限定。
在图3中所示的数据处理系统可以是,例如在Armonk的IBM公司的产品IBM eServer pSeries system,其运行高级交互执行程序(AIX)操作系统或LINUX操作系统。
现参照图4,图4的方块图表示其中可实现本发明的数据处理系统。数据处理系统400为客户机示例。数据处理系统400采用外设部件互连(PCI)局部总线结构。尽管所示示例采用PCI总线,但也可使用其它总线结构,如加速图形端口(AGP)和工业标准结构(ISA)。处理器402和主存储器404通过PCI桥408与PCI局部总线406连接。PCI桥408还可包括用于处理器402的集成存储器控制器和高速缓存存储器。通过直接部件连接或通过内插板可构成到PCI局部总线406的额外连接。在所示示例中,局域网(LAN)适配器410,SCSI主机总线适配器412,和扩展总线接口414通过直接部件连接与PCI局部总线406连接。相反,音频适配器416,图形适配器418,和音频/视频适配器419通过插入扩展槽的内插板与PCI局部总线406连接。扩展总线接口414提供用于键盘和鼠标适配器420,调制解调器422,和附加存储器424的连接。小型计算机系统接口(SCSI)主机总线适配器412提供用于硬盘驱动器426,磁带驱动器428,和CD-ROM驱动器430的连接。典型PCI局部总线在实施上应支持三或四个PCI扩展槽或内插连接器。
操作系统运行在处理器402上,并用于协调和提供在如图4所示数据处理系统内多个部件的控制。操作系统可为市场上可获得的操作系统,如Windows XP,它可从微软公司获得。面向对象的编程系统,如Java,可同操作系统一道运行,并提供从执行在数据处理系统400上的Java程序或应用对操作系统的调用。“Java”是Sun Microsystems公司的商标。对于操作系统,面向对象编程系统,和应用或程序的指令处于存储设备,如硬盘驱动器426上,以及可加载到主存储器404中用于由处理器402执行。
本领域普通技术人员应该理解,在图4所示的硬件可依据应用进行变化。除此之外可使用其它内部硬件或外设,如闪存只读存储器(ROM),等效非易失性存储器,或光盘驱动器等,或者使用这些内部硬件或外设来代替如图4所示的硬件。此外,可将本发明的处理应用到多处理器的数据处理系统。
作为另一示例,数据处理系统400可为配置成可不依赖于某些类型网络通信接口进行引导的单独系统。作为另外的示例,数据处理系统400可为个人数字助理(PIDA)设备,其配置以ROM和/或闪存ROM,以为存储操作系统文件和/或用户生成的数据提供非易失性存储器。
如图4中的所示示例以及上述示例并不意在表示在结构上的限制。例如,除采用PDA的形式外,数据处理系统400还可为笔记本电脑或手持式计算机。数据处理系统400还可为公用信息机(kiosk)和Web设备。
图5显示出利用其可实现本发明的存储系统500。可使用通道,总线或通信链路510,将主机设备,如服务器或客户机计算机,与存储设备连接。用于与主机设备通信的通道可为任何适宜的连接,如小型计算机系统接口(“SCSI”),企业系统连接体系结构(“ESCON”)等。或者,通信链路510可与网络连接如intranet,LAN,WAN,Internet等相关,以使存储系统500可由主机设备通过至少一种网络访问。尽管在图5中仅显示出一个进入存储系统500的通信链路510,但还包括其它通道。
在存储系统500中具有主机适配器520,主机适配器520负责管理来自基于虚盘结构的主机,如来自文件系统或逻辑卷管理器级别,的读写请求,并负责将其转换成表示数据如何在存储系统500的实际物理存储设备540A~540D上进行存储的一个或更多的请求。主机适配器520可按任何多种方式实现,包括使用通用目标处理器或定制硬件工具。此外,可包括多个主机适配器,以便具有用于存储系统500的附加I/O通道。
主机适配器520使用总线530与存储系统500的其它部件通信。总线530可为任何适宜的通信元件,包括使用SCSI,ESCON,以及其它总线协议。
对物理存储设备540A~540D的访问通过使用盘适配器550A~550D来控制。盘适配器550A~550D还可使用通用目标处理器或定制硬件设计来实现。在图5所示实施例中,对于每个物理存储设备提供一盘适配器。当然,盘适配器可附加有多于一个的存储设备。此外,盘适配器可包括到另一盘适配器物理存储设备的辅助连接。这允许通过将一个盘适配器的功能转移至第二个盘适配器,而使其从失效中恢复。
在图5的实施例中,通过使用高速缓存560,方便了通过盘适配器550A~550D对物理存储设备540A~540D的读出和写入。高速缓存560可为比磁盘驱动器具有更高速度的随机存取存储器。当读出数据时,如果数据临时存储在高速缓存中,通过从高速缓存560取数据,可更快地实现读取请求。同样,当写入数据时,可将所要写入的数据存储在高速缓存中。当将数据从高速缓存写入适当物理存储设备时,系统的其它部件可继续处理。
可使用任何多种机制来实现和管理高速缓存560。在1996年7月16日申请的题名为“System for Dynamically Controlling Cache ManagerMaintaining Cache Index and Controlling Sequential Data Access”的美国专利No.5,537,568中,包括有这种机制的示例。
同样,通过高速缓存560使用任何多种机制和策略可实现写入。一种用于从高速缓存写入的机制是,将所要写入的数据存储在高速缓存中,并标记以“写入未决(write pending)”位。当遇到写入未决位时,可将合适的数据写入到盘中。在1994年8月23日申请的题名为“DiskStorage System with Write Preservation During Power Failure”的美国专利No.5,341,493中一般性地描述了此项技术。当然,在不偏离本发明精神和范围的条件下,可使用其它已知机制来管理高速缓存560。
可将高速缓存560分成多于一个的区域。例如,高速缓存560可包括用于存储自物理存储设备540A~540D要读取或写入数据的区域560A。高速缓存还进一步包括“邮箱”区域540B。可使用邮箱区域540B方便在盘适配器550A~550D之间以及与主机适配器520的通信。例如盘适配器550A~550D均在邮箱560B内具有各自的区域。盘适配器550A~550D均可从适当的邮箱区域560B计入或读出信息,以传递状态及其它信息。
还可向存储系统500的总线530附加远程适配器570。远程适配器570可用于与远程数据设备(“RDF”)的通信,例如,与另一存储设备的连接,以保持镜像冗余组。从EMC公司可获得的多种出版物中,包括SYMMETRIX Remote Data Facility Product Manual(P/N 200-999-554,rev.B,June 1995)描述了一种形式的RDF链路及实现方法。在美国专利No.5,544,347(Yanai)中和描述了RDF的实施例,由此,该专利在此引作参考。不过,应该理解,本发明并不限于RDF的使用或采用SYMMETRIX盘阵列的系统,而是能够采用任何数种其它类型的存储系统。
可将服务处理器580与存储系统500的总线530连接。服务处理器580可包括显示器,键盘及其它I/O设备,已允许操作者使用服务处理器580配置存储系统500的部件以及运行或启动设备的诊断和维护.。
图5的存储系统500为可用于实现图1所示物理存储系统16的存储系统的示例。如前所述,在如图1所示的结构中,如果在备份操作的实时点处不能保持文件系统状态和日志设备之间的一致性,则会存在问题。从而,文件系统和日志设备具有不同的状态,并可能使数据受损。这是由于,在备份操作期间可执行对日志设备,即物理存储设备,的写操作,结果使文件系统中用于日志设备的日志及元数据的拷贝不同于在日志设备上所存储的实际数据。
当文件系统和日志记录驻留在多个单设备中时,启动实时点,或即时点,这些设备的拷贝能导致日志和文件系统不同步,而不具有本发明的优点。也就是,不使用本发明,仍可写入日志,而文件系统的状态可渐渐散失日志所表示的样子。对于简化大型日志的情形,在多个设备上所包含的日志确实如此。本发明提供了即使在多个设备上写入日志时保持日志和文件系统一致的机制。
本发明解决该问题是通过在逻辑卷管理器内或与之相关联地包括一种机制,该机制在备份操作期间挂起对逻辑卷的日志设备的写操作。通过本发明,使对逻辑卷日志设备的写操作在逻辑卷管理器设备驱动器级别保持对日志设备备份的整个时期。由于不允许将新的写操作发送到用于日志设备的存储系统,其中“日志设备”为可由多个物理存储设备组成的逻辑存储设备,在相同时期期间,还阻止对文件系统的新的元数据事务。这保证了,当仍允许对已提交分配的文件中的块进行写入访问时,在文件系统与日志设备之间的内部一致性。
从而,通过本发明的操作,对于不作为部分当前备份操作的,而被挂起至经历备份操作的存储系统其它日志设备的日志设备,允许进行写操作。允许将写操作发送到文件系统日志,不过,由于其被指向经历备份操作的日志设备从而需被挂起的那些,通过逻辑卷管理器来保持,直至完成备份操作之后。从而,在备份操作期间以保持文件系统元数据一致性的方式允许写I/O操作。
为在备份操作(如实时点备份操作)期间挂起写I/O操作,本发明的逻辑卷管理器将在备份操作期间所接收的任何写I/O操作存储在逻辑卷管理器内的保持队列(如链接表)中。从而,直到完成备份操作之后才在逻辑卷的物理存储设备上执行写I/O操作。一旦完成备份操作,将写I/O操作从在它们在保持队列中所挂起的状态进行释放,并按接收它们的顺序将它们执行。从而,在备份操作期间,允许在文件系统日志中接收写I/O操作,但不允许将之发送到日志设备。
作为上述操作的结果,在备份操作期间不改变文件系统的元数据。由于在备份操作期间不实现写I/O操作,直到完成备份操作并在存储系统上执行写I/O操作后,才会更新文件系统元数据,以反映这些写I/O操作。
图6的示意图表示本发明的主要操作部件。如图6所示,提供文件系统610,逻辑卷管理器620和物理存储系统650作为其中实现本发明的主要操作部件。本发明包括,在备份操作期间挂起对物理存储系统650物理存储设备的写I/O操作中,文件系统610,逻辑卷管理器620,和物理存储系统650的协同。该协同由在逻辑卷管理器620内所提供的新机制来管理。
下面,将根据硬件实时点备份操作描述本发明,硬件实时点备份操作有时又称瞬时拷贝操作(instant copy operation),快照拷贝操作等。应该理解,在不偏离本发明精神和范围的条件下,本发明可适用于除实时点备份操作,瞬时拷贝操作,或快照拷贝操作之外的其它备份操作。
实时点备份操作为对存储设备(例如磁盘)全部内容的备份。从而,在文件系统日志中所存储的元数据与在物理存储设备上的数据相对应很重要,否则,会出现数据损坏。从而,确保在实时点备份操作期间数据不会写到包含文件系统日志的物理存储块很重要,这是由于这样的写I/O操作将导致在物理存储设备上的数据与实时点备份拷贝的元数据不匹配。
本发明的机制,通过提供基于每个逻辑卷的实时点备份标志625,在逻辑卷设备驱动器630中的附加功能,和逻辑卷管理器620的保持队列,确保不允许在实时点备份操作期间将写I/O操作发送到包含文件系统元数据的物理存储系统650块,这将在后面进行更详细地描述。通过使用这些新机制和功能,对于文件系统日志逻辑卷将在实时点备份操作期间所接收的写I/O操作挂起,直至完成实时点备份操作以后。这样,在实时点备份操作期间,在与日志逻辑卷相关联的物理存储系统650中可不执行任何写操作,从而确保与物理存储系统650的物理存储设备中的数据相关联的元数据与数据相一致。
如图6所示,实时点备份应用605可启动实时点备份操作,并向文件系统610发送读拷贝操作。读拷贝操作提供给逻辑卷管理器620,更具体而言,提供给逻辑卷管理器620的逻辑卷设备驱动器630。逻辑卷设备驱动器630是管理和处理对物理存储系统650所有I/O操作的伪设备驱动器。
响应接收表明已启动实时点备份操作的读拷贝操作,逻辑卷设备驱动器630设置表明正在执行实时点备份操作的实时点备份标志625。然后,将读拷贝操作记录在日志614中,并允许将读发送到物理存储系统650。
在实时点备份操作期间允许其它应用向文件系统610递交I/O请求。通过本发明,如果所递交的I/O请求为读I/O请求,则允许以正常方式对I/O请求进行处理。然而,如果所递交的I/O请求为会导致改变文件系统元数据并写到文件系统日志的写I/O请求,则由本发明的机制挂起写I/O请求,直至完成实时点备份操作之后。
从而,例如,应用600可向文件系统610发送写I/O请求,然后由文件系统610在文件系统日志614中产生与写I/O请求相关的日志条目,并向逻辑卷管理器620提供写I/O请求。逻辑卷设备驱动器630接收写I/O请求,并确定它是否为写I/O请求。从而,逻辑卷设备驱动器630读出对于实时点备份标志625的值,以确定是否设置了标志。如果未设置标志,则按照正常方式通过将对于写I/O请求的条目写到文件系统日志中来处理写I/O请求,并向物理存储系统650发送写I/O请求,以便物理存储设备可提交写I/O操作。一旦提交了写I/O操作,就使用在文件系统日志614中的日志条目更新文件系统元数据616。
然而,如果设置了实时点备份标志625,即进行实时点备份,则将写I/O请求发送到保持队列640。保持队列640可为,例如,已挂起的且一旦去除其挂起状态将要执行的I/O请求的链接表。直到释放在保持队列640中的I/O请求条目,才会将通过放置在保持队列640中而被挂起的任何I/O请求发送到物理存储系统650。
一旦完成实时点备份操作,实时点备份应用605,或文件系统610向逻辑卷管理器620发送表明完成实时点备份操作的消息。当逻辑卷设备驱动器630接收来自实时点备份应用605或文件系统610的表明完成备份操作的消息时,逻辑卷设备驱动器630重置实时点备份标志625,并释放存储在保持队列640中的I/O请求。然后,将这些I/O请求按照接收它们的顺序递交给物理存储系统,以便可将它们提交。一旦提交I/O请求,通知逻辑卷管理器620关于I/O请求的提交,并使用在文件系统日志614的日志条目中与I/O请求相对应的元数据来更新文件系统元数据616。
从而,通过本发明,对于包含有文件系统日志逻辑卷的块,将对于存储系统的物理存储设备的写I/O操作挂起至备份操作时期。这样,确保与存储在物理存储设备上的数据相关联的元数据与数据相一致。从而,日志将与文件系统相匹配,以便能重放日志。这意味着,文件系统元数据616将与文件系统日志614相匹配,从而在重放日志614后能信赖元数据616。如果未保持其元数据616的状态,则可认为文件系统遭破坏以及可能丢失。如果保持该状态,则备份具有有效的元数据616,如果未保持该状态,则备份无效。本发明的一个目的以及一个主要优点在于,通过确保文件系统元数据的有效性来获得有效的备份。
图7~9的流程图表示根据本发明的多种示例性操作。应该理解,通过计算机程序指令能够实现流程图的每个方块以及在流程图中方块的组合。可将这些计算机程序指令提供给处理器或其它可编程数据处理装置,以制造机器,以使得执行在处理器或其它可编程数据处理装置上的指令产生用于实现在流程图方块中所指定功能的装置。还可将这些计算机程序指令存储在可指向处理器或其它可编程数据处理装置的计算机可读存储器或存储介质中,以按特殊方式起作用,使得存储在计算机可读存储器或存储介质中的指令产生包含有指令装置的产品,所述指令装置实现流程图方块中所指定的功能。
因此,流程图的方块支持用于执行指定功能的装置的组合,用于执行指定功能的步骤的组合,和用于执行指定功能的程序指令装置。还应该理解,通过可执行指定功能或步骤的专用硬件基计算机系统,或专用硬件和计算机指令的组合,能够实现流程图的每个方块以及在流程图中的方块组合。
图7的流程图表示本发明关于在逻辑卷管理器中设置和重置实时点备份标志的示例性操作。如图7所示,操作由启动实时点备份操作开始(步骤710)。当启动实时点备份操作时,在逻辑卷管理器中设置实时点备份标志(步骤720)。
然后在一个或多个物理存储设备上执行实时点备份操作(步骤730),并确定实时点备份操作是否完成(740)。如果未完成,操作返回至步骤730,继续进行实时点备份操作。如果完成实时点备份操作,则重置在逻辑卷管理器中的实时点标志(步骤750),且操作结束。
图8的流程图表示本发明关于在备份操作期间挂起写I/O操作的示例性操作。如图8所示,操作以接收写I/O请求开始(步骤830)。对于接收的写I/O请求,将日志条目添加到文件系统的日志中(步骤815)。当接收写I/O请求时,读取实时点备份标志,以确定其是否已被设置(步骤820)。
确定实时点备份标志是否被设置(步骤830)。如果未设置,通过将其递交给所要提交的存储系统,以正常方式处理写I/O操作(步骤840)。如果设置了实时点备份标志,将写I/O操作发送到逻辑卷管理器中的保持队列(步骤850)。然后,操作结束。
图9的流程图表示本发明关于释放在逻辑卷管理器的保持队列中所挂起的写I/O操作的示例性操作。如图9所示,操作以接收实时点备份标志的重置开始(步骤910)。将逻辑卷管理器中的备份标志重置到“未设置”状态(步骤920)。
然后,将保持队列中的写I/O请求接接收它们的顺序输出到存储系统(步骤930),并重新启动保持队列(步骤940)。例如,可通过保持队列的结构来保持写I/O操作的次序。也就是,可使用链接表来保持接收写I/O请求次序。
当由存储系统提交每个写I/O操作时,接收提交写I/O操作的确认(步骤950)。从而,使用在文件系统日志中与写I/O相对应的条目来更新文件系统元数据(步骤960)。然后,操作结束。
这样,本发明提供了,用于在存储系统的存储设备上所执行的备份操作期间,确保日志文件系统元数据与存储在相关联存储系统中的数据相一致的机制。从而,在备份操作期间几乎不会因执行写操作使数据遭破坏。
尽管关于在备份操作期间由逻辑卷管理器所保持的对日志设备的所有写I/O操作描述了本发明,但本发明并不限于此。相反,在可选实施例中,仅当写I/O操作与数据块的指定范围相对应时,可保持写I/O操作。从而,尽管当前正执行备份操作,如果写I/O操作与不在指定范围内的数据块对应时,如对应不同的逻辑卷,本发明的机制将不会保持写I/O操作。
例如,当启动备份操作时,可确定经历备份操作的数据块,即识别所备份的数据块范围。此后,在备份操作期间如果接收到指向该数据块范围的写I/O操作,将按前述方式挂起写I/O操作。然而,对于不指向该数据块范围的任何写I/O操作,由于他们将不会影响所正备份的数据块的元数据,将按正常方式继续进行处理。从而,在此可选实施例中,在备份期间并不挂起所有写I/O操作,而是仅挂起影响经历备份操作的一个或多个数据块元数据的那些写I/O操作。
重要的是应注意,即便鉴于完全功能的数据处理系统来描述本发明,本领域普通技术人员应该理解,本发明的处理能够以指令性计算机可读介质的形式以及多种形式分布,且同样本发明的应用不在乎实际用于实现分布的信号承载介质的具体类型。计算机可读介质的示例包括可读类型介质,如软盘,硬盘驱动器,RAM,CD-ROM,DVD-ROM,和传输类型介质,诸如使用例如无线电频率和光波传输的传输形式的数据和模拟通信链路,有线或无线通信链路。计算机可读介质可采用编码形式,并在具体数据处理系统中为实际应用要进行解码。
本发明的描述是出于说明及描述目的,并不意在以所批露的形式详尽列举出本发明或限制本发明。显而易见,本领域普通技术人员能够易于想到多种修改和变形。所选及所述实施例是出于更好地说明本发明的原理以及实际应用,并能够使本领域其它普通技术人员以多种修改的多种实施例想到本发明,这些修改的实施例适用于他们所想到的具体应用。
权利要求
1.一种在备份操作期间在至少一个存储设备上处理写输入/输出(I/O)请求的方法,包括接收用于对逻辑卷执行写I/O操作的写I/O请求,其中,至少一部分逻辑卷驻留在所述至少一个存储设备上;在文件系统日志中记录写I/O请求,表明正将写I/O请求递交给所述至少一个存储设备;确定是否正在所述至少一个存储设备上执行备份操作;和如果确定正在执行备份操作,将写I/O操作挂起在逻辑卷管理器中,直到完成备份操作,其中,在备份操作期间,对至少一个其它逻辑卷的写I/O操作不会被挂起。
2.根据权利要求1的方法,其中,挂起写I/O操作包括将写I/O请求存储在逻辑卷管理器中的保持队列中,其中,当写I/O请求处在保持队列中时,不会将写I/O请求发送到所述至少一个存储设备。
3.根据权利要求1的方法,其中,确定是否在执行备份操作包括确定在逻辑卷管理器中是否设置备份标志。
4.根据权利要求3的方法,其中,响应从备份应用接收到表明已启动备份操作的消息,设置备份标志。
5.根据权利要求1的方法,其中,备份操作为实时点备份操作。
6.根据权利要求2的方法,还包括接收表明完成备份操作的消息;和响应接收到该消息,从保持队列释放写I/O请求;和将写I/O请求递交给所述至少一个存储设备。
7.根据权利要求2的方法,其中,保持队列为链接表,在链接表中按逻辑卷管理器接收写I/O请求的顺序存储写I/O请求。
8.根据权利要求6的方法,其中,按逻辑卷管理器接收写I/O请求的顺序从保持队列释放在保持队列中的写I/O请求。
9.根据权利要求6的方法,还包括仅在完成备份操作并从保持队列释放写I/O操作之后,基于文件系统日志更新文件系统元数据。
10.根据权利要求1的方法,其中,仅当写I/O请求为用于将导致文件系统元数据发生变化的写I/O操作时挂起写I/O请求。
11.根据权利要求1的方法,其中,仅当写I/O请求对应于经历备份操作的数据块时挂起写I/O请求。
12.一种在计算机可读介质中用于在备份操作期间在至少一个存储设备上处理写输入/输出(I/O)请求的计算机程序产品,包括第一指令,用于接收对逻辑卷执行写I/O操作的写I/O请求,其中,至少一部分逻辑卷驻留在所述至少一个存储设备上;第二指令,用于在文件系统日志中记录写I/O请求,表明正将写I/O请求递交给所述至少一个存储设备;第三指令,用于确定是否在所述至少一个存储设备上正执行备份操作;和第四指令,用于当确定正在执行备份操作时,将写I/O操作挂起在逻辑卷管理器中,直到完成备份操作,其中,在备份操作期间,对至少一个其它逻辑卷的写I/O操作不会被挂起。
13.根据权利要求12的计算机程序产品,其中,用于挂起写I/O操作的第三指令包括用于将写I/O请求存储在逻辑卷管理器中的保持队列中的指令,其中,当写I/O请求处在保持队列中时,不会将写I/O请求发送到所述至少一个存储设备。
14.根据权利要求12的计算机程序产品,其中,用于确定是否在执行备份操作的第二指令包括用于确定在逻辑卷管理器中是否设置备份标志的指令。
15.根据权利要求14的计算机程序产品,其中,响应从备份应用接收到表明已启动备份操作的消息,设置备份标志。
16.根据权利要求12的计算机程序产品,其中,备份操作为实时点备份操作。
17.根据权利要求13的计算机程序产品,还包括第四指令,用于接收表明完成备份操作的消息;和第五指令,用于响应接收到该消息,从保持队列释放写I/O请求;和第六指令,用于将写I/O请求递交给所述至少一个存储设备。
18.根据权利要求13的计算机程序产品,其中,保持队列为链接表,在链接表中按逻辑卷管理器接收写I/O请求的顺序存储写I/O请求。
19.根据权利要求17的计算机程序产品,其中,按逻辑卷管理器接收写I/O请求的顺序从保持队列释放在保持队列中的写I/O请求。
20.根据权利要求17的计算机程序产品,还包括第七指令,用于仅在完成备份操作并从保持队列释放写I/O操作之后,基于文件系统日志更新文件系统元数据。
21.根据权利要求12的计算机程序产品,其中,仅当写I/O请求为用于将导致文件系统元数据发生变化的写I/O操作时,挂起写I/O请求。
22.根据权利要求12的计算机程序产品,其中,仅当写I/O请求对应于经历备份操作的数据块时,挂起写I/O请求。
23.一种在备份操作期间在至少一个存储设备上处理写输入/输出(I/O)请求的装置,包括用于接收对逻辑卷执行写I/O操作的写I/O请求的装置,其中,至少一部分逻辑卷驻留在所述至少一个存储设备上;用于在文件系统日志中记录写I/O请求,表明正将写I/O请求递交给所述至少一个存储设备的装置;用于确定是否正在执行备份操作的装置;和用于当确定正在执行备份操作时,将写I/O操作挂起在逻辑卷管理器中,直到完成备份操作的装置,其中,在备份操作期间,对至少一个其它逻辑卷的写I/O操作不会被挂起。
全文摘要
一种在备份操作期间确保有效日志文件系统元数据的方法和装置,提供了用于在实时点备份操作期间挂起对存储设备写I/O操作的机制。完成实时点备份操作后释放所挂起的写I/O操作,然后由存储系统进行处理。启动实时点操作时在逻辑卷管理器中设置实时点备份标志。接收写I/O操作时,逻辑卷管理器检查实时点备份标志的状态,以确定当前是否在执行实时点备份操作。如果未设标志,记录写I/O操作并按正常方式执行。如果已设标志,将写I/O操作存储在逻辑卷管理器的保持队列中。当保持队列中存储了写I/O时,不允许将其发送给存储系统。完成实时点备份操作时,允许将保持队列中所挂起的写I/O操作发送到存储系统,并更新对于文件系统的元数据,以反映写I/O操作的提交。
文档编号G06F13/16GK1605989SQ20041007988
公开日2005年4月13日 申请日期2004年9月23日 优先权日2003年10月9日
发明者容昌, 马克·艾伦·格鲁布斯, 杰拉尔德·弗兰西斯·迈克布雷迪, 格罗维尔·赫尔伯特·纽曼 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1