这是一个非常开放的问题,因为这是我第一次创build一个集群。 我只是想知道会有什么types的安全问题,以及如何防止这些问题。
在内部群集上使用SGE(当前正在安装并确定哪个时间表最好)。
将允许PVM / MPI程序和Perl程序一样运行,也可能只是分叉,因为它们是令人尴尬的并行执行的(如果我没有记错的话,SGE允许fork,但是在我编译之前,更多的信息。有人请只对此发表评论)。
将有一个连接到集群的外部节点,此节点将提交从Internet / Server接收的作业。
所有的用户都必须通过互联网向服务器提交他们的请求(试图想办法避免他们在本地连接时绕过)。
最终允许任何人通过互联网提交作业运行,然后在程序完成时通知。 此外,允许他们查看数据,甚至可以下载数据以供离线查看。
不太可能,但可能:当我们的程序不足时,甚至可能允许用户上传程序来微调他们的数据。
阻碍人们在本地(从计算节点)或通过使用远程shell会话提交作业的一个简单方法是禁止计算和IO节点上的用户使用sshlogin – 有几个如何不破坏SGE的方法。 不用说,这样做可以控制哪个主机作为提交机器。
主要的安全工作必须在login/门户节点上完成,并有适当的文档和定义的接口,供人们做他们打算在那里做的事情。 Globus Toolkit通过SSH进行grid-ftp传输,或者为此提供全面的PKI。
或者你也可以准备一个门户网站,反过来使用DRMAA API从python,ruby,java等提交作业,并提供上传/下载程序或系统数据的方式和手段。
通常,安全性对于大多数HPC安装来说并不是一个大问题,而通常的UNIX多用户安全原则则完全适用。 分布式资源pipe理甚至可以帮助您避免滥用资源和类似的东西。
对于问题的数据查看部分:我通常实现了几个桌面节点,这些节点是为开发和debugging等交互式工作而保留的。 大多数时候,他们还包含GPU,我configurationTruboVNC + VirtualGL让人们在开始向其他存储和/或他们的桌面(他们提交VNC桌面会话SGE)的长时间传输开始之前在本地查看他们的数据。 帮助他们保持本地在集群和VNC的正确设置允许非常快速的体验,即使通过广域网types的链接高深的3D可视化。 您也可以将一个(较慢的)VNC查看器embedded您的门户网站。
我们做了一个每小时运行两次的家务脚本,杀死了SGE不知道的所有工作。 这个效果很好,清理出了某些原因在节点上运行的进程。