Rocks Cluster使用指南

1. 本实验室计算机网络架构

2. 如何登陆Rocks Cluster?

(1) #通过校园网登陆:58.198.157.253

或(2)通过实验室局域网登陆:192.168.2.22

用户名:lbchen, dongsheng,zuozhou,hupeng, wangjian, shouwen, jianfeng, sihua

taigang

3. 各个计算节点可以独立运行吗?

可以,例如:ssh compute-0-0, 就可以进入该计算节点运行软件(程序)。

4. 现在都安装了哪些软件?

在/share/apps目录里(任何一个计算节点都有这个目录),安装了Trnity, Cufflink,Tophate,BEDTools,MasuRca, Fastx_ToolKit, BclToFastq,

5. 为什么不一下过渡到qsub提交任务,而用上面介绍的独立运行模式?

一方面,大家对qsub提交还不熟悉,不习惯,另一方面,在没有并行计算的情况下,没有很大必要采用qsub提交任务。

6.某节点断电停机对整个集群有影响吗?

管理节点是重要节点,一般不能停。在没有qsub的情况下某些计算节点停了没有问题,并且关闭了断电后计算节点系统重装模式。

7.在每个节点都有一个目录:/state/patrtition1, 这是怎么回事?

这是每个节点硬盘最大的空间,可以临时放数据,在千万不要再此备份数据,因为,对于Rocks cluster来说,某计算节点重装是经常发生的,尽管我们已经关闭了计算节点自动重装功能。

8. 登进登录节点后怎么办?

进入你选择的计算节点,例如:ssh compute-0-0,

接着进入目录:cd /share/apps

然后可进入相应的软件目录进行计算。

9. 如何进入实验室局域网?

通过登录节点进入:58.198.157.253

然后可进入原4号机:192.168.2.111

10. 是否可以存取NAS-data-back(192.168.2.90)?

可以。先进入登录节点:58.198.157.253

按需要可把NAS-data-back mount进login-0-0节点,或者原4号机(192.168.2.111)。

这台NAS主要做测序数据备份,直接和两台测序仪相连。因此,为了数据安全,其他机器在需要的时候mount这台NAS。

11. 有关Rocks Cluster的有关详细资料在哪里?

在这里:http://sihua.us/rocks.htm

http://central6.rocksclusters.org/roll-documentation/base/6.1.1/

http://www.rocksclusters.org/roll-documentation/bio/5.4/index.html

官网 Rocks Cluster

12. 能否在校园外登录我们的Cluster?

正在办理中,如果需要从校外登录,还需要在校网中心机房托管一台服务器(需新购置),同时还要再申请一个固定的IP地址。

但是,这种连接方案有很多好处,例如我们可以在家里操作机器,提交任务,但有一定的安全风险,例如黑客入侵搞破坏,窃取数据等,到时候我们再增加硬件防火墙。

13.Linux终端如何登录?

要在你的linux机器重新设置固定IP地址。

各位的IP地址分配如下:

lbchen:192.168.2.1

dongsheng:192.168.2.2

hupeng:192.168.2.3

wangjian:192.168.2.4

zuozhou:192.168.2.5

jianfeng:192.168.2.6

shouwen:192.168.2.7

sihua:192.168.2.8

如果你通过校网进入(58.198.157.253),就不要理会以上的IP地址。

14. qsub用法

在longin节点(58.198.157.253)进入你的目录,例如:#cd /home/dongsheng

qsub -cwd -q danji.q test.sh

cwd指本地目录运行,结果如不指定,就在本地目录。

-q,意思是指定队列,其实就是限定机器和用户。danji.q就是队列,这个队列面向所有用户,机器是4台瘦节点,多人都用这个队列时,集群主机将按负载均衡的原则分配机器和cpu。

我的test.sh是这样的:

#!/bin/bash

#$ -cwd
#$ -j y
#$ -S /bin/bash

/apps/miranda_2015/bin/miranda mirna10.fa utr_seq2.fa -out jieguo.txt

前面4行都一样:

#!/bin/bash

#$ -cwd
#$ -j y
#$ -S /bin/bash

这一行“/apps/miranda_2015/bin/miranda mirna10.fa utr_seq2.fa -out jieguo.txt”

是指我调用/apps/miranda_2015/bin/miranda这个可执行程序,做microrna的靶位基因预测,microrna文件是mirna10.fa,而utr_seq2.fa是UTR序列,jieguo.txt是结果文件。

除了前面4行,其他和跑单机的程序运行一样

前面那个“qsub -cwd -q danji.q test.sh”,这是最简单的玩法。再复杂一点是这样的:

qsub -cwd -l vf=10G -l h=compute-0-5 -l p=20 -q danji.q test.sh

上面有三个“-l”参数, vf是指定内存大小,h指定机器,但h指定的机器必须是队列文件中机器列表中有的。p指定cpu数量(线程数)

再说一下三个队列:danji.q:所有的瘦节点;zuzhuang.q:两个胖节点(compute-0-0,compute-0-2);bingxing.q: 所有机器(两个胖节点,4个廋节点)

对于大部分的计算:用danji.q (compute-0-3,4,5,6)

对于转录组,基因组组装,用zuzhuang.q (compute-0-0,2)

对于大规模并行计算(不含一般并行blast),用bingxing.q (compute-0-0,2,3,4,5,6)

并行blast,非并行blast,都用danji.q

对于原始数据(fastq文件)少于50G的转录组组装,以及基因组大小小于100M的基因组组装,也建议用danji.q, 如果用zuzhuang.q,太浪费资源了。

也许有人知道,rocks还有一个all.q可用。实际上,all.q不能用了,我已经把all.q禁止了。

qsub以后,可以马上用命令:#qstat查看你的任务否执行

状态:qw:队列等待;w:任务等待,t:任务将要执行;r:任务在运行;eqw:任务出错

如果用qstat什么都没有,也没有报错,说明你的程序运行完了。

对于test.sh,运行完以后还有一个test.072类似这样的文件,可以用more命令打开看看,运行错误也在里面。

o72,o表示输出文件,72 表示你提交的qsub的ID。

你用qstat查看的时候,还可以看到你的任务被分配到哪台计算节点,然后你可以ssh compute-0-。。。进入计算节点用top观察进程执行情况

还有一个命令,要经常用的qdel ID,例如你qsub以后,可以在你的机器上显示qsub的ID,要删除你的任务,就qdel 120。 这里120是你的任务ID号。

15. 三个队列的用户限定

danji.q : 所有的用户(所有的瘦节点)

zuzhuang.q :wangjian, hupeng,sihua2(两个胖节点)

bingxing.q : jianfeng, sihua2 (所有的机器,共6台计算节点),原来的4号机独立运行,和集群无关。大家觉得4号机方便,可去4号机跑程序。

对于没有列入zuzhuang.q和bingxing.q的用户,需要用这两个队列的请告诉我,我再给你加进去。

16. 要是有的用户不遵守三个队列的使用限定会怎么样?

跑不起来。例如用户dongsheng用zuzhuang.q,qsub不理你,因为dongsheng用户不在zuzhuang.q的用户列表中。

17.要是列入zuzhuang.q,bingxing.q用户名单的用户跑什么程序都用zuzhuang.q或bingxing来跑怎么办?

zuzhuang.q,bingxing.q用户跑一般程序时,应该用danji.q来跑,如果还是强行用zuhzuang.q和bingxing.q跑一般任务,kill进程。再违反规则跑,封账号2星期。
但是在有一种情况还是可以的,他用zuzhuang.q或biingxing.q队列,但他在qsub时指定了非胖节点机器 ,那还是可以的。

18. 如何对待不用qsub提交任务的用户?

kill其运行进程。尤其在胖节点不按qsub规则提交任务的用户则采用封账号2周的措施。

19.胖节点是稀缺资源,有需要的才可以使用。

胖节点是compute-0-0,compute-0-2

20. 是否可以通过登录管理节点提交qsub?

目前还没有关闭这台机器的qsub属性,所以可以通过登录管理节点(58.198.157.252或者192.168.2.34)提交任务。

之所以还开放管理节点的qsub属性,是因为担心登录节点的网卡或网线出问题而影响大家登录。

所以,要通过集群计算,实际上有4条线路登录:

(1) 58.198.157.253 (登录节点,校网)

(2)192.168.2.22 (登录节点,实验室局域网)

(3)58.198.157.252 (管理节点,校网)

(4) 192.168.2.34 (管理节点,实验室局域网)

但如果经常出现有人误用管理节点跑任务的现象,就关闭(3),(4)线。因为管理节点不能把他跑崩溃了。

21. 大家使用机器数量的限制

(1)如果你跑转录组组装,可以使用一台胖节点,留一台给别人用。如果你跑基因组组装,因为运算周期很长,可以跑两个胖节点。所以胖节点是基因组组装与基因组注释优先。

(2)一个用户使用廋节点一般不要超过3个。一共4个瘦节点,你一个人把4个都占了,不好吧。如果你需要跑10个任务,在qsub时,要指定机器,要使你的任务最多在3台机器上跑。

(3)大规模并行计算,在没有基因组组装的任务时不限制,我们要充分发挥集群功能,这样做会和别人的一般单节点计算有冲突吗?不会的,机器会在保证负载均衡的原则下自动协调各种任务。

(4)在某些特殊情况下,例如陈老师需要某人尽快跑一个blast结果,可用并行blast(mpibalst),采用bingxing.q队列,调用全部机器来跑。

以上四条原则是我想出来的,大家可以讨论修改。

22. 在qsub提交任务时,什么时候需要设置线程数?如何设置线程数?

线程数设置是这样的:例如:qsub -cwd -l p=32 -q danji.q test.sh, 这里的p=32表示设置线程数为32

如果你运行的软件不是多线程的,设置了也没有什么用。如果你的脚本是多线程的,你要在你的sh脚本文件中设置好线程数,并且要在qsub里也要设置相同的数值,当然qsub里的线程数可设置大一点。因为qsub是你向系统请求资源的数量。如果你在脚本里线程设置32,而在qsub里设置20,那你最后得到的资源是20个线程.

23. 关于存储NAS

NAS存储已经配置好,可以使用了。虽然大家都可以通过ssh nas-0-0进入,但还是建议大家不要进去,你只要在任何节点(除nas-0-0外)访问/nfs/nas1,2,3,4就可以了。也就是说,你不需要知道nas的具体情况,只要知道访问/nfs下的目录nas1,2,3,4。

/nfs下有四个子目录:nas1,nas2,nas3,nas4.

nas1归:liangbiao,hupeng两个用户使用。容量10T。

nas2归:wangjian,shouwen两个用户使用。容量10T。

nas3归:zuozhou,jianfeng两个用户使用。容量10T。

nas4归:dongsheng,sihua,taigang三个用户使用。容量10T。

用户nas1,2,3,4是各用户保存数据和结果的的存储空间,只有在自己的空间才有rwx权限。

例如,对于用户dongsheng,他的空间在/nfs/nas4/dongsheng, 在这个空间里保存数据,保存运行结果,也就是说,这个目录永远是dongsheng的当前目录,而不要把目录/home/dongsheng作为运行程序的当前目录。

这是因为,/home目录是在管理节点上的一个很小的存储空间。所以,在系统/home空间用完后,可能造成系统无法运行。在这种情况下,系统管理员将立即删除用户的/home空间。

对于用户dongsheng来说,不管你现在在哪个节点,即任何一个计算节点,或管理节点,或登陆节点,甚至存储节点,你只要cd /nfs/nas4/dongsheng,你就到了你的家。 存储

空间分配不一定合理,例如测序组的wangjian,shouwen两个用户也只有10T,但是这个nas主要还是用作计算的空间, 测序原始数据要保存在nas-data-back这台nas上去。当然,万一nas2的两个用户需要在集群nas上暂存数更多据,还可以给nas2的用户在nas1,nas3,nas4上开辟存储空间。

24. 账户间数据访问策略

一共分了4个组:

nas1组,组名称chenhu,组员:liangbiao,hupeng

nas2组,组名称wangjiang,组员:wangjian,shouwen

nas3组,组名称chenren,组员:zuozhou,jianfeng

nas4组,组名称pengzhang,组员:dongsheng,sihua2,taigang

每个人都是本组的管理员,可以添加其他组的用户进入本组访问数据。例如,wangjian用命令gpasswd -a dongsheng wangjiang可以使得dongsheng能访问wangjian和shouwen的数据, 访问完毕可以用命令qpasswd -d dongsheng wangjiang删除dongsheng在wangjiang组的权限。 dongsheng取得wangjiang组的权限后,要执行命令newgrp wangjiang后才能进入wnagjiang组的用户目录访问数据,但只能拷贝不能写。

用户liangbiao可不经各组管理员授权直接进入nas1,2,3,4访问数据,但也要执行newgrp命令后才能进入其他组访问数据。例如他要看dongsheng的数据,需要先执行newgrp pengzhang。

综上所述:

(1). 组内用户间可以自由访问数据(除非自己设定了非读写权限),但不能在别人用户目录中执行写操作。

(2)组间数据访问需要加入组, 也即经过授权才能访问。被访问的用户用“gpasswd -a 用户 本组组名”命令给你授权才能访问,授权后你还要执行“newgrp 组名”后才能进入别人的目录访问数据。最后组管理员要执行“gpasswd -d 用户 本组组名”撤销赋予的权限

之所以采用以上数据访问策略,是因为今后我们的集群还有本校其他用户,以及外单位用户。因此数据保密是必要的,尤其是未发表的原始数据。