一种机群系统中分片存储模式下文件读取的方法及系统的制作方法

文档序号:7927218阅读:117来源:国知局
专利名称:一种机群系统中分片存储模式下文件读取的方法及系统的制作方法
技术领域
本发明涉及计算机存储领域,尤其涉及一种机群系统中分片存储模式下文 件读取的方法及系统。
背景技术
机群(cluster)系统由互相连接的多个独立计算机所组成,该计算机可 以是单机或多处理器系统,例如PC (个人计算机)、工作站或SMP (对称多处 理系统),每个计算机都有自己的存储器、I/O (输入/输出)设备和操作系统。 机群系统对用户和应用来说是一个单一的系统,能够提供低价高效的高性能环 境和快速可靠的服务。由于机群系统具有高性价比的优势,其已成为高性能计 算机的主流结构。
在机群系统中,通常存储服务器配备有大容量的存储设备,在机群系统运 作时,需要对这些存储设备进行管理。同时,机群系统还需要为不同客户端的 用户提供的文件共享服务。机群文件系统为机群系统提供了上述服务,它将机 群系统中的所有存储设备整合起来,建立一个统一的名字空间(文件和目录的 组织结构)。各个客户端看到目录结构一致的文件系统,不同节点(客户端) 的用户可以采用透明的方式访问相同的文件。机群文件系统中的数据通常不存 储在本客户端的磁盘中,而是存储在存储服务器上,因而通常都会设有专用的
存储服务器。以写为例,应用进程通过机群文件系统的客户端写数据时,客户 端首先将数据通过网络传送到存储服务器端,存储服务器再将接收到的数据写 到存储服务器的存储设备中。
预取是一种有效提升文件系统I/O性能的优化技术。文件预取是指在使用 一块数据之前预先将其从磁盘读入内存,在预取的数据被真正请求时,省去磁
盘访问时间,从而有效减小i/o延迟。
机群文件系统中,由于文件数据不是存储在客户端,而是存储在存储服务 器中,存储服务器都配备有自己的CPU、内存、存储设备。因此,在客户端对
文件进行顺序访问操作将会触发客户端和存储服务器端的两级预取操作。
目前,大部分机群文件系统采用分片(stripping)的模式存储文件数据, 将同一文件的数据在多个存储服务器上分片存储。采用分片存储模式, 一方面 可以均衡利用所有存储服务器的存储设备的存储空间;另一方面可以提升对单 个文件的访问性能。在分片存储模式下,对客户端某一文件的顺序读访问,会 导致该文件分片所在的多个存储服务器上的顺序读访问,也会激发多个存储服 务器上的顺序预取操作。多个存储服务器上的预取实际上都附属于客户端同一 负载的预取,相互间具有关联。然而,存储服务器在预取的过程中不知道客户 端的预取信息或相邻分片的预取信息。预取只能在单个节点内部进行。假设文 件数据在两个存储服务器上分片存储。当客户端读取到两个相邻分片A和B 的交界处时,分片A所属的存储服务器会继续该存储服务器连接于分片A后的 C'部分的数据进行预取。然而,该部分数据实际上不会被立即访问到,对数 据C'的预取实际为无效预取。在客户端刚刚读取数据B时,分片B所在的存 储服务器预读状态信息还需要重新建立,而没有利用客户端负载已有的预取信 息。客户端负载的预取信息不能在多个存储服务器的相关读请求之间进行传 递。
为了提升存储服务器数据预取的效率,现有技术采用在服务器端缓存预读 状态信息的策略。缓存的具体方法包括如下两种。
方法一,网络文件系统(NFS)的存储服务器为每个正在被访问的目标文 件缓存预取描述符结构。在第一次读取某一目标文件时,为其初始化一个预取 描述符,并使用该预取描述符指导本次预取操作。在关闭目标文件后,存储服 务器继续为该文件缓存预取描述符结构。从而,在处理该目标文件的后续读请 求时,就可以直接利用缓存的预取信息来指导预取的过程。预读状态信息就可 以在请求之间进行传递。客户端进程顺序读取网络文件系统中的文件时,预取 描述符缓存机制可以提升文件系统的读性能。
方法二,在存储服务器端为每个目标文件缓存打开文件描述符。由打开文 件描述符可以检索到打开文件的文件(file)结构,文件结构中维护了预取描 述符信息。它是通过缓存打开文件描述符来缓存预取描述符信息,从而提升文 件系统的读性能。
以上两种技术,本质上都是在存储服务器端缓存预取描述符,该类技术可
以在单个存储服务器内部将附属于同一客户端负载的相关请求统一处理,在单 个存储服务器内部将相关预取过程统一起来,但无法解决分片存储模式下,多 个存储服务器之间相关预取的协调问题。

发明内容
为解决上述问题,本发明提供了一种机群系统中分片存储模式下文件读取 的方法及系统,用以使机群文件系统中,分片存储模式下,附属于同一客户端 负载的多个存储服务器上相关预取操作能够协调、统一处理。
本发明公开了一种机群系统中分片存储模式下文件读取的方法,包括客户 端接收应用层的文件访问请求,开始读操作,所述方法还包括
步骤1,所述客户端将读请求所访问的数据的位置信息和预读状态信息封 装到读请求消息中,发送给存储所述数据的存储服务器;
步骤2,所述存储服务器根据所述读请求消息中位置信息和获得的存储布 局信息确定被访问的数据在分片中的位置,依据所述读请求消息中预读状态信 息完成预取操作,如果所述被访问的数据的结束位置为所述分片的结束位置, 则停止所述预取操作;通过应答消息将读取的所述被访问的数据发送给所述客 户端;
步骤3,所述客户端接收所述应答消息,将获得的所述被访问的数据返回 给所述应用层。
如果所述客户端在进行所述读操作时进行顺序预取,则所述读请求所访问 的数据为顺序预取请求所访问的数据,否则,所述读请求所访问的数据为文件 访问请求所访问的数据,所述步骤l进一步包括
步骤21,根据所述被访问的文件的历史访问信息,判断是否进行顺序预 取操作,如果是,执行步骤22,否则,执行步骤23;
步骤22,将所述顺序预取请求所访问的数据的位置信息和所述预读状态 信息封装到读请求消息中;
步骤23,将所述文件访问请求所访问的数据的位置信息和所述预读状态 信息封装到读请求消息中。
所述步骤2中发送所述应答消息前进一步包括
步骤31,根据所述读请求消息中位置信息和所述存储布局信息,判断所
述读请求消息所访问的数据的起始位置是否为被访问的文件的一个分片的起 始位置,如果是则根据所述读请求消息中的预读状态信息更新所述存储服务器
对应于被访问文件的预读状态信息;
步骤32,根据所述读请求消息中位置信息和所述存储布局信息,判断所
述读请求消息所访问的数据的结束位置是否为被访问的文件的一个分片的结
束位置,如果是,则停止预取操作,否则,执行步骤33;
步骤33,根据所述存储服务器的预读状态信息进行预取操作。
所述预读状态信息包括预读命中信息和预读窗口大小信息。
所述步骤32中停止预取操作进一步为将所述存储服务器对应于被访问文
件的预读窗口大小设置为0,并重置所述存储服务器对应于被访问文件的预读
命中信息。
所述存储布局信息由所述存储服务器维护或者由所述客户端传送给所述 存储服务器。
本发明还公开了一种机群系统中分片存储模式下文件读取的系统,包括客 户端和至少两个存储服务器,所述客户端用于接收应用层的文件访问请求,开 始读操作,
所述客户端,还用于将读请求所访问的数据的位置信息和预读状态信息封 装到读请求消息中,发送给存储所述数据的所述存储服务器;接收所述存储服 务器回复的应答消息,将所述应答消息中包含的所述读请求消息所访问的数据 返回给所述应用层;
所述存储服务器,用于根据所述读请求消息中位置信息和获得的存储布局 信息确定被访问的数据在分片中的位置,依据所述读请求消息中预读状态信息 完成预取操作,如果所述被访问的数据的结束位置为所述分片的结束位置,则 停止所述预取操作;通过应答消息将读取的所述被访问的数据发送给所述客户端。
如果所述客户端在进行所述读操作时进行顺序预取,则所述读请求所访问 的数据为顺序预取请求所访问的数据,否则,所述读请求所访问的数据为文件 访问请求所访问的数据,
所述客户端进一步用于根据对所述被访问的文件的历史访问信息判断是 否进行顺序预取操作,如果是,则将所述顺序预取请求所访问的数据的位置信
息和所述预读状态信息封装到读请求消息中;否则,将所述文件访问请求所访 问的数据的位置信息和所述预读状态信息封装到读请求消息中。
所述存储服务器进一步用于在发送所述应答消息前根据所述读请求消息 中位置信息和所述存储布局信息判断所述读请求消息所访问的数据的起始位 置是否为被访问的文件的一个分片的起始位置,如果是则根据所述读请求消息 中的预读状态信息更新所述存储服务器对应于被访问文件的预读状态信息;并 根据所述读请求消息中位置信息和所述存储布局信息判断所述读请求消息所 访问的数据的结束位置是否为被访问的文件的一个分片的结束位置,如果是, 则停止预取操作,否则,根据所述存储服务器的预读状态信息进行预取操作。 所述预读状态信息包括预读命中信息和预读窗口大小信息。 所述存储服务器进一步用于在所述读请求消息所访问的数据的结束位置 是所述被访问的文件的一个分片的结束位置时,将所述存储服务器对应于被访 问文件的预读窗口大小设置为0,并重置所述存储服务器对应于被访问文件的 预读命中信息。
所述存储布局信息由所述存储服务器维护或者由所述客户端传送给所述 存储服务器。
本发明的有益效果在于,通过将客户端预读状态信息在多个存储服务器间 连续传递,能够将多服务节点上相关预取操作协调统一地处理,提升存储服务 器预取的效率。


图1是本发明机群系统中分片存储模式下文件读取的系统结构图; 图2是本发明机群系统中分片存储模式下文件读取的方法流程图; 图3是本发明机群系统中分片存储模式下文件读取的方法中客户端发送
读请求消息流程图4是本发明机群系统中分片存储模式下文件读取的方法中存储服务器
进行预取操作的流程图5是本发明机群系统中分片存储模式下文件读取的方法在客户端访问
分片边界时的处理示意图。
具体实施例方式
下面结合附图,对本发明做进一步的详细描述。 本发明的系统结构如图1所示。
本发明的系统包括客户端101和至少两个存储服务器102。机群文件系统
中经常会将文件数据以分片的模式存储在多个服务器中,所以, 一般情况下,
包括两个或两个以上的存储服务器。
客户端101用于接收应用层的文件访问请求,开始读操作。
客户端101还用于将读请求所访问的数据的位置信息和预读状态信息封
装到读请求消息中,将读请求消息发送给存储该数据的存储服务器。 预读状态信息包括预读命中信息和预读窗口大小信息。 如果客户端101在进行所述读操作时进行顺序预取,则读请求所访问的数
据为顺序预取请求所访问的数据,否则,读请求所访问的数据为文件访问请求
所访问的数据。
客户端101根据对被访问的文件的历史访问信息判断是否进行顺序预取 操作,如果是,则将顺序预取请求所访问的数据的位置信息和预读状态信息封 装到读请求消息中;否则,将文件访问请求所访问的数据的位置信息和预读状 态信息封装到读请求消息中。
客户端101还用于接收存储服务器102回复的应答消息,将应答消息中包 含的被访问的数据返回给应用层。
存储服务器102,用于根据读请求消息中位置信息和获得的存储布局信息 确定被访问的数据在分片中的位置,依据读请求消息中的预读状态信息进行预 取操作,如果被访问的数据的结束位置为分片的结束位置,则停止预取操作, 通过应答消息将读取的被访问的数据发送给所述客户端101。
存储布局信息由存储服务器102维护或者由客户端101传送给存储服务器
102。
存储服务器102根据存储布局信息判断读请求消息所访问的数据的起始 位置是否为被访问的文件的一个分片的起始位置,如果是则根据读请求消息中 的预读状态信息更新存储服务器102对应于被访问文件的预读状态信息;并根 据存储布局信息判断读请求消息所访问的数据的结束位置是否为被访问的文 件的一个分片的结束位置,如果是,则停止预取操作,将存储服务器102对应
于被访问文件的预读窗口大小设置为0,并重置存储服务器102对应于被访问 文件的预读命中信息,否则,根据存储服务器102的预读状态信息进行预取操 作。
本发明的方法流程如图2所示。
客户端接收应用层的文件访问请求,执行如下步骤。
步骤S201,客户端将读请求所访问的数据的位置信息和预读状态信息封 装到读请求消息中,将读请求消息发送给存储数据的存储服务器。
如果客户端在进行所述读操作时进行顺序预取,则读请求所访问的数据为 顺序预取请求所访问的数据,否则,读请求所访问的数据为文件访问请求所访 问的数据。
所述步骤S201的具体实施方式
如图3所示。
步骤S301,根据对被访问的文件的历史访问信息判断是否进行顺序预取 操作,如果是,执行步骤S302,否则,执行步骤S303。
判断方法为,检査最近预设次数的访问是否为顺序访问,如果是,则进行 顺序预取;否则,不进行顺序预取。
步骤S302,将顺序预取请求所访问的数据的位置和预读状态信息封装到 读请求消息中。
步骤S303,将文件访问请求所访问的数据的位置和预读状态信息封装到 读请求消息中。
步骤S304,将封装后的读请求消息发送给存储数据的存储服务器。
步骤S202,存储服务器根据读请求消息中的预读状态信息和位置信息以
及获得的存储布局信息进行预取操作,通过应答消息将被访问的数据发送给客户端。
存储布局信息由存储服务器维护或者由客户端传送给存储服务器。 所述步骤S202的具体实施方式
如图4所示。
步骤S401,根据存储布局信息判断读请求消息所访问的数据的起始位置 是否为被访问的文件的一个分片的起始位置,如果是,则执行步骤S402,否 则,执行步骤S403。
本实施例的判断方法为,已知读请求消息所访问的数据的起始位置和被访 问文件的分片大小,判断读请求消息所访问的数据的起始位置除以被访问文件
的分片大小的余数是否为o,如果为o,则读请求消息所访问的数据的起始位
置为被访问的文件的一个分片的起始位置,否则,读请求消息所访问的数据的 起始位置不为被访问的文件的一个分片的起始位置。
步骤S402,根据读请求消息中的预读状态信息调整存储服务器对应于被 访问文件的预读状态信息,执行步骤S403。预读状态信息包括预读命中信息 和预读窗口大小信息。所述调整为按比例设定预读窗口大小和预读命中信息。
步骤S403,根据存储布局信息判断读请求消息所访问的数据的结束位置 是否为被访问的文件的一个分片的结束位置,如果是,执行步骤S404,否则, 执行步骤S405。
已知读请求消息所访问的数据的结束位置为req—end,被访问的文件分片 的大小为stripe_size,判断req—end加1的和除以stripe—size的余数是否 为0,如果是,则读请求消息所访问的数据的结束位置为被访问的文件的一个 分片的结束位置,否则,读请求消息所访问的数据的结束位置不为被访问的文 件的一个分片的结束位置。
步骤S404,将对应于被访问文件的预读窗口大小设置为O,同时重置对应 于被访问文件的预读命中信息,以停止预取操作,执行步骤S406。
步骤S405,根据存储服务器的当前的预读状态信息进行预取操作,执行 步骤S406。
步骤S406,从存储磁盘中读取读请求消息所访问的数据,并将读取的数 据封装到应答消息中。
步骤S407,向客户端发送应答消息。
步骤S203,客户端接收应答消息,将被访问的数据返回给应用层。 在客户端访问分片边界时本发明方法处理过程如图5所示。 在图5中文件数据在存储服务器1和存储服务器2上分片存储。当客户端 请求所访问的数据到达分片A和B的边界处时,分片A所在的存储服务器1 能够计算出本次请求所访问的数据的结束位置为分片结束位置,将预读窗口大 小设置为O,并重置预读命中信息,以停止对目标文件l的预取。客户端自身 的预取机制则提前触发对分片B数据的预取操作,向存储服务器2发出读请求 消息。存储服务器2直接根据客户端传来的读请求消息中的预读状态信息更新 对目标文件2访问的预读状态信息。包括按比例设定预读窗口大小以及预读命
中信息。从而,预读状态信息可以在同一文件多个分片所在存储服务器间传递。 本领域的技术人员在不脱离权利要求书确定的本发明的精神和范围的条 件下,还可以对以上内容进行各种各样的修改。因此本发明的范围并不仅限于 以上的说明,而是由权利要求书的范围来确定的。
权利要求
1. 一种机群系统中分片存储模式下文件读取的方法,包括客户端接收应用层的文件访问请求,开始读操作,其特征在于,所述方法还包括步骤1,所述客户端将读请求所访问的数据的位置信息和预读状态信息封装到读请求消息中,发送给存储所述数据的存储服务器;步骤2,所述存储服务器根据所述读请求消息中位置信息和获得的存储布局信息确定被访问的数据在分片中的位置,依据所述读请求消息中预读状态信息完成预取操作,如果所述被访问的数据的结束位置为所述分片的结束位置,则停止所述预取操作;通过应答消息将读取的所述被访问的数据发送给所述客户端;步骤3,所述客户端接收所述应答消息,将获得的所述被访问的数据返回给所述应用层。
2. 如权利要求1所述的机群系统中分片存储模式下文件读取的方法,其 特征在于,如果所述客户端在进行所述读操作时进行顺序预取,则所述读请求 所访问的数据为顺序预取请求所访问的数据,否则,所述读请求所访问的数据 为文件访问请求所访问的数据,所述步骤1进一步包括步骤21,根据所述被访问的文件的历史访问信息,判断是否进行顺序预 取操作,如果是,执行步骤22,否则,执行步骤23;步骤22,将所述顺序预取请求所访问的数据的位置信息和所述预读状态 信息封装到读请求消息中;步骤23,将所述文件访问请求所访问的数据的位置信息和所述预读状态 信息封装到读请求消息中。
3. 如权利要求1所述的机群系统中分片存储模式下文件读取的方法,其 特征在于,所述步骤2中发送所述应答消息前进一步包括步骤31,根据所述读请求消息中位置信息和所述存储布局信息,判断所 述读请求消息所访问的数据的起始位置是否为被访问的文件的一个分片的起 始位置,如果是则根据所述读请求消息中的预读状态信息更新所述存储服务器 对应于被访问文件的预读状态信息; 步骤32,根据所述读请求消息中位置信息和所述存储布局信息,判断所述读请求消息所访问的数据的结束位置是否为被访问的文件的一个分片的结束位置,如果是,则停止预取操作,否则,执行步骤33;步骤33,根据所述存储服务器的预读状态信息进行预取操作。
4. 如权利要求3所述的机群系统中分片存储模式下文件读取的方法,其特征在于,所述预读状态信息包括预读命中信息和预读窗口大小信息。
5. 如权利要求4所述的机群系统中分片存储模式下文件读取的方法,其特征在于,所述步骤32中停止预取操作进一步为将所述存储服务器对应于被 访问文件的预读窗口大小设置为0,并重置所述存储服务器对应于被访问文件 的预读命中信息。
6. 如权利要求5所述的机群系统中分片存储模式下文件读取的方法,其特征在于,所述存储布局信息由所述存储服务器维护或者由所述客户端传送给 所述存储服务器。
7. —种机群系统中分片存储模式下文件读取的系统,包括客户端和至少两个存储服务器,所述客户端用于接收应用层的文件访问请求,开始读操作, 其特征在于,所述客户端,还用于将读请求所访问的数据的位置信息和预读状态信息封装到读请求消息中,发送给存储所述数据的所述存储服务器;接收所述存储服 务器回复的应答消息,将所述应答消息中包含的所述读请求消息所访问的数据 返回给所述应用层;所述存储服务器,用于根据所述读请求消息中位置信息和获得的存储布局信息确定被访问的数据在分片中的位置,依据所述读请求消息中预读状态信息 完成预取操作,如果所述被访问的数据的结束位置为所述分片的结束位置,则停止所述预取操作;通过应答消息将读取的所述被访问的数据发送给所述客户端。
8. 如权利要求7所述的机群系统中分片存储模式下文件读取的系统,其特征在于,如果所述客户端在进行所述读操作时进行顺序预取,则所述读请求 所访问的数据为顺序预取请求所访问的数据,否则,所述读请求所访问的数据 为文件访问请求所访问的数据,所述客户端进一步用于根据对所述被访问的文件的历史访问信息判断是否进行顺序预取操作,如果是,则将所述顺序预取请求所访问的数据的位置信 息和所述预读状态信息封装到读请求消息中;否则,将所述文件访问请求所访问的数据的位置信息和所述预读状态信息封装到读请求消息中。
9. 如权利要求7所述的机群系统中分片存储模式下文件读取的系统,其 特征在于,所述存储服务器进一步用于在发送所述应答消息前根据所述读请求 消息中位置信息和所述存储布局信息判断所述读请求消息所访问的数据的起 始位置是否为被访问的文件的一个分片的起始位置,如果是则根据所述读请求 消息中的预读状态信息更新所述存储服务器对应于被访问文件的预读状态信 息;并根据所述读请求消息中位置信息和所述存储布局信息判断所述读请求消 息所访问的数据的结束位置是否为被访问的文件的一个分片的结束位置,如果 是,则停止预取操作,否则,根据所述存储服务器的预读状态信息进行预取操 作。
10. 如权利要求9所述的机群系统中分片存储模式下文件读取的系统,其 特征在于,所述预读状态信息包括预读命中信息和预读窗口大小信息。
11. 如权利要求10所述的机群系统中分片存储模式下文件读取的系统, 其特征在于,所述存储服务器进一步用于在所述读请求消息所访问的数据的结 束位置是所述被访问的文件的一个分片的结束位置时,将所述存储服务器对应 于被访问文件的预读窗口大小设置为0,并重置所述存储服务器对应于被访问 文件的预读命中信息。
12. 如权利要求11所述的机群系统中分片存储模式下文件读取的系统, 其特征在于,所述存储布局信息由所述存储服务器维护或者由所述客户端传送 给所述存储服务器。
全文摘要
本发明涉及机群系统中分片存储模式下文件读取的方法和系统,方法包括步骤1,客户端将读请求所访问的数据的位置信息和预读状态信息封装到读请求消息中,发送给存储所述数据的存储服务器;步骤2,存储服务器根据读请求消息中位置信息和获得的存储布局信息确定被访问的数据在分片中的位置,依据读请求消息中预读状态信息完成预取操作,如果被访问的数据的结束位置为分片的结束位置,则停止预取操作;将读取的被访问的数据发送给客户端;步骤3,客户端将获得的所述被访问的数据返回给所述应用层。本发明能够使机群文件系统中,分片存储模式下,附属于同一客户端负载的多个存储服务器上相关预取操作能够协调、统一处理。
文档编号H04L12/54GK101388824SQ20081022409
公开日2009年3月18日 申请日期2008年10月15日 优先权日2008年10月15日
发明者岳 刘, 劲 熊 申请人:中国科学院计算技术研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1