背景
最近使用集群提交作业,任务中需要在计算节点上下载文件,始终下载不下来。
在管理节点上,ping百度有网络,而切去fat节点没有网络。
检查服务器硬件环境,发现只有管理节点连入了外网,其余计算节点都是没有外网的。
不过节点间使用局域网通讯,则可以使用代理使得计算节点也可以上网。
原因
计算集群一般出于安全考虑, 在同一局域网中只有一台机器(比如主节点)可以访问外网。但有时需要在机器上安装一些软件及命令,其他的机器需要访问外网来简化工作, 但此时又不能打乱原有运维的设置,所以需要在能访问外网的机器上做个代理。此篇以CentOS系统下squid为例进行介绍。
解决方案
=== 步骤大体如下(可联通外网的机器上|root或者sudo权限): ===
1 可以上外网的机器(mu01 || 172.16.11.254)上,yum安装squid代理
yum install squid
2 安装完成后修改conf
安装完成后, cd /etc/squid/ 目下,
修改squid.conf 文件中的内容,修改之前, 可以先备份该文件(cp squid.conf squid.conf.bak)
修改其中的 http_access deny all 为 http_access allow all
3 quid服务开启,依次执行
squid -k parse
squid -z
service squid start
netstat -nltp
4 测试fat节点
export http_proxy=http://172.16.11.254:3128
curl [www.baidu.com](www.baidu.com) (或者wget到有内容的index.html测试)
5 修改相关的软件配置
5.1 yum
vi /etc/yum.cnf 加入以下内容:
proxy=http://172.16.11.254:3128
5.2 wget
vi /etc/wgetrc 加入以下内容:
https_proxy=https://172.16.11.254:3128
http_proxy=http://172.16.11.254:3128
ftp_proxy=http://172.16.11.254:3128
5.3 sratoolkit
sratoolkit支持通过配置文件来设置代理。这个配置文件一般位于$HOME/.ncbi/user-settings.mkfg,你可以检查或者修改这个文件以包含代理设置:
/http/proxy/enabled = "true"
/http/proxy/path = "http://172.16.11.254:3128"
/https/proxy/enabled = "true"
/https/proxy/path = "https://172.16.11.254:3128"
因为家目录下一般节点间共享。
修改后,bsub提交任务给fat节点,就可以发现sratoolkit的prefetch可以正常下载sra文件了。
后记
集群间,除了独有文件目录和共享文件目录,网络也是需要考虑的部分。 |