ArthurXF从业10年的CTO,受上海非凡学院邀请,进行PHP,CSS,FREEBSD等网络技能授课培训,有意向参加的,请联系.
由于安装apache的时候安装了LDAP2.3的客户端,后来将LDAP升级到2.4的时候,apache启动碰到了如下错误,apache启动失败:
进入/usr/local/lib查看,发现所有的ldap文件版本都变成2.4了。
我们为了不重新安装,用软链接来解决这个问题,具体办法如下:
现在ArthurXF本人正在搞PHP等技术培训,如果想学习的人可以跟我联系。另外培训的招生简章在这个网址,想了解的可以去看看。加我QQ:29011218交流也可。
PHP培训招生简章
引用
/libexec/ld-elf.so.1: Shared object "libldap-2.3.so.2" not found, required by "httpd"
进入/usr/local/lib查看,发现所有的ldap文件版本都变成2.4了。
我们为了不重新安装,用软链接来解决这个问题,具体办法如下:
引用
cd /usr/local/lib
ln -s libldap-2.4.so.2 libldap-2.3.so.2
启动apache,出现新的错误:
/libexec/ld-elf.so.1: Shared object "liblber-2.3.so.2" not found, required by "httpd"
再建立软链接:
ln -s liblber-2.4.so.2 liblber-2.3.so.2
apachectl start
现在就正常了,问题解决,虽然这可能不是根本的解决办法,至少能先启动服务了,此文章由ArthurXF倾情奉献,谢谢支持!
ln -s libldap-2.4.so.2 libldap-2.3.so.2
启动apache,出现新的错误:
/libexec/ld-elf.so.1: Shared object "liblber-2.3.so.2" not found, required by "httpd"
再建立软链接:
ln -s liblber-2.4.so.2 liblber-2.3.so.2
apachectl start
现在就正常了,问题解决,虽然这可能不是根本的解决办法,至少能先启动服务了,此文章由ArthurXF倾情奉献,谢谢支持!
现在ArthurXF本人正在搞PHP等技术培训,如果想学习的人可以跟我联系。另外培训的招生简章在这个网址,想了解的可以去看看。加我QQ:29011218交流也可。
PHP培训招生简章
FreeBSD操作系统本身带有二种内置的IP信息包检查机制:ipfw和ipfilter。在创建决定允许哪些信息包进入系统、哪些信息包会被拒之系统门外的规则集方面,二种机制各有自己独特的语法。而在这里我们将使用ipfw配置FreeBSD系统的防火墙。
IPFW本身是FreeBSD内置的,要使用IPFW设置防火墙需要重新编译FreeBSD内核。注意,因为在编译后IPFW默认拒绝所有网络服务,包括对系统本身都会拒绝,所以在配置过程中一定要小心谨慎。
1.对IPFW的一些基本参数进行配置:
2.编译系统内核:
3.加入系统启动项
重启之后,你就可以用SSH登录你的服务器了,之后你可以在/etc/ipfw.conf中添加过滤规则来防止入侵了。
4.加入规则
下面的规则只是一个例子。
5.常用命令
6.ipfw生效
此文章有ArthurXF倾情奉献,谢谢支持!
现在ArthurXF本人正在搞PHP等技术培训,如果想学习的人可以跟我联系。另外培训的招生简章在这个网址,想了解的可以去看看。加我QQ:29011218交流也可。
PHP培训招生简章
IPFW本身是FreeBSD内置的,要使用IPFW设置防火墙需要重新编译FreeBSD内核。注意,因为在编译后IPFW默认拒绝所有网络服务,包括对系统本身都会拒绝,所以在配置过程中一定要小心谨慎。
1.对IPFW的一些基本参数进行配置:
引用
#cd /sys/i386/conf
//如果没有这个目录,说明你的系统没有安装Ports服务,要记得装上。
#cp GENERIC ./ArthurXF_IPFW
用 vi 打开ArthurXF_IPFW文件,在文件未尾加入以下个行
options IPFIREWALL //通知操作系统的内核检查每个IP数据包,将它们与规则集进行比较
options IPFIREWALL_FORWARD
options IPDIVERT //启用由ipfw divert使用的转向IP套接字。这一选项需要与natd联合使用。
options IPFIREWALL_VERBOSE //启用通过Syslogd记录日志;如果没有指定这个选项,即使你在过滤规则中指定了记录包,也不会真的记录它们。
options IPFIREWALL_VERBOSE_LIMIT=10 //限制通过Syslogd记录的每项包规则的记录条数。如果你受到了大量的攻击,想记录防火墙的活动,但又不想由于Syslog洪水一般的记录将你淹没,那么这个选项将会很有用。当使用了这条规则,当规则链中的某一项达到限制数值时,它所对应的日志将不再记录下来。
options IPSTEALTH //启动支持秘密转发的代码,这一选项在使防火墙不被traceroute和类似工具发现时很有用。
options IPFIREWALL_DEFAULT_TO_ACCEPT //注意,关键地方了,本句把默认的规则动作从“deny”改成“allow”了,作用是在默认状态下IPFW将会接受任何的数据。
options ACCEPT_FILTER_DATA
options ACCEPT_FILTER_HTTP //接受过滤器中的静态连接
options ICMP_BANDLIM //ICMP_BANDLIM根据带宽限制产生icmp错误。一般情况下我们需要这个选项,它有助于你的系统免受D.O.S.攻击。
另外提供一些优化参数,可以不加的,仅供参考
options PQ_HUGECACHE //为1024k二级缓存的CPU提供支持
options PQ_LARGECACHE //为512k二级缓存的CPU提供支持
options PQ_MEDIUMCACHE //为256k二级缓存的CPU提供支持
options PQ_SMALLCACHE //为128k二级缓存的CPU提供支持
options CPU_ATHLON_SSE_HACK
options CPU_ENABLE_SSE //为Athlon系列CPU提供SSE支持
options CPU_SUSP_HLT //打开CPU空闲节能。
options CPU_UPGRADE_HW_CACHE
options CPU_WT_ALLOC
options NO_MEMORY_HOLE
上面有些参数,不是每个系统都会通过编译的,如果哪条出错了,就把哪条删除即可。
输入完成后,保存,并退出。
//如果没有这个目录,说明你的系统没有安装Ports服务,要记得装上。
#cp GENERIC ./ArthurXF_IPFW
用 vi 打开ArthurXF_IPFW文件,在文件未尾加入以下个行
options IPFIREWALL //通知操作系统的内核检查每个IP数据包,将它们与规则集进行比较
options IPFIREWALL_FORWARD
options IPDIVERT //启用由ipfw divert使用的转向IP套接字。这一选项需要与natd联合使用。
options IPFIREWALL_VERBOSE //启用通过Syslogd记录日志;如果没有指定这个选项,即使你在过滤规则中指定了记录包,也不会真的记录它们。
options IPFIREWALL_VERBOSE_LIMIT=10 //限制通过Syslogd记录的每项包规则的记录条数。如果你受到了大量的攻击,想记录防火墙的活动,但又不想由于Syslog洪水一般的记录将你淹没,那么这个选项将会很有用。当使用了这条规则,当规则链中的某一项达到限制数值时,它所对应的日志将不再记录下来。
options IPSTEALTH //启动支持秘密转发的代码,这一选项在使防火墙不被traceroute和类似工具发现时很有用。
options IPFIREWALL_DEFAULT_TO_ACCEPT //注意,关键地方了,本句把默认的规则动作从“deny”改成“allow”了,作用是在默认状态下IPFW将会接受任何的数据。
options ACCEPT_FILTER_DATA
options ACCEPT_FILTER_HTTP //接受过滤器中的静态连接
options ICMP_BANDLIM //ICMP_BANDLIM根据带宽限制产生icmp错误。一般情况下我们需要这个选项,它有助于你的系统免受D.O.S.攻击。
另外提供一些优化参数,可以不加的,仅供参考
options PQ_HUGECACHE //为1024k二级缓存的CPU提供支持
options PQ_LARGECACHE //为512k二级缓存的CPU提供支持
options PQ_MEDIUMCACHE //为256k二级缓存的CPU提供支持
options PQ_SMALLCACHE //为128k二级缓存的CPU提供支持
options CPU_ATHLON_SSE_HACK
options CPU_ENABLE_SSE //为Athlon系列CPU提供SSE支持
options CPU_SUSP_HLT //打开CPU空闲节能。
options CPU_UPGRADE_HW_CACHE
options CPU_WT_ALLOC
options NO_MEMORY_HOLE
上面有些参数,不是每个系统都会通过编译的,如果哪条出错了,就把哪条删除即可。
输入完成后,保存,并退出。
2.编译系统内核:
引用
#cd /usr/src
#make kernel KERNCONF=ArthurXF_IPFW
//开始编译内核。
#make kernel KERNCONF=ArthurXF_IPFW
//开始编译内核。
3.加入系统启动项
引用
#vi /etc/rc.conf
加入如下参数:
firewall_enable="YES"
//激活Firewall防火墙
firewall_script="/etc/rc.firewall"
//Firewall防火墙的默认脚本
firewall_type="/etc/ipfw.conf"
//Firewall 自定义脚本
firewall_quiet="NO"
//启用脚本时是否显示规则信息;假如你不再修改防火墙脚本,那么可以把这里设成“YES“。
firewall_logging_enable="YES"
#vi /etc/syslog.conf 文件,在文件最后加入:
!ipfw
*.* /var/log/ipfw.log
//这行的作用是将IPFW的日志写到/var/log/ipfw.log/文件里。你可以为日志文件指定其它路径。
最后,重启服务器。
加入如下参数:
firewall_enable="YES"
//激活Firewall防火墙
firewall_script="/etc/rc.firewall"
//Firewall防火墙的默认脚本
firewall_type="/etc/ipfw.conf"
//Firewall 自定义脚本
firewall_quiet="NO"
//启用脚本时是否显示规则信息;假如你不再修改防火墙脚本,那么可以把这里设成“YES“。
firewall_logging_enable="YES"
#vi /etc/syslog.conf 文件,在文件最后加入:
!ipfw
*.* /var/log/ipfw.log
//这行的作用是将IPFW的日志写到/var/log/ipfw.log/文件里。你可以为日志文件指定其它路径。
最后,重启服务器。
重启之后,你就可以用SSH登录你的服务器了,之后你可以在/etc/ipfw.conf中添加过滤规则来防止入侵了。
4.加入规则
下面的规则只是一个例子。
引用
vi /etc/ipfw.conf
将下面的内容复制进去
#!/bin/sh
fwcmd="/sbin/ipfw"
#${fwcmd} -f flush
######### TCP ##########
${fwcmd} add 001 deny tcp from any to any in tcpflags syn,fin
######### DNS ##########
${fwcmd} add 100 pass all from any to any via lo0
${fwcmd} add 110 deny all from any to 127.0.0.0/8
${fwcmd} add 120 deny ip from 127.0.0.0/8 to any
${fwcmd} add 130 pass all from me to me
${fwcmd} add 1000 allow all from me to 202.96.209.5
${fwcmd} add 1000 allow all from me to 202.96.209.133
${fwcmd} add 1000 allow all from 202.96.209.5 to me
${fwcmd} add 1000 allow all from 202.96.209.133 to me
######### www ssh ftp mail ##########
${fwcmd} add 500 check-state
${fwcmd} add 10000 pass tcp from any to me 80 in setup keep-state
${fwcmd} add 10000 pass tcp from any to me 443 in setup keep-state
${fwcmd} add 10002 allow tcp from any to me 22 in setup keep-state
${fwcmd} add 10003 pass all from any to me 21 in setup keep-state
${fwcmd} add 10004 pass all from me to any 21 out setup keep-state
${fwcmd} add 10005 pass tcp from any to me 25 in setup keep-state
${fwcmd} add 10006 pass tcp from me to any 25 out setup keep-state
################################
${fwcmd} add 20000 allow all from any to any 53 setup keep-state
${fwcmd} add 20001 allow tcp from me to any out setup keep-state
${fwcmd} add 20002 allow all from me to any out setup keep-state
${fwcmd} add 20003 allow all from any to me in setup keep-state
######### ICMP #################
${fwcmd} add 30000 allow icmp from any to any icmptypes 3
${fwcmd} add 30001 allow icmp from any to any icmptypes 4
${fwcmd} add 30002 allow icmp from any to any icmptypes 8 out
${fwcmd} add 30003 allow icmp from any to any icmptypes 0 in
${fwcmd} add 30004 allow icmp from any to any icmptypes 11 in
${fwcmd} add 50000 deny all from any to any
中间那些80,443等都是服务的端口号,可以根据需要修改的。
将下面的内容复制进去
#!/bin/sh
fwcmd="/sbin/ipfw"
#${fwcmd} -f flush
######### TCP ##########
${fwcmd} add 001 deny tcp from any to any in tcpflags syn,fin
######### DNS ##########
${fwcmd} add 100 pass all from any to any via lo0
${fwcmd} add 110 deny all from any to 127.0.0.0/8
${fwcmd} add 120 deny ip from 127.0.0.0/8 to any
${fwcmd} add 130 pass all from me to me
${fwcmd} add 1000 allow all from me to 202.96.209.5
${fwcmd} add 1000 allow all from me to 202.96.209.133
${fwcmd} add 1000 allow all from 202.96.209.5 to me
${fwcmd} add 1000 allow all from 202.96.209.133 to me
######### www ssh ftp mail ##########
${fwcmd} add 500 check-state
${fwcmd} add 10000 pass tcp from any to me 80 in setup keep-state
${fwcmd} add 10000 pass tcp from any to me 443 in setup keep-state
${fwcmd} add 10002 allow tcp from any to me 22 in setup keep-state
${fwcmd} add 10003 pass all from any to me 21 in setup keep-state
${fwcmd} add 10004 pass all from me to any 21 out setup keep-state
${fwcmd} add 10005 pass tcp from any to me 25 in setup keep-state
${fwcmd} add 10006 pass tcp from me to any 25 out setup keep-state
################################
${fwcmd} add 20000 allow all from any to any 53 setup keep-state
${fwcmd} add 20001 allow tcp from me to any out setup keep-state
${fwcmd} add 20002 allow all from me to any out setup keep-state
${fwcmd} add 20003 allow all from any to me in setup keep-state
######### ICMP #################
${fwcmd} add 30000 allow icmp from any to any icmptypes 3
${fwcmd} add 30001 allow icmp from any to any icmptypes 4
${fwcmd} add 30002 allow icmp from any to any icmptypes 8 out
${fwcmd} add 30003 allow icmp from any to any icmptypes 0 in
${fwcmd} add 30004 allow icmp from any to any icmptypes 11 in
${fwcmd} add 50000 deny all from any to any
中间那些80,443等都是服务的端口号,可以根据需要修改的。
5.常用命令
引用
加载规则 sh /etc/ipfw.conf
显示规则 ipfw show
显示规则 ipfw show
6.ipfw生效
引用
要让ipfw自启动生效,就需要修改一下。
#vi /etc/rc.conf
修改为
firewall_script="/etc/ipfw.conf"
firewall_quiet="YES" //安静模式
重起就好了。
#vi /etc/rc.conf
修改为
firewall_script="/etc/ipfw.conf"
firewall_quiet="YES" //安静模式
重起就好了。
此文章有ArthurXF倾情奉献,谢谢支持!
现在ArthurXF本人正在搞PHP等技术培训,如果想学习的人可以跟我联系。另外培训的招生简章在这个网址,想了解的可以去看看。加我QQ:29011218交流也可。
PHP培训招生简章
此文章由ArthurXF倾情奉献,谢谢支持!
1.安装
cd /usr/ports/devel/ZendOptimizer
make
make install
2.编辑php.ini
在php.ini中加入
[Zend]
zend_optimizer.optimization_level=15
zend_extension_manager.optimizer="/usr/local/lib/php/20060613-zts/Optimizer"
zend_extension_manager.optimizer_ts="/usr/local/lib/php/20060613-zts/Optimizer_TS"
zend_extension="/usr/local/lib/php/20060613-zts/ZendExtensionManager.so"
zend_extension_ts="/usr/local/lib/php/20060613-zts/ZendExtensionManager_TS.so"
然后调用phpinfo()输出结果,如果看到下面的字样,那么就说明安装成功了。
with Zend Optimizer v3.3.0, Copyright (c) 1998-2007, by Zend Technologies
现在ArthurXF本人正在搞PHP等技术培训,如果想学习的人可以跟我联系。另外培训的招生简章在这个网址,想了解的可以去看看。加我QQ:29011218交流也可。
PHP培训招生简章
1.安装
cd /usr/ports/devel/ZendOptimizer
make
make install
2.编辑php.ini
在php.ini中加入
[Zend]
zend_optimizer.optimization_level=15
zend_extension_manager.optimizer="/usr/local/lib/php/20060613-zts/Optimizer"
zend_extension_manager.optimizer_ts="/usr/local/lib/php/20060613-zts/Optimizer_TS"
zend_extension="/usr/local/lib/php/20060613-zts/ZendExtensionManager.so"
zend_extension_ts="/usr/local/lib/php/20060613-zts/ZendExtensionManager_TS.so"
然后调用phpinfo()输出结果,如果看到下面的字样,那么就说明安装成功了。
with Zend Optimizer v3.3.0, Copyright (c) 1998-2007, by Zend Technologies
现在ArthurXF本人正在搞PHP等技术培训,如果想学习的人可以跟我联系。另外培训的招生简章在这个网址,想了解的可以去看看。加我QQ:29011218交流也可。
PHP培训招生简章
作为一台服务器,流量的监控是对服务器及网络状况了解的基本方法。下面介绍几个常见的流量控制命令,测试操作系统为FreeBSD6.0Release。
系统:FreeBSD6.0Release
命令:systat -if 1
作用:查看当前网卡使用带宽
系统:FreeBSD6.0Release
命令:systat -ip 1
作用:查看包的进出流量
系统:FreeBSD6.0Release
命令:netstat -w 1
命令2:netstat -I xl0 -w 1 ( 针对某一网卡 )
显示:
proxy4# netstat -w 1
input (Total) output
packets errs bytes packets errs bytes colls
490 0 293465 471 0 291479 20
637 0 422915 615 0 424242 19
516 0 292878 484 0 287469 1
636 0 359417 623 0 366162 24
643 0 398575 620 0 396108 6
397 0 223827 357 0 216218 1
652 0 387266 594 0 387248 6
1192 0 880611 1211 0 880889 11
1118 0 766515 1158 0 786116 41
683 0 222295 667 0 469522 78
367 0 168580 317 0 168386 11
最后再介绍一种方法,安装软件ifstat (软件缺点为不能对packet进行查看),简单步骤:
1、从ifstat站点下载安装程序ifstat-1.1.tar.gz
2、通过ftp拷贝到服务器目录/home/funpower
3、开始解压安装
# cd /home/funpower
# tar zxvf ifstat-1.1.tar.gz
# cd ifstat-1.1
# ./configure
# make
# make install
安装后运行文件在/usr/local/bin中,运行命令/usr/local/bin/ifstat -T即可,显示:
proxy4# /usr/local/bin/ifstat -T
em0 xl0 Total
KB/s in KB/s out KB/s in KB/s out KB/s in KB/s out
131.43 140.67 138.74 122.00 270.17 262.67
263.71 52.08 76.88 292.99 340.59 345.06
105.56 66.81 77.14 107.89 182.70 174.70
197.34 52.30 56.45 197.04 253.79 249.34
134.58 86.54 91.04 127.76 225.63 214.30
258.52 115.93 122.95 264.30 381.47 380.23
263.18 97.04 99.35 262.61 362.53 359.65
188.37 81.11 85.97 186.95 274.33 268.06
1454.64 254.00 195.22 958.37 1649.86 1212.37
817.75 98.48 89.88 1215.27 907.63 1313.75
103.63 86.91 91.40 100.19 195.04 187.11
169.13 90.91 93.90 169.82 263.03 260.73
98.50 62.44 71.99 100.08 170.49 162.52
229.68 40.02 46.04 234.33 275.72 274.35
127.43 56.29 61.46 126.99 188.89 183.28
215.35 54.20 58.64 206.41 273.99 260.61
150.32 91.31 97.86 161.00 248.18 252.31
348.61 95.47 105.77 393.79 454.38 489.26
256.18 118.05 128.72 274.98 384.90 393.03
现在ArthurXF本人正在搞PHP等技术培训,如果想学习的人可以跟我联系。另外培训的招生简章在这个网址,想了解的可以去看看。加我QQ:29011218交流也可。
PHP培训招生简章
系统:FreeBSD6.0Release
命令:systat -if 1
作用:查看当前网卡使用带宽
系统:FreeBSD6.0Release
命令:systat -ip 1
作用:查看包的进出流量
系统:FreeBSD6.0Release
命令:netstat -w 1
命令2:netstat -I xl0 -w 1 ( 针对某一网卡 )
显示:
proxy4# netstat -w 1
input (Total) output
packets errs bytes packets errs bytes colls
490 0 293465 471 0 291479 20
637 0 422915 615 0 424242 19
516 0 292878 484 0 287469 1
636 0 359417 623 0 366162 24
643 0 398575 620 0 396108 6
397 0 223827 357 0 216218 1
652 0 387266 594 0 387248 6
1192 0 880611 1211 0 880889 11
1118 0 766515 1158 0 786116 41
683 0 222295 667 0 469522 78
367 0 168580 317 0 168386 11
最后再介绍一种方法,安装软件ifstat (软件缺点为不能对packet进行查看),简单步骤:
1、从ifstat站点下载安装程序ifstat-1.1.tar.gz
2、通过ftp拷贝到服务器目录/home/funpower
3、开始解压安装
# cd /home/funpower
# tar zxvf ifstat-1.1.tar.gz
# cd ifstat-1.1
# ./configure
# make
# make install
安装后运行文件在/usr/local/bin中,运行命令/usr/local/bin/ifstat -T即可,显示:
proxy4# /usr/local/bin/ifstat -T
em0 xl0 Total
KB/s in KB/s out KB/s in KB/s out KB/s in KB/s out
131.43 140.67 138.74 122.00 270.17 262.67
263.71 52.08 76.88 292.99 340.59 345.06
105.56 66.81 77.14 107.89 182.70 174.70
197.34 52.30 56.45 197.04 253.79 249.34
134.58 86.54 91.04 127.76 225.63 214.30
258.52 115.93 122.95 264.30 381.47 380.23
263.18 97.04 99.35 262.61 362.53 359.65
188.37 81.11 85.97 186.95 274.33 268.06
1454.64 254.00 195.22 958.37 1649.86 1212.37
817.75 98.48 89.88 1215.27 907.63 1313.75
103.63 86.91 91.40 100.19 195.04 187.11
169.13 90.91 93.90 169.82 263.03 260.73
98.50 62.44 71.99 100.08 170.49 162.52
229.68 40.02 46.04 234.33 275.72 274.35
127.43 56.29 61.46 126.99 188.89 183.28
215.35 54.20 58.64 206.41 273.99 260.61
150.32 91.31 97.86 161.00 248.18 252.31
348.61 95.47 105.77 393.79 454.38 489.26
256.18 118.05 128.72 274.98 384.90 393.03
现在ArthurXF本人正在搞PHP等技术培训,如果想学习的人可以跟我联系。另外培训的招生简章在这个网址,想了解的可以去看看。加我QQ:29011218交流也可。
PHP培训招生简章
随着信息技术的应用和发展,未来单台计算机的处理能力是越来越不能满足要求了,势必将发展成为众多计算级组成的集群来做服务,不断的将更多的计算机加入集群就可以满足更大压力需求。
我这里说的集群是概念上的集群,最终这种大型的集群势必需要解决分布式运算(即众多CPU协同运算)和分布式存储(即文件分布在各个计算机中)和分布式内存共享(即形成了数据共享使用),这些问题都解决了,其实就是由很多分布在各地的计算机组成了一台超级计算机,由这台超级计算机去完成一定的服务。我觉得这势必是未来计算机发展的方向,当然这里还需要解决很多问题。
目前已经有了很多很成熟分布式的系统,我针对上面3个大方向,收集了一些资料,仅供参考。
先提供的分布式运算,也叫平行运算的资料。
现在ArthurXF本人正在搞PHP等技术培训,如果想学习的人可以跟我联系。另外培训的招生简章在这个网址,想了解的可以去看看。加我QQ:29011218交流也可。
PHP培训招生简章>
我这里说的集群是概念上的集群,最终这种大型的集群势必需要解决分布式运算(即众多CPU协同运算)和分布式存储(即文件分布在各个计算机中)和分布式内存共享(即形成了数据共享使用),这些问题都解决了,其实就是由很多分布在各地的计算机组成了一台超级计算机,由这台超级计算机去完成一定的服务。我觉得这势必是未来计算机发展的方向,当然这里还需要解决很多问题。
目前已经有了很多很成熟分布式的系统,我针对上面3个大方向,收集了一些资料,仅供参考。
先提供的分布式运算,也叫平行运算的资料。
引用
LAM/MPI CLuster System With FreeBSD 5.3 HOWTO
tonnyom < tonnyom # hotmail.com >
版权声明:可以任意转载,转载时请务必以文字形式标明文章原始出处和作者信息及本声明.
前言
MPI(Message Passing Interface)消息传送接口
它不是一个协议,但它的地位已经实际上是一个协议了。它主要用于在分布式存储系统中的并行程序通信。MPI是一个函数库,它可以通过Fortran和C程序进行调用,MPI的好处是它速度比较快,而且移植性比较好。
Cluster
目前常见的Cluster(集群)架构有两种,一种是Web/Internet Cluster System,这种架构主要是将资料放置在不同的主机上面,亦即由多部主机同时负责一项服务;而另外一种则是所谓的平行运算了(Parallel Algorithms Cluster System)!平行运算其实就是将同一个运算的工作,交给整个Cluster里面的所有CPU来进行同步运算的一个功能。由于使用到多个CPU的运算能力,所以可以加快运算的速度。
此文档所安装架设的LAM/MPI Cluster System属于后者,由于实验环境条件以及自身能力的限制,可能文档有部分解释不详尽,如有疑问请来信与我联系,我将尽力完善此文档,谢谢!
软件及平台
Server \\ FreeBSD 5.3 Stable
IP:172.18.5.247
Hostname: center.the9.com
Client \\ FreeBSD 5.3 Release
IP:172.18.5.80
Hostname: node1.the9.com
apache_1.3.29 \\ All Ports Install
php4-4.3.10
php4-gd-4.3.10
php4-extensions-1.0
lam-6.5.9
ganglia-monitor-core-2.5.6
ganglia-webfrontend-2.5.5
目的
架设一套基于FreeBSD 5.3的LAM/MPI Cluster System.
安装及配置
一,各节点系统 /etc/hosts 的基本配置 \\ 如果内网有DNS,则配置好系统中的 /etc/resolv.conf 即可!
center.the9.com
#more /etc/hosts
172.18.5.247 center.the9.com
172.18.5.80 node1.the9.com
node1.the9.com
#more /etc/hosts
172.18.5.247 center.the9.com
172.18.5.80 node1.the9.com
二,Apache+PHP Server 的架设
center.the9.com
#cd /usr/ports/www/apache13-modssl
#make install clean \\ 安装 APACHE
#cd /usr/ports/lang/php4-extensions
#make install clean \\ 安装 PHP. 切记这里一定要选择安装GD库
#vi /usr/local/etc/apache/http.conf \\ 加入以下相关参数
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
三,NFS Server-Client 的架设
NFS Server(center.the9.com)
#vi /etc/rc.conf \\ 加入以下相关参数
nfs_server_enable="YES"
nfs_server_flags="-u -t -n 4 -h 172.18.5.247"
mountd_enable="YES"
mountd_flags="-r -l"
rpcbind_enable="YES"
rpcbind_flags="-l -h 172.18.5.247"
#vi /etc/exports \\ 配置NFS共享目录
/cluster -maproot=0:0 -network 172.18.5.0 -mask 255.255.255.0
#/etc/rc.d/rpcbind start #/etc/rc.d/mountd start #/etc/rc.d/nfsd start \\ 启动NFS Server
NFS Client(node1.the9.com)
#vi /etc/rc.conf \\ 加入以下相关参数
nfs_client_enable="YES"
#vi /etc/fstab \\ 加入以下相关参数 172.18.5.247:/cluster /cluster nfs rw 0 0
#mount /cluster \\ Mount /Cluster 目录
四,LAM/MPI Cluster System的架设
Step 1: 基本安装
center.the9.com
#cd /usr/ports/net/lam
#make install clean \\ 安装 LAM
#cd /usr/ports/sysutils/ganglia-monitor-core
#make install clean \\ 安装Cluster System 所需的Monitor Core
#cd /usr/ports/sysutils/ganglia-webfrontend
#make install clean \\ 安装上面Monitor Core 所需的WEB GUI
node1.the9.com
#cd /usr/ports/net/lam
#make install clean \\ 安装 LAM
#cd /usr/ports/sysutils/ganglia-monitor-core
#make install clean \\ 安装Cluster System 所需的Monitor Core
Step 2: 配置
center.the9.com
#cd /usr/local/etc/
#cp gmond.conf.sample gmond.conf
#cp gmetad.conf.sample gmetad.conf
#vi gmond.conf \\ 修改name和mcast_if 的参数
# The name of the cluster this node is a part of
# default: "unspecified"
name "BSDCluster"
# The multicast interface for gmond to send/receive data on
# default: the kernel decides based on routing configuration
mcast_if lnc0
#vi gmetad.conf \\ 修改data_source 的参数
# data_source "my cluster" 10 localhost my.machine.edu:8649 1.2.3.5:8655
# data_source "my grid" 50 1.3.4.7:8655 grid.org:8651 grid-backup.org:8651
# data_source "another source" 1.3.4.7:8655 1.3.4.8
data_source "BSDCluster" 10 center.the9.com:8649 node1.the9.com:8649
#vi /usr/local/etc/lam-bhost.def \\ 加入各node 的hostname
center.the9.com
node1.the9.com
node1.the9.com \\ 基本上,每个新增节点的配置都要和以上center.the9.com 的配置一致.
node2.the9.com
nodeX.the9.com ........
五,Monitor WEB GUI 的配置
center.the9.com
#vi /usr/local/etc/apache/http.conf \\ 加入以下相关参数,配置Cluster Monitor Web的路径
Alias /ganglia/ "/usr/local/www/ganglia/"
Options Indexes FollowSymlinks MultiViews
AllowOverride None
Order allow,deny
Allow from all
#vi /etc/rc.conf \\ 加入以下参数
apache_enable="YES"
apache_flags="-DSSL"
apache_pidfile="/var/run/httpd.pid"
#/usr/local/etc/rc.d/apache.sh start \\ 启动APACHE
六,启动并调试Cluster System以及检查测试
center.the9.com node1.the9.com nodeX.the9.com etc....
#/usr/local/etc/rc.d/gmetad.sh start #/usr/local/etc/rc.d/gmond.sh start \\ 启动Cluster 各Node的Monitor Core
center.the9.com
$lamboot -dv \\ 启动各节点的lam daemon
LAM 6.5.9/MPI 2 C++/ROMIO - Indiana University
lamboot: boot schema file: /usr/local/etc/lam-bhost.def
lamboot: opening hostfile /usr/local/etc/lam-bhost.def
lamboot: found the following hosts:
lamboot: n0 center.the9.com
lamboot: n1 node1.the9.com
lamboot: resolved hosts:
lamboot: n0 center.the9.com --> 172.18.5.247
lamboot: n1 node1.the9.com --> 172.18.5.80
lamboot: found 2 host node(s)
lamboot: origin node is 0 (center.the9.com)
Executing hboot on n0 (center.the9.com - 1 CPU)...
lamboot: attempting to execute "hboot -t -c lam-conf.lam -d -v -I " -H 172.18.5.247 -P 53433 -n 0 -o 0 ""
hboot: process schema = "/usr/local/etc/lam-conf.lam"
hboot: found /usr/local/bin/lamd
hboot: performing tkill
hboot: tkill
hboot: booting...
hboot: fork /usr/local/bin/lamd
[1] 28338 lamd -H 172.18.5.247 -P 53433 -n 0 -o 0 -d
hboot: attempting to execute
Executing hboot on n1 (node1.the9.com - 1 CPU)...
lamboot: attempting to execute "/usr/bin/ssh node1.the9.com -n echo $SHELL"
lamboot: got remote shell /bin/sh
lamboot: attempting to execute "/usr/bin/ssh node1.the9.com -n (. ./.profile; hboot -t -c lam-conf.lam -d -v -s -I "-H 172.18.5.247 -P 53433 -n 1 -o 0 " )"
hboot: process schema = "/usr/local/etc/lam-conf.lam"
hboot: found /usr/local/bin/lamd
hboot: performing tkill
hboot: tkill
hboot: booting...
hboot: fork /usr/local/bin/lamd
[1] 43110 lamd -H 172.18.5.247 -P 53433 -n 1 -o 0 -d
topology done
lamboot completed successfully
$lamhalt -dv \\ 停止各节点的lam daemon
LAM 6.5.9/MPI 2 C++/ROMIO - Indiana University
Shutting down LAM
lamhalt: sending HALT to n1 (node1.the9.com)
lamhalt: waiting for HALT ACKs from remote LAM daemons
lamhalt: received HALT ACK from n1 (node1.the9.com)
lamhalt: sending final HALT to n0 (center.the9.com)
lamhalt: local LAM daemon halted
LAM halted
$lamnodes \\ 查看node info $lamexec N echo "hello" \\ 查看node run status
center.the9.com
#ps ax
28338 ?? I 0:00.04 /usr/local/bin/lamd -H 172.18.5.247 -P 53433 -n 0 -o 0 -d
node1.the9.com
#ps ax
43110 ?? S 0:00.05 /usr/local/bin/lamd -H 172.18.5.247 -P 53433 -n 1 -o 0 -d
Cluster Monitor WEB GUI
http://center.the9.com/ganglia/ \\ 用这个查看系统数据,还是很直观的,是以RRDTool 生成的 images. :)
CPUs Total: 2
Hosts up: 2
Hosts down: 0
Avg Load (15, 5, 1m):
1%, 4%, 0%
Localtime:
2004-12-31 10:50
Total CPUs: 2
Total Memory: 0.2 GB
Total Disk: 8.0 GB
Most Full Disk: 61.2% Used
参考
http://lam-mpi.org/ lam-mpi http://www.beowulf.org/ beowulf FAQ http://www.lasg.ac.cn/cgi-bin/forum/topic.cgi?forum=4&topic=2247 MPI Cluster With RH9 http://lists.freebsd.org/mailman/listinfo/freebsd-cluster freebsd cluster maillist
tonnyom < tonnyom # hotmail.com >
版权声明:可以任意转载,转载时请务必以文字形式标明文章原始出处和作者信息及本声明.
前言
MPI(Message Passing Interface)消息传送接口
它不是一个协议,但它的地位已经实际上是一个协议了。它主要用于在分布式存储系统中的并行程序通信。MPI是一个函数库,它可以通过Fortran和C程序进行调用,MPI的好处是它速度比较快,而且移植性比较好。
Cluster
目前常见的Cluster(集群)架构有两种,一种是Web/Internet Cluster System,这种架构主要是将资料放置在不同的主机上面,亦即由多部主机同时负责一项服务;而另外一种则是所谓的平行运算了(Parallel Algorithms Cluster System)!平行运算其实就是将同一个运算的工作,交给整个Cluster里面的所有CPU来进行同步运算的一个功能。由于使用到多个CPU的运算能力,所以可以加快运算的速度。
此文档所安装架设的LAM/MPI Cluster System属于后者,由于实验环境条件以及自身能力的限制,可能文档有部分解释不详尽,如有疑问请来信与我联系,我将尽力完善此文档,谢谢!
软件及平台
Server \\ FreeBSD 5.3 Stable
IP:172.18.5.247
Hostname: center.the9.com
Client \\ FreeBSD 5.3 Release
IP:172.18.5.80
Hostname: node1.the9.com
apache_1.3.29 \\ All Ports Install
php4-4.3.10
php4-gd-4.3.10
php4-extensions-1.0
lam-6.5.9
ganglia-monitor-core-2.5.6
ganglia-webfrontend-2.5.5
目的
架设一套基于FreeBSD 5.3的LAM/MPI Cluster System.
安装及配置
一,各节点系统 /etc/hosts 的基本配置 \\ 如果内网有DNS,则配置好系统中的 /etc/resolv.conf 即可!
center.the9.com
#more /etc/hosts
172.18.5.247 center.the9.com
172.18.5.80 node1.the9.com
node1.the9.com
#more /etc/hosts
172.18.5.247 center.the9.com
172.18.5.80 node1.the9.com
二,Apache+PHP Server 的架设
center.the9.com
#cd /usr/ports/www/apache13-modssl
#make install clean \\ 安装 APACHE
#cd /usr/ports/lang/php4-extensions
#make install clean \\ 安装 PHP. 切记这里一定要选择安装GD库
#vi /usr/local/etc/apache/http.conf \\ 加入以下相关参数
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
三,NFS Server-Client 的架设
NFS Server(center.the9.com)
#vi /etc/rc.conf \\ 加入以下相关参数
nfs_server_enable="YES"
nfs_server_flags="-u -t -n 4 -h 172.18.5.247"
mountd_enable="YES"
mountd_flags="-r -l"
rpcbind_enable="YES"
rpcbind_flags="-l -h 172.18.5.247"
#vi /etc/exports \\ 配置NFS共享目录
/cluster -maproot=0:0 -network 172.18.5.0 -mask 255.255.255.0
#/etc/rc.d/rpcbind start #/etc/rc.d/mountd start #/etc/rc.d/nfsd start \\ 启动NFS Server
NFS Client(node1.the9.com)
#vi /etc/rc.conf \\ 加入以下相关参数
nfs_client_enable="YES"
#vi /etc/fstab \\ 加入以下相关参数 172.18.5.247:/cluster /cluster nfs rw 0 0
#mount /cluster \\ Mount /Cluster 目录
四,LAM/MPI Cluster System的架设
Step 1: 基本安装
center.the9.com
#cd /usr/ports/net/lam
#make install clean \\ 安装 LAM
#cd /usr/ports/sysutils/ganglia-monitor-core
#make install clean \\ 安装Cluster System 所需的Monitor Core
#cd /usr/ports/sysutils/ganglia-webfrontend
#make install clean \\ 安装上面Monitor Core 所需的WEB GUI
node1.the9.com
#cd /usr/ports/net/lam
#make install clean \\ 安装 LAM
#cd /usr/ports/sysutils/ganglia-monitor-core
#make install clean \\ 安装Cluster System 所需的Monitor Core
Step 2: 配置
center.the9.com
#cd /usr/local/etc/
#cp gmond.conf.sample gmond.conf
#cp gmetad.conf.sample gmetad.conf
#vi gmond.conf \\ 修改name和mcast_if 的参数
# The name of the cluster this node is a part of
# default: "unspecified"
name "BSDCluster"
# The multicast interface for gmond to send/receive data on
# default: the kernel decides based on routing configuration
mcast_if lnc0
#vi gmetad.conf \\ 修改data_source 的参数
# data_source "my cluster" 10 localhost my.machine.edu:8649 1.2.3.5:8655
# data_source "my grid" 50 1.3.4.7:8655 grid.org:8651 grid-backup.org:8651
# data_source "another source" 1.3.4.7:8655 1.3.4.8
data_source "BSDCluster" 10 center.the9.com:8649 node1.the9.com:8649
#vi /usr/local/etc/lam-bhost.def \\ 加入各node 的hostname
center.the9.com
node1.the9.com
node1.the9.com \\ 基本上,每个新增节点的配置都要和以上center.the9.com 的配置一致.
node2.the9.com
nodeX.the9.com ........
五,Monitor WEB GUI 的配置
center.the9.com
#vi /usr/local/etc/apache/http.conf \\ 加入以下相关参数,配置Cluster Monitor Web的路径
Alias /ganglia/ "/usr/local/www/ganglia/"
Options Indexes FollowSymlinks MultiViews
AllowOverride None
Order allow,deny
Allow from all
#vi /etc/rc.conf \\ 加入以下参数
apache_enable="YES"
apache_flags="-DSSL"
apache_pidfile="/var/run/httpd.pid"
#/usr/local/etc/rc.d/apache.sh start \\ 启动APACHE
六,启动并调试Cluster System以及检查测试
center.the9.com node1.the9.com nodeX.the9.com etc....
#/usr/local/etc/rc.d/gmetad.sh start #/usr/local/etc/rc.d/gmond.sh start \\ 启动Cluster 各Node的Monitor Core
center.the9.com
$lamboot -dv \\ 启动各节点的lam daemon
LAM 6.5.9/MPI 2 C++/ROMIO - Indiana University
lamboot: boot schema file: /usr/local/etc/lam-bhost.def
lamboot: opening hostfile /usr/local/etc/lam-bhost.def
lamboot: found the following hosts:
lamboot: n0 center.the9.com
lamboot: n1 node1.the9.com
lamboot: resolved hosts:
lamboot: n0 center.the9.com --> 172.18.5.247
lamboot: n1 node1.the9.com --> 172.18.5.80
lamboot: found 2 host node(s)
lamboot: origin node is 0 (center.the9.com)
Executing hboot on n0 (center.the9.com - 1 CPU)...
lamboot: attempting to execute "hboot -t -c lam-conf.lam -d -v -I " -H 172.18.5.247 -P 53433 -n 0 -o 0 ""
hboot: process schema = "/usr/local/etc/lam-conf.lam"
hboot: found /usr/local/bin/lamd
hboot: performing tkill
hboot: tkill
hboot: booting...
hboot: fork /usr/local/bin/lamd
[1] 28338 lamd -H 172.18.5.247 -P 53433 -n 0 -o 0 -d
hboot: attempting to execute
Executing hboot on n1 (node1.the9.com - 1 CPU)...
lamboot: attempting to execute "/usr/bin/ssh node1.the9.com -n echo $SHELL"
lamboot: got remote shell /bin/sh
lamboot: attempting to execute "/usr/bin/ssh node1.the9.com -n (. ./.profile; hboot -t -c lam-conf.lam -d -v -s -I "-H 172.18.5.247 -P 53433 -n 1 -o 0 " )"
hboot: process schema = "/usr/local/etc/lam-conf.lam"
hboot: found /usr/local/bin/lamd
hboot: performing tkill
hboot: tkill
hboot: booting...
hboot: fork /usr/local/bin/lamd
[1] 43110 lamd -H 172.18.5.247 -P 53433 -n 1 -o 0 -d
topology done
lamboot completed successfully
$lamhalt -dv \\ 停止各节点的lam daemon
LAM 6.5.9/MPI 2 C++/ROMIO - Indiana University
Shutting down LAM
lamhalt: sending HALT to n1 (node1.the9.com)
lamhalt: waiting for HALT ACKs from remote LAM daemons
lamhalt: received HALT ACK from n1 (node1.the9.com)
lamhalt: sending final HALT to n0 (center.the9.com)
lamhalt: local LAM daemon halted
LAM halted
$lamnodes \\ 查看node info $lamexec N echo "hello" \\ 查看node run status
center.the9.com
#ps ax
28338 ?? I 0:00.04 /usr/local/bin/lamd -H 172.18.5.247 -P 53433 -n 0 -o 0 -d
node1.the9.com
#ps ax
43110 ?? S 0:00.05 /usr/local/bin/lamd -H 172.18.5.247 -P 53433 -n 1 -o 0 -d
Cluster Monitor WEB GUI
http://center.the9.com/ganglia/ \\ 用这个查看系统数据,还是很直观的,是以RRDTool 生成的 images. :)
CPUs Total: 2
Hosts up: 2
Hosts down: 0
Avg Load (15, 5, 1m):
1%, 4%, 0%
Localtime:
2004-12-31 10:50
Total CPUs: 2
Total Memory: 0.2 GB
Total Disk: 8.0 GB
Most Full Disk: 61.2% Used
参考
http://lam-mpi.org/ lam-mpi http://www.beowulf.org/ beowulf FAQ http://www.lasg.ac.cn/cgi-bin/forum/topic.cgi?forum=4&topic=2247 MPI Cluster With RH9 http://lists.freebsd.org/mailman/listinfo/freebsd-cluster freebsd cluster maillist
现在ArthurXF本人正在搞PHP等技术培训,如果想学习的人可以跟我联系。另外培训的招生简章在这个网址,想了解的可以去看看。加我QQ:29011218交流也可。
PHP培训招生简章>





2008/01/14 09:59 
