一种NAS服务节点实现NAS服务的方法及系统与流程

文档序号:14774022发布日期:2018-06-23 02:31阅读:330来源:国知局
一种NAS服务节点实现NAS服务的方法及系统与流程

本申请涉及网络附属存储领域,特别涉及一种NAS服务节点实现NAS服务的方法、系统、NAS服务器及计算机可读存储介质。



背景技术:

网络附属存储(Network Attached Storage,NAS)是一种专用数据存储NAS服务节点。它以数据为中心,将存储NAS服务节点与NAS服务节点彻底分离,集中管理数据,从而具有释放带宽、提高性能、降低总拥有成本及保护投资等优点,其成本远远低于使用NAS服务节点存储,而效率却远远高于后者。

NAS比较常见的应用方式是应用于大规模的客户端场景,在典型的NAS服务办公场景中,需要对接大量的windows客户端(假设为1000个客户端),这些客户端通过访问单一IP地址访问同一个服务节点,传统的NAS服务的实现方式包括:

单进程多线程模式:在服务节点上,NAS服务端提供单个进程,在该进程中提供1000个线程,每个线程对接一个客户端;

多进程模式:在服务节点上,NAS服务端提供1000个NAS进程,每个进程中具有单个线程,每个线程对接一个客户端。

然而,这两种方式都存在各自问题:单进程多线程模式的健壮性较低,当某个线程出现问题时会影响到其它线程的运行,甚至当该进程down掉后,所有客户端都不可用;而多进程模式中过多的进程会使数据通信变得极为复杂,处理效率降低,同时占用较多的系统资源。

因此,如何提高NAS服务的健壮性及处理效率是本领域技术人员目前需要解决的技术问题。



技术实现要素:

本申请的目的是提供一种NAS服务节点实现NAS服务的方法、系统、NAS服务器及计算机可读存储介质,该方法能够提高NAS服务的健壮性及处理效率。

为解决上述技术问题,本申请提供一种NAS服务节点实现NAS服务的方法,该方法包括:

解析用户输入的进程池配置,得到配置参数;其中,所述配置参数包括进程池中的进程数及进程中的线程数;

启动父进程,并令所述父进程根据所述配置参数创建NAS服务进程池;

当接收到客户端的连接请求时,根据所述客户端的属性信息从所述NAS服务进程池中调用对应的服务进程处理所述连接请求。

可选的,根据所述客户端的属性信息从所述NAS服务进程池中调用对应的服务进程处理所述连接请求,包括:

根据所述客户端的属性信息通过第一散列算法计算所述客户端的散列值;

根据所述散列值从所述NAS服务进程池中调用对应的服务进程处理所述连接请求。

可选的,所述客户端的属性信息具体为所述客户端的IP地址。

可选的,当NAS服务节点为多个时,在根据所述客户端的属性信息从所述NAS服务进程池中调用对应的服务进程处理所述连接请求之前,还包括:

接收到客户端的连接请求;

根据第二散列算法计算的散列值从各所述NAS服务节点中选择所述连接请求的处理节点;

令所述处理节点处理所述连接请求。

本申请还提供一种NAS服务节点实现NAS服务的系统,该系统包括:

解析模块,用于解析用户输入的进程池配置,得到配置参数;其中,所述配置参数包括进程池中的进程数及进程中的线程数;

启动模块,用于启动父进程,并令所述父进程根据所述配置参数创建NAS服务进程池;

调用模块,用于当接收到客户端的连接请求时,根据所述客户端的属性信息从所述NAS服务进程池中调用对应的服务进程处理所述连接请求。

可选的,所述采集模块包括:

获取子模块,用于实时获取健身器材各转轴的转动角度;

确定子模块,用于确定与预设角度相同的转动角度的转轴;

采集子模块,用于根据所述转轴确定所述健身动作图像的动作类别,并采集所述用户此时的健身动作图像。

可选的,所述调用模块包括:

计算子模块,用于根据所述客户端的属性信息通过第一散列算法计算所述客户端的散列值;

调用子模块,用于根据所述散列值从所述NAS服务进程池中调用对应的服务进程处理所述连接请求。

可选的,还包括:

接收模块,用于接收客户端的连接请求;

选择模块,用于根据第二散列算法计算的散列值从各NAS服务节点中选择所述连接请求的处理节点;

命令模块,用于令所述处理节点处理所述连接请求。

本申请还提供一种NAS服务器,该NAS服务器包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序时实现如上述任一项所述NAS服务节点实现NAS服务的方法的步骤。

本申请还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一项所述NAS服务节点实现NAS服务的方法的步骤。

本申请所提供的一种NAS服务节点实现NAS服务的方法,包括解析用户输入的进程池配置,得到配置参数;其中,配置参数包括进程池中的进程数及进程中的线程数;启动父进程,并令父进程根据配置参数创建NAS服务进程池;当接收到客户端的连接请求时,根据客户端的属性信息从NAS服务进程池中调用对应的服务进程处理连接请求。

本申请所提供的技术方案,通过父进程复用创建NAS服务进程池,令被建立的服务进程之间的数据通信复杂度大幅度降低,进而提升了处理效率,减少了系统资源占用率;同时,通过令父进程根据进程池中的进程数及进程中的线程数创建NAS服务进程池,实现了NAS服务的多进程多线程模式,当某个进程或线程出现问题时不会影响到其它进程或线程的运行,提高了NAS服务的健壮性;最后根据客户端的属性信息从NAS服务进程池中调用对应的服务进程处理该连接请求,实现了NAS服务的负载均衡。本申请同时还提供了一种NAS服务节点实现NAS服务的系统、NAS服务器及计算机可读存储介质,具有上述有益效果,在此不再赘述。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本申请实施例所提供的一种NAS服务节点实现NAS服务的方法的流程图;

图2为本申请实施例所提供的另一种NAS服务节点实现NAS服务的方法的流程图;

图3为本申请实施例所提供的一种NAS服务节点实现NAS服务的系统的结构示意图;

图4为本申请实施例所提供的另一种NAS服务节点实现NAS服务的系统的结构示意图;

图5为本申请实施例所提供的一种NAS服务器的结构示意图。

具体实施方式

本申请的核心是提供一种NAS服务节点实现NAS服务的方法、系统、NAS服务器及计算机可读存储介质,该方法能够提高NAS服务的健壮性及处理效率。

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

请参考图1,图1为本申请实施例所提供的一种NAS服务节点实现NAS服务的方法的流程图。

其具体包括如下步骤:

S101:解析用户输入的进程池配置,得到配置参数;

传统的NAS服务的实现方式包括单进程多线程模式和多进程模式,然而,这两种方式都存在各自问题:单进程多线程模式的健壮性较低,当某个线程出现问题时会影响到其它线程的运行,甚至当该进程down掉后,所有客户端都不可用;而多进程模式中过多的进程会使数据通信变得极为复杂,处理效率降低,同时占用较多的系统资源,基于此,本申请提供了一种NAS服务节点实现NAS服务的方法,能够提高NAS服务的健壮性及处理效率;

这里提到的配置参数具体可以包括进程池中的进程数及进程中的线程数,用户能够通过调整进程池的配置参数以实现调整对NAS服务进程池的调整。

S102:启动父进程,并令父进程根据配置参数创建NAS服务进程池;

这里NAS服务进程池为父进程根据配置参数创建的,该NAS服务进程池中的进程的数量及进程中的线程数量由配置参数决定;

基于现有技术中多进程模型会使数据通信变得极为复杂,本申请利用父进程根据配置参数创建NAS服务进程池,由于子进程继承了父进程的文件描述符时,相当于调用了dup函数,使得父子进程共享文件表项,即共同操作同一个文件,当一个进程修改了文件,另一个进程能够知道该文件被修改了,这就令被父进程建立的服务进程之间的数据通信复杂度大幅度降低,进而提升了处理效率,减少了系统资源占用率。

S103:当接收到客户端的连接请求时,根据客户端的属性信息从NAS服务进程池中调用对应的服务进程处理连接请求。

这里提到的,根据客户端的属性信息从NAS服务进程池中调用对应的服务进程处理连接请求,其目的在于令各服务进程分散处理客户端的连接请求,使得当某个进程或线程出现问题时不会影响到其它进程或线程的运行,达到提高NAS服务的健壮性的目的;

可选的,根据客户端的属性信息从NAS服务进程池中调用对应的服务进程处理连接请求,具体可以为:

根据客户端的属性信息通过第一散列算法计算客户端的散列值;

根据散列值从NAS服务进程池中调用对应的服务进程处理连接请求;

这里提到的散列算法,其目的在于把任意长度的输入(又叫做预映射,pre-image)通过散列算法,变换成固定长度的输出,该输出就是散列值,这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,而不可能从散列值来唯一的确定输入值,简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数;例如,NAS服务进程池中设置了10个服务进程,当接收到100个客户端发送的连接请求时,第一散列算法会根据客户端的属性信息(如IP地址)将100个客户端压缩至0-9中,压缩得到的值即为散列值,将散列值以0开头的客户端交给编号为0的服务进程处理,将散列值以1开头的客户端交给编号为1的服务进程处理……,以此类推,通过这种方式完成对客户端的连接请求的划分,实现NAS服务的负载均衡;

可选的,这里提到的客户端的属性信息具体可以为客户端的IP地址,也可以为客户端的端口信息。

基于上述技术方案,本申请所提供的一种NAS服务节点实现NAS服务的方法,通过父进程复用创建NAS服务进程池,令被建立的服务进程之间的数据通信复杂度大幅度降低,进而提升了处理效率,减少了系统资源占用率;同时,通过令父进程根据进程池中的进程数及进程中的线程数创建NAS服务进程池,实现了NAS服务的多进程多线程模式,当某个进程或线程出现问题时不会影响到其它进程或线程的运行,提高了NAS服务的健壮性;最后根据客户端的属性信息从NAS服务进程池中调用对应的服务进程处理该连接请求,实现了NAS服务的负载均衡。

基于上述实施例针对的是NAS服务节点为一个的情况,在上述实施例的基础上,针对于NAS服务节点为多个的情况,本申请还提供了另一种NAS服务节点实现NAS服务的方法,请参考图2,图2为本申请实施例所提供的另一种NAS服务节点实现NAS服务的方法的流程图。

其具体包括以下步骤:

S201:解析用户输入的进程池配置,得到配置参数;

S202:启动父进程,并令父进程根据配置参数创建NAS服务进程池;

需要说明的是,本申请实施例中步骤S201及S202与上一实施例中的步骤S101及S102相同,这里不再作具体描述。

S203:接收到客户端的连接请求;

S204:根据第二散列算法计算的散列值从各NAS服务节点中选择连接请求的处理节点;

这里提到的,当接收到客户端的连接请求时,根据第二散列算法计算的散列值从各NAS服务节点中选择连接请求的处理节点,其目的在于实现整个服务端的负载均衡;

可选的,具体可以根据ProceessNode=hash(IP:PORT)/NODENUM计算处理节点;

其中,ProceessNode为服务节点的散列值,hash(IP:PORT)为变量为客户端IP地址及端口号PORT的散列函数,NODENUM为NAS服务节点的总数;

这里提到的第二散列算法与第一散列算法类似,区别在于第二散列算法用于处理节点的计算;

S205:令处理节点处理连接请求。

当确定连接请求的处理节点后,令处理节点处理连接请求。

可选的,这里提到的处理过程可以为如上一实施例中步骤S103所描述的处理过程。

请参考图3,图3为本申请实施例所提供的一种NAS服务节点实现NAS服务的系统的结构示意图。

该系统可以包括:

解析模块100,用于解析用户输入的进程池配置,得到配置参数;其中,配置参数包括进程池中的进程数及进程中的线程数;

启动模块200,用于启动父进程,并令父进程根据配置参数创建NAS服务进程池;

调用模块300,用于当接收到客户端的连接请求时,根据客户端的属性信息从NAS服务进程池中调用对应的服务进程处理连接请求。

请参考图4,图4为本申请实施例所提供的另一种NAS服务节点实现NAS服务的系统的结构示意图。

该调用模块300可以包括:

计算子模块,用于根据客户端的属性信息通过第一散列算法计算客户端的散列值;

调用子模块,用于根据散列值从NAS服务进程池中调用对应的服务进程处理连接请求。

该系统还可以包括:

接收模块,用于接收客户端的连接请求;

选择模块,用于根据第二散列算法计算的散列值从各NAS服务节点中选择连接请求的处理节点;

命令模块,用于令处理节点处理连接请求。

以上系统的各个组成部分可以应用于以下的一个实施例中:

解析模块解析用户输入的进程池配置,得到配置参数;启动模块启动父进程,并令父进程根据配置参数创建NAS服务进程池;当接收模块接收到客户端的连接请求时,选择模块根据第二散列算法计算的散列值从各NAS服务节点中选择连接请求的处理节点,命令模块令处理节点处理该连接请求;计算子模块根据客户端的属性信息通过第一散列算法计算客户端的散列值,调用子模块根据散列值从NAS服务进程池中调用对应的服务进程处理连接请求。

请参考图5,图5为本申请实施例所提供的一种NAS服务器的结构示意图。

该服务器可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)422(例如,一个或一个以上处理器)和存储器432,一个或一个以上存储应用程序442或数据444的存储介质430(例如一个或一个以上海量存储服务器)。其中,存储器432和存储介质430可以是短暂存储或持久存储。存储在存储介质430的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对系统中的一系列指令操作。更进一步地,中央处理器422可以设置为与存储介质430通信,在NAS服务器400上执行存储介质430中的一系列指令操作。

NAS服务器400还可以包括一个或一个以上电源424,一个或一个以上有线或无线网络接口450,一个或一个以上输入输出接口458,和/或,一个或一个以上操作系统441,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。

上述图1至图2所描述的NAS服务节点实现NAS服务的方法中的步骤由NAS服务器基于该图5所示的结构实现。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,系统和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统、设备和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,系统或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。

作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。

集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,功能调用系统,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

以上对本申请所提供的一种NAS服务节点实现NAS服务的方法、系统、NAS服务器及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。

还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者NAS服务节点不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者NAS服务节点所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1