公开/公告号CN103838515A
专利类型发明专利
公开/公告日2014-06-04
原文格式PDF
申请/专利权人 中国科学院声学研究所;北京中科华影传媒技术有限公司;
申请/专利号CN201210484222.6
申请日2012-11-23
分类号G06F3/06(20060101);
代理机构11318 北京法思腾知识产权代理有限公司;
代理人杨小蓉;杨青
地址 100190 北京市海淀区北四环西路21号
入库时间 2024-02-20 00:11:30
法律状态公告日
法律状态信息
法律状态
2016-08-03
授权
授权
2014-07-02
实质审查的生效 IPC(主分类):G06F3/06 申请日:20121123
实质审查的生效
2014-06-04
公开
公开
技术领域
本发明涉及网络存储技术,具体涉及一种服务器集群访问调度多控制器磁盘阵 列的方法及系统。
背景技术
随着技术的不断进步和市场的进一步拉动,当今的磁盘阵列在数据存储中得到了 极为广泛的应用。在技术的体系架构方面,当前的磁盘阵列可以分为单控制器磁盘 阵列、双控制器磁盘阵列和多控制器磁盘阵列三种。其中单控制器磁盘阵列的结构 最为简单,双控制器磁盘阵列采用了控制器的冗余配置,提高了磁盘阵列的可用性, 而当今业界中高端的磁盘阵列大都采用了多控制器的架构。
与双控制器架构相比,多控制器架构提高了数据处理能力,根据实际应用场景中 的需要,磁盘阵列中的多个控制器可以配置成Active-Standby、Multi-Active等模式。 在Active-Standby模式下,可以实现控制器的主备冗余配置,提高磁盘阵列的可靠性, 满足HA(High Availability)的要求;在Multi-Standby模式下,各个控制器可以独 立、并行地管理不同的LUN,可以最大程度地发挥磁盘阵列的吞吐性能。
在多控制器磁盘阵列的使用方面,当前业界普遍做法是将服务器集群和多控制器 磁盘阵列连接到交换网络中,从而实现服务器集群共享磁盘阵列的存储资源。然而, 在服务器集群的应用场景下,由于缺乏高效的访问调度策略,使得服务器集群和多 控制器磁盘阵列的CPU资源、内存资源和网卡资源得不到充分的利用,所以难以发 挥出多控制器磁盘阵列的最大吞吐性能。
鉴于以上问题,需要一种实现多控制器磁盘阵列中的文件进行动态访问调度 的方法,来实现在服务器集群的场景下充分利用服务器集群和多控制器磁盘阵列的 CPU资源、内存资源和网卡资源,从而提升多控制器磁盘阵列在为服务器集群提供 服务时的吞吐性能。
发明内容
本发明的目的在于,为克服上述技术问题,本发明提供了一种服务器集群访问调 度多控制器磁盘阵列的方法及系统。
为了实现上述目的,本发明提供了一种服务器集群访问调度多控制器磁盘阵列 的方法,所述方法为:通过映射表机制建立在某一时刻多控制器中的一台控制器仅 为服务器集群中的一台服务器提供服务的动态映射关系,从而实现服务器集群访问 多控制器磁盘阵列的访问调度。
上述映射表机制具体包含:
步骤101)将若干服务器中的一台设置为仲裁者服务器;
步骤102)基于仲裁者服务器启动的初始化映射表的步骤,该步骤在系统初始化 阶段,由仲裁者服务器访问磁盘阵列的各个控制器,收集磁盘上所有文件的信息, 初始化映射表,并将映射表发送给系统中的所有服务器;
步骤103)基于仲裁者服务器启动的更新映射表的步骤,该步骤中各服务器将更 新映射表的请求发送至所述仲裁者服务器,并由仲裁者服务器统一更新映射表,并 定时将新的映射表同步给各台服务器;
其中,所述映射表存放于每台服务器中。
上述映射表中的数据项包括存储在多控制器磁盘阵列中的各个文件的文件名、 文件所在LUN、文件所在控制器、文件当前的访问者和时间戳。
上述各个控制器处于多控制器主动服务multi-active模式,每个控制器独立管辖 不同的逻辑单元LUN。
上述对于一次完整的响应文件访问请求的多控制器磁盘阵列调度访问方法具体 包含:
步骤1:当某个服务器收到一个文件访问请求时,首先查找本地的映射表,具体 包含:
步骤1-1:如果映射表中该文件当前的访问者为空或为该服务器自身时,则由该 服务器响应该请求,并将映射表中的该文件的当前访问者记录为当前服务器,最 后将映射表中更新的数据项发送给仲裁者服务器;
步骤1-2:如果映射表中该文件的当前访问者为其他服务器,则将当前的文件访 问请求阻塞,当映射表中的该文件的当前访问者记录为空时,则返回步骤1-1;
步骤1-3:当前服务器对文件的访问结束时,将映射表中的该文件的当前访问者 记录为空,并将映射表中更新的数据项发送给仲裁者服务器;
步骤2:当仲裁者服务器收到其它服务器提交上来的映射表更新项时,根据映射 表中每个数据项的时间戳信息对映射表进行更新,并将新的映射表定时同步到其它 服务器;
步骤3:当其它服务器接收到仲裁者服务器发来的新的映射表或自身需要更新本 地映射表时,对新的文件访问请求暂时阻塞,更新本地的映射表,当映射表更新完 毕后恢复响应文件访问请求。
基于上述方法本发明提供了一种服务器集群访问调度多控制器磁盘阵列的系 统,所述系统包含:
由若干服务器构成的服务器集群,若干控制器和各个控制器控制的磁盘阵列资 源及连接服务器与磁盘阵列的交换网络;
所述服务器中之一被设置为用于控制管理服务器的仲裁者服务器,其余的各服 务器均包含:
存储单元,用于存储映射表,该映射表在某一时刻应满足仅有一台控制器为一 台服务器提供服务;
接收模块,用于接收仲裁者服务器发送的同步更新映射表的操作指令。
上述仲裁者服务器进一步包含:
初始化模块,用于在系统初始化阶段,由仲裁者服务器访问磁盘阵列的各个控 制器,收集磁盘上所有文件的信息,初始化映射表,并将映射表发送给系统中的所 有服务器;
接收模块,用于接收各服务器更新映射表的请求;和
同步更新模块,用于统一更新映射表,并定时将新的映射表同步给各台服务器。
上述映射表中的数据项包括存储在多控制器磁盘阵列中的各个文件的文件名、 文件所在LUN、文件所在控制器、文件当前的访问者和时间戳。
上述各个控制器被设置为多控制器主动服务multi-active模式,每个控制器独立 管辖不同的逻辑单元LUN。
本发明的有益效果是:在多控制器磁盘阵列为服务器集群提供服务的场景下, 充分利用了服务器和磁盘阵列控制器的CPU资源、内存资源和网卡资源,提升了多 控制器磁盘阵列的吞吐性能。
附图说明
图1是本发明中映射表结构的示意图;
图2是本发明的一个实施例的系统结构示意图;
图3是本发明的一个实施例的中文件访问调度的流程图;
图4是本发明的一个实施例的映射表示意图。
具体实施方式
下面结合附图和实施例对本发明所述方法进行详细说明。
本发明提出了一种基于映射表的服务器集群访问多控制器磁盘阵列的访问调度 方法,目的是充分利用服务器集群和多控制器磁盘阵列的CPU资源、内存资源和网 卡资源,提升多控制器磁盘阵列在为服务器集群提供服务时的吞吐性能。
本发明是通过下述技术方案实现的:
本发明通过映射表的机制建立在某一时刻一台控制器仅为一台服务器提供服务 的动态映射关系,从而实现服务器集群访问多控制器磁盘阵列的访问调度。映射表 存放在服务器集群的每台服务器中,同时在服务器集群中预留一台仲裁者服务器, 各服务器将更新映射表的请求发送至仲裁者服务器,并由仲裁者服务器统一更新映 射表,并定时将新的映射表同步给各台服务器。
如图1所示,映射表中的数据项包括存储在多控制器磁盘阵列中的各个文件的文 件名、文件所在LUN、文件所在控制器、文件当前的访问者和时间戳等属性。
多控制器磁盘阵列的各个控制器配置成multi-active模式,每个控制器独立管辖 不同的LUN。
服务器集群使用该方法实现对多控制器磁盘阵列访问调度的步骤为:
步骤1:在系统初始化阶段,由仲裁者服务器访问磁盘阵列的各个控制器,收集 磁盘上所有文件的信息,初始化映射表,并将映射表发送给系统中的所有服务器。
步骤2:当某个服务器收到一个文件访问请求时,首先查找本地的映射表,
步骤2-1:如果映射表中该文件当前的访问者为空或为该服务器自身时,则由该 服务器响应该请求,并将映射表中的该文件的当前访问者记录为当前服务器,最后 将映射表中更新的数据项发送给仲裁者服务器;
步骤2-2:如果映射表中该文件的当前访问者为其他服务器,则将当前的文件访 问请求阻塞,当映射表中的该文件的当前访问者记录为空时,则返回步骤2-1;
步骤2-3:当前服务器对文件的访问结束时,将映射表中的该文件的当前访问者 记录为空,并将映射表中更新的数据项发送给仲裁者服务器。
步骤3:当仲裁者服务器收到其他服务器提交上来的映射表更新项时,根据映射 表中每个数据项的时间戳信息对映射表进行更新,并将新的映射表定时同步到其他 服务器。
步骤4:当其他服务器接收到仲裁者服务器发来的新的映射表或自身需要更新本 地映射表时,对新的文件访问请求暂时阻塞,更新本地的映射表,当映射表更新完 毕后恢复响应文件访问请求。
实施例
实施例的系统结构图如图2所示,4台服务器和拥有4台控制器的磁盘阵列通过 交换网络305互联,构成一个共享的存储网络。其中,一台服务器301作为仲裁者, 负责根据系统中其他服务器的状态及时更新映射表,并定时将更新后的映射表同步 给其他服务器。除了仲裁者服务器,每台服务器302、303、304独立地响应各自的 文件访问请求,并通过服务器间的互联通道同仲裁者服务器通信映射表信息。多控 制器磁盘阵列方面,将4台控制器306、307、308、309配置成Multi-Active的模式, 使这4台控制器分别独立管辖各自的LUN 310和网络接口。
实施例的文件访问调度流程如图3所示,本发明所述方法在本实施例中的工作 步骤是:
步骤401,在系统初始化阶段,由仲裁者服务器访问磁盘阵列的各个控制器,收 集磁盘上所有文件的信息,初始化映射表,并将映射表同步给系统中的所有服务器。
本实施例系统初始化之后的映射表如图4所示,磁盘阵列中的每个文件在映射 表中都有一个对应的数据项,映射表中的每条数据项包括文件名501、文件所在LUN 502、文件所在控制器503、文件当前的访问者504和时间戳505几个属性。其中, 文件名501是该文件在系统中的唯一标识,服务器中收到的文件请求也是基于文件 名的;文件所在LUN 502和文件所在控制器503表示该文件在磁盘阵列中的存放位 置;文件当前访问者504表示该文件当前正在被哪一台服务器访问,该值为NULL 时表示该文件当前没有在被任何服务器访问;时间戳表示本条数据项的最后修改时 间,用于保证映射表数据项在仲裁者服务器处的数据一致性。
步骤402,当服务器2收到请求访问文件名为3-1-1的文件时,服务器2查询其 本地的映射表,找到文件3-1-1对应的数据项511,发现文件3-1-1当前正存放在控 制器3的LUN 3-1下。
步骤403,查询映射表数据项511的“文件当前的访问者”505属性,发现文件3-1-1 当前未被其他服务器访问。
步骤405,由服务器2通过控制器3来访问文件3-1-1,同时建立了服务器2和 控制器3的映射关系,当其他服务器有访问控制器3上文件的请求时,需等待服务 器2对控制器3的本次访问结束,即映射关系解除时,再对控制器3进行访问。
步骤406,服务器2修改本地的映射表数据项511,将“文件当前的访问者”505 属性由原来的NULL改为服务器2,并将修改后的数据项511通过服务器间的互联 通道发送给仲裁者服务器301。
步骤407,仲裁者服务器301收到服务器2提交上来的更新数据项511之后,将 仲裁者服务器上的映射表中的该数据项进行相应更新,并将更新后的映射表定时同 步给其他服务器。
步骤408,当文件3-3-1访问结束时,服务器2在步骤409修改本地的映射表数 据项511,将511项对应的“文件当前的访问者”504属性由服务器2改为NULL,并 将修改后的数据项511通过服务器间的互联通道发送给仲裁者服务器301。
步骤410,仲裁者服务器301收到服务器2提交上来的更新数据项511之后,将 仲裁者服务器上的映射表中的该数据项进行相应更新,并将更新后的映射表定时同 步给其他服务器。
总之,本发明提供的一种基于映射表的服务器集群访问多控制器磁盘阵列的访 问调度方法,涉及网络存储技术领域。本方法通过映射表的机制建立在某一时刻一 台控制器仅为一台服务器提供服务的动态映射关系,从而实现服务器集群访问多控 制器磁盘阵列的访问调度。映射表中的数据项包括存储在多控制器磁盘阵列中的各 个文件的文件名、文件所在LUN、文件所在控制器、文件当前的访问者和时间戳等 属性。映射表存放在服务器集群的每台服务器中,同时在服务器集群中预留一台仲 裁者服务器,各服务器将更新映射表的请求发送至仲裁者服务器,并由仲裁者服务 器统一更新映射表,并定时将新的映射表同步给各台服务器。本方法充分利用了服 务器和磁盘阵列控制器的CPU资源、内存资源的,很好地改善了多控制器磁盘阵列 在服务器集群访问环境下的吞吐性能。
需要说明的是,以上介绍的本发明的实施方案而并非限制。本领域的技术人员 应当理解,任何对本发明技术方案的修改或者等同替代都不脱离本发明技术方案的 精神和范围,其均应涵盖在本发明的权利要求范围内。
机译: 磁盘阵列控制器,磁盘阵列控制方法和磁盘阵列系统
机译: 可以在磁盘阵列中合并的高可用性大容量存储设备机架中结合使用的存储机架路由器和路径控制器卡的集成电路实现,以及一种存储机架接口隧道方法和系统
机译: 可以在磁盘阵列中合并的高可用性大容量存储设备机架中结合使用的存储机架路由器和路径控制器卡的集成电路实现,以及一种存储机架接口隧道方法和系统