文件级分级存储管理系统、 方法和设备 【技术领域】
本发明涉及用于使用不同特性的存储区域来存储文件的文件服务供应设备、 系统和方法。 背景技术 通常使用被称为 NAS(网络附加存储) 的设备或文件服务器来存储多个客户端计 算机 (在下文中简称为 “客户端” ) 的文件。文件服务器存储由客户端通过从存储系统读取 数据或向存储系统写入数据而创建的文件, 可以块为单位来访问所述文件。
此外, 近年来, 尽管存储大量文件的必要性不断增长, 但也存在减少每存储容量的 单位价格的需求。专利文献 1 公开了一种将被存储在高速存储设备中且在特定量的时间内 未被访问的文件迁移到低速存储设备的技术, 该技术并未改变在高速存储设备和低速存储 设备与能够处理文件级的读取和写入的控制器 (其对应于上述文件服务器) 耦接的情况下, 从客户端的访问方法。在下文中, 该技术被称为 “文件级分级存储管理技术” 。
引用的专利文献列表 PTL1 : 日本专利 No.4409521发明内容 技术问题
对于专利文献 1 中公开的技术, 需要对由控制器管理的全部文件参照更新日期和 时间或参考日期和时间, 以便选择要被迁移的文件。因此, 如果文件服务器管理大量的文 件, 则需要花费长时间来选择要被迁移的文件。
本发明的一个目的在于缩短用于确定要被迁移的文件的时间。
问题的解决方案
根据本发明, 文件服务系统耦接到用于提供第一存储区域和第二存储区域的存储 系统, 该文件服务系统在已访问文件标识符信息中存储客户端已经访问的文件的标识符, 并基于在第一存储区域中存储的文件的元数据和已访问文件标识符信息来确定要从第一 存储区域迁移到第二存储区域的文件
本发明的有益效果
根据本发明, 可以使用文件级分级存储管理技术, 缩短用于确定要由文件服务器 或与文件服务器耦接的计算机迁移文件的时间。
附图说明 图 1 是用于实现本发明第一实施例的系统的框图。
图 2 是示出了根据本发明第一实施例的文件服务器的硬件配置的框图。
图 3 是示出了根据本发明第一实施例的在文件服务器的存储器中存储的程序和 信息的框图。
图 4 是示出了根据本发明第一实施例设置的文件迁移策略的示例的图示。 图 5 是示出了根据本发明第一实施例设置的文件更新事件的示例的图示。 图 6 是示出了根据本发明第一实施例的由程序输出的部分文件列表的示例的图示。 图 7 是示出了根据本发明第一实施例的所参照的文件的概念的图示。
图 8 是说明了根据本发明第一实施例的由用于进行文件迁移设置的管理程序执 行的处理的处理流程图。
图 9 是说明了根据本发明第一实施例的由用于迁移文件的文件迁移程序执行的 处理的处理流程图。
图 10 是说明了根据本发明第一实施例的由用于设置文件系统事件通知的程序执 行的处理的处理流程图。
图 11 是说明了根据本发明第一实施例的由文件访问和文件系统事件通知程序执 行的处理的处理流程图。
图 12 是说明了根据本发明第一实施例的由部分文件列表创建程序执行的处理的 处理流程图。
图 13 是说明了根据本发明第一实施例的由文件缓慢移动 (crawling) 程序执行的 处理的处理流程图。
图 14 是示出了根据本发明第一实施例的用于进行文件迁移设置的管理程序的设 置屏幕示例的图示。
图 15 是示出了本发明的概要的第一示意图。
图 16 是示出了本发明的概要的第二示意图。
图 17 是示出了本发明的概要的第三示意图。
图 18 是示出了本发明的第二实施例的图示。
具体实施方式
下面将参照附图详细描述本发明的实施例。
需要注意的是, 在以下的描述中, 将会利用诸如 “aaa 表格” 、 “aaa 列表” 、 “aaa DB” 和 “aaa 队列” 之类的表述来描述与本发明相关的信息, 但这些类型的信息并非必须利用诸 如表格、 列表、 DB 或队列之类的数据结构来表达。因此, 诸如 “aaa 表格” 、 “aaa 列表” 、 “aaa DB” 和 “aaa 队列” 之类的表述有时可以被称为 “aaa 信息” , 以便表明上述信息并不取决于 数据结构。
此外, 每种类型的信息内容的描述使用诸如 “标识信息” 、 “标识符” 、 “名称” 、 “名称” 之类的表述, 并且 “ID” 用于解释每条信息的内容, 这些表述可以相互替换。
“程序” 可以用作以下说明的主题。然而, 由于程序执行特定的处理是通过处理器 使用存储器和通信端口 (通信控制装置) 进行执行来实现的, 因此处理器也可以被用作以下 说明的主题。此外, 利用程序作为主题公开的处理还可以是由诸如管理服务器或信息处理 单元之类的计算机执行的处理。此外, 还以由专用硬件实现全部程序或其中的一部分。
此外, 还可以通过程序分布服务器或存储介质来安装各个程序。
第一实施例图 1 是用于实现本发明的计算机系统的硬件配置的图示。
文件服务器 101 提供对客户端 104 的文件访问服务。文件访问服务使得能够根据 诸如 NFS(网络文件系统) 或 CIFS(通用互联网文件服务) 之类的协议来在文件中存储数据 或读取所述数据。文件服务器 101 和客户端 104 经由诸如以太网之类的网络接口耦接。客 户端 104 是 PC 或服务器, 并且可以存在多个客户端。需要注意的是, 对于客户端 104 和文 件服务器 101 之间的连接配置, 图 1 例示出了直接连接, 但也可以使用客户端 104 和文件服 务器 101 经由诸如交换机或路由器之类的网络装置彼此耦接的连接配置。
文件服务器 101 在存储子系统 102 和存储子系统 103 中存储数据。文件服务器 101 根据诸如 SCSI 和 FC 等之类的块访问类型的存储协议来与存储子系统 102 和存储子系 统 103 进行通信。此外, 图 1 例示了文件服务器 101 和存储子系统 102、 103 之间的直接连 接, 但在文件服务器 101 和存储子系统 102、 103 之间也可以经由诸如交换机或路由器之类 的网络装置彼此连接。
存储子系统 102 和存储子系统 103 中的每一个具有用于与文件服务器 101 连接的 接口, 并且还具有用于存储数据的磁盘设备或磁带设备等。 或者, 该计算机系统可以被配置 为在客户端访问存储子系统 102 和 103 时, 使得存储子系统 102 和存储子系统 103 提供文 件访问服务和文件服务器 101。需要注意的是, 在本发明中, 多个存储子系统无需一定作为 多个设备存在 ; 并且如果一个设备能够提供多个不同特性的存储区域, 则该一个设备就足 够了。 因此, 在以下的描述中, 提供具有不同特性的第一存储区域和第二存储区域的一个或 多个设备有时可以被统称为 “存储系统” 。 通过文件服务器 101 实现的分级存储管理在存储子系统 102 和存储子系统 103 之 间迁移文件。需要注意的是, 可以从多个计算机来构成文件服务器 101。
管理控制台 105 是对由文件服务器 101 提供的文件访问服务和由文件服务器 101 提供的分级存储管理进行设置的计算机, 即管理计算机。 文件服务器 101 和管理控制台 105 以与客户端 104 的连接相同的方式经由网络接口进行耦接, 并且通过例如在控制台 105 上 执行 Web 浏览器来进行设置。需要注意的是, 文件服务器 101 还可以用作管理控制台 105。 类似地, 客户端 104 还可以用作管理控制台 105。
在下文中, 用于向客户端 104 提供文件服务的一组的一个或多个计算机有时可以 被称为 “文件服务系统” 。 如果文件服务器 101 还用作管理控制台 105, 则文件服务器 101 自 身是文件服务系统。
图 2 是示出了文件服务器 101 的硬件配置的图示。
文件服务器 101 装备有用于临时存储程序和数据的存储器 204 和用于执行在存储 器 204 中存储的程序的 CPU 201。此外, 文件服务器 101 装备有耦接到客户端 104 和管理控 制台 105 的网络接口 202, 以及耦接到存储子系统 102 和 103 的存储接口 203。需要注意的 是, 网络接口 202 和存储接口 203 还可以用作网络接口 202 或存储接口 203, 并且文件服务 器 101 可以包括多个共享的这种类型的接口。
需要注意的是, 存储器 204 还可以是半导体存储器、 磁盘设备或上述的组合。此 外, 由存储子系统 102 和 103 提供的存储区域还可以用作存储器 204 的交换区域。
图 3 是示出了在文件服务器 101 的存储器 204 中存储的程序和信息的图示。
存储器 204 存储用于提供文件访问服务和在存储子系统中存储数据的 OS (操作系
统) 230。OS 230 包括用于提供文件访问服务的文件共享服务程序 231、 用于管理文件的文 件系统程序 232 和用于向存储子系统 102 和 103 进行块读取请求或块写入请求的存储管理 程序 233。
文件共享服务程序 231 从客户端 104 接收文件共享服务的文件访问请求, 并将文 件访问请求转换为对文件系统程序 232 的请求。在接收到该请求后, 文件系统程序 232 对 存储管理程序 233 执行处理, 并将应答返回到文件共享服务程序 231。此外, 文件共享服务 程序 231 执行处理以例如响应于请求将数据返回到客户端 104 以及发送相关于请求的处理 完成通知。如上所述来实现文件访问服务。
需要注意的是, 文件访问请求的类型是文件读取请求、 文件写入请求、 文件删除请 求、 文件创建请求、 文件名称 (更确切地为文件路径名称) 改变请求、 文件访问授权改变请 求、 文件所有者改变请求、 以及目录创建、 改变或删除请求。 然而, 所有这些文件访问请求无 需一定都是可处理的, 其他类型的请求也可以被包括作为文件访问请求的类型。
需要注意的是, 词语 “文件系统” 表示数据结构的存储区域, 从而可以使用元信息 将文件数据存储在存储子系统 102、 103 内的存储区域中。在以下描述中的表述 “在文件系 统中存储或创建文件” 特别表示将相关文件数据写入到作为文件系统的实质部分的存储区 域中, 并更新元信息。另一方面, 当文件系统参照文件时, 它参照元信息以识别在作为文件 系统的实质部分的存储区域中存储文件数据的地址, 并且文件系统程序 232 从作为文件系 统的实质部分的存储区域中读取文件数据, 并且将相关数据发送到请求方。 需要注意的是, 元信息被存储在存储区域中, 并且可以被高速缓存在文件服务器 101 的存储器 204 中, 以便 加快处理速度。需要注意的是, 文件数据有时可以被高速缓存在存储器 204 中。 为了便于说明, 在以下的说明中没有将由客户端 104 指定的所谓 “外部路径名称” 与由文件服务器 101 内部管理的所谓的 “内部路径名称” 进行区域。然而实际上, 通过特 定转换, 文件共享服务程序 231 将由客户端 104 指定的文件路径名称 (所谓的 “外部路径名 称” ) 转换为所谓的 “内部路径名称” , 并且在对文件系统程序 232 的请求中指定所获取的内 部路径名称。因此, 由从客户端 104 传输的请求指定的路径名称还可以被解释为外部路径 名称, 并且在文件服务器 101 内使用的路径名称还可以被解释为内部路径名称 ; 并且在管 理控制台 105 上显示或输入到管理控制台 105 的路径名称可以被解释为外部路径名称或内 部路径名称。此外, 当然, 外部路径名称和内部路径名称可以相同。
存储器 204 存储用于执行文件级分级存储管理的文件迁移程序 210 和用于提取要 被迁移的文件的文件提取程序 220。
文件迁移程序 210 包括多个子程序, 并参照文件迁移策略表 214 来执行处理。
文件迁移管理子程序 211 提供进行文件级分级存储管理的设置的功能。在文件迁 移管理子程序 211 经由由用户操作的管理控制台 105 设置执行文件迁移的目录、 要被迁移 的文件的条件、 以及何时迁移文件的调度安排之后, 它将该设置存储在文件迁移策略表 214 中。此外, 文件迁移管理子程序 211 基于上述配置, 设置文件提取程序 220 和文件迁移子程 序 212 的操作。文件迁移策略表 214 的细节如图 4 中所示, 文件迁移管理子程序 211 的细 节如图 8 中所示, 而由文件迁移管理子程序 211 设置的内容如图 14 中所示。
文件提取程序 220 从文件系统提取要被迁移的文件。要被提取的文件的条件基于 由文件迁移管理子程序 211 在文件迁移策略表 214 中存储的信息。设置信息被设置到文件
系统程序 232 参照的事件通知表 234 中。文件系统程序 232 将与被设置到事件通知表 234 的事件相关的相关文件和事件通知给文件提取程序 220。在接收到通知后, 文件提取程序 220 将通知注册到部分已访问文件列表 301(在下文中有时被简称为 “部分文件列表” ) 。可 以根据在文件迁移策略表 214 中存储的条件和调度安排来创建多个部分已访问文件列表 301。图 7 说明了文件元信息, 而图 6 说明了部分已访问文件列表 301。需要注意的是, 通过 对一个或多个部分已访问文件列表 301 进行分组而获取的信息有时可以被称为 “已访问文 件列表” 。
文件迁移子程序 212 基于由文件提取程序 220 输出的部分已访问文件列表 301 的 内容, 执行文件迁移处理。文件迁移子程序 212 判断在部分文件列表 301 中存储的文件是 否满足在文件迁移策略表 214 中指定的条件 ; 并且如果满足条件, 则文件迁移子程序 212 在 存储子系统 102 和 103 之间迁移相关文件。下面将参照图 9 来说明文件迁移子程序 212 的 操作。
文件缓慢移动子程序 213 检查所有的迁移目标候选文件, 以判断每个文件是否都 满足在文件迁移策略表 214 中指定的条件 ; 并随后执行文件迁移。当新条件被增加到文件 迁移策略表 214 时或当现有的文件迁移策略被改变时, 文件缓慢移动子程序 213 进行操作。 在图 13 中描述了文件缓慢移动子程序 213 的操作。 接下来, 将描述本发明的概况。
根据本发明, 为了使得文件服务系统能够选择要被迁移的文件, 已经从客户端 104 接收到访问请求的文件服务器 101 将作为访问目标的文件的标识符 (例如, 文件名称或路 径名称) 记录到已访问文件列表中, 并且在此后当选择了要被迁移的文件时使用该文件标 识符。 用于选择要被迁移的文件的一个可能的方法是选择未在已访问文件列表中记录的文 件; 或者, 更具体而言, 如果期望迁移比过去的由用户指定的时间更旧的文件, 一个可能的 方法是选择未在过去的上述时间点之后的时间记录其标识符的文件。
如果使用上述方法, 则无需访问与在作为迁移源的存储子系统 102 的存储区域中 的所有文件相关的元信息 ; 然而, 如果已访问的文件的数量较小, 则需要访问元信息的文件 的数量增加。
图 15 到图 17 是示出以下详细描述的用于选择要被迁移的文件 (迁移目标文件) 的 处理的概况的图示。需要注意的是, 该概况例示了如下的条件 : 阈值时间周期被设置为十 天, 文件服务器 101 创建或更新文件, 创建时间或更新时间是在比当前时间早阈值时间周 期长度的时间之前, 该文件被从提供高性能存储区域的存储子系统 102 迁移到低性能但具 有大容量存储区域的存储子系统 103。 换句话说, 该条件的示例是要在存储子系统 102 中保 留从当前时间起的过去 10 天内创建或更新的文件。此外, 当然其他条件也可以用于选择迁 移目标文件 ; 并且在上述示例中提及的性能被作为存储区域的特性, 但也可以使用诸如可 靠性之类的其他特性。需要注意的是, 附图中的 “ctime” 至少表示相关文件的最后创建时 间或最后更新时间 (在下文中将描述更为准确的定义) 。此外, 作为存储区域的特性的性能 的示例是每单位时间能够处理的块读取请求或块写入请求的数量或数据量。
图 15 是计算机系统在 12 月 1 日从 00:00 到 23:59(更具体而言, 在 12 月 2 日的 0:00 之前) 执行的操作的示例。在该附图中, 文件服务器 101 从客户端 104 接收以下的写 入请求, 并将文件存储在存储子系统 102 的存储区域中。
* 在 12 月 1 日的 8:00 接收的对文件 A 的写入请求。作为请求处理的结果, 文件服 务器 101 将文件 A 的文件数据和指示 ctime 是 12 月 1 日的 8:00 的元信息存储在存储子系 统 102 中。
* 在 12 月 1 日的 20:00 接收的对文件 B 的写入请求。作为请求处理的结果, 文件 服务器 101 将文件 B 的文件数据和指示 ctime 是 12 月 1 日的 20:00 的元信息存储在存储 子系统 102 中。
随后, 文件服务器 101 将已访问的文件的标识符记录在存储器 204 或存储子系统 102 或存储子系统 103 的存储区域中。需要注意的是, 在该示例中, 对于记录已访问的文件 的标识符的文件, 针对每个特定的时间周期 (例如, 一天的时间周期) 创建部分已访问文件 列表 301, 并且标识符被记录在这些文件中。需要注意的是, 无需一定将相同长度的时间周 期应用到每个部分已访问文件列表 301。 在该附图的情况下, 文件 A 和文件 B 的标识符被存 储在其周期长度被设置为 12 月 1 日的部分已访问文件列表 301 中。
图 16 是计算机系统从 12 月 2 日 00 : 00 到 12 月 11 日的 23:59(更具体而言, 在 12 月 12 日的 00:00 之前) 执行的操作的示例。在该附图中, 文件服务器 101 接收如下所述 的访问请求。
* 在 12 月 4 日的 16:00 接收的对文件 C 的写入请求。作为请求处理的结果, 文件 服务器 101 将文件 C 的文件数据和指示 ctime 是 12 月 4 日的 16:00 的元信息存储在存储 子系统 102 的存储区域中。
* 在 12 月 8 日的 12:00 接收的对文件 A 的写入请求。由于文件 A 已经存在, 作为 请求处理的结果, 文件服务器 101 利用写入数据更新已经存储在存储子系统 102 的存储区 域中的文件 A 的文件数据, 并且还更新元信息来指示 ctime 是 12 月 8 日的 12:00。
此外, 文件服务器 101 以与参照图 15 的描述相同的方式记录已访问的文件的标识 符。在该附图中, 文件服务器 101 将文件 C 的标识符存储在其时间周期被设置为 12 月 4 日 的部分已访问文件列表 301 中 ; 并且将文件 A 的标识符存储在其时间周期被设置为 12 月 8 日的部分已访问文件列表 301 中。
图 17 示出了作为确定迁移目标文件的时间的 12 月 12 日的 00:00 的计算机系统 的状态, 以及迁移文件确定处理的概况。
(步骤 1) 文件服务器 101 选择与比当前时间早阈值时间周期长度的时间 (在本示 例中为 12 月 2 日的 0:00) 之前的时间周期相对应的部分已访问文件列表 301。在该附图 中, 选择 12 月 1 日的部分已访问文件列表 301。
(步骤 2) 文件服务器 101 获取在步骤 1 选择的部分已访问文件列表 301 指示的文 件标识符。在该附图中, 获取文件 A 和文件 B 的标识符。
(步骤 3) 文件服务器 101 参照与由在步骤 2 获取的标识符指示的文件有关的元信 息, 并选择其 ctime 是在比上述当前时间早阈值时间周期长度的时间之前的文件。在该附 图中, 由于文件 A 的 ctime 是 12 月 8 日的 12:00 并且文件服务器 101 检测到文件 A 是在 12 月 1 日后被实际更新的, 因此文件服务器 101 并不选择文件 A, 而是仅选择文件 B。
(步骤 4) 文件服务器 101 将在步骤 3 选择的文件从存储子系统 102 迁移到存储子 系统 103。
对于文件迁移的条件, 可以指定不同于阈值时间周期的额外条件。 因此, 与文件服务器 101 不同的计算机还可以选择迁移目标文件。在这种情况下, 文件服务器 101 可以仅 考虑阈值时间周期来选择文件, 并随后将所选择的文件通知给其他计算机 ; 并且其他计算 机考虑到额外条件来确认每个通知的文件的适当性, 并且随后将文件迁移请求发送到文件 服务器 101。此外, 文件服务器 101 可以通过将部分已访问文件列表 301 提供给其他计算 机, 使该计算机选择迁移目标文件。
需要注意的是, 基于由用户指定的重复的性能的条件, 重复执行上述的迁移目标 文件选择处理。然而, 即使该条件被改变, 部分已访问文件列表 301 也不必被重新创建。换 句话说, 也可以说除了最新的时间周期的部分之外, 部分已访问文件列表 301 的内容相同 于在更新上述条件之前和之后的内容 (由于最新的时间周期的部分已访问文件列表 301 被 按需更新, 其内容无需相同于更新上述条件之前和之后的内容) 。
需要注意的是, 由于利用存储器 204 对文件服务器 101 进行高速缓存元信息, 如果 在步骤 3 中在处理中对元信息作出参考, 则该参考首先是对存储器 204 作出。
需要注意的是, 在该概况部分中使用的表述 “当前时间” 可以是任何计算机的时钟 在任何时间点获取的时间, 只要计算机或用于确定迁移目标文件的处理在评估阈值时间周 期时将这样的时间识别为当前时间即可。例如, 可以通过操作系统的处理调度临时中止迁 移目标确定处理 ; 并且在这样的情况下, 即使根据步骤 1 之前的计算机时钟采用当前时间, 在步骤 2 到 4 的处理时也无法将其在技术上定义为当前时间。此外, 由于客户端 104、 文件 服务器 101、 存储子系统 102 和存储子系统 103 均相应地具有它们各自的时钟, 即使对于技 术上相同的时间点这些时钟也指示些许不同的时间。这也可以在使用 NTP (网络时间协议) 等时出现。 然而, 当文件要被从高性能存储区域迁移到低速存储区域时, 如果在比当前时间 早阈值时间周期长度的时间点 (在本示例中为 12 月 2 日的 0:00) 之后新近更新的文件被从 高性能存储区域迁移到低性能存储区域时, 在用户看来仿佛出现了访问性能的非预期的变 差。尽管这是一个极端的示例, 但如果文件服务器 101 的时钟示出了在实际时间之前的大 致一天的时间, 并且文件服务器 101 在实际时间为 12 月 11 日的 0:00 时错误地将当前时间 识别为 12 月 12 日的 0:00 而执行了步骤 1 到步骤 4, 则文件 B 的访问性能将保持为高, 直到 12 月 12 日的 0:00 为止, 但会提前一天变差。
为了避免上述情况, 可以通过将用于在步骤 1 到步骤 3 中的判断的指定的裕量增 加到阈值时间周期或通过将阈值时间周期乘以该裕量来设置实际评估的更长的阈值时间 周期。
以上已经描述了本发明的概况。
图 4 是示出了文件迁移策略表 214 的内容的图示。
多个文件迁移策略 (对应于上述迁移的条件) 可以被注册在文件迁移策略表 214 中。在每个策略中, 设置了应用策略的目录、 文件迁移的条件和文件迁移调度安排。
图 4 中的从 411 到 414 和从 421 到 424 的字段分别构成了文件迁移策略。
在字段 411 和 421 中, 设置了作为文件迁移策略的目标的目录的路径名称。字段 411 被设置为使得文件迁移策略的目标目录是 /mnt/fs1 ; 而字段 414 被设置为使得文件迁 移策略的目标目录是 /mnt/fs2。
文件迁移策略的条件被设置到字段 412、 413、 422 和 423。
对于目录路径名称 411, 设置了条件 412 和 413。条件 412 被设置为使得应当迁移 其 “ctime” 是在当前时间之前的一个月或更长时间的文件。条件 413 被设置为使得应当迁 移其扩展名为 pdf 的文件。如上所述, 可以设置多个条件, 并且可以迁移满足所有条件的文 件。如果要迁移满足多个条件的文件, 则仅需要将多个迁移策略设置到特定的路径名称。
条件 422 和 423 被设置到目录路径名称 421。条件 422 被设置为使得应当迁移其 “atime” (文件的最后访问时间) 为当前时间之前的一周或更长时间的文件。条件 423 被设 置为使得应当迁移其尺寸为 10MB 或更大的文件。
需要注意的是, UNIX(商标) 中的 ctime(文件的最后更新时间) 被更新到文件被 创建或更新时、 以及当改变 (1) 文件名称、 (2) 文件大小、 (3) 文件的访问权限、 (4) 文件所 有者中的任何一项时的该时间点。因此, 当基于 ctime 判断阈值时间周期时, 进行上述改变 的文件的标识符还可以被存储在部分已访问文件列表中。此外, UNIX(商标) 使用作为元信 息的被称为 “mtime” 的信息作为指示创建或更新相关文件的最后时间的信息。但显然本发 明还可以用于 mtime。
需要注意的是, 在本说明书中, 路径名称是包括目录名称和文件名称的信息, 该信 息是唯一识别由文件系统程序 232 管理的文件系统中的文件的所需信息。此外, 文件名称 是能够唯一识别文件所在的父目录中的文件的信息。因此, 如果改变存储特定文件的父目 录的名称, 则导致的情况是路径名称被改变, 但文件名称并不改变。 对于迁移目标文件, 除了这些文件的更新时间、 (可以在文件名称中包括的) 文件 标识符、 文件的最后访问时间和文件尺寸之外, 还可以设置诸如文件路径名称和文件访问 控制信息之类的各个属性。
将文件迁移调度安排设置到字段 414 和 424。
字段 414 被设置为使得每周六执行文件迁移。字段 424 被设置为使得应当在每 个月的第一天执行文件迁移。根据这些条件, 文件提取程序 220 创建部分已访问文件列表 301。在图 4 所示的示例中, 文件提取程序 220 创建在 /mnt/fs1 中存储的文件的部分已访 问文件列表 301 和在 /mnt/fs2 中存储的文件的部分已访问文件列表 301。
对于文件迁移策略的条件, 仅需要将上述阈值时间周期 (在下文中有时被称为 “迁 移阈值时间周期” ) 设置为相关于 ctime 或 atime 的评估条件。需要注意的是, 如上所述, 迁 移阈值时间周期是选择作为迁移目标的其 ctime 或 atime 是在过去的比当前时间早迁移阈 值时间周期的时间点之前的文件的设置条件。相反, 进行设置以防止其 ctime 或 atime 是 在比当前时间早迁移阈值时间周期的时间之后的文件的迁移。 然而, 当然, 如果高速存储区 域的容量变为不充足, 则存在上述情形下的文件迁移无法被防止的情形。
图 5 是示出了文件事件的示例的图示。
事件通知表 234 可以包括一对或多对文件路径名称 501(在下文中有时被简称为 “路径名称” ) 和当事件匹配路文件路径名称 501 时描述要被报告的事件的类型的通知事件 502。可以根据文件迁移策略的设置来设置多个这样的对。
文件事件 503 示出了在其文件路径名称以 /mnt/fs1 开始的文件的 ctime 被更新 的情况下给出事件通知。此外, 文件事件 504 示出了在其文件路径名称以 /mnt/fs1 开始的 文件被创建的情况下给出事件通知。文件事件 505 示出了在文件的文件路径名称以 /mnt/ fs2 开始且其文件扩展名为 pdf 的情况下并且当创建文件时给出事件通知。文件事件 506
示出了在参照其文件路径名称以 /mnt/fs3 开始的文件并且在更新 atime 的情况下给出事 件通知。
除了上述条件之外, 还可以对诸如文件路径名称或文件访问控制信息之类的文件 事件进行各种设置。
图 6 是示出了部分已访问文件列表 301 的示例的图示。
根据文件迁移策略的调度安排创建多个部分已访问文件列表 301。在部分已访问 文件列表 301 中注册作为每个时间周期 (例如一天的周期) 由文件迁移策略定义的访问目标 的文件的标识符 (在该附图中的路径名称) 601。换句话说, 对于根据本发明确定是否迁移文 件的文件, 已访问的文件的标识符被存储在参照所访问的时间通过时间周期分离的部分已 访问文件列表 301 的任何一个中。
字段 603 到 606 示出了当执行文件迁移时要被迁移的文件的路径名称。如路径名 称所示, 如果文件迁移策略被设置到多个目录路径名称, 则可以集成部分已访问文件列表 301 以注册多个文件路径名称。此外, 图 6 中所示的示例采用了文件路径名称被注册在列 表中的形式 ; 然而, 无需总是使用这样的列表。此外, 在部分已访问文件列表 301 中注册的 文件可以具有包括上述目标时间周期的文件名称 (或能够唯一识别目标时间周期的文件名 称) , 但无需一定具有这样的文件名称。需要注意的是, 目标时间周期可以被包括在部分已 访问文件列表 301 中。此外, 作为部分已访问文件列表 301 的另一个形式, 根据文件迁移调 度安排, 还可以允许根据文件迁移调度安排在文件系统中创建目录, 在该目录下设置要被 迁移的文件的符号链接, 并可以使用所得到的信息来取代上述部分已访问文件列表 301 (尽 管上述两种类型在数据结构上是不同的, 但它们在指示特定时间周期期间所访问的文件的 信息上基本相同) 。 图 7 是根据本发明处理的文件的概念图。
文件 701 包括要作为文件保留的元信息 710 和文件数据 720。
元信息 710 包括用于访问相关文件的信息和与该文件相关的各种类型的信息。文 件路径名称 711 在概念上代表由客户端 104 访问的相关文件所在的位置。当客户端 104 访 问文件时指定文件路径名称。文件更新时间 CTIME 712 存储创建或更新文件的时间。文件 访问时间 ATIME 7113 存储客户端 104 读取文件的最后时间。文件尺寸 SIZE 714 示出了文 件数据 720 的总容量。访问控制信息 ACCESS CONTROL 715 存储创建文件的用户和所允许 的访问。图 7 示出了用户 NEO 被允许读取和写入 (更新) 文件。根据文件系统和所设置的访 问控制信息 ACCESS CONTROL 715, 这些条元信息 710 的容量是可变的。总体的文件系统可 以具有这些条元信息 710。
文件数据 720 保留作为文件存储的数据的实质部分。由于文件系统利用元信息 710 保留数据的实质部分作为一对, 客户端 104 可以访问期望的数据。更确切而言, 可以通 过指定文件名称来访问文件数据, 这是因为元信息 710 在存储文件数据 720 的存储区域中 具有块地址。
图 8 是示出了进行文件迁移设置的管理程序的处理流程的图示。如下参照附图来 描述文件迁移管理子程序 211 的处理。需要注意的是, 当进行文件迁移设置时执行该处理。
(步骤 801) 文件迁移管理子程序 211 获取目录的路径名称作为文件迁移目标。
(步骤 802) 文件迁移管理子程序 211 还获取要被迁移的文件的条件。
(步骤 803) 文件迁移管理子程序 211 获取相关于该目录路径名称和迁移条件的文件迁移调度安排。
(步骤 804) 文件迁移管理子程序 211 将上述获取的信息识别为一个文件迁移策 略, 并且将该设置增加到文件迁移策略表 214。
(步骤 805) 文件迁移管理子程序 211 将事件通知设置到文件系统程序 232, 以便设 置用于提取要被迁移的文件的处理。
(步骤 806) 文件迁移管理子程序 211 设置用于执行文件迁移的文件迁移程序 210 的执行调度安排, 并随后完成该处理。
可以根据文件迁移策略的设置多于一次地执行由文件迁移管理子程序 211 执行 的上述处理。此外, 下面将参照图 10 详细描述由在步骤 805 设置了事件通知的文件系统程 序 232 执行的处理。
需要注意的是, 当接收到由管理员在下文中参照图 14 详细描述的屏幕上输入到 管理控制台 105 的各个输入值时, 由文件迁移管理子程序 211 执行步骤 801 到 803 的值的 获取。
图 9 是示出由用于迁移文件的文件迁移子程序 212 执行的处理流程的图示。
根据被设置到文件迁移策略表 214 的调度安排来执行文件迁移子程序 212。下面 将参照该附图来描述该处理。
(步骤 901) 在开始处理之后, 文件迁移子程序 212 首先判断在文件迁移期间应当 参照的部分已访问文件列表 301 是否存在 (对应于图 17 中的 (1) ) 。如果应当参照的部分文 件列表 301 并不存在 (否) , 则程序完成处理。如果应当参照的部分文件列表 301 存在 (是) , 则程序迁移在部分文件列表 301 中描述的文件。
(步骤 902) 文件迁移子程序 212 判断尚未执行数据迁移的文件的任何路径名称是 否被描述在部分文件列表 301 中 ; 如果存在这样的路径名称 (否) , 则程序继续到步骤 903 和 后续步骤中的处理。如果并未描述该文件 (是) , 则这表示已经对所有文件执行了处理, 从而 程序执行步骤 905。
(步骤 903) 如果在部分文件列表 301 中描述了任何文件, 则文件迁移子程序 212 临 时获取程序内的文件路径名称, 并从部分文件列表 301 中删除该文件名称。
(步骤 904) 文件迁移子程序 212 相关于在步骤 903 获取的文件路径名称参照在文 件系统中存储的元信息 710 和文件迁移策略表 214 中的条件 ; 并且如果信息匹配迁移策略, 则程序将文件数据从当前存储区域迁移到另一存储区域。随后, 程序返回到步骤 902 中的 处理, 并且继续文件迁移处理。
(步骤 905) 文件迁移子程序 212 删除部分文件列表 301 并随后完成该处理。
由于例如如下所述的原因来判断在部分文件列表 301 中描述的文件是否匹配迁 移策略。
* 进行上述判断以便应对在文件路径名称被描述在部分文件列表 301 中之后改变 文件的情形。例如, 如果策略被设置为使得在文件尺寸为 10MB 或更大的情况下迁移文件, 则可以 11MB 的尺寸创建文件并随后将尺寸改变为 9MB。 由于根据本实施例并未执行在文件 尺寸被改变的情况下从部分文件列表 301 删除文件的处理, 因此在执行文件迁移之前完成 上述判断。在这种情况下, 根据文件迁移策略表 214 中的条件判断是否参照元信息 710 的ctime 712 或 atime 713 ; 从用于步骤 904 中的匹配判断的在文件系统中存储 (或在存储器 204 中高速缓存) 的元信息 710 中读取涉及判断被返回的应被参照的 ctime 712 或 atime 713。 此外, 还存在如下的方法 : 在文件迁移时不执行策略条件判断, 而是使得文件提取程序 220 动态地更新部分文件列表 30。
* 上述判断完成, 这是因为由于与文件的访问时间不同的条件, 存在在最后的处理 期间不被迁移的文件。在这种情况下, 文件迁移程序可以将并不匹配与步骤 904 中的访问 时间不同的条件的文件的路径名称写回到部分文件列表 301 中, 并跳过步骤 905 中的处理。
此外, 作为在步骤 904 中执行的文件数据迁移的示例, 文件迁移子程序 212 可以执 行如下处理 :
步骤 A : 从文件数据当前被存储在的存储区域中读取该文件数据 ;
步骤 B : 将所读取的文件数据写入到另一存储区域中 ; 以及
步骤 C : 将指示元信息 712 中的文件数据的地址的信息更新到作为写入目的地的 存储区域的标识符和该存储区域中的地址。
然而, 可以通过另一计算机执行或在另一步骤中实现文件数据迁移, 只要迁移目 标文件的一部分或整个文件数据能够被从当前存储的存储区域迁移到另一存储区域即可。 此外, 还可以一起迁移元信息 710 和文件数据。
图 10 是示出在图 8 的步骤 805 中的设置期间由文件系统程序 232 执行的事件通 知设置处理的流程的图示。
文件系统程序 232 具有用于进行事件通知设置的程序接口。文件提取程序 220 通 过该程序接口进行事件通知设置。下面将参照附图描述该处理。
(步骤 1001) 文件系统程序 232 从文件提取程序 220 获取被进行设置的文件的路 径名称和通知条件。
(步骤 1002) 文件系统程序 232 将条件转换为能够由文件系统检测到的事件类型。
(步骤 1003) 文件系统程序 232 通过将所转换的条件的条目增加到属于文件系统 程序 232 的事件通知表 234 来完成处理。
如果存在针对该处理的多个条件, 则需要多于一次地执行向事件类型的转换和条 目到表的增加。
图 11 是示出了当从客户端 104 接收到文件访问请求时由文件系统程序 232 执行 的文件访问处理和事件通知处理的流程的图示。
(步骤 1101) 文件系统程序 232 接收文件访问请求。
(步骤 1102) 文件系统程序 232 获取被设置到事件通知表的事件通知的类型。
(步骤 1103) 文件系统程序 232 判断文件访问请求是否匹配事件通知的类型。如 果无需给出事件通知 (否) , 则程序继续到步骤 1105 中的处理。如果请求匹配事件通知的类 型 (是) , 则程序继续到步骤 1104 中的处理。如果需要关于 CTIME 的通知并且文件访问请求 是对文件创建或更新的请求, 则对文件访问请求是否匹配事件通知类型的判断将导致肯定 的判断。
(步骤 1104) 文件系统程序 232 向文件提取程序 220 通知事件类型和文件的路径 名称。
(步骤 1105) 文件系统程序 232 参照元信息 710, 执行文件访问请求的处理, 并完成处理。 随着文件请求的处理, 例如, 文件数据被存储在存储区域中并且从存储区域中读取 的文件数据被返回。尽管通常将高速存储区域视为应当存储文件数据的存储区域, 但文件 数据也可以被存储在低速存储区域中。此外, 尽管将高速存储区域和低速存储区域两者视 为从其读取文件数据的存储区域, 但也可以将文件数据从低速存储区域迁移到高速存储区 域, 并随后从高速存储区域读取文件数据, 而不是从低速存储区域读取文件数据。
此外, 可以通过与文件访问请求的接收不同的事件来进行触发, 以执行文件访问 处理。
图 12 是示出了由文件提取程序 220 执行的部分文件列表创建处理的流程的图示。 下面将参照附图描述该处理。
(步骤 1201) 文件提取程序 220 从文件系统程序 232 接收文件更新事件通知的条 目。
(步骤 1202) 文件提取程序 220 还从文件迁移策略表 214 获取文件迁移策略。
(步骤 1203) 文件提取程序 220 判断满足被设置到文件迁移策略的条件的部分文 件列表 301 是否存在。如果这样的部分文件列表 301 并不存在 (否) , 则程序执行步骤 1204 ; 而如果这样的列表已经存在 (是) , 则程序继续到步骤 1205 中的处理。 (步骤 1204) 文件提取程序 220 创建部分文件列表 301。
(步骤 1205) 文件提取程序 220 从给出事件通知的条目获取文件路径名称, 将其增 加到部分文件列表 301, 并完成该处理。
本实施例描述了将给出事件通知的所有文件路径名称增加到部分文件列表 301 的示例。判断文件名称是否已经存在于部分文件列表 301 中, 以防止部分文件列表 301 的 容量的增加 ; 并且如果文件名称并不存在, 则应当增加文件名称。按照这样的方式, 可以防 止部分文件列表 301 中的文件名称的重复注册。作为判断文件路径名称是否存在于部分文 件列表 301 中的方法, 可能的方法包括 : 从部分文件列表 301 的顶端开始在部分文件列表 301 中搜索文件路径名称 ; 以及将文件路径名称的哈希值的冲突进行比较。如果使用了哈 希值, 则需要使用哈希值利用表达式来创建部分文件列表 301。然而, 由于防止重复注册的 处理增加了在文件访问请求处理期间所施加的负荷, 因此文件系统程序 232 无法防止在作 为增加的处理的当前目标的部分文件列表中的文件名称的重复注册 ; 并且当相关文件路径 名称变为要被增加到另一部分文件列表 301 的目标时 (即当相关部分文件列表 301 不再属 于最新时间周期时) , 可以删除重复的文件路径名称。
图 13 是由文件缓慢移动程序 213 执行的处理的流程图。
当设置新的文件迁移策略时或当改变现有的策略设置时, 文件缓慢移动程序 213 进行操作。这是因为除非进行文件访问请求, 否则并不给出文件更新事件通知。例如, 如果 新的文件迁移策略被新近设置到已经存储文件的目录, 则即使现有的文件满足迁移策略, 该文件也不会被描述为部分文件列表 301 中的迁移目标。因此, 需要激活文件缓慢移动程 序 213。下面将参照附图描述该处理。
(步骤 1301) 文件缓慢移动程序 213 从文件迁移策略表 214 获取文件迁移策略。
(步骤 1302、 步骤 1305) 文件缓慢移动程序 213 对在文件迁移策略中注册的目录路 径名称下存在的所有文件重复执行步骤 1303 和步骤 1304 中的处理。
(步骤 1303) 文件缓慢移动程序 213 相关于被进行判断以发现其是否作为迁移目
标的文件, 判断该文件是否满足迁移条件。如果该文件并不满足迁移条件 (否) , 则程序终止 对文件的处理。如果文件满足条件 (是) , 则程序继续到步骤 1304。
(步骤 1304) 文件缓慢移动程序 213 执行文件迁移处理。
本实施例已经描述了在执行文件缓慢移动程序 213 的情况下执行文件迁移的示 例。为了根据文件迁移调度安排来执行文件迁移, 文件缓慢移动程序 213 可以在部分已访 问文件列表 301 中描述迁移目标文件的文件路径名称。
如果文件迁移策略的改变仅在于迁移阈值时间周期的改变, 则可以省略上述文件 缓慢移动程序 213 的执行。这是因为, 如果迁移阈值时间周期改变则仅需要选择包括比当 前时间早被改变的迁移阈值时间周期长度的时间之前的时间周期的部分文件列表 301 作 为在图 9 的步骤 901 到 903 中参照的部分文件列表, 因为其总是已经被选择的。
图 14 是示出了进行文件迁移设置的管理程序的设置屏幕的示例的图示。
文件迁移配置管理程序的管理屏幕 1401 通过被由管理控制台 105 耦接到文件服 务器 101 来激活。项目被设置到管理屏幕 1401 上作为文件迁移策略。可以设置作为文件 迁移策略的目标被设置的目录 1411。 此外, 可以将用于执行文件迁移的条件 1412 设置到目 录 1411。可以通过从 CTIME、 ATIME、 文件扩展名和尺寸等中进行选择来设置用于文件迁移 的条件。此外, 可以设置用于执行文件迁移的调度安排 1413。 用于执行文件迁移和调度安排 1413 的条件 1412 无需一定限于图 14 中的示例。 可 以根据由文件系统保留的元信息来扩展这些字段或扩展这些字段来设置多个调度安排。
需要注意的是, 与其他类型的请求相比, 存在接收大量的文件读取请求和文件写 入请求的趋势。可以使用上述趋势, 执行以下处理, 以便减少部分访问文件列表 301 的尺寸 和关于增加所述列表的处理的负荷。
(改进方案 1) 响应于文件读取请求和文件写入请求, 文件路径名称未被增加到部 分已访问文件列表 301。取而代之的是, 检查在关闭时关闭的文件的 atime 或 ctime, 并且 在与由 atime 或 ctime 指示的时间对应的时间周期, 将所关闭的文件的路径名称增加到部 分已访问文件列表 301。
(改进方案 2) 响应于文件读取请求和文件写入请求, 文件路径名称未被增加到部 分已访问文件列表 301。取而代之的是, 在进行文件创建请求时, 路径名称在该时间被注册 到最新的部分已访问文件列表 301 中。之后, 当执行图 9 中所示的处理时, 作为在步骤 904 中参照元信息 710 的 ctime 712 和 atime 713 的结果, 路径名称被增加到在部分已访问文 件列表 301 中注册的部分 ; 并且在第二最新周期期间, 其文件数据被确定为不被迁移的文 件的路径名称被增加到部分已访问文件列表 301 中。或者, 在包括被确定为不被迁移的文 件的 ctime712 和 atime 713 的时间的时间周期期间内, 该文件的路径名称被增加到部分已 访问文件列表 301 中。
需要注意的是, 有时可以改变文件的路径名称, 并且可以采取如下所述的任何一 种应对措施。
(应对措施 1) 取代在部分已访问文件列表 301 中注册的路径名称, 注册即使在路 径名称改变的情况下也不改变的标识符。这样的标识符的示例包括被分配给元信息 710 的 标识符。
(应对措施 2) 将由于路径名称的改变而丢失的文件视为其仿佛已经被删除。如果
与上述改进方案 2 一起使用该应对措施, 则当接收到对改变路径名称的请求时, 需要将改 变的路径名称注册到部分已访问文件列表 301 中。
(应对措施 3) 被记录在部分已访问文件列表 301 中的在改变之前的原始路径名称 被更新为改变的路径名称。
需要注意的是, 与基于迁移阈值时间周期在文件迁移中使用部分已访问文件列表 301 不同地使用部分访问文件列表 301, 以识别从比当前时间早阈值时间周期长度的时间 到新时间已经接收到对更新 ctime 712 和 atime 713 的请求的文件。可以通过将部分已访 问文件列表 301 的时间周期与阈值时间周期进行比较, 由客户端 104 或文件服务器 101 来 实现这种类型的处理, 并且这种类型的处理适合于基于文件数据的索引创建和病毒检查。
此外, 如果高性能存储区域的未使用的区域并不充足, 则可以从最旧的时间周期 的部分已访问文件列表 301(基于 ctime 712 创建的列表尤其适合) 中提取文件, 并且文件 数据可以被从高性能存储区域迁移到低性能存储区域。
如果部分已访问文件列表 301 的尺寸超过由文件服务器 101 的管理员设置到文件 服务器 101 的列表尺寸阈值, 则可以执行以下的处理。
* 无论策略如何, 迁移并删除其路径名称被记录在最旧的时间周期的部分已访问 文件列表 301 中的文件。在这种情况下, 文件服务器 101 可以将出错消息和所迁移的文件 的路径名称发送到管理控制台 105, 以便使得管理控制台 105 显示相关文件的列表尺寸已 经超过列表尺寸阈值, 并且文件已经被迁移。
* 删除最旧的时间周期的部分已访问文件列表 301。随后, 执行文件缓慢移动程序 213。 在这种情况下, 文件服务器 101 可以将出错消息发送到管理控制台 105, 以便使得管理 控制台 105 显示相关文件已经被迁移。
第二实施例。
接下来, 将参照图 18 描述本发明的第二实施例。第一实施例和第二实施例之间的 不同之处在于, 文件服务器 101 经由文件服务器 18101 访问存储子系统 103。需要注意的 是, 文件服务器 18101 具有与文件服务器 101 的硬件配置的类型相同的硬件配置的类型, 并 具有与在文件服务器 18101 的存储器中存储的操作系统 230 相同 (但它们不必完全相同) 的 操作系统的类型 (但事件通知不是必需的) 。
作为配置具有多个文件服务器 101 的文件服务系统的示例, 文件服务器 101 执行 用于实现高性能文件访问处理的处理, 而文件服务器 18101 实现诸如高可靠性和 WORM 之类 的额外功能 ; 并且, 当上述两个功能特征均由文件服务系统提供时, 可以采用本实施例。
需要注意的是, 文件服务器和存储子系统有时可以被统称为 “文件存储系统” 。在 图 18 所示的示例中, 文件服务器 101 和存储子系统 102 构成文件存储系统, 而文件服务器 18101 和存储子系统 103 也构成文件存储系统。此外, 当将它们视为文件存储系统时, 文件 服务器还可以包括存储子系统。
第二实施例中的由文件服务器 101 执行的处理并非通过发送对访问存储子系统 103 的块级别的请求来实现的, 而是通过将文件级的请求发送到文件服务器 18101 来实现 的。换句话说, 在低速存储区域中存储的文件数据被创建为文件服务器 18101 中的文件, 并 且被存储在存储子系统 103 的存储区域中。需要注意的是, 文件服务器 18101 根据作为网 络文件系统协议的 NFS 或 CIFS 来从文件服务器 101 接收请求, 并将块级别的访问请求发送到存储子系统 103。但可以根据与 NFS 或 CIFS 不同的网络协议来在文件服务器 101 和文件 服务器 18101 之间交换请求。
需要注意的是, 在第二实施例的情况下, 与由元信息指示的存储区域相关的文件 数据相关信息直接或间接地示出了由文件服务器 18101 创建的文件的路径名称。
工业实用性
本发明可以被应用于使用不同特性的存储区域来存储文件的文件服务系统中。
参考标记列表
101、 18101 文件服务器
102、 103 存储子系统
104 客户端计算机
201 CPU
204 存储器