分类: 系统运维
2005-12-22 11:48:48
Myrinet 2000 M3-E*系列交换机工具软件 Mute 之编译
-------------------------------------------------------------
注:此文在依据官方文档实践过程中整理,仅为个人笔记,不当之处,
欢迎各位指点。 谢谢
==============================================================
Introduction的URL:
简介:
这是一个针对Myrinet-2000 M3-E*的图形界面的诊断监测工具。图形界面使用
GNOME/GTK。显然,依赖于gm驱动的一些工具。
下面主要说明依赖于GM-2的编译过程。
下载相关源码:gm-2.1.3_Linux(原有) m3-dist mute-1.9.6
m3-dist下载地址:
mute下载地址:
0.包依赖:
系统上已经安装了以下几个包:
gnome-libs-devel
gtk+-devel
gtk+
1.说明,相关的几个变量
GM_SRC_HOME:编译GM驱动的目录
MUTE_M3_HOME: 放置Mute和m3-dist源码包的目录。
GM_INSTALL: GM的安装目录
2.编译过程:
1)解压缩 tar -zvxf ...tar.gz
2)编译Mapper Tools
cd {GM_SRC_HOME}/binary
mkdir lib
ln .gm_uninstalled_libs/lib/.libs/libgm.a lib/libgm.a
cd ../mt
make all gm
3)编译m3-dist
cd $MUTE_M3_HOME/m3-dist
make gmdir={GM_SRC_HOME} mtdir={GM_SRC_HOME}/mt host-no-snmp
4)编译Mute
cd $MUTE_M3_HOME/mute-1.9.6
修改makefile,包括gnome, gm, m3-dist的路径等。否则会因为找不到相关的头
文件或者库而在编译或者链接的时候出错。
注意:官方文档里说明使用Gnu gcc 3.2或更新的版本时,编译m3-dist和Mute时候
要把makefile里的gcc改成g++,但我下载到的版本里的makefile已经写明编译
器用g++了,所以没动。顺利通过编译。
3.编译后的工作...
1) killall gm_mapper
这样做是为了释放资源,否则的话后面做gm_mapper生成交换机信息文件的时候
会报"gm_mapper_port open failed: busy"的错误
同理,gm_board_info的进程也要kill掉。
2) 通过gm_mapper生成端口等设备信息的文件,具体的参数与Introduction里讲的
有点差异,我在gm-2.1.3,mute-1.9.6的情况下,指定存储map file的路径是这
样的:
--map-file-0=
Store map file for port 0 at
--map-file-1=
Store map file for port 1 at
eg: gm_mapper -v --level=10 --pause --map-file-0=~/mute/mute-prot0.map
还要注意的一点是我遇到的,不要让gm_mapper把map file写在NFS上,否则
的话是得不到map file的~~~;-)
具体输出如下:
# gm_mapper -v --level=10 --pause --map-file-0=~/mute-prot0.map
I am host 00:60:dd:49:0e:8c (type 1)
55 hosts, 12 xbars per map message piece
longest route supported is 15 hops
2048 hosts and 1200 xbars max
going active on port 0
mapping port 0
created h0
looking for directly connected host
looking for first xbar
found xbar
created x0
connecting h0 port 0 to x0 port 0
looking for hosts on x0
looking for xbars on x0
found xbar on port -8
created x1
connecting x0 port -8 to x1 port 0
looking for hosts on x1
trying to match x1 timestamp 7
x1 is original
adding x1 to frontier
found xbar on port -7
created x2
connecting x0 port -7 to x2 port 0
looking for hosts on x2
trying to match x2 timestamp 9
x2 is original
adding x2 to frontier
found xbar on port -6
...............................
checking disconnected link 9 on x0
checking for new hosts on x0
checking for new hosts on x73
00:60:dd:49:0e:8c verifying port 0 (active)
在进入验证(verify)模式的时候就可以按Ctrl+C结束了。
个人建议看着*.map文件不再增大再按Ctrl+C,hehe.
这是生成的mute0.map文件:
------------------------------------------------------
; map_address 00:60:dd:49:0e:d0 map_version 4016432
h - h0
1
0 s - x0 9
address 00:60:dd:49:0e:d0
hostType 1
h - h1
1
0 s - x17 8
address 00:60:dd:49:0e:8c
hostType 1
h - h2
1
0 s - x105 8
address 00:60:dd:49:0e:05
hostType 1
...............................
--------------------------------------------------------
3) 如果你正在使用GM-2.0.6或者更新的版本,你可以在Mute显示中看到主机名。不
过这需要额外做一些事情,因为GM-2的mapper不知道主机名。而在Gm-2.0.6或更
新的版本中有{GM_SRC_HOME}/mt/tools/board_names.c的叫board_names的工具,
它可以读到gm_board_info的输出的路由表信息来查找上一步生成的*.map文件中
的mac地址并替换相应的主机名。
cd {GM_INSTALL}/bin
./gm_board_info > board_info.out
cd {GM_SRC_HOME}/mt/tools/intel_linux/
./board_name mute0.map board_info.out > map.with.hostname.map
注:mute0.map为上一步中用gm_mapper生成的映像文件。
然后,mv map.with.hostnames.map mute.map,使用替换过的带主机名
的map文件为Mute的map文件。
4) 建立mute.switches文件,其中包含了集群中每个Myrinet交换机的IP地
址,一行一个IP地址。
5) 指定mute的工作目录(就是存放mute0.map的地方)这步就要求图形界面了.
mute -w $WORK_DIR
6) 用Mute建立集群映像。
a.把mute.switches放在刚才上一步指定的Mute的工作目录下,这个文件是监视
卡的IP地址列表。这个文件以前是由"Find Switches"功能自动完成的,但由
于大多数用户都没法正常使用,所以永久性地禁掉了。
b.运行mute
su -
cd $MUTE_M3_HOME/mute-1.9.6
./mute
之后会出现两个窗口,一个是建立网络图的,一个是Mute的,第一次运行Mute
时,不允许用户去掉Run Mapper,Find Loopbacks,Write Routes,或在建立网
络图中的Find Xbars。首先必须要初始化生成集群的映像图。
运行Build,如果出错的话,先来这里找找吧。。。
要保证运行Mute的节点能ping能你在mute.switches里的每一个IP。而且第一
次运行要在装有Myrinet卡的节点上。以后可以跑在主管理节点上,只要与
Myrinet交换机相连即可。
当build完成后,会在工作目录下出现这几个文件:
mute.map
mute.hosts
mute.switches
mute.xbars
mute.routes
mute.state
其中,后两个为可选的。
到此为止,不打算写具体的使用了。