强制卸载文件系统的方法技术方案

技术编号:2847708 阅读:204 留言:0更新日期:2012-04-11 18:40
公开了一种卸载文件系统的方法。在本发明专利技术的卸载方法中,响应于对特定文件系统的强制卸载请求,确定要卸载的文件系统是否是根文件系统。如果要卸载的文件系统不是根文件系统,则禁止其它进程访问要卸载的文件系统和属于该文件系统的文件。终止正在执行存在于要卸载的文件系统中的程序的第一进程。唤醒等待获取关于要卸载的文件系统中的所有打开文件的锁的第二进程,并且删除所述锁。在不影响打开了要卸载的文件系统中的文件的第三进程的情况下,关闭所有打开的文件。向在要卸载的文件系统中存在的目录上正执行的第四进程通知该目录不再可用。使用卸载操作卸载该文件系统。据此,本发明专利技术的优点在于,其可以强制卸载文件系统而不影响整个系统。

【技术实现步骤摘要】

本专利技术一般涉及文件系统,并特别涉及一种。
技术介绍
通常,文件系统是通过安排规则以便于检索存储在硬盘驱动器上的数据的读和写而实现的。例如,文件系统指的是为文件加标题以及指示文件所置于的位置以进行存储和检索的系统。这样的文件系统作为计算机操作系统(OS)-例如作为开放源码(opensource)OS的微软的Windows、UNIX、和Linux-的核心技术的一部分而存在。作为文件系统的代表性示例,存在有扩展文件系统2(EXTended file system 2,EXT2)、全局文件系统(GFS)等等。同时,Linux作为一种OS,特征是支持各种类型的文件系统。因而,采用Linux作为OS(下文中称之为“Linux系统”)的服务器系统引入了虚拟文件系统的概念并且支持各种类型的文件系统。图1是示出了Linux系统的构造的示意图。参考图1,Linux系统被划分为用户区域A,其中运行用户进程110;内核区域B,其中包括Linux文件系统;和硬件区域C,其中包括各种设备(例如,字符设备310、块设备320和网络设备330)。特别地,内核区域B包括各种文件系统(例如,ext2 220、ext3 230、msdos 240和nfs 250)、虚拟文件系统(VFS)210和设备驱动器260。虚拟文件系统210将各个文件系统(例如,ext2 220、ext3 230、msdos 240和nfs 250)连接到位于比文件系统高的层的用户进程110。设备驱动器260将各种文件系统(例如,ext2 220、ext3 230、msdos 240和nfs 250)连接到置于硬件区域C中的多个设备(例如,字符设备310、块设备320和网络设备330)。在这种情况下,虚拟文件系统210为每个文件系统(例如,ext2 220、ext3 230、msdos 240和nfs 250)提供公共接口,从而将文件系统连接到用户进程110。因而,当对各种文件系统(例如,ext2 220、ext3 230、msdos 240和nfs 250)执行操作时,用户应用程序可以使用相同的标准UNIX系统调用。例如,虚拟文件系统210将通过用户进程110输入的各种函数(例如,read()、write()等等)以在调用该函数时的实际文件系统所支持的函数替代。同时,虚拟文件系统210包括“对象”以代表虚拟文件系统210和装载在虚拟文件系统210中的各种文件系统(例如,ext2 220、ext3 230、msdos 240和nfs 250),从而管理所述各种文件系统(例如,ext2 220、ext3 230、msdos 240和nfs 250)。虚拟文件系统210中使用的基本对象的类型包括“超块对象”、“信息节点(inode)对象”、“文件对象”和“目录项(dentry)对象”。各个对象包括下述信息。“超块对象”存储关于装载在虚拟文件系统210中的文件系统的信息,而“信息节点对象”存储关于特定文件的典型信息。在这种情况下,每个“信息节点对象”涉及用于唯一标识文件系统中的特定文件的单个信息节点编号。同时,“文件对象”存储关于已打开文件与进程之间交互的信息。该信息仅在每个进程访问对应文件时才存在于内核存储器中。例如,文件对象包含诸如将开始发生下一操作的文件中的当前位置的信息。此外,“目录项对象”存储关于目录项与对应文件的链接的信息。特别地,虚拟文件系统210通过“超块对象”而管理装载在Linux系统中的文件系统列表。因而,当Linux系统被初始化时,每个实际文件系统(例如,ext2 220、ext3 230、msdos 240和nfs 250)在虚拟文件系统210中注册其自身。同时,Linux系统所使用的文件系统(例如,ext2 220、ext3 230、msdos 240和nfs 250)不是通过设备标识符被访问,而是被装载在系统的目录树上,使得这些文件系统看来象单个文件系统。其中以这种方式装载了各种文件系统(例如,ext2 220、ext3 230、msdos 240和nfs 250)的单个文件系统是虚拟文件系统210。因而,在Linux系统中,只存在单个层次目录结构。所有目录都从以“/”表示的根目录开始,并且逐步下移到较低层目录。当特定文件系统被新装载在Linux系统中时,该文件系统必须装载在该目录结构中。相反,当不使用特定文件系统时,必须卸载该文件系统。如果装载了文件系统(例如,ext2 220),则虚拟文件系统210分配新超块对象以存储关于所装载的文件系统(例如,ext2 220)的信息,从所装载的文件系统220的物理设备读取文件系统信息,并用该文件系统信息填充该超块对象。在这种情况下,超块对象包括诸如文件系统类型、块大小、文件系统状态、文件系统中打开文件的列表等信息。同时,在盘中出现故障或者需要系统升级时,使用热交换(hot-swap)盘或网络文件系统的服务器系统必须卸载对应的文件系统以替换盘。但是,如果在该文件系统上存在当前的进程或者打开文件,则该文件系统处于“忙(BUSY)”状态。当文件系统处于“忙”状态时,以常规卸载方法不能卸载该文件系统。在这种情况下,在现有技术中不可避免地必须关闭系统(例如,计算机)。这时,如果存在不管该文件系统如何正在进行的另一任务,则系统(例如,计算机等)必须重启以继续该任务。即,系统(例如,计算机等)在卸载对应文件系统之后必须重启。因而,强制卸载处于“忙”状态的文件系统的常规方法的问题在于由于系统重启而引起代价。特别地,在大规模服务器系统的情况下,重启系统的代价进一步增加。
技术实现思路
据此,鉴于现有技术中出现的上述问题而作出了本专利技术,并且本专利技术的一个目的是提供一种,该方法防止导致归因于服务器系统重启的成本。本专利技术的另一目的是提供一种卸载文件系统的方法,该方法强制卸载处于“忙”状态的文件系统,而无需关闭服务器系统的电源。本专利技术的另一目的是提供一种卸载文件系统的方法,该方法卸载特定文件系统,而在服务器系统中卸载该文件系统时,不影响独立于该文件系统操作的进程和文件。为了实现上述目的,本专利技术提供了一种卸载文件系统的方法,包括下述步骤a)响应于对特定文件系统的强制卸载请求,确定要卸载的文件系统是否是根文件系统;b)如果要卸载的文件系统不是根文件系统,则禁止其它进程访问该要卸载的文件系统和属于该文件系统的文件;c)终止正在执行存在于要卸载的文件系统中的程序二进制文件的第一进程;d)唤醒正在等待关于要卸载的文件系统中的所有打开文件的文件锁的第二进程,并且删除该锁;e)在不影响打开了要卸载的文件系统中的文件的第三进程的情况下,关闭所有打开的文件;f)向正在要卸载的文件系统中存在的目录上执行的第四进程通知该目录不再可用;以及g)使用卸载操作卸载该文件系统。附图说明图1是示出Linux系统的构造的示意图;图2是根据本专利技术实施例的卸载文件系统的方法的流程图;图3和4是示出根据本专利技术实施例的用于执行卸载文件系统的方法的文件系统的数据结构的视图;图5是示出根据本专利技术实施例的禁止访问要卸载的文件系统和属于该文件系统的文件的状态的视图;以及图6是示出根据本专利技术实施例的释放内存映射的处理的视图。具体实施例方式参考附图描述本专利技术的优选实施例本文档来自技高网
...

【技术保护点】
一种强制卸载文件系统的方法,包括下述步骤:a)响应于对特定文件系统的强制卸载请求,而确定要卸载的文件系统是否是根文件系统;b)如果要卸载的文件系统不是根文件系统,则禁止其它进程访问该要卸载的文件系统和属于该文件系统的文件;c)终止正在执行存在于要卸载的文件系统中的程序二进制文件的第一进程;d)唤醒正在等待关于要卸载的文件系统中的所有打开文件的文件锁的第二进程,并且删除所述锁;e)在不影响打开了要卸载的文件系统中的文件的第三进程的情况下关闭所有打开的文件;f)向在要卸载的文件系统中存在的目录上正在执行的第四进程通知该目录不再可用;以及g)使用卸载操作卸载该文件系统。

【技术特征摘要】
KR 2005-5-17 41302/051.一种强制卸载文件系统的方法,包括下述步骤a)响应于对特定文件系统的强制卸载请求,而确定要卸载的文件系统是否是根文件系统;b)如果要卸载的文件系统不是根文件系统,则禁止其它进程访问该要卸载的文件系统和属于该文件系统的文件;c)终止正在执行存在于要卸载的文件系统中的程序二进制文件的第一进程;d)唤醒正在等待关于要卸载的文件系统中的所有打开文件的文件锁的第二进程,并且删除所述锁;e)在不影响打开了要卸载的文件系统中的文件的第三进程的情况下关闭所有打开的文件;f)向在要卸载的文件系统中存在的目录上正在执行的第四进程通知该目录不再可用;以及g)使用卸载操作卸载该文件系统。2.如权利要求1所述的卸载方法,其中,所述步骤a)包括下述步骤检测关于在启动其中装载了要卸载的文件系统的服务器系统时加载到内存中的根文件系统的信息;基于在请求强制卸载时输入的选择信息,检测关于要卸载的文件系统的信息;以及将关于根文件系统的信息与关于要卸载的文件系统的信息进行比较。3.如...

【专利技术属性】
技术研发人员:林恩智金东郁车圭一郑盛仁
申请(专利权)人:韩国电子通信研究院
类型:发明
国别省市:KR[韩国]

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

1