摘要:本文描述了如何建立ssh隧道实现安全云计算。本文以putty为例,说明如何在windows 10与华为云之间建立隧道;以Linux或Mac的命令行为例说明如何建立本地与远程服务器的SSH隧道;以及建立隧道后如何进行Flare的waterswap结合自由能计算。
前言
在博文《Flare教程 | WaterSwap-如何整合公有云加速结合自由能的计算》详细描述了如何将作业分配到公有云上计算。本文是上文的补充,详细解释了如何在本地机器与远程机器之间建立ssh隧道实现安全的公有云计算。
服务器的配置与操作系统
这里测试是华为云c3.4xlarge.2配有16vCPUs与32GB的内存,我们推荐主机的配置至少包含16个核心以便确保作业以合理的速度完成。
Figure 1. c3.4xlarge.2的配置
操作系统采用Centos 7.6(64BIT)公共镜像,并配置了40GB的硬盘与1M的带宽,请记住公网IP。
配置好root的密码后,开机。远程以root登录,创建普通用户gkxiao。软件安装在普通用户的主目录下。
云端的软件安装
1. Flare软件的安装
(1)软件安装:
[gkxiao@master apps]$ tar -zvxf Flare.tgz
(2) license安装
将license文件放在cresset/licenses目录里
(3) 检查FieldEngine是否可用
运行安装目录里的cresset/Flare/bin/FieldEngine
[gkxiao@master ~]$ /public/apps/cresset/Flare/bin/FieldEngine
出现类似如下提示:
1 2 3 4 | [2017-12-04 10:59:14.611 I] default: Creating socket for communications... master:33144 [2017-12-04 10:59:14.612 I] default: Running on "master" [2017-12-04 10:59:14.612 I] default: Now listening on port 33144 |
其中master是我服务器的名称,这个会有不同,其它的应该大致与上面一致。
可能会出现libGLU.so.1找不到的提示,请按照《Linux命令极简教程》安装对应软件包。
先了解libGLU.so.1在哪个包里提供,我用的是centos,所以用yum命令:
1 | yum whatprovides libGLU.so.1 |
在我这里提示由mesa-libGLU-9.0.0-4.el7.i686提供,所以再安装这个包:
1 | yum install mesa-libGLU-9.0.0-4.el7.i686 |
再安装mesa-libGLU-devel.x86_64:
1 | yum install mesa-libGLU-devel.x86_64 |
2. 安装BROKER 2.0
(1)下载Cresset Engine Broker 2.0
提供rpm与tgz两种下载文件:tgz可以安装于任意地方,不需要root权限;rpm需要root权限。
(2)安装Broker
tgz文件的安装方法
[gkxiao@master ~]$ tar -xzf CEB2_64.tgz
rpm文件的安装方法:
[gkxiao@master ~]$ yum -y install ceb2.x86_64.rpm
RPM方式安装后,文件被放置于/opt/cresset。
(3)安装license
将license放在cresset/licenses目录里
3. 在实例(云端)上启用Broker
[gkxiao@master ~]$ nohup /home/gkxiao/cresset/CEBroker2/bin/CEBroker2 -e -v -v -v -p 9100 < /dev/null >& cebroker.log &
4. 在实例(云端)上启用FieldEngine
Flare V2以前的版本:
[gkxiao@master ~]$ nohup /home/gkxiao/cresset/Flare/bin/FieldEngine -v -v -v -b localhost:9101 --only-multicore-tasks < /dev/null >& cebroker_fieldengine.log &
Flare V3的版本不再使用–only-multicore-tasks:
[gkxiao@master ~]$ nohup /home/gkxiao/cresset/Flare/bin/FieldEngine -v -v -v -b localhost:9101 -t 0 --min-resource-count 1 --max-resource-count 0 < /dev/null >& cebroker_fieldengine.log &
其中-t 0选项可以避免120s之内没有新的作业来自动关闭。
客户端(本地机器)的配置
1. 客户端为Windows
本文以Putty文例,说明如何在本地Windows 10机器与华为云Centos 7.6服务器之间建立ssh隧道实现数据安全的计算。建立ssh隧道的主要目的是保证数据在本机与远程云主机通讯过程中的数据安全,如果对数据安全无所谓就不需要隧道,直接连接计算就可以。
在putty与远程服务器ssh登录之后,点击Connection | SSH | Tunnel,按下Figure 2进行设定端口号:
Figure 2. 设置SSH的Tunnel
设定好的tunnel之后,点击apply,看起来像下Figure 3这个样子:
Figure 3. SSH的Tunnel设置完毕的实例
打开Flare,在Flare的Perference | processing中,设置waterswap的Brocker参数(见Figure 4),注意host ip为127.0.0.1,不需要写远程主机的IP,因为通过putty建立隧道了。点击test进行测试:如果出现OK则说明本地连接远程主机成功了,如下图所示:
Figure 4. Flare的Preference设置,注意IP是127.0.0.1而不是远程主机的IP
2. 客户端为Linux类
如果你在Linux或Mac OS上使用,那非常简单。假设你的云端服务器IP是129.9.250.253,用户名为gkxiao, 在终端键入命令:
1 | ssh -L9100:localhost:9100 gkxiao@139.9.250.253 |
输入密码后就建立了隧道了。Flare的配置与Windows一样,如图3所示。
开始WaterSwap进行结合自由能计算
现在,一切准备就绪,你可以在本地提交WaterSwap计算了,详见教程:《FLARE教程 | WaterSwap计算结合自由能》。
将作业提交到远程的公有云实例上与在本机计算没有任何区别,仅是计算资源不同而已。如果有20个复合物结构计算结合自由能,您刚好有20个公有云实例,则每个实例运行一个作业就可以快速完成计算。此外,Flare的会自动的将计算结果从远程机器上收集到本地,因此,计算完毕不用再对远程服务器做任何后续处理,本地可以直接看结果。
利用本地局域网内集群计算资源
你还可以将Broker部署于局域网内的集群上,Broker可以自动配合PBS、LSF、SEG之类的队列管理系统获得计算资源,Broker以SERVICE的方式侦听端口为您安排计算。
小结
通过Broker,您可以可以快速的实现公有云计算资源与本地计算资源无缝结合,加速您的计算;远程与本地计算具有统一的使用体验,只需要在Preference里数据远程服务器的IP地址,就可以在本地机器上以同样的体验使用软件;SSH隧道让云计算数据更安全。
文献
- Woods, C. J.; Malaisree, M.; Hannongbua, S.; Mulholland, A. J. A Water-Swap Reaction Coordinate for the Calculation of Absolute Protein-Ligand Binding Free Energies. J. Chem. Phys. 2011, 134 (5).