一种机群文件系统一致性动态检查方法

文档序号:6420482阅读:153来源:国知局
专利名称:一种机群文件系统一致性动态检查方法
技术领域
本发明涉及一种计算机机群的文件系统的管理方法,尤其是一种机群的文件系统元数据服务器与存储服务器相同文件的信息的一致性动态检查方法;属于计算机机群技术领域。
背景技术
计算机机群文件系统(Cluster File System,简称CFS)用来在机群环境下提供分布式文件服务,是高性能服务器的重要组成部分。
为了解决大规模并行IO的处理问题,CFS采用控制和存储分散的分布式设计,元数据操作由元数据服务器集中控制,数据操作由多个存储服务器并行控制,这样可以利用机群中的多个存储服务器并行进行IO处理。
文件存储在不同的服务器中通过元数据服务器实现单一系统映像。所谓的单一系统映像是指用户可以登录到机群中的任一客户端结点,通过使用机群系统软件,如同使用一台机器一样方便进行操作,对文件系统而言,用户所看到的文件目录结构应该完全相同。元数据服务器存储所有文件的文件信息,用来对用户提供统一的文件目录树。元数据服务器对于每一个文件建立一个与之对应的元数据文件,存储其对应的存储服务器文件的文件信息。
在分布式的文件处理中,如果客户端的文件操作没有正常结束时,存储服务器或元数据服务器因为意外而宕机就有可能造成某个文件元数据和实际存储数据的不一致。因此,如何保证分布式机群文件系统中的文件元数据和数据的一致性是分布式机群文件系统中的一项关键技术问题,急待解决。

发明内容
本发明所要解决的技术问题在于提出一种机群文件系统一致性动态检查方法,解决分布式机群文件系统中的文件元数据和数据的一致性问题。
本发明所述的方法,包括如下步骤步骤一、在客户端,用户应用程序调用文件,引发一致性检查;步骤二、对所调用的文件的元数据进行检查;步骤三、如果文件的元数据正确,继续执行后续的操作;如果元数据错误,则删除该元数据文件,返回错误信息。
本发明通过在机群文件系统内部使用动态检查技术来实时检查文件元数据和数据的一致性,同时结合外部的文件树遍历工具来对系统进行彻底的一致性检查,既保证了系统应用的不间断性又保证了系统的正确性和完整性,使得CFS具有更好的高可用性。由于可以通过目录浏览可以引发一致性检查,外部的fsck工具只要遍历一个目录树就可以实现对此目录树的一致性检查,从而可以简化fsck工具的设计。


图1是本发明的文件系统一致性检查方法的示意图。
具体实施例方式
根据CFS分散控制的原则,CFS的动态一致性检查过程需要在CFS的元数据服务器端实现。
本发明所述的方法,包括如下步骤步骤一、在客户端,用户应用程序调用文件,引发一致性检查;步骤二、对所调用的文件的元数据进行检查;步骤三、如果文件的元数据正确,继续执行后续的操作;如果元数据错误,则删除该元数据文件,返回错误信息。
本发明仅对某个文件被应用程序调用时,才对该文件进行一致性检查。对于不被调用的文件不进行一致性检查。也就是说文件被访问时才作一致性检查。如果采用定期的检查方式,如果文件比较多,会在检查时占用过多的系统资源;由于对于大型服务器而言,用户的应用频度和强度是不可预测的,所以采用定期检查的方式显然不适用于大型的机群系统。本发明采用了一种使用时进行检查的方式,由于检查的过程非常快,不会对用户使用造成影响;又保证了文件元数据与数据的一致性。
本发明步骤一中所述的调用文件的用户应用程序,包括所有的用户程序,比如用户浏览一个目录(如1s操作),就会对该目录下的所有文件执行一致性检查。
对于文件的一致性检查最简单的方式就是将文件的元数据与存储在存储服务器的文件数据进行比较,判断是否有不一致的信息;但是这样的方法速度太慢,如果一次进行检查的文件过多,会造成用户等待的时间过长,影响整体服务器的效率。
因此,可以采用一种一次写生成元数据的方式,来生成元数据,以保证可以快速的进行元数据检查。文件或目录的元数据采用本地文件系统的一次写调用,这样使得元数据文件要么写成功,要么元数据文件长度为零。在进行检查时,只需要在元数据服务器上判断需要检查的文件的元数据长度是否为零;如果为零,则该文件元数据错误,删除该元数据,相应的也删除了该文件。
元数据包括的文件信息,通常一次写成功后就不会发生变化,如文件的属人,在存储服务器的分布等文件属性信息;但是文件长度是一个可能变化的信息,比如开始存储时,文件的元数据与数据一致,但是存储服务器为了减少空间使用,可能自动对文件进行压缩而导致文件长度发生变化。因此,元数据服务器中采用无长度文件的元数据,即不记录文件的长度,避免元数据长度和实际长度的不一致。而在文件状态(statfs)时,访问存储服务器获得文件长度,即元数据服务器访问存储服务器获取文件的长度。
为了实现在所有的应用程序中进行一致性检查,本发明可以采用在虚拟文件系统VFS的lookup中实现一致性检查的调用,如图1所示是lookup操作中实现一致性检查的示意图。这样,即使是1s操作也会引发一致性检查,方便了外部fsck工具的编写。
应用程序要实现对文件操作,必须调用核心层的虚拟文件系统VFS的lookup操作,CFS经过内核访问后,由CFS客户端对元数据服务器发出lookup请求,元数据服务器根据lookup请求涉及的文件开始一致性检查;判断需要检查的元数据文件长度是否为零,如果为零,则删除该元数据文件,返回lookup请求的错误信息,如果元数据文件长度不为零,则继续执行正常的lookup操作。
最后所应说明的是以上实施例仅用以说明而非限制本发明的技术方案,尽管参照上述实施例对本发明进行了详细说明,本领域的普通技术人员应当理解依然可以对本发明进行修改或者等同替换,而不脱离本发明的精神和范围的任何修改或局部替换,其均应涵盖在本发明的权利要求范围当中。
权利要求
1.一种机群文件系统一致性动态检查方法,其特征在于包括如下步骤步骤一、在客户端,用户应用程序调用文件,引发一致性检查;步骤二、元数据服务器对所调用的文件的元数据进行检查;步骤三、如果调用文件的元数据正确,继续执行后续的操作;如果元数据错误,则删除该元数据文件,返回错误信息。
2.根据权利要求1所述的机群文件系统一致性动态检查方法,其特征在于所述的步骤一中所述的调用文件的用户应用程序,包括所有涉及文件操作的用户程序。
3.根据权利要求1所述的机群文件系统一致性动态检查方法,其特征在于所述的步骤二中的元数据,采用一次写生成元数据文件的方式来生成元数据,以保证可以快速的进行元数据检查。
4.根据权利要求3所述的机群文件系统一致性动态检查方法,其特征在于所述的元数据服务器中存储元数据的元数据文件,如果写成功,则元数据长度不为零,如果写失败,则元数据文件长度为零。
5.根据权利要求1所述的机群文件系统一致性动态检查方法,其特征在于所述的步骤二中的元数据中不包含文件的长度信息。
6.根据权利要求1-5任一所述的机群文件系统一致性动态检查方法,其特征在于可以采用在VFS的lookup中实现一致性检查的引发。
全文摘要
本发明提供了一种机群文件系统一致性动态检查方法,包括如下步骤步骤一、在客户端,用户应用程序调用文件,引发一致性检查;步骤二、元数据服务器对所调用的文件的元数据进行检查;步骤三、如果文件的元数据正确,继续执行后续的操作;如果元数据错误,则删除该元数据文件,返回错误信息。本发明通过在机群文件系统内部使用动态检查技术,实时检查文件元数据和数据的一致性,既保证了系统应用的不间断性又保证了系统的正确性和完整性,使得CFS具有更好的高可用性,并且可以简化外部fsck工具的设计。
文档编号G06F15/16GK1619521SQ20031011355
公开日2005年5月25日 申请日期2003年11月17日 优先权日2003年11月17日
发明者史小冬, 宋冬梅, 朱耀飞, 胡风华, 贺军 申请人:联想(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1