基于DRBL和CentOS6.3...

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于DRBL 和CentOS6.3...
基于DRBL 和CentOS6.3搭建无盘超算集群 (Diskless Cluster) - manuscript
文章地址:/emptytimespace/blog/105468
建议阅读官方安装文档:#client_filesystem
实验室现有硬件计算服务器四个节点,配置为:每节点16CPU ;一台内存16G ,其余三台内存24G ;主节点2T*2的磁盘阵列,其余每节点一个20G 硬盘,另有两个512G 硬盘,其中一个旧的做系统盘,另一个新的准备作为备份;节点间使用普通的100M 网络交换机互联。

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

(本文档待持续维护中)
一、首先安装centos6.3系统:
1, 光盘或网络PXE 重新安装系统
可将磁盘阵列(这里是/dev/md126)的part5中的home 目录(可能是原来的home 目录)挂载到新系统/home 目录:
view sourceprint?
01 [***]# cat /etc/fstab
02 #
03 # /etc/fstab
04 # Created by anaconda on Sat Jan 26 22:54:18 2013
05 #
06 # Accessible filesystems, by reference, are maintained under '/dev/disk'
07 # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
08 #
0UUID=ea636e37-69c9-4603-9250-76193bca28c7
9 / ext4 defaults 1 1
10 tmpfs /dev/shm tmpfs defaults 0 0
11 devpts /dev/pts devpts gid=5,mode=620 0 0
12 sysfs /sys sysfs defaults 0 0
13 proc /proc proc defaults 0 0
14 #
15 #
16 /dev/md126p5 /media/raid2tp5 ext4 defaults 0 0
17 /dev/md126p1 /media/raid2tp1 ext4 defaults 0 0
18 /media/raid2tp5/home /home none defaults,b ind 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为:view sourceprint?
01 DEVICE="eth1"
02 ONBOOT=yes
03 TYPE="Ethernet"
04 BOOTPROTO=static
05 IPADDR=10.1.1.1
06 NETMASK=255.255.255.0
07 ###交换机连接的子网不需配置网关###
08 #GATEWAY=10.1.1.1
09 DNS1=10.1.1.1
10 DEFROUTE=yes
11 NAME="System eth1"
12 HWADDR= ...
13 LAST_CONNECT=1359289802
2) 外网设置
编辑/etc/sysconfig/network-scripts/ifcfg-eth0为:
view sourceprint?
01 DEVICE="eth0"
02 ONBOOT="yes"
03 TYPE="Ethernet"
04 BOOTPROTO=static
05 IPADDR= ...
06 NETMASK=255.255.255.0
07 #PREFIX=24
08 GATEWAY= ...
09 DNS1=202.38.64.56
10 DNS2=202.38.64.17
11 DOMAIN=
12 DEFROUTE=yes
13 NAME="System eth0"
14 HWADDR= ...
15 LAST_CONNECT=1359289802
3) 重启网络链接
view sourceprint?
1 # service network restart
4) 检查网路
view sourceprint?
1 [***]# route
2 Kernel IP routing table
3 Destination Gateway
Genmask Flags Metric Ref Use Iface
4 210.45.*.* *
255.255.255.0 U 0 0
0 eth1 5 10.1.1.0 *
255.255.255.0 U 0 0
0 eth0
6 link-
local * 255.255.0.0 U 1002 0 0 eth0
7 link-
local * 255.255.0.0 U 1003 0 0 eth1
8 default 210.45.72.254 0.0.0.0 U G 0 0 0 eth1
9 [root@nsplab0 drbl]#
不是到这里link-local 怎么出现的。

二、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 /GPG-KEY-DRBL; rpm --import GPG-
KEY-DRBL" 。

方法2: 由key server 下載,
KeyID 是D7E8DF3A ,可以這樣執行"gpg --
keyserver --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映射关系,如: view sourceprint?
1 # cat client-ip-hostname
2 10.1.1.2 node1
3 10.1.1.3 node2
4 10.1.1.4 node3
2)也可以修改自定义目录/opt/drbl/conf中的其他example 文件.
3)运行配置命令
view sourceprint?
1 # /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:可以重新配置安装子节点
view sourceprint?
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,更多账号管理的介绍可见鸟哥的网页:
【注】这种方法有些生硬,担心有后遗症,因为时间有限,暂还没考虑好别的办法。

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

对于服务器和客户端增加新用户
方法一
增加使用drbl自带的drbl-useradd和drbl-userdel命令,此方法无法人为指定用户的id号码。

方法二
使用传统方法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)推送给用户消息
view sourceprint?
1 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用户:
view sourceprint?
1 # ssh-keygen -t rsa
2 # cd ~/.ssh
3 # 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)$$:。

相关文档
最新文档