很多Linux的朋友也许都非常熟悉LVS负载均衡软件了,但是在FREEBSD下如何做负载均衡呢?
  其实FREEBSD也有很多负载均衡的方法。本文由ArthurXF倾情奉献,谢谢支持!
  负载均衡就是要把高流量合理的分配给不同的服务器,让每台服务器在最大承受能力范围内,最好的为用户服务。负载均衡其实就是如何把流量合理分配的工作。
  当然负载均衡的办法很多,我ArthurXF这里只给出两个方法,以供大家学习参考。
1.构建流量控制防火墙(桥接模式)
概述
利用FreeBSD内核支持的BRIDGE、IPFIREWALL以及DUMMYNET选项,可以建立基于FreeBSD的透明流量控制防火墙(桥接模式),起到限制流量和包过滤的功能。

引用
准备
可以在任何FreeBSD的兼容硬件上构建流量控制防火墙,但是基于性能和管理上的考虑,建议:
使用Intel PII450以上的处理器
使用至少128MB RAM
使用高性能10/100Mbps自适应网络适配器
如果多于一组桥接设备,建议使用双处理器系统
另外准备一块单独的网络适配器用于管理
--------------------------------------------------------------------------------
实例
联想万全1300 PC服务器,具有一颗Intel PII300处理器,配置有128MB RAM,主板集成Intel 82557网络适配器,另外安装了4块3Com 3C905B 10/100Mbps自适应PCI网络适配器。


引用
配置
完成操作系统安装以后,必须重新编译系统内核使其支持桥接流量控制防火墙选项。必须在系统内核编译配置文件中添加以下内容:

    options BRIDGE
       options DUMMYNET
       options IPFIREWALL
       options IPFIREWALL_DEFAULT_TO_ACCEPT

重新编译完系统内核以后必须重新启动计算机。

--------------------------------------------------------------------------------
实例

    # cd /usr/src/sys/i386/conf
       # cp GENERIC BRGFW
       # echo "options BRIDGE" >;>; BRGFW
       # echo "options DUMMYNET" >;>; BRGFW
       # echo "options IPFIREWALL" >;>; BRGFW
       # echo "options IPFIREWALL_DEFAULT_TO_ACCEPT" >;>; BRGFW
       # config
       # cd ../../compile/BRGFW
       # make depend all install
       # reboot


引用

激活桥接
重新启动计算机以后,使用以下命令激活桥接流量控制防火墙选项:
    sysctl -w net.link.ether.bridge_ipfw=1
       sysctl -w net.link.ether.bridge_cfg=""
       sysctl -w net.link.ether.bridge=1

其中bridge_cfg参数用于设置多组桥接设备,如果仅考虑单组桥接,可以忽略。实例使用集成的Intel 82557网络适配器作为管理网络,其他3Com 3C905B网络适配器分为两组网桥使用。

--------------------------------------------------------------------------------
实例

     # sysctl -w net.link.ether.bridge_ipfw=1
       # sysctl -w net.link.ether.bridge_cfg="xl0:0,xl1:0,xl2:1,xl3:1"
       # sysctl -w net.link.ether.bridge=1


引用
使用
使用ipfw命令来控制流量和防火墙策略。其中流量控制是作为一条防火墙策略实现的,因此ipfw是唯一的管理界面。通过实例来说明ipfw的使用。

在实例中,网段192.168.254.0/24经过第一组网桥,网段192.168.250.0/24经过第二组网桥,并建立以下策略:


允许所有的ICMP连接,限制总流量为10Kbit/s

允许所有的UDP链接,限制总流量为100Kbit/s

允许TCP到网段192.168.254.0/24的所有连接,限制流量为5Mbit/s

允许TCP到主机192.168.250.222的HTTP连接,限制流量为2Mbit/s

允许TCP到主机192.168.250.0/24的所有其他连接,限制流量为1Mbit/s

禁止其他所有连接


--------------------------------------------------------------------------------
实例

    # ipfw -flush
       # ipfw add 100 pipe 1 icmp from any to any
       # ipfw pipe 1 config bw 10Kbit/s
       # ipfw add 200 pipe 2 udp from any to any
       # ipfw pipe 2 config bw 100Kbit/s
       # ipfw add 300 pipe 3 tcp from 192.168.254.0/24 to any
       # ipfw pipe 3 config bw 5Mbit/s
       # ipfw add 400 pipe 4 tcp from any to 192.168.254.0/24
       # ipfw pipe 4 config bw 5Mbit/s
       # ipfw add 500 pipe 5 tcp from any to 192.168.250.222 80
       # ipfw pipe 5 config bw 2Mbit/s
       # ipfw add 600 pipe 6 tcp from 192.168.250.222 80 to any
       # ipfw pipe 6 config bw 2Mbit/s
       # ipfw add 700 pipe 7 tcp from 192.168.250.0/24 to any
       # ipfw pipe 7 config bw 1Mbit/s
       # ipfw add 800 pipe 8 tcp from any to 192.168.250.0/24
       # ipfw pipe 8 config bw 1Mbit/s
       # ipfw add 60000 deny ip from any to any
       # ipfw -a l


2.SG Cluster(一个简单实现集群的方法)
官方网址:http://turtle.ee.ncku.edu.tw/sgcluster/
SG Cluster是基于FREEBSD的NAT执行和SG软件分配建立的负载均衡工具。
具有如下特点:
易管理 - 有非常友好和简单安装的web用户管理界面。

图形化 - 系统将运行在不同系统上的集群后台服务高亮图形化显示在一个客户端。

可升级 - 系统负载能力可随着加入新的集群服务器而得到提升。

负载平衡 - 系统自动发送请求到最小负载的服务器上,以达到系统的最佳性能。

容错性 - SG负载均衡系统监控所有的服务器,仅仅将请求发送给有效的服务器,并可在整个负载均衡系统中设置多个负载均衡服务器,以避免系统中的单点故障。

高负载 - SG负载均衡可以标记系统中的过多冗余,系统还能在系统升级的时候维持正常服务。

配置
Config document from offical site..

http://turtle.ee.ncku.edu....

CONFIGURATION
edit system config files

There is an editor 'ee' bundled in SG system disk, you can use 'ee' to edit the configuration files under /etc

/etc/rc.conf.local

this file contains hostname information, see below for example

1 hostname="ds211.ee.ncku.edu.tw" # Set this!
2
3 gateway_enable="YES" # Set to YES if this host will be a gateway.
4 firewall_enable="YES" # firewall (see /etc/rc.firewall) or NO

line 1: set the hostname of the SG load balancer

/etc/ sg.conf

this file contains the configuration information of SG system, see below for example

1 # SG CLUSTER CONFIGURATION, CHANGE FOR YOUR NEED!!!
2
3 sgpath="/stand" # where sg related program is
4 temporary_ip="10.0.0.1" # ip before start sg
5 temporary_gw="10.0.0.253" # gateway before start sg
6
7 public_interface="fxp0"
8 private_interface="fxp1"
9
10 default_gw="140.116.72.253"
11
12 public_ip="140.116.72.136"
13 public_netmask="255.255.255.0"
14 private_ip="192.168.1.253"
15 private_netmask="255.255.255.0"
16
17 group_ip="140.116.72.137 140.116.72.138"
18
19 # map real servers to server group
20 natd_parameter="
21 -redirect_address 192.168.1.1 140.116.72.137
22 -redirect_address 192.168.1.2 140.116.72.137
23 -redirect_address 192.168.1.3 140.116.72.137
24 -redirect_port tcp 192.168.1.2:23 140.116.72.138:23
25 -redirect_port tcp 192.168.1.3:23 140.116.72.138:23
26 -redirect_port tcp 192.168.1.4:23 140.116.72.138:23
27 "
28
29 # username/passwd used by sgcmd to connect sgctrld
30 username="dslab"
31 password="dslab"
32
33 # init command sent to sgctrld
34 init_command="
35 set g 140.116.72.137:0 keyport_list 0
36 set g 140.116.72.137:0 s 192.168.1.1:0 weight 2
37 set g 140.116.72.137:0 s 192.168.1.2:0 weight 1
38 set g 140.116.72.137:0 s 192.168.1.3:0 weight 1
39 set g 140.116.72.138:23 keep_same_server 1
40 set g 140.116.72.138:23 keyport_list 0 23/tcp
41 set g 140.116.72.138:23 s 192.168.1.2:23 weight 1
42 set g 140.116.72.138:23 s 192.168.1.3:23 weight 1
43 set g 140.116.72.138:23 s 192.168.1.4:23 weight 2
44 "
45
46 # THERE SHOULD NO NEED TO CHANGE FROM BELOW ########################################
47
48 bidd_ip="234.5.6.7" # multicast group ip for bidd
49 bidd_port="3456" # port for bidd
50 bidd_master_heartbeat_interval="8"
51 bidd_master_timeout="10"
52 bidd_bid_timeout="3"
53 bidd_start_script="$sgpath/sgstart.sh"
54 bidd_stop_script="$sgpath/sgstop.sh"
55 bidd_continue_script="$sgpath/sgcontinue.sh"
56
57 sgmon_calc_status_interval="10"
58 sgmon_port_test_interval="60"
59 sgmon_host_timeout="2"
60
61 sgctrld_passwd_file="/etc/sgctrld.passwd"


点击在新窗口中浏览此图片

line 7,8: set the name of public interface and private interface


Ethernet card supported by SG load balancer:

ed - NE2000, 3com 3C503 (ed0 port 0x300 irq10, ed1 port 0x320 irq11)
ie - 3com 30507, Intel Ether Express (ie0 port 0x280 irq5, ie1 port 0x340 irq 7)
de - DEC 21040/21140 based PCI card
fxp - Intel Ether Express pro
vr - DLink DFE530tx
xl - 3Com 3C900/3C905/3C905B


line 10: the default gateway for public interface

line 12-15: set the ip and netmask of the public interface and private interface

line 17: the ip of server groups (separated by space)

line 20-27: define servers in each server group

In this example, 2 server groups, 140.116.72.137:0 and 140.116.72.138:23, are defined, echo of them has 3 member server in the group.

line 30,31: the username/passwd used by web interface to login sgctrld

line 34-44: initial command sent to sgctrld to set SG properties,

property setting syntax:

set group [group_ip] [group_property] [value]
set group [group_ip] server [server_ip] [server_property] [value]

group property name description
name group name
active_flag 0=off, 1=on
keyport_list port list, 0 means icmp, NNN/udp=udp port, NNN/tcp=tcp port, where NNN=1..65535
select_method 0=roundrobin, 1=by_conn, 2=by_pkt, 3=by_clntip, 4=by_ext
keep_same_server  0=off, 1=on
failure_detect_by_packet_snoop 0=off, 1=on
recovery_detect_by_packet_snoop 0=off, 1=on
packet_delta_threshold pkt lost upper limit for each keyport
packet_timeout_threshold timeout upper limit for each keyport, unit:second
failure_detect_by_porttest 0=off, 1=on
recovery_detect_by_porttest 0=off, 1=on
porttest_error_threshold 0-65535
failure_detect_by_heartbeat 0=off, 1=on
recovery_detect_by_heartbeat 0=off, 1=on
heartbeat_timeout_threshold 0-65535
mcast_mode 0=deny, 1=bypass, 2=readwrite, 3=rdonly
multicast_addr multicast address for service program
mcast_error_threshold 0-65535
deny_interval deny interval for evil client  
connection_count_limit 1-65535, limit per client, 0 no limit
connection_rate_limit 1-65535, limit per client, 0 no limit
finwait_tcp_limit 1-65535, limit per client, 0 no limit

 server property name value
name server name
ac_list server access control list, ex: "140.116.72/24 !140.116.49.0/24"
weight 0-255
external_count a counter representing server load defined server program
status 0=dead, 1=pending, 2=alive

/etc/resolv.conf

set the dns server

/etc/hosts

local host table



set root password

use 'passwd root' to change root password of SG system



set sgctrld password

The password file of sgctrld is /etc/sgctrld.passwd, you can use

echo 'your_name:`makepwd your_passwd`'>;>;/etc/sgctrld.passwd

to add your_name/your_passwd to /etc/sgctrld.passwd

Or you can also 'ee' to edit the /etc/sgctrld.passwd directly to remove old account



synchronize all modification into floppy disk

When SG system boot up, all things are loaded into the ram disk, and your modification is also on the ram disk. You have to use 'update' to synchronize the change to the floppy disk.



reboot the SG system disk

If everything is right, you would see some message like 'bidd...BID->;MASTER' appears on the console. Try to telnet to the SG load balancer from remote host and browse the web page of 'http://your.load.balancer.hostname.or.ip'. If everything is right, congratulations!

007

2008/01/25 13:56 ArthurXF
人数:8人以上
适用范围:酒桌

游戏操作规则:
1、由开始一人发音“零”,随声任指一人,那人随即亦发音“零”再指另外一人,第三个人则发音“七”,随声用手指作开枪状任指一人,“中枪”者不发任何声音不做任何动作,但“中枪”者旁边左右两人则要发“啊”的声音,而扬手作投降状。
2、出错者饮酒!
 

游戏说明:
由于游戏没有任何轮流的次序,而是突发的任指其中的一个人,所以整个过程都必须处于紧张状态,因为下一个可能就是你了!
Tags:

培训常用小魔术

2008/01/25 13:55 ArthurXF
1.两数巧合

在桌子上放着一张纸和一支铅笔。表演者走到桌子前,将衣服口袋翻出来给观众看,证明口袋里没有任何东西,然后再将口袋翻回去。表演者拿起铅笔在纸上写了一个数字(不让观众看见),写好后,将纸条装进了衣服口袋里。表演者对观众说:“你现在随便说一个数字,你说的这个数字我早已预测出来了,就写在了刚才那个纸条上。好了,现在随便想一个数字,说出来。”观众报出了一个数字后,表演者从口袋里掏出了那个纸条,让观众看上面写的数字,果然是观众报出的那个数字。这是怎么回事,难道表演者真会预测?

具体操作:

表演者事先在桌子的一角上放一个长约1厘米的铅笔芯(因为小,观众不会发现的),当然你也可以根据自己的喜欢将铅笔芯藏在其他地方。当表演者拿起铅笔在纸上写数字上,要假装在写,其时没有写任何东西。“写”好后将纸条装在口袋里。当观众报完数字时,表演者偷偷那起桌子上的铅笔芯。然后伸进口袋,用铅笔芯快速在纸条上写出观众报出的数字(为了写起来方便,让观众报数字时,可以限定一下所报数字在0到9之间)。这时表演者掏出纸条让观众看(观众看纸条时,表演者可将铅笔芯扔掉),观众定会感到非常不可思议。表演好了,这是一个非常精彩的小魔术哦!


2.钞票变白纸


准备工作:钞票10张,白纸10来张。

表演方式:表演者事先把白纸条夹在第9和第10张钞票之间。表演开始,表演者将10张钞票展成扇面握在手中。然后从扇行的钞票中抽出几张正反面作交代,借机将10张钞票移到最下面,下面就是一叠白纸了。接着,理齐这叠钞票,右拳对着这叠钞票一击,然后展开扇面。奇怪!原来的一叠钞票全变成白纸了。再假意抽出几张纸交代,这样就可以用交代过的纸把钞票遮住,看上去好象钞票全变成了白纸。

注意事项:表演用的钞票和白纸要新而挺的



3.报纸盛水


表演者把水倒进一个用报纸卷成的漏斗里,这已够令人惊讶了,报纸怎能包住水呢?但他还是一本正经地把报纸漏斗的下而折起来,不至于让水流出来;而观众们却在等着看,水是否从报纸下面流出来,出乎意料,表演者突然把报往空中一扔,按住后将它展开,滴水不见,报纸完全是干的。然后再将这张报纸卷起来,从报纸里往玻璃杯里倒水。作为道具,需要两件普通的日常用品:一个有把的大玻璃杯和一张报纸。此外还需要一件辅助道具———一个直径为3~4厘米、高15厘米的透明塑料容器,容器上面有一个耳子。表演时,玻璃杯放在桌子上,杯子的后面(从观众角度看)挂着塑料容器。现在把报纸卷成漏斗形,右手拿起杯子,拿着漏斗形报纸的左手在玻璃杯后面从下而上提起,杯后的塑料容器于是就挂到报纸里去了。杯中的水就可倒进位于漏斗形报纸里的塑料密渐注意不要让水弄湿报纸)。等水倒得差不多了,拿报纸的手又由下而上地提起来,让玻璃杯将透明塑料容器挂走,然后放下玻璃杯。为了加强表演效果,表演者故意装做十分小心地拿着报纸的样子,意为不让水晃出来,但突然间他将报纸往空中一扔,或者干脆往观众席上扔去。接着重新把这张报纸卷成漏斗形,将水从报纸里倒回杯子——先将挂在玻璃杯上的塑料容器放入漏斗形报纸中,然后把塑料容器里的水倒入林子,又按同样方法把空塑料容器挂走,将杯子放好,再展开报纸给观众.




4.跳动的火柴


偶然遇见一伙朋友,您可以告诉他们您刚刚发现了一种绝妙的脉搏检测方法。于是,您从衣服口袋里面拿出两枚普通的木质火柴,把其中的一枚放在左手的手掌上面,说明可以把它当作是一个脉搏计数器。然后,再把第二枚火柴故在第一枚的下面,让它作为整个演示过程中的脉搏发生器。当您的朋友们仔细观察那个计数器的时候,他们自然会发现它正在按照一定的节奏上下跳动着,仿佛正在记录着您的心跳次数。突然间,您的心跳失去了正常的规律,最后,随着一个近乎幽歌的动作终于停止了跳动。接下来,您把火柴交给朋友们,请他们进行一番认真仔细的检查,然后,请他们一试身手。显而易见,尽管他们使尽了浑身的解数,决意要像您一样痛痛快快地“露一手”,其结果却只能是眼睁净地看着那两枚火柴静悄俏地躺在他们的手心里面“睡大党”。秘技与准备工作表演这个节目时,您最好使用大号的木质火柴。正是由于对道具的要求标准不高,所以,您可以随时随地借到这样的火柴作为道具。其实,表演这个节目的真正秘诀就在于那枚火柴——脉搏发生器——的暗设机关。

表演方法
1.如图所示,把第一枚火柴故于左手攀作为脉博计数器。调整好火柴的位置,使它紧*手指的根部,其头部朝着您自己。
2.用右手拇指与食指握住第二枚火柴,即脉搏发生器,与此同时,还要用中指的指甲紧紧地抵住火柴的后背.如图2所示.
3.倘若您用中指的指甲稍微对该火柴施加压力,或者让该火柴在指甲上面极其缓慢地滑动,那么,这根火柴就势必产生出一连串为人不易察觉的脉冲.
4.把发生器火柴放在计数器火柴下面,如图所示。按照第3步骤中规定的方法,使右手中指的指甲俏俏地磨擦那枚火柴,于是,右手中的火柴就必然促使左手中的火柴接连不断地产生出一连串的颤动。

评语与建议

虽然说这只不过是一个小小的即兴魔术表演,但是,如果操作手法得当,它同样可以达到引人人胜的良好效果。表演这个节目时,您最好使用那种大号的木质火柴,它的好处在于具有较好的视觉效果,而且令您表演起来更加得心应手。请您牢牢地记住这一点,除非您用中指的指甲磨擦那枚火柴,否则,作为记数器的那枚火柴是根本不会动一动的。在表演过程中还有另外一个话题,您可以告诉观众们说,您已经学会了怎样利用魔法来使火柴产生磁力。把第一枚火柴(脉搏发生器)放在您的衣袖或者桌布上面磨境几次,完全可以肯定当您用第一枚火柴接近第二枚火柴(计数器)时,后者就会开始轻微地抖动起来,好像是暗地里有某种神奇的力量正在不断地推动着它似的!

合力吹汽球

2008/01/25 13:52 ArthurXF
借着分工合作来完成任务

人数:每组限六人
场地:不限
道具:主持人准备每组各六张签,上写:嘴巴;手(二张);屁股;脚(二张)
汽球(每组一个)
适合:全部的人

游戏方法:
1. 分组,不限几组,但每组必须要有六人。
2. 主持人请每组每人抽签。
3. 首先,抽到嘴巴的必须借着抽到手的两人帮助来把汽球给吹起(抽到嘴巴的人不能用手自已吹起汽球);然后二个抽到脚的人抬起抽到屁股的人去把汽球给坐破。

寻宝

2008/01/25 13:51 ArthurXF
所需时间:由参加的人数及所列项目的多少来决定
小组人数:无限制,但要分5-7人为一组
所需物品:给每一组发一个"寻猎"项目列表
场地:尤其适合宾馆内举行展会期间开展活动。
 
目的:
1、 加深团队成员间的接触
2、 发现团队成员的智慧
 

步骤:
1、 将团队成员分为5-7人。
2、 告知每个参与者将一起去参加一个搜寻活动,获胜的小组将受到奖励。
3、 将"寻猎"列表交给各小组,告诉他们将利用他们自己的智慧尽可能多的获得表中所列内容。
4、 设置一个时间限制,如1小时。
5、 当时间到时,命令每个队都集合回来,比较哪一个队的得分高

Tags:
分页: 1/6 第一页 1 2 3 4 5 6 下页 最后页 [ 显示模式: 摘要 | 列表 ]