最近由于某些原因,需要连接到国家超级计算广州中心进行一些计算活动。与济南超算不同,广州超算是支持linux系统通过IPSec VPN进行登录连接的,所以在ubuntu等linux发行版上连接超算并不十分困难。在具体使用过程中发现官方给的连接教程特别别扭,还有在ssh配置部分对系统有着不必要的影响,于是就把自己的连接方式与一些步骤与简单解释写一下。

排名第六
排名第六

国家超级计算广州中心的天河二号(TH2A)是目前世界上排名第六的超算。2013年至2015年,“天河二号”在超级计算机500强排行榜上连续六次排名世界第一,成为世界超算史上第一台连续六次夺冠的超级计算机,打破超算领域世界纪录。2014年至2016年,“天河二号”在国际共轭梯度HPCG排行榜获得五连冠。HPCG排行榜是最接近实际应用模式的排名,更能够反映超级计算机的实际应用性能。

TH2A
TH2A

在Ubuntu上面连接TH2A,一共有两个步骤,第一步是VPN连接,即从外部环境进入广州超算的内网,第二步是ssh连接,真正接入登录节点并可以提交任务。

每个节点2个CPU,E5-2692 v2,一个节点可以24个核
每个节点2个CPU,E5-2692 v2,一个节点可以24个核

VPN连接

处于安全性的考虑,大型的超算中心的计算节点与登录节点一般来说并不能够暴露在公网当中,需要一个VPN系统充当隔离与防火墙。广州超算总体上来说是对linux系统用户比较友好的,可以提供IPSec VPN方式,不像有些机构,只提供SSL VPN,只能在windows上用或者linux客户端已经年久失修,彻底不能用了。

要通过VPN连接,首先要具有相应的vpn账号与密码。有了之后,才能进行下一步。

首先要安装vpnc这是在linux下唯一需要安装的软件。

sudo apt install vpnc

安装完成之后需要更改vpnc的配置文件,以免以后每次都需要输入账号密码。一般编辑/etc/vpnc/default.conf,这个文件的编辑需要root权限。

IPSec gateway vpn3.nscc-gz.cn
IPSec ID  yourid
IPSec secret zumiyue
Xauth username yourname
Xauth password yourpasswd

很简单,只有五行。前三行是公共配置,一般都是一样的,后两行才是与用户有关的账号密码。

第一行是登录节点,这个一般都知道,第二行第三行分别是组名称与组预共享密钥,这个客服都会给出。后两行是账号密码。

配置完成之后用root权限运行vpnc就好了。由于vpnc是通过建立虚拟网卡的方式实现的vpn连接,这个过程需要改路由表与建立虚拟网卡,这需要用root进行相关的更改。

如果出现下面的几行,说明vpnc就连接成功了

Connect Banner:
| Welcome to StoneOS

VPNC started in background (pid: 15726)...

TH2A
TH2A

ssh连接

vpn连接成功之后,就可以连接ssh了,广州超算并不支持使用密码连接,只能用ssh'私钥连接,这一点到很不错,一个2048或者4096长度的密钥比简单的密码安全性不知道高到哪里去了……

首先要有一个密钥文件,一般放置在~/.ssh/下面,然后设置权限为700,实际上600 400都可以,然后编辑~/.ssh/config进行配置,写入下面的配置

Host th #ssh别名
  HostName 172.16.22.11 #IP地址
  User yourname #用户名
  IdentityFile ~/.ssh/key.id  #私钥文件
  StrictHostKeyChecking no #不进行服务器检查
  UserKnownHostsFile /dev/null #不保存服务器指纹

由于登录节点很多,也说不定连到哪一个上,不同节点服务器的指纹不同,不关掉服务器检查会报错,很麻烦。仅限于连接超算之类的东西时推荐这样,其他场合下还是最好打开,用来防护中间人攻击。

完成之后直接

ssh th

就行了

连接成功,注意此时ssh警告可能存在中间人攻击
连接成功,注意此时ssh警告可能存在中间人攻击

而且在linux常用的scp rsync等工具也可以直接用了,比windows应该要方便不少……

如果走到这一步,发现电脑已经断网了,那很正常,因为现在正处于广州超算的vpn系统里,是与外网隔离的,能上网的最简单办法是退出vpn

sudo vpnc-disconnect

如果既想带着vpn又想上网,那就需要改一下路由表,对网络进行分流,即上网的流量走原来的路由器那一路,去超算的走vpn那一路,这个时候可安排脚本了

#!/bin/bash
vpnc
route add -host 172.16.22.11 dev tun0 #让通过超算登录节点的流量走vpn的虚拟网卡tun0
route del default dev tun0 #删除走tun0的默认路径

之后用这个脚本替代vpnc这个命令就可以了