访问超级计算中心上服务程序的方法及系统与流程

文档序号:11254012
访问超级计算中心上服务程序的方法及系统与流程

本发明涉及云计算技术领域,尤其是访问超级计算中心上服务程序的方法及系统。



背景技术:

超算计算中心的计算机环境通常是一个网络受限环境。用户访问超级计算中心时,通常需要先建立VPN链路,然后使用Putty/Xshell/SecureCRT等超级终端登录到超级计算中心系统中进行相应的操作。这是由于超级计算中心的系统本身是一个公共互联网隔离的系统,用户无法通过互联网直接访问超级计算中心的服务器;超级计算中心上的服务器也无法直接访问互联网。

但在很多情况下,用户需要在超级计算中心上运行一些私有服务,用来采集作业的数据、作业运行的实时状态等,并希望通过互联网安全地访问到这些数据。现在常用的方法就是使用安全外壳协议(即,SSH协议)的端口转发功能,如图1所示,将超级计算中心110上的服务端口通过SSH隧道转发到对应的客户端120的一个本地端口上,用户可以通过访问本地端口来与超级计算中心上服务进行通讯。但是,超级计算中心所提供的服务程序都是基于TCP socket,因此启动服务时需要使用一个或多个服务器上的端口,如SSH服务默认是22端口,HTTP服务默认是80端口。由于端口1~1023是系统特权端口,普通用户只能使用大于1023的端口,但端口是有限资源,对于超级计算中心这样拥有众多用户的系统,端口资源更显紧张。因此,大量启动基于TCP socket的服务的一个缺点就是端口数量有限,一个用户占用的端口,其他用户便无法使用,在灵活性上也会受到限制。另外,使用基于端口的服务,会将端口暴露给超级计算中心服务器上的所有用户,在同一服务器上的其他用户可以扫描端口进行访问尝试,因此在服务的安全性方面也存在问题。

综上,需要一种既能够解决端口资源紧张的问题、又能保证服务安全性的访问超级计算中心上服务程序的方案。



技术实现要素:

为此,本发明提供了访问超级计算中心上服务程序的方案,以力图解决或者至少缓解上面存在的至少一个问题。

根据本发明的一个方面,提供了一种服务程序的访问方法,该方法在调度服务器上执行,调度服务器分别与超级计算中心、客户端相连,在超级计算中心上以客户端用户的身份运行各自的服务程序,且服务程序通过进程间通讯与用作通讯接口的接口文件相关联,该方法包括步骤:接收由客户端发送的访问服务程序的请求,该请求包含该客户端上的用户标识;根据用户标识确定服务程序所对应的超级计算中心上的接口文件;以及利用安全外壳协议将所确定的接口文件映射为调度服务器本地的某个服务,以便客户端通过访问调度服务器本地的该服务来访问服务程序。

可选地,在根据本发明的服务程序的访问方法中,根据用户标识确定服务程序所对应的超级计算中心上的接口文件的步骤还包括:预先存储客户端用户的访问权限列表,用于记录每个用户标识对应的服务程序、以及该服务程序所关联的超级计算中心上的接口文件的文件标识。

可选地,在根据本发明的服务程序的访问方法中,调度服务器与所述客户端之间通过进程间通讯或TCP协议进行通讯。

可选地,在根据本发明的服务程序的访问方法中,利用安全外壳协议将所确定的接口文件映射为调度服务器本地的某个服务的步骤包括:利用安全外壳协议将所确定的接口文件映射到调度服务器本地的服务文件,以便客户端通过进程间通讯访问本地的服务文件来访问所述服务程序。

可选地,在根据本发明的服务程序的访问方法中,利用安全外壳协议将所确定的接口文件映射为调度服务器本地的某个服务的步骤包括:利用安全外壳协议将所确定的接口文件映射为调度服务器本地的TCP端口上的某个服务,以便客户端通过TCP的方式来访问所述服务程序。

可选地,在根据本发明的服务程序的访问方法中,当TCP端口为本地回环地址时,该方法还包括步骤:通过调度服务器上的公有服务层接收来自客户端的访问服务程序的请求;以及通过公有服务层以TCP方式访问映射到本地回环地址上的服务。

可选地,在根据本发明的服务程序的访问方法中,预先存储客户端用户的访问权限列表的步骤还包括:通过公有服务层设置客户端对服务程序的访问权限。

可选地,在根据本发明的服务程序的访问方法中,进程间通讯为UNIXDomain Socket,接口文件为UNIX Domain Socket文件。

根据本发明的另一个方面,提供了一种访问超级计算中心的系统,该系统包括:超级计算中心,适于以客户端用户的身份运行各自的服务程序,其中,服务程序通过进程间通讯与用作通讯接口的接口文件相关联;客户端,适于发送访问运行在超级计算中心上的服务程序的请求给调度服务器,该请求中包含客户端上的用户标识;调度服务器,分别与超级计算中心和客户端相连,适于在接收到客户端的访问请求后,根据用户标识确定请求访问的服务程序所对应的超级计算中心上的接口文件、并利用安全外壳协议将该接口文件映射为调度服务器本地的某个服务;以及客户端还适于通过访问调度服务器本地的该服务来访问所述服务程序。

可选地,在根据本发明的系统中,调度服务器还适于存储客户端用户的访问权限列表,用于记录每个用户标识对应的服务程序、以及该服务程序所关联的超级计算中心上的接口文件的文件标识。

可选地,在根据本发明的系统中,调度服务器适于以进程间通讯的方式或TCP协议与客户端进行通讯。

可选地,在根据本发明的系统中,调度服务器适于利用安全外壳协议将所确定的接口文件映射到本地的服务文件;客户端适于通过进程间通讯访问本地的服务文件来访问服务程序。

可选地,在根据本发明的系统中,调度服务器还适于利用安全外壳协议将所确定的接口文件映射为本地TCP端口上的某个服务;以及客户端还适于通过该TCP端口访问该服务。

可选地,在根据本发明的系统中,当TCP端口为本地回环地址时,调度服务器还包括公有服务器,公有服务器适于接收来自客户端的访问服务程序的请求、并以TCP方式访问映射在本地回环地址上的服务。

可选地,在根据本发明的系统中,公有服务器还适于设置客户端用户对服务程序的访问权限。

可选地,在根据本发明的系统中,进程间通讯为UNIX Domain Socket,接口文件为UNIX Domain Socket文件。

根据本发明的访问超级计算中心上服务程序的方案,将超级计算中心上的服务程序通过进程间通讯与用作通讯接口的接口文件相关联,当客户端用户要访问超级计算中心上的服务程序时,通过调度服务器将该服务程序的接口文件映射到调度服务器本地的一个服务上,以供客户端直接访问,一方面可以不受端口资源的限制,另一方面也避免了同一系统上其他用户非法访问,提高了安全性。

附图说明

为了实现上述以及相关目的,本文结合下面的描述和附图来描述某些说明性方面,这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面旨在落入所要求保护的主题的范围内。通过结合附图阅读下面的详细描述,本公开的上述以及其它目的、特征和优势将变得更加明显。遍及本公开,相同的附图标记通常指代相同的部件或元素。

图1示出了现有技术中访问超级计算中心上服务程序的一个方案的示意图;

图2示出了根据本发明一个实施例的访问超级计算中心的系统200的示意图;

图3示出了根据本发明一个实施例的服务程序的访问方法300的示意图;以及

图4示出了根据本发明另一个实施例的访问超级计算中心的系统200的示意图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

图2示出了根据本发明一个实施例的访问超级计算中心的系统200的示意图。如图2所示,该系统200包括多个超级计算中心210、调度服务器220和多个客户端230,且调度服务器220分别与超级计算中心210和客户端230相连接。

根据一种实现方式,每个超级计算中心210中都包含至少一个集群,每个集群又包括多个服务器(或,称作计算节点),超级计算中心210通过这些计算节点运行各种服务程序(或作业),完成计算任务。

在超级计算中心210的服务器上,每个客户端230的服务程序都以客户端用户自己的身份运行,例如,在超级计算中心210上,User A/B/C分别以自己的身份运行各自的服务程序,不需要使用中间代理用户,这样就不会存在用户身份切换的问题。同时,服务程序通过进程间通讯与用作通讯接口的接口文件相关联,根据本发明的一个实施例,进程间通讯为UNIX DomainSocket,接口文件就是UNIX Domain Socket文件,也就是说,将服务程序绑定到UNIX Domain Socket文件上。相比于使用TCP socket,由于UNIX Domain Socket不需要经过网络协议栈,不需要打包拆包、计算校验和等,只是将应用层数据从一个进程拷贝到另一个进程,因此不需要开放或监听系统的端口;另外,UNIX Domain Socket使用完全基于文件系统安全性的socket文件作为通讯渠道,能够更好地通讯保密,位于超级计算中心210上的其他用户不能通过端口扫描的方式进行非法访问。

调度服务器220通过安全外壳协议(即,SSH协议)与超级计算中心210进行通讯,并通过进程间通讯方式或TCP协议与客户端230进行通讯,具体的通讯方式取决于服务程序在调度服务器220上的映射方式,在下文会有详细说明,此处不作展开。

如前文所述,超级计算中心210是一个网络受限的环境,为了让客户端230上的用户可以访问到其在超级计算中心210上启动的服务程序,需要将运行在超级计算中心210上用户的服务程序映射到调度服务器220上,客户端230的用户通过调度服务器220的公开服务来访问超级计算中心210上的服务程序。

结合图3,下面将重点介绍调度服务器220执行服务程序的访问方法的过程。

图3示出了根据本发明一个实施例的服务程序的访问方法300的示意图。方法300在调度服务器220上执行,该方法300始于步骤S310,接收由客户端230发送的访问服务程序的请求,该请求包含该客户端230上的用户标识userID。

随后在步骤S320中,根据用户标识userID确定要访问的服务程序所对应的超级计算中心上的接口文件。

在调度服务器220上,预先存储客户端用户的访问权限列表,用于记录每个用户标识对应的服务程序(即,每个用户在超级计算中心上启动的私有服务)、以及该服务程序所关联的超级计算中心上的接口文件的文件标识。如下表1所示:

表1客户端用户访问权限列表

可选地,该列表中还可以关联记录超级计算中心标识、集群标识。一个用户标识也可能对应多个服务程序,每个用户使用一个单独的接口文件启动自己的服务程序。还可以设置多个用户共享同一服务,如,用户A使用接口文件“service1.socket”启动一个服务程序,他希望用户B、C都可以使用这个服务,那么用户A只需要将“service1.socket”这个接口文件的文件权限分享给用户B、C,这样,用户A、B、C就可以共享同一服务了,而其他没有获得权限的用户,不能使用该服务。上述示例性地列举了一些可能的涉及用户访问权限的情况,本发明对此均不作限制。

调度服务器220根据上述的用户访问权限列表就可以确定客户端230的用户对应的服务程序所关联的接口文件。

随后在步骤S330中,利用安全外壳协议将所确定的接口文件映射为调度服务器220本地的某个服务,以便客户端230通过访问调度服务器220本地的该服务来访问服务程序。

根据本发明的一种实施方式,利用安全外壳协议SSH将所确定的接口文件映射到调度服务器220本地的服务文件,该服务文件也是UNIX DomainSocket文件。这样,客户端230可以通过进程间通讯访问本地的服务文件来访问该服务程序。如下示出了将超级计算中心上的接口文件转发到本地的UNIX Domain Socket文件的代码示例:

socat UNIX-LISTEN:/local/unix_domain_socket_file.sock\

EXEC:'ssh [email protected]\

"socat STDIO UNIX-CONNECT:/tmp/remote_socket_file.sock"'

上述代码表示,remotesever上的服务程序,其关联到了接口文件remote_socket_file上,通过该路径/tmp/remote_socket_file.sock、利用SSH协议将该接口文件映射为本地的UNIX Domain Socket文件,即,/local/unix_domain_socket_file.sock上。这种情况下,调度服务器220与客户端230之间通过进程间通讯的方式进行通讯。

根据本发明的另一种实施方式,利用安全外壳协议SSH将所确定的接口文件映射为调度服务器220本地的TCP端口上的某个服务,这样,客户端230通过TCP的方式来访问该服务程序。如下示出了将超级计算中心上的接口文件转发到本地TCP端口的代码示例:

socat TCP-LISTEN:8000,bind=127.0.0.1\

EXEC:'ssh [email protected]\

"socat STDIO UNIX-CONNECT:/tmp/remote_socket_file.sock"'

上面的示例代码是将remotesever上、关联到接口文件remote_socket_file上的服务程序,通过SSH协议转发到本地的127.0.0.0.1的8000端口上,客户端230在本地访问127.0.0.1:8000就可以访问超级计算中心上对应的服务程序了。

上述两种实现方式,即,将服务程序的接口文件映射到本地的UNIXDomain Socket文件与映射到本地的TCP端口服务上,在服务功能上并没有任何差别。只不过UNIX Domain Socket文件使用socket提供服务,而TCP端口服务则使用IP和端口提供服务。也就是前文所述的,调度服务器220通过进程间通讯方式还是TCP协议的方式与客户端230进行通讯。

更进一步地,当将所确定的接口文件映射为调度服务器220本地的TCP端口上的某个服务时,可以映射到任意本地可用的IP。如,直接映射到调度服务器220的公网IP地址上的某个服务,客户端230可以通过公网IP和相应的端口来访问该服务。

但在实际应用中,考虑到超级计算中心服务的安全性,并不会将超级计算中心210上的接口文件直接映射到调度服务器220的公网IP上,而是选择将其映射到回环地址127.0.0.1上。在这种情况下,相当于在调度服务器220上布置了一个代理层——公有服务层public service,该公有服务层可以被实现为一个或多个公有服务器,如图4所示。图4为根据本发明一个实施例的该系统200的另一种示例性示意图。

如图4,在超级计算中心210上,用户212、用户214、用户216以自己的身份运行其对应的服务程序,且各服务程序通过进程间通讯与用作通讯接口的接口文件相关联,如服务程序2122与接口文件2124相关联,服务程序2142与接口文件2144相关联,服务程序2162与接口文件2164相关联,依次类推。

调度服务器220利用SSH通道将各接口文件映射到其回环地址127.0.0.1上的对应服务。

客户端230通过Internet访问调度服务器220上的公有服务层或公有服务器224,公有服务器224接收到其访问服务程序的请求时,再通过内部TCP通讯访问映射到本地回环地址上的对应服务。通过公有服务器224,客户端230与超级计算中心210上的服务程序可以进行双向通讯,跨越了超级计算中心网络受限的制约。

可选地,在该公有服务器224上,设置客户端对服务程序的访问权限,如表1,设置用户ID001访问服务程序T1,用户ID002访问服务程序T2,当然,也可以根据需要,设置用户ID001和用户ID002均可以访问服务程序T1。通过公有服务器224,既保证了客户端上的用户能够准确、方便地访问其在超级计算中心上启动的服务程序,又避免了直接将超级计算中心210上的服务程序暴露给客户端用户的风险。

参照上文所述,根据本发明的访问超级计算中心上服务程序的方案,将超级计算中心上的服务程序通过进程间通讯与用作通讯接口的接口文件相关联,当客户端用户要访问超级计算中心上的服务程序时,通过调度服务器将该服务程序的接口文件映射到调度服务器本地的一个服务上,以供客户端直接访问,一方面可以不受端口资源的限制,另一方面也避免了同一系统上其他用户非法访问。

进一步地,通过在调度服务器上运行统一的公共服务,将超级计算中心服务器上每个用户独立运行的服务程序发布给相应的客户端用户。在保证安全性的同时,也提供了灵活性。

应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。

本领域那些技术人员应当理解在本文所公开的示例中的设备的模块或单元或组件可以布置在如该实施例中所描述的设备中,或者可替换地可以定位在与该示例中的设备不同的一个或多个设备中。前述示例中的模块可以组合为一个模块或者此外可以分成多个子模块。

本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。

本发明一并公开了:

A6、如A5所述的方法,其中,当所述TCP端口为本地回环地址时,所述服务程序的访问方法还包括步骤:通过所述调度服务器上的公有服务层接收来自客户端的访问服务程序的请求;以及通过所述公有服务层以TCP方式访问映射到所述本地回环地址上的服务。

A7、如A6所述的方法,其中,所述预先存储客户端用户的访问权限列表的步骤还包括:通过所述公有服务层设置客户端对服务程序的访问权限。

A8、如A1-7中任一项所述的方法,其中,所述进程间通讯为UNIX DomainSocket,所述接口文件为UNIX Domain Socket文件。

B14、如B13所述的系统,其中,当所述TCP端口为本地回环地址时,所述调度服务器还包括公有服务器,所述公有服务器适于接收来自客户端的访问服务程序的请求、并以TCP方式访问映射在所述本地回环地址上的服务。

B15、如B14所述的系统,其中,所述公有服务器还适于设置客户端用户对服务程序的访问权限。

B16、如B9-15中任一项所述的系统,其中,所述进程间通讯为UNIXDomain Socket,所述接口文件为UNIX Domain Socket文件。

此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。

此外,所述实施例中的一些在此被描述成可以由计算机系统的处理器或者由执行所述功能的其它装置实施的方法或方法元素的组合。因此,具有用于实施所述方法或方法元素的必要指令的处理器形成用于实施该方法或方法元素的装置。此外,装置实施例的在此所述的元素是如下装置的例子:该装置用于实施由为了实施该发明的目的的元素所执行的功能。

如在此所使用的那样,除非另行规定,使用序数词“第一”、“第二”、“第三”等等来描述普通对象仅仅表示涉及类似对象的不同实例,并且并不意图暗示这样被描述的对象必须具有时间上、空间上、排序方面或者以任意其它方式的给定顺序。

尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本技术领域内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。此外,应当注意,本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限定本发明的主题而选择的。因此,在不偏离所附权利要求书的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。对于本发明的范围,对本发明所做的公开是说明性的,而非限制性的,本发明的范围由所附权利要求书限定。

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