一种实现共享的方法和系统与流程

文档序号:11253979阅读:745来源:国知局
一种实现共享的方法和系统与流程

本发明涉及集群技术,尤指一种实现共享的方法和系统。



背景技术:

计算机集群(computercluster)是指通过网络连接的一些计算节点组成的整体,这些计算节点通过软件调度协调工作,使得整个集群的运行模式如同一台单一计算机一样。当前,计算机集群计算已经广泛应用于大数据、云计算、高性能计算得到那个多个信息技术(it,internettechnology)领域。

存储是计算机集群,特别是高性能计算机集群系统中常见的组成部分,随着计算机集群的发展,存储也呈现出不同的特征,常见的存储类型包括网络附属存储(nas,networkattachedstorage),存储区域网络(san,storageareanetwork)等。而其中nas作为最常见的计算机集群中的存储类型,多采用网络文件系统(nfs,networkfilesystem)协议来进行文件的操作和共享。nfs协议允许客户端计算机(client)通过计算机网络像访问本地存储一样访问其他计算机上通过nfs协议共享的文件。

当前,nfs协议已经被广泛的应用在高性能计算集群中。一种常用的使用方式是存储节点通过nfs协议把自身上的/home目录在集群中共享,计算节点通过挂载操作(即mount)的方式即可以挂载该目录并读写其中的数据。从而实现整个计算机集群共享同一个/home目录的效果。

对于当前主流的基于nfs协议的文件共享方式,在使用上有几个潜在的问题:首先,服务(server)端的共享和客户(client)端的挂载都只能通过根(root)用户权限完成,限制了普通用户进行操作的可能;其次,一旦client端的挂载完成,client端就具有了对整个挂载目录的操作权限,存在一定的安全风险;即client端的root用户可以修改、删除挂载目录中的任何文件。



技术实现要素:

本发明实施例提供了一种实现共享的方法和系统,能够使任意用户具备操作的可能,同时提高安全性。

本发明实施例提供了一种实现共享的方法,应用于集群系统,所述集群系统包括:管理模块、存储模块和一个或一个以上计算节点;管理模块所在的节点、存储模块所在的节点和计算节点通过交换机实现通信;

所述方法包括:

计算节点接收到来自用户的挂载命令,向存储模块所在的节点发送挂载命令;其中,挂载命令包括挂载的目录、存储模块所在的节点标识和用户名;

存储模块所在的节点接收到来自计算节点的挂载命令,判断用户名对应的用户是否具有对挂载的目录进行挂载的权限,如果是,则向计算节点返回表示具备挂载权限的消息;

计算节点接收到表示具备挂载权限的消息,加载挂载的目录。

可选的,该方法还包括:

所述计算节点接收到来自所述用户的卸载命令,向所述存储模块所在的节点发送所述卸载命令;其中,所述卸载命令包括用户名和卸载的目录;

所述存储模块所在的节点接收到来自计算节点的卸载命令,判断用户名对应的用户是否具有对卸载的目录进行卸载的权限,如果是,则向所述计算节点返回表示具备卸载权限的消息;

所述计算节点接收到表示具备卸载权限的消息,删除卸载的目录。

可选的,该方法还包括:

当所述存储模块和所述管理模块位于不同的节点时,所述管理模块所在的节点接收到来自用户的挂载命令,向所述存储模块所在的节点发送挂载命令;其中,所述挂载命令包括挂载的目录、存储模块所在的节点标识和用户名;

存储模块所在的节点接收到来自管理模块所在的节点的挂载命令,判断所述用户名对应的用户是否具有对挂载的目录进行挂载的权限,如果是,则向所述管理模块所在的节点返回表示具备挂载权限的消息;

所述管理模块所在的节点接收到表示具备挂载权限的消息,加载挂载的目录。

可选的,该方法还包括:

所述管理模块所在的节点接收到来自所述用户的卸载命令,向所述存储模块所在的节点发送卸载命令;其中,所述卸载命令包括用户名和卸载的目录;

所述存储模块所在的节点接收到来自管理模块所在的节点的卸载命令,判断用户名对应的用户是否具有对卸载的目录进行卸载的权限,如果是,则向所述管理模块所在的节点返回表示具备卸载权限的消息;

所述管理模块所在的节点接收到表示具备卸载权限的消息,删除卸载的目录。

可选的,所述存储模块所在的节点与所述管理模块所在的节点或所述计算节点之间采用安全壳ssh协议进行通信。

本发明实施例还提出了一种实现共享的系统,包括:

管理模块、存储模块和一个或一个以上计算节点;

管理模块所在的节点、存储模块所在的节点和计算节点通过交换机实现通信;

计算节点,用于接收到来自用户的挂载命令,向存储模块所在的节点发送挂载命令;其中,挂载命令包括挂载的目录、存储模块所在的节点标识和用户名;接收到表示具备挂载权限的消息,加载挂载的目录;

存储模块所在的节点,用于接收到来自计算节点的挂载命令,判断用户名对应的用户是否具有对挂载的目录进行挂载的权限,如果是,则向计算节点返回表示具备挂载权限的消息。

可选的,所述计算节点还用于:

接收到来自所述用户的卸载命令,向所述存储模块所在的节点发送所述卸载命令;其中,所述卸载命令包括用户名和卸载的目录;接收到表示具备卸载权限的消息,删除卸载的目录;

所述存储模块所在的节点,用于接收到来自计算节点的卸载命令,判断用户名对应的用户是否具有对卸载的目录进行卸载的权限,如果是,则向所述计算节点返回表示具备卸载权限的消息。

可选的,当所述存储模块和所述管理模块位于不同的节点时,所述管理模块所在的节点用于:

接收到来自用户的挂载命令,向所述存储模块所在的节点发送挂载命令;其中,所述挂载命令包括挂载的目录、存储模块所在的节点标识和用户名;接收到表示具备挂载权限的消息,加载挂载的目录;

存储模块所在的节点,用于接收到来自管理模块所在的节点的挂载命令,判断所述用户名对应的用户是否具有对挂载的目录进行挂载的权限,如果是,则向所述管理模块所在的节点返回表示具备挂载权限的消息。

可选的,所述管理模块所在的节点还用于:

接收到来自所述用户的卸载命令,向所述存储模块所在的节点发送卸载命令;其中,所述卸载命令包括用户名和卸载的目录;接收到表示具备卸载权限的消息,删除卸载的目录;

所述存储模块所在的节点还用于:

接收到来自管理模块所在的节点的卸载命令,判断用户名对应的用户是否具有对卸载的目录进行卸载的权限,如果是,则向所述管理模块所在的节点返回表示具备卸载权限的消息。

可选的,所述存储模块所在的节点与所述管理模块所在的节点或所述计算节点之间采用安全壳ssh协议进行通信。

与相关技术相比,本发明实施例包括:计算节点接收到来自用户的挂载命令,向存储模块所在的节点发送挂载命令;其中,挂载命令包括挂载的目录、存储模块所在的节点标识和用户名;存储模块所在的节点判断用户名对应的用户是否具有对挂载的目录进行挂载的权限,如果是,则向计算节点返回表示具备挂载权限的消息;计算节点接收到表示具备挂载权限的消息,加载挂载的目录。通过本发明实施例的方案,计算节点通过挂载命令实现挂载,实现了任意用户具备操作的可能,同时提高了安全性。

本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。

附图说明

附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。

图1为本发明实施例集群系统的结构组成示意图;

图2为本发明实施例实现共享的方法的流程图;

图3为本发明实施例实现共享的系统的结构组成示意图。

具体实施方式

下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。

在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

在介绍本发明实施例的实现共享的方法之前,首先介绍集群系统的拓扑结构。参见图1,本发明实施例的实现共享的方法所涉及的集群系统包括:

管理模块、存储模块和一个或一个以上计算节点;

其中,管理模块和存储模块可以位于同一个节点,也可以位于不同的节点。当管理模块和存储模块位于不同的节点时,管理模块可以采用一个或多个节点实现,管理模块所在的节点之间处互联网协议(ip,internetprotocol)地址不一样之外,其他的配置方式没有区别。

其中,管理模块所在的节点,存储模块所在的节点和计算节点之间通过一个或一个以上交换机实现通信。

其中,管理模块所在的节点、存储模块所在的节点和计算节点上部署有linux操作系统,且所有节点部署的linux操作系统类型和版本号相同。其中,linux操作系统的发行版本例如redhat、suse、ubuntu等。

其中,管理模块所在的节点、存储模块所在的节点和计算节点之间可以位于同一子网,也可以位于不同子网。为了便于各节点ip地址的设置,可以将各节点位于同一子网内。这样,各节点的ip地址可以是192.168.1.*或者10.10.10.*。

其中,可以先在管理模块所在的节点创建用户(包括普通用户和root用户),生成对应的用户名和密码,然后将创建的用户的用户名和密码通过网络信息服务(nis,networkinformationservice)共享给每一个计算节点和存储模块所在的节点;

或者,在管理模块所在的节点创建用户,生成对应的用户名和密码;然后在每一个计算节点和存储模块所在的节点创建相同的用户。这样,用户就可以在管理模块所在的节点或计算节点上采用生成的用户名和密码进行登录,然后进行操作。

例如,图1中,管理模块所在的节点分别创建了三个普通用户,分别为user1、user2、user3,并设置对应的密码,然后通过nis服务分享给每一个计算节点和存储模块所在的节点。

各个节点具体如何创建用户可以采用本领域熟知的技术实现,并不用于限定本发明的保护范围,这里不再赘述。

其中,各个节点之间可以采用安全壳(ssh,secureshell)协议进行通信。预先在存储模块所在的节点上部署ssh协议的服务器端守护进程(sshd,sshdaemon)服务,并在计算节点和管理模块所在的节点上部署ssh文件系统(sshfs,sshfilesystem)服务,从而存储模块所在的节点与计算节点或管理模块所在的节点之间就可以采用ssh协议进行通信。

当存储模块和管理模块位于同一个节点时,则不需要在管理模块所在的节点上部署ssh协议的客户端守护进程sshfs服务。

参见图2,本发明实施例提出了一种实现共享的方法,包括:

步骤200、计算节点接收到来自用户的挂载命令,向存储模块所在的节点发送挂载命令。

本步骤中,挂载命令包括挂载的目录、存储模块所在的节点标识和用户名。其中,存储模块所在的节点表示可以是存储模块所在的节点的域名。例如,用户在计算节点上登录后,可以输入如下挂载命令:

>sshfsuser1@su01:/home/user1//home/user1/

其中,sshfs为预先部署的基于ssh协议的客户端守护进程sshfs服务,user1为登录的用户名,su01为存储模块所在的节点标识,前一个/home/user1/为存储模块所在的节点su01中预备挂载的目录,后一个/home/user1/为用于挂载的计算节点上的目录。

本步骤中,计算节点可以采用ssh协议向存储模块所在的节点发送挂载命令。

本步骤中,用户包括普通用户和root用户。对于普通用户,只能挂载/home目录下的数据,root用户则可以挂载/home目录和/home目录外的数据,也可以挂载整个/home目录。

步骤201、存储模块所在的节点接收到来自计算节点的挂载命令,判断用户名对应的用户是否具有对挂载的目录进行挂载的权限,如果是,则向计算节点返回表示具备挂载权限的消息。

本步骤中,判断用户名对应的用户是否具有对挂载的目录进行挂载的权限包括:

在预先存储的用户名列表中查找到挂载命令中的用户名,且判断出用户名对应的用户具有对挂载命令中挂载的目录进行读写的权限。

其中,可以根据预先设置的用户名和具有读写权限的目录之间的对应关系来判断是否具有对挂载的目录进行读写的权限。如果在对应关系中查找到用户名对应的具有读写权限的目录中包括挂载的目录,则判断出用户名对应的用户具有对挂载的目录进行读写的权限;如果在对应关系中查找不到用户名对应的具有读写权限的目录,或者在对应关系中查找到用户名对应的具有读写权限的目录中不包括挂载的目录,则判断出用户名对应的用户不具有对挂载的目录进行读写的权限。

本步骤中,存储模块所在的节点可以采用ssh协议向计算节点返回表示具备挂载权限的消息。

可选的,当存储模块所在的节点判断出发送挂载命令的用户不具有对挂载的目录进行挂载的权限时,向计算节点返回表示没有挂载权限的消息。

其中,存储模块所在的节点可以采用ssh协议向计算节点返回表示没有挂载权限的消息。

步骤202、计算节点接收到表示具备挂载权限的消息,加载挂载的目录。

本步骤中,计算节点可以将挂载的目录加载到预先部署的用户空间文件系统(filesysteminuserspace)中。

可选的,该方法还包括:

计算节点接收到来自用户的卸载命令,向存储模块所在的节点发送卸载命令;其中,卸载命令包括用户名和卸载的目录;

存储模块所在的节点接收到来自计算节点的卸载命令,判断用户名对应的用户是否具有对卸载的目录进行卸载的权限,如果是,则向计算节点返回表示具备卸载权限的消息;

计算节点接收到表示具备卸载权限的消息,删除卸载的目录。

其中,判断用户名对应的用户是否具有对卸载的目录进行卸载的权限包括:

在预先存储的用户名列表中查找到卸载命令中的用户名,且判断出用户名对应的用户具有对卸载命令中卸载的目录进行读写的权限。

其中,可以根据预先设置的用户名和具有读写权限的目录之间的对应关系来判断是否具有对卸载的目录进行读写的权限。如果在对应关系中查找到用户名对应的具有读写权限的目录中包括卸载的目录,则判断出用户名对应的用户具有对卸载的目录进行读写的权限;如果在对应关系中查找不到用户名对应的具有读写权限的目录,或者在对应关系中查找到用户名对应的具有读写权限的目录中不包括卸载的目录,则判断出用户名对应的用户不具有对卸载的目录进行读写的权限。

可选的,当存储模块所在的节点判断出用户名对应的用户不具有对卸载的目录进行卸载的权限时,向计算节点返回表示没有卸载权限的消息。

其中,计算节点可以通过预先部署的用户空间文件系统删除卸载的目录。

可选的,该方法还包括:

当存储模块和管理模块位于不同的节点时,管理模块所在的节点接收到来自用户的挂载命令,向存储模块所在的节点发送挂载命令;其中,挂载命令包括挂载的目录、存储模块所在的节点标识和用户名;

存储模块所在的节点接收到来自管理模块所在的节点的挂载命令,判断用户名对应的用户是否具有对挂载的目录进行挂载的权限,如果是,则向管理模块所在的节点返回表示具备挂载权限的消息;

管理模块所在的节点接收到表示具备挂载权限的消息,加载挂载的目录。

可选的,当存储模块所在的节点判断出发送挂载命令的用户不具有对挂载的目录进行挂载的权限时,向管理模块所在的节点返回表示没有挂载权限的消息。

其中,管理模块所在的节点可以采用ssh协议向存储模块所在的节点发送挂载命令,存储模块所在的节点可以采用ssh协议向管理模块所在的节点返回表示具备挂载权限的消息或表示没有挂载权限的消息。

本步骤中,管理模块所在的节点可以将挂载的目录加载到预先部署的用户空间文件系统中。

可选的,该方法还包括:

管理模块所在的节点接收到来自用户的卸载命令,向存储模块所在的节点发送卸载命令;其中,卸载命令包括用户名和卸载的目录;

存储模块所在的节点接收到来自管理模块所在的节点的卸载命令,判断用户名对应的用户是否具有对卸载的目录进行卸载的权限,如果是,则向管理模块所在的节点返回表示具备卸载权限的消息;

管理模块所在的节点接收到表示具备卸载权限的消息,删除卸载的目录。

可选的,当存储模块所在的节点判断出用户名对应的用户不具有对卸载的目录进行卸载的权限时,向管理模块所在的节点返回表示没有卸载权限的消息。

其中,计算节点可以通过预先部署的用户空间文件系统删除卸载的目录。

上述方法中,普通用户可以卸载自身挂载的目录。例如,当user1用户想在某个计算节点上卸载/home/user1/时,可以使用如下卸载命令:

>fusermount-u/home/user1/

root用户既可以卸载自身挂载的目录,也可以卸载将普通用户挂载的目录。例如,当root用户想对其挂载的目录进行卸载时,可以使用如下卸载命令:

>fusermount-u/home/

>fusermount-u/opt/

通过本发明实施例的方案,计算节点通过挂载命令实现挂载,实现了任意用户具备操作的可能,同时提高了安全性。

参见图3,本发明实施例还提出了一种实现共享的系统,包括:

管理模块、存储模块和一个或一个以上计算节点;

管理模块所在的节点、存储模块所在的节点和计算节点通过交换机实现通信;

计算节点,用于接收到来自用户的挂载命令,向存储模块所在的节点发送挂载命令;其中,挂载命令包括挂载的目录、存储模块所在的节点标识和用户名;接收到表示具备挂载权限的消息,加载挂载的目录;

存储模块所在的节点,用于接收到来自计算节点的挂载命令,判断用户名对应的用户是否具有对挂载的目录进行挂载的权限,如果是,则向计算节点返回表示具备挂载权限的消息。

可选的,所述计算节点还用于:

接收到来自所述用户的卸载命令,向所述存储模块所在的节点发送所述卸载命令;其中,所述卸载命令包括用户名和卸载的目录;接收到表示具备卸载权限的消息,删除卸载的目录;

所述存储模块所在的节点,用于接收到来自计算节点的卸载命令,判断用户名对应的用户是否具有对卸载的目录进行卸载的权限,如果是,则向所述计算节点返回表示具备卸载权限的消息。

可选的,当所述存储模块和所述管理模块位于不同的节点时,所述管理模块所在的节点用于:

接收到来自用户的挂载命令,向所述存储模块所在的节点发送挂载命令;其中,所述挂载命令包括挂载的目录、存储模块所在的节点标识和用户名;接收到表示具备挂载权限的消息,加载挂载的目录;

存储模块所在的节点,用于接收到来自管理模块所在的节点的挂载命令,判断所述用户名对应的用户是否具有对挂载的目录进行挂载的权限,如果是,则向所述管理模块所在的节点返回表示具备挂载权限的消息。

可选的,所述管理模块所在的节点还用于:

接收到来自所述用户的卸载命令,向所述存储模块所在的节点发送卸载命令;其中,所述卸载命令包括用户名和卸载的目录;接收到表示具备卸载权限的消息,删除卸载的目录;

所述存储模块所在的节点还用于:

接收到来自管理模块所在的节点的卸载命令,判断用户名对应的用户是否具有对卸载的目录进行卸载的权限,如果是,则向所述管理模块所在的节点返回表示具备卸载权限的消息。

可选的,所述存储模块所在的节点与所述管理模块所在的节点或所述计算节点之间采用安全壳ssh协议进行通信。

虽然本发明所揭露的实施方式如上,但所述的内容仅为便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式及细节上进行任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。

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