文档章节

基于DRBL和CentOS6.3搭建无盘超算集群 (Diskless Cluster)

无明时空
 无明时空
发布于 2013/01/27 23:26
字数 2870
阅读 4251
收藏 46

文章地址:http://my.oschina.net/emptytimespace/blog/105468

建议阅读官方安装文档:http://drbl.nchc.org.tw/one4all/desktop/#client_filesystem

        实验室现有硬件计算服务器四个节点,配置为:每节点16CPU;一台内存16G,其余三台内存24G;主节点2T*2的磁盘阵列,其余每节点一个20G硬盘,另有两个512G硬盘,其中一个旧的做系统盘,另一个新的准备作为备份;节点间使用普通的1000M网络交换机互联。

        以下是我们尝试配置集群(Cluster)的过程,目前运行良好,并使用Apache + Ganglia提供监控并以网页形式实时显示。(本文档待持续维护中)

一、首先安装centos6.3系统:

1, 光盘或网络PXE重新安装系统

        可将磁盘阵列(这里是/dev/md126)的part5中的home目录(可能是原来的home目录)挂载到新系统/home目录:

[***]# cat /etc/fstab
#
# /etc/fstab
# Created by anaconda on Sat Jan 26 22:54:18 2013
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=ea636e37-69c9-4603-9250-76193bca28c7 /                       ext4    defaults        1 1
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
#
#
/dev/md126p5 	 /media/raid2tp5  	ext4 	defaults 	0 0 
/dev/md126p1 	 /media/raid2tp1 	ext4 	defaults 	0 0 
/media/raid2tp5/home  	/home 		none	defaults,bind 	0 0

2, 注意DRBL安装说明中提到,建议禁用Network Manage 的图形界面配置软件

在我们的环境下的操作中确实需要禁用,否则出现兼容问题。

另外,請設定好所有網路卡的IP位址,我們後面用的是eth0對外,其餘的eth1以後的對內部使用(請務必將這些內部使用的網路卡IP都設成192.168.x.x, 172.16-31.x.x或是10.x.x.x等的private IP,例如eth1:192.168.101.254, eth2:192.168.102.254, eth3:192.168.103.254...);請注意一個原則,private IP (192.168.x.x)將會被拿來做DRBL環境的連結用。安裝時也建議關閉防火牆,等DRBL安裝完之後再來設定防火牆。另外,如果你的GNU/Linux安裝的時候自動幫你裝了NetworkManager,且被自動啟動的話,建議關閉或者移除,因為當作伺服器的機器並不適合使用NetworkManager。舉例而言,Fedora的話,可以這樣處理: sudo chkconfig --del NetworkManager; sudo chkconfig --del NetworkManagerDispatcher,然後啟動chkconfig network on。Ubuntu或者Debian之類的套件,先手動安裝圖形的網路設定程式: "sudo apt-get install gnome-network-admin",然後直接移除network manager: "sudo apt-get --purge remove network-manager",重新開機後,執行"network-admin"(或者在Gnome桌面選擇"系統"-> "管理" -> "網路")就可以設定固接網路。

3, 设置好内网和外网的网卡

1)内外网设置

编辑/etc/sysconfig/network-scripts/ifcfg-eth1

与/etc/sysconfig/network-scripts/ifcfg-eth0:

DEVICE 接口名(设备,网卡)
BOOTPROTO IP的配置方法(static:固定IP, dhcpHCP, none:手动)
HWADDR MAC地址
ONBOOT 系统启动的时候网络接口是否有效(yes/no)
TYPE 网络类型(通常是Ethemet)
NETMASK 网络掩码
IPADDR IP地址
IPV6INIT IPV6是否有效(yes/no)

GATEWAY 默认网关IP地址  ###交换机连接的子网不需配置网关?###

2)重启网络链接

# service network restart


3)检查网路

[***]# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
210.45.*.*     *               255.255.255.0   U     0      0        0 eth1
10.1.1.0        *               255.255.255.0   U     0      0        0 eth0
link-local      *               255.255.0.0     U     1002   0        0 eth0
link-local      *               255.255.0.0     U     1003   0        0 eth1
default         210.45.72.254   0.0.0.0         UG    0      0        0 eth1
[root@nsplab0 drbl]#



二、DRBL安装、配置和使用:

1, 安装drbl

如果您不是系統管理者(root),執行指令"su root" (然後輸入root的密碼),如果你的套件沒有設定root密碼,可以用"sudo su " (然後該使用者的密碼)以便切換成root 
請先安裝DRBL的金鑰(ID: 1024D/D7E8DF3A, Key fingerprint = F532 A131 65AF 2168 1634 DB1B 4000 9511 D7E8 DF3A),這樣可以進一步確認您安裝的程式是本計畫所發行的程式。有兩個方式可以來安裝。     方法1: "rm -f GPG-KEY-DRBL; wget http://drbl.nchc.org.tw/GPG-KEY-DRBL; rpm --import GPG-KEY-DRBL" 。     方法2: 由key server下載,KeyID是D7E8DF3A,可以這樣執行"gpg --keyserver subkeys.pgp.net --recv-key D7E8DF3A",然後再執行"gpg -a --export D7E8DF3A > GPG-KEY-DRBL; rpm --import GPG-KEY-DRBL". 如果你要查詢系統是否已經有匯入數位簽章的話,可以這樣查詢: rpm -qa gpg-pubkey*。 
下載DRBL的RPM檔(檔名如drbl-1.9.6-35.i386.rpm):穩定版,測試中的版本,或是不穩定的版本。 執行"rpm -Uvh drbl-XXX.i386.rpm"或者"yum install drbl-XXX.i386.rpm" (如果你的套件有yum的話)來安裝drbl程式,drbl-XXX.i386.rpm就是您剛剛下載的檔案,如果您是下載穩定版的話,就執行"rpm -Uvh drbl-current.i386.rpm"或者"yum install drbl-current.i386.rpm"。


2,配置drbl

1) 可以查看修改/opt/drbl/conf下面的文件:client-ip-hostname.example 

写一个自己希望的分配给客户端的IP和hostname映射关系,如:

# cat client-ip-hostname
10.1.1.2 node1
10.1.1.3 node2         
10.1.1.4 node3

2) 也可以修改自定义目录/opt/drbl/conf中的其他example文件.

3) 运行配置命令

# /opt/drbl/sbin/drblpush -i

特别注意1: 在运行中会提示可以one by one启动客户端(如果要自动探测客户端网卡MAC,需要每个客户端都设置成PXE启动,且为第一顺序),收集其MAC地址。作为替代方法,也可以手动新建一个文本文件,一般在/etc/drbl/macadr-eth0.txt,在其中按行添加每个内网客户端网卡的MAC地址,之后配置会要求输入文件的位置,这样不再需要 start the PXE clients one by one 了。

特别注意2: 最好设置成每个MAC分配固定静态的IP,参考:新增clinet 電腦,我有指定MAC address,該如何操作比較正確 ?

特别注意3:最重要的要查看目录/tftpboot/nodes下是否有对应每个客户端IP的目录文件,如有,客户端一般就可以启动起来到了,前面在两种Full模式下适用,在SSI mode下不一定适用。注意,客户端需要使用PXE启动,请对应设置BIOS,且最好BIOS设置成可以通过PCI-LAN设备唤醒启动。


3, 启动或重启drbl

# drbl-all-service start

或者

# drbl-all-service restart

可能会出现“Failed to start service ypbind”的错误,可以如此正确重启:

# service ypserv restart


4, 重启服务器和节点

     一般先使计算节点关机,再关机主节点。开机时,首先主节点开机,主节点开机进入登陆界面后,最好再等1分钟(自我感觉),并且保证drbl的PXE服务启动了,如果不确定可以进入主节点使用drbl-all-service来重新开启。然后再启动计算节点,不需考虑顺序。这里开关机就是简单在各系统执行 shutdown 或 halt 命令或是直接按电源或reset键(不能软件开关机时)。各节点正常并drbl-doit命令可用时(可以无密码ssh连接各个节点),可以使用drbl-doit shutdown 或 halt 来统一关机。


5, DRBL使用和管理

1)增加新的节点机器

    方法1: 可以重新配置安装子节点

drblpush -i
最后会提示是否保留原有的设置,可以选择不保留,于是每个节点重新生成配置文档。

    方法2: 如果前面安装的节点使用SSI mode,那么不需重新drbl push

用戶端電腦數目有所增加,只要改/etc/dhcp/dhcpd.conf之後,執行 "/opt/drbl/sbin/dcs -> others -> gen_3N_conf"或是"/opt/drbl/sbin/drbl-3n-conf generate"即可以馬上增加节点的数目

    详细参考:网页:DRBL SSI mode的使用與修改 的最后几行说明。

    如何知道新节点是否可以成功PXE启动了?可以查看/tftpboot/nodes目录是否有所希望添加的机器对应的IP地址所命名的目录,如果存在节点就应该可以启动起来。

2)增加新用户或配置新节点的用户和密码

    新添加的节点可以启动后不一定具有主节点的所有用户信息。解决办法预想是,可以把主节点下的/etc/passwd,/etc/shadow,/etc/group,/etc/gshadow拷贝到新客户端的相应目录(即从/etc拷贝到/tftpboot/nodes/新节点IP),批量拷贝可使用drbl-cp-host,更多账号管理的介绍可见鸟哥的网页:http://linux.vbird.org/linux_basic/0410accountmanager/0410accountmanager-fc4.php

    【注】这种方法有些生硬,担心有后遗症,因为时间有限,暂还没考虑好别的办法。

    增加新节点时已有的用户会自动同步到新节点,或者手动执行“make -C /var/yp”来更新“YP/NIS”。

    对于服务器和客户端增加新用户

        方法一

            增加使用drbl自带的drbl-useradd和drbl-userdel命令,此方法无法人为指定用户的id号码。

            產生一個使用者, 舉例說明, 要產生一個使用者 drbl, 群組是penguin

            drbl-useradd -s drbl penguin

            (http://drbl.nchc.org.tw/one4all/desktop/techrpt.php?c=drbl-useradd&t=%E5%A4%A7%E9%87%8F%E5%BB%BA%E7%AB%8B%E4%BD%BF%E7%94%A8%E8%80%85%E5%B8%B3%E8%99%9F)




        方法二

            使用传统方法adduser, deluser来首先在服务器中增加用户后通过执行“make -C /var/yp”来更新“YP/NIS”。还是建议使用方法一

3)    DRBL进阶管理

         drbl-doit "echo 'source /opt/intel/mkl/bin/mklvars.sh intel64' >>/etc/bashrc"对所有客户端机器操作:

         更过管理使用方法可点此处查看


【其他参考】

鸟哥的drbl记录  DRBL操作指南  


三、Cluster系统管理和使用

1、系统管理之消息通知

1)用户登录通知

修改文件/etc/motd,加入你希望用户登录后看到的内容。

2)推送给用户消息

write 用户名 [tty]
使用以上命令可以给当前系统的用户发送即时消息,消息不会打断用户的工作,会显示在用户的当前标准输出。还可以使用write all 给所有用户发送消息。


2、系统管理之SSH

1) SSH 之 X11 Forwarding

修改服务器文件/etc/ssh/sshd_config,令 AllowTcpForwarding yes, AllowAgentForwarding yes和X11Forwarding yes 

然后修改自己机器(如果是linux)的/etc/ssh/ssh_config,令ForwardAgent yes, ForwardX11 yes。

考录到也需要从服务器登录到其他节点,所以也需要将服务器中的ssh_config文件如上修改。前者(Tcp)或许不需要。

2) SSH 之 节点间无密码互访。

对root用户:

# ssh-keygen -t rsa   
# cd ~/.ssh
# cat id_rsa.pub >>authorized_keys

之后需要使用命令“drbl-cp-host ~/.ssh/* /root/.ssh/”将认证文件拷贝到子节点。

对其他普通用户,因为home目录共享,只需要做第一步即可。

如果互访仍有问题,可以参考后面一节:“SSH 之 HostKyeChecking”

3) SSH 之 HostKyeChecking

对于一些奇怪的问题,比如从主节点无密码登录到子节点可行,但是反过来不行,或是总需要回答yes。一些奇怪问题可能与节点共享一个系统和用户目录有关,也可能与DRBL相关。在尝试禁用检查之后,各节点的互访没有障碍了。方法:添加如下到ssh_config

#    UserKnownHostsFile=/dev/null
     StrictHostKeyChecking no

如果不想保存~/.ssh/known_hosts,可以启用上面第一行,如此每登录都要生成known_hosts,只不过都保存到 /dev/null 这个文件黑洞中去了。


【注意】DRBL重装子节点后,原known_hosts就无效了,保留原文件可能造成无法从主节点访问字节点。



Test:$$(E=mc^2)$$:

© 著作权归作者所有

上一篇: SSH常见问题
无明时空
粉丝 7
博文 46
码字总数 24464
作品 0
徐州
程序员
私信 提问
加载中

评论(10)

vema
vema
rocks cluster 可以去看看
anglix
anglix
真是不明觉厉啊!
车开源
车开源
暂时我也没搞清楚用干嘛的,但感觉好利害呢
无明时空
无明时空 博主

引用来自“tomxiongzh”的评论

提醒一下,标题的名称有误,BRBL 应该是DRBL吧,DRBL(Diskless Remote boot in linux)。

多谢!上次修改打错了
tomxiongzh
tomxiongzh
提醒一下,标题的名称有误,BRBL 应该是DRBL吧,DRBL(Diskless Remote boot in linux)。
无明时空
无明时空 博主

引用来自“小杨阿哥哥”的评论

数据库操作异常,详细信息:Duplicate entry '271866763-2765' for key 'PRIMARY'

不太明白你的意思,我不用数据库,我的目的是用来作 并行超算集群 的。
无明时空
无明时空 博主

引用来自“小杨阿哥哥”的评论

是无盘站吗?

可能是你想的。是我组建无盘cluster的一部分,暂时没有安装MPI并行库等。
目前是一个主服务器,其他客户端通过主服务器来PXE启动(客户端无需硬盘)
华兹格
华兹格
虽然不知道在说神马,感觉很厉害的样子
小杨阿哥哥
小杨阿哥哥
数据库操作异常,详细信息:Duplicate entry '271866763-2765' for key 'PRIMARY'
小杨阿哥哥
小杨阿哥哥
是无盘站吗?
DRBL

DRBL(Diskless Remote Boot in Linux)又名“Penguinzilla”,是与LTSP(Linux Terminal Server Project)功能类似的开源项目,与LTSP不同的是DRBL实现了胖客户机的远程启动,该项目是由台湾...

匿名
2008/11/23
1K
0
Redis 3.2.8集群搭建

一、概述 1.1、redis cluster的现状   目前redis支持的cluster特性:   1):节点自动发现   2):slave->master 选举,集群容错   3):Hot resharding:在线分片   4):进群管理:cluster ...

qianghong000
2017/12/20
0
0
使用 xCAT 简化 AIX 集群的部署和管理

xCAT 简介 xCAT (Extreme Cloud Administration Toolkit) 是一个开源的可扩展的高级集群管理和配置工具,允许使用者通过一个单点控制和管理一个集群系统。xCAT 最先是为 IBM xSeries 系列 Li...

红薯
2010/09/06
2.4K
0
Redis——存储服务

我们在将redis之前先让大家了解一下CAP定理:对于一个分布式计算系统来说,不可能同时满足一下三点 一致性(C):所有节点在同一时间具有相同的数据 可用性(A):保证每个请求不管成功或者失...

止于盛夏
2017/12/14
0
0
Redis Cluster集群快速搭建

想在3分钟以内搭建一个Redis Cluster集群吗?说3分钟可能有点久,实际上好像不到一分钟就完成了Redis Cluster集群的搭建。 介绍 redis cluster是官方提供的一种集群方案,Redis-Cluster采用无...

艾贺521
2018/08/13
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Android面试常客之Handler全解

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/fnhfire_7030/article/details/79518819 前言:又到了一年...

shzwork
31分钟前
4
0
position sticky 定位

本文转载于:专业的前端网站➫position sticky 定位 1、兼容性 https://caniuse.com/#search=sticky chrome、ios和firefox兼容性良好。 2、使用场景 sticky:粘性。粘性布局。 在屏幕范围内时...

前端老手
38分钟前
4
0
CentOS 7 yum 安装 PHP7.3 教程

参考:https://www.mf8.biz/centos-rhel-install-php7-3/ 1、首先安装 EPEL 源: yum install epel-release 安装 REMI 源: yum install http://rpms.remirepo.net/enterprise/remi-release......

dragon_tech
53分钟前
4
0
Linux物理网卡聚合及桥接

Linux内部实现的bridge可以把一台机器上的多张网卡桥接起来,从而把自己作为一台交换机。同时,LInux bridge还支持虚拟端口,即桥接的不一定都是物理网卡接口,还可以是虚拟接口。目前主要表...

xiangyunyan
53分钟前
4
0
一起来学Java8(一)——函数式编程

在这篇文章中,我们将了解到在Java8下如何进行函数式编程。 函数式编程 所谓的函数式编程就是把函数名字当做值进行传递,然后接收方拿到这个函数名进行调用。 首先来看下JavaScript如何进行函...

猿敲月下码
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部